-2
我的筆記本電腦有一塊GeForce GTX 960M和英特爾HD 530我正在運行的內核並使用下面的代碼中使用的OpenCL的探查:爲什麼Opencl內核在英特爾HD上的運行速度比NVIDIA GeForce快得多?
err = clEnqueueNDRangeKernel(queue, voxelization_kernel, 1, NULL, &processed_global_size,
&local_size, 0, NULL, &kernel_event);
err = clWaitForEvents(1, &kernel_event);
clGetEventProfilingInfo(kernel_event, CL_PROFILING_COMMAND_START,
sizeof(time_start), &time_start, NULL);
clGetEventProfilingInfo(kernel_event, CL_PROFILING_COMMAND_END,
sizeof(time_end), &time_end, NULL);
elapsed_time = time_end - time_start;
printf("Elapsed time in kernel: %f ms\n", (float)(time_end - time_start)/(float)1000000);
英特爾所經過的時間最多縮短10倍的速度比的GeForce。例如,對於GeForce上需要12.519104ms的內核,英特爾HD上的運行時間僅爲1.427828ms。其他數據集也存在相同的模式。這對我來說看起來很奇怪,因爲GeForce應該是一個更好的設備。我在分析時做錯了什麼,或者有什麼我做錯了嗎?
性能是工作組大小,內存訪問模式等,這些你沒敏感」在你的問題中指定。這個話題是非常廣泛的一個簡單的答案。您可以先嚐試在兩臺設備上運行第三方OpenCL基準測試,然後比較結果,以獲得期望的基線。 –