[問題] OpenCL
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Ubuntu 12.04, g++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
OpenCL, Intel SDK
問題(Question):
請問OpenCL執行速度會可能比逐行執行慢嗎?
-----------------------------OpenCL----------------------------------
timeS = clock();
size_t global_item_size = LIST_SIZE; // LIST_SIZE == 2^21
size_t local_item_size = (1 << 10);
ret = clEnqueueNDRangeKernel(command_queue, kernel, 1, NULL,
&global_item_size, &local_item_size, 0, NULL, NULL);
int *C = (int*)malloc(sizeof(int) * LIST_SIZE);
ret = clEnqueueReadBuffer(command_queue, c_mem_obj, CL_TRUE, 0,
LIST_SIZE * sizeof(int), C, 0, NULL, NULL);
timeE = clock();
cputime = difftime(timeE, timeS) / CLOCKS_PER_SEC;
-----------------------------Normal-----------------------------------
timeS = clock();
for(i = 0; i < LIST_SIZE; i++)
C[i] = A[i] + B[i];
timeE = clock();
cputime = difftime(timeE, timeS) / CLOCKS_PER_SEC;
--
上述兩個code都是執行C = A + B的矩陣運算,OpenCL的kernel簡單如下:
int i = get_global_id(0);
C[i] = A[i] + B[i];
兩個測出來結果是非平行運算較快,請問是哪邊弄錯了?初次接觸,問的問
題可能有點怪請多多包含m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.100.54
→
10/21 14:34, , 1F
10/21 14:34, 1F
→
10/21 23:31, , 2F
10/21 23:31, 2F
推
10/22 14:13, , 3F
10/22 14:13, 3F
→
10/22 14:13, , 4F
10/22 14:13, 4F
→
10/22 16:42, , 5F
10/22 16:42, 5F
→
10/22 16:44, , 6F
10/22 16:44, 6F