gpu-programming

    1熱度

    1回答

    我是一名圖像處理程序員,我正在使用opencv C++。作爲我寫的一個程序的一部分,我有三個嵌套。第一個是用於不同的圖像,第二個用於圖像的行,第三個用於圖像的列。三者之間沒有任何依賴關係,他們可以並行執行(我的意思是,所有圖像的所有像素都可以並行處理)。我並不熟悉並行編程,GPU編程,線程,tbb,並行循環和...。我發現互聯網上的不同鏈接提出了這樣的建議。我想知道什麼是我的問題最快的解決方案?

    2熱度

    1回答

    我正在寫一個金屬cnn代碼。 Metal提供MPSCNNLocalContrastNormalization, 由於實例規範化的概念稍有不同,因此我打算將它作爲內核函數來實現。 但是,問題在於當從核函數中的輸入接收到的紋理中的特徵爲R,G,B時,應當獲得每個R,G,B的均值和方差。 我想知道如何實現這個。 kernel void instance_normalization_2darray(tex

    0熱度

    1回答

    我有一個for循環,如果目標硬件是NVIDIA,我希望將其與OpenACC並行化,或者在目標硬件是AMD時串行運行它。我試過如下: #pragma acc loop \ device_type(tesla) parallel \ device_type(radeon) seq for (int z = 0; z < size_z; ++z) { // do stu

    0熱度

    1回答

    我想在我的C++程序中使用amp.h庫,這些程序在Linux上編程並運行; 所以我試圖將amp.h lib包含在一個空的.cpp文件中,並試圖通過控制檯用g ++編譯器進行編譯。下面你可以找到.cpp文件和命令我用來編譯: #include <amp.h> #include <amp_graphics.h> #include <vector> using namespace concurr

    0熱度

    2回答

    參照clGetEventProfilingInfo文檔,cl_event源於clEnqueueNDRangeKernel可以是: CL_PROFILING_COMMAND_QUEUED 當由事件標識的命令由 排隊在命令隊列主人。 CL_PROFILING_COMMAND_SUBMIT 當已經排隊由事件標識的命令是 由主機提交與commandqueue相關聯的設備。 CL_PROFILING_COM

    0熱度

    1回答

    我的NVidia Quattro 600 GPU運行正常,但運行nvidia-smi.exe時顯示「權限不足」。 我在管理員模式下執行命令,驅動程序都是最新的。 如何解決權限問題? 運行How to verify the usage of the GPU?中提到的測試,我得知我「在CPU上運行」。 (擺弄GPU,因爲我試圖運行CNTK的例子。)

    17熱度

    1回答

    我知道nvidia-smi -l 1會每秒鐘給出GPU使用率(類似於以下內容)。不過,我希望能解釋一下Volatile GPU-Util的真正含義。這是使用SMs總數超過總SM,或佔用,或其他? +-----------------------------------------------------------------------------+ | NVIDIA-SMI 367.48

    5熱度

    1回答

    具體而言,我的問題是我有CUDA代碼需要運行<curand_kernel.h>。 NVRTC默認不包含此功能。假設在創建程序上下文(即調用nvrtcCreateProgram)時,我必須發送文件名(curand_kernel.h)以及curand_kernel.h的源代碼?我覺得我不應該那樣做。 很難說;我還沒有從NVIDIA的例子中找到需要像這樣的標準CUDA文件作爲源代碼的人,所以我真的不明白

    1熱度

    1回答

    我讀Professional CUDA C Programming,並在GPU架構概述部分: CUDA採用單指令多線程(SIMT)架構來管理並在32度經線叫組執行線程。 warp中的所有線程同時執行相同的指令。每個線程都有自己的指令地址計數器和寄存器狀態,並對其自己的數據執行當前指令。每個SM將分配給它的線程塊分成32線程的warp,然後在可用的硬件資源上調度執行。 SIMT架構與SIMD(單指令

    0熱度

    1回答

    我剛剛發現AMD相當於CUDA的__byte_perm內在; amdgcn_ds_swizzle(或者至少我認爲它相當於一個字節排列函數)。我的問題是這樣的:CUDA的字節perm取兩個無符號的32位整數,然後根據選擇器參數的值(作爲十六進制值提供)進行置換。但是,AMD的swizzle函數只需要一個無符號的32位整數,而一個int被稱爲「模式」。我如何利用AMD的Swizzle內在功能?