سلام.
من یک لپ تاپ، با مشخصات زیر دارم:
CPU: Intel Corei9
GPU: Nvidia Quadro K2100M
RAM: 8GB
OS: Win7, 64-bit, SP1, ultimate
Visula Studio: 2019
OpenCV: 4.2.0
CUDA: 10.1
وقتی تابع (kernel) ساده ای (مانند جمع دو ماتریس) را برای اجرا در GPU می نویسم به خوبی کار می کنه و همانطور که اتنظار می ره سرعتش چندین برابر سرعت تابعی مشابه، در CPU است.
اما زمانی که از یکی از توابع CUDA OpenCV استفاده می کنم (مانند median blur و یا resize و یا ...) در کمال ناباوری سرعت اجرای اون در GPU بسیار پایین تر از سرعت اجرای تابع مشابه اون در OpenCv و CPU است.
البته طبق انتظار، تابع، در اولین فراخوانی، (نسبت به فراخوانی های بعدی) به زمان بیشتری نیاز دارد. ولی تابع، درفراخوانی های بعدی نیز نسبت به CPU بسیار بیشتر زمان بر است. (حدوداَ 5 برابر)
این را هم اضافه کنم که من تنها، زمان اجرای تابع (kernel) را اندازه گیری کردم و از زمان های مربوط به upload و download چشم پوشی کردم.
نمی دانم آیا مشکل از لپ تاپ است یا برنامه.
با تشکر.