[問題] OpenCL

看板C_and_CPP作者 (JSL)時間13年前 (2012/10/21 13:57), 編輯推噓1(105)
留言6則, 4人參與, 最新討論串1/1
開發平台(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
原來C可以用顯卡跑啊?第一次知道(筆記
10/21 23:31, 2F

10/22 14:13, , 3F
gpgpu還是有很多盲點,要把計算的資料load到顯卡的ram
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
文章代碼(AID): #1GWuws5Q (C_and_CPP)