gpu-programming

    1熱度

    1回答

    簡單 start=cuda.Event() func(args,block=blockdims) cuda.memcpy_dtoh(d,h) end=cuda.Event() dur=start.time_till(end) print dur 但我發現了這個錯誤 File "gpu.py", line 161, in gpu_test dur=start.time_ti

    1熱度

    1回答

    我是全新的使用OpenCL的,這似乎應該是很簡單的,所以大家多多包涵。 我正在寫一個簡單的內核來掃描一個數組並尋找一個特定的值。如果該值在數組中的任何位置找到,我想設置一個標誌。如果未找到該值,該標誌應保持爲0; 目前我正在創造一個cl_mem對象來保存一個int cl_mem outputFlag = clCreateBuffer(mCLContext, CL_MEM_WRITE_ONLY, s

    0熱度

    1回答

    可能重複: Two ways to create a buffer object in opencl: clCreateBuffer vs. clCreateBuffer + clEnqueueWriteBuffer 是什麼設備在緩衝區建立與後立即複製數據之間的差異? 即。 cl_mem memObj = clCreateBuffer(context, CL_MEM_READ_ONLY | CL_

    6熱度

    4回答

    我試圖寫在OpenCL的直方圖內核來計算256倉R,G,和B的直方圖。我的內核是這樣的: const sampler_t mSampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP| CLK_FILTER_NEAREST; __kernel void computeHistogram(rea

    1熱度

    3回答

    我的算法包含兩個步驟: 數據生成。在這一步中,我生成循環中的數據數組,作爲一些函數結果 數據處理。對於這一步,我編寫了處理在上一步中生成的數據數組的OpenCL內核。 現在第一步運行在CPU上,因爲它很難並行化。我想在GPU上運行它,因爲每一代都需要一些時間。我想立即爲已經生成的數據運行第二步。 我可以從當前運行的內核運行另一個opencl內核在單獨的線程中嗎?或者它在調用內核的某個線程中運行?

    0熱度

    1回答

    我在理解GPU上的SIMT執行時遇到了一些問題。到目前爲止,我已經將這些線程放置在「warps」(例如32個線程/ warp)中。這些線程將是相同的類型,並可以並行運行(但可以獨立運行,支持&)。 我正在閱讀的書然後繼續混淆我。 'It is then up to the instruction unit to select warps that are ready to execute thei

    37熱度

    6回答

    我正在尋找利用GPU來碾壓某些方程式,但無法弄清楚如何從C#訪問它。我知道XNA和DirectX框架允許您使用着色器來訪問GPU,但是如何在沒有這些框架的情況下訪問它?

    1熱度

    2回答

    我知道GPU通常具有較高的內存訪問時間。然而,由於在等待內存訪問時執行其他指令而導致訪問時間「隱藏」,性能不會受到很大阻礙。 我只是想知道,如果您有一個具有64個工作項目和16個處理器內核的波陣面,則每個處理器內核將擁有64/16 = 4工作項目。而且,所有內核必須並行執行所有工作項目。 因此,如果工作項需要內存訪問,會發生什麼?當然,因爲所有的指令都是相同的,你將有16個內存訪問來計算(或者只是

    1熱度

    3回答

    我爲兩個矩陣的元素乘法構建了一個內核,但至少在我的配置中,當每個矩陣大於2GB時,我的OpenCL內核只會更快。所以我想知道,如果是因爲我的天真內核(見下文),或者是因爲元素操作的本質,這意味着元素操作不會從使用GPU中獲益。 感謝您的輸入! 內核: KERNEL_CODE = """ // elementwise multiplication: C = A .* B. __kernel vo

    -1熱度

    1回答

    尋找一些智慧。情景如下。 在聊天系統中,我有一系列連接的用戶。當新的訪問者連接時,我想通知陣列中的第一個用戶,如果1分鐘後沒有答案,移動通知第二個用戶等等。如果沒有用戶回答請求,我想循環回到數組的頂部。如果10分鐘後沒有答案,請終止通知循環。謝謝, 這是一些相關的代碼。 socket.on('new_visitor', function (newVisitorData) { for (v