cuda-streams

    10熱度

    2回答

    我有非常相似的代碼的東西: int k, no_streams = 4; cudaStream_t stream[no_streams]; for(k = 0; k < no_streams; k++) cudaStreamCreate(&stream[k]); cudaMalloc(&g_in, size1*no_streams); cudaMalloc(&g_out, size2*n

    7熱度

    1回答

    這個問題是關係到使用CUDA流運行多個內核 在CUDA有許多同步命令 cudaStreamSynchronize, CudaDeviceSynchronize, 的cudaThreadSynchronize, 還的cudaStreamQuery檢查流是空的。 我注意到當使用探查器時,這些同步命令給程序帶來了很大的延遲。我想知道是否有人知道減少這種延遲的方法,當然除了儘可能少地使用同步命令外。 也有

    2熱度

    1回答

    有人可以解釋併發Cuda流中的數據獨立性要求嗎? 假設我想運行下面的內核在8個併發流 Kernel<<<blocks, threads>>>(float *readOnlyInput, float *output); 都可以流讀取相同的* readOnlyInput和不同的輸出*陣列寫? 或者爲了達到他們所需要閱讀不同內存位置的數據,以及併發? 將上面的僞代碼片段同時執行, 或它需要* rea

    0熱度

    1回答

    當運行併發副本時&內核操作: 如果我的內核runTime是dataCopy操作長度的兩倍,我會在每次內核運行時獲得2個副本嗎? 我看到的流示例顯示1:1關係。 (拷貝時間=內核運行時間。)我想知道當有什麼不同時會發生什麼。每次內核啓動時是否總是有一個拷貝操作(最大)?或者複製操作是否獨立於內核啓動運行?即如果運行&複製時間以這種方式工作,那麼我可能會爲每次內核啓動完成5次複製操作。 (我試圖找出有

    3熱度

    5回答

    我正在尋找一種方法來擺脫閒置代碼中的主機線程中的忙碌等待(不要複製該代碼,它只會顯示我的問題,它有很多想法基本的錯誤): cudaStream_t steams[S_N]; for (int i = 0; i < S_N; i++) { cudaStreamCreate(streams[i]); } int sid = 0; for (int d = 0; d < DATA_SI

    0熱度

    1回答

    我在Cuda中實現了RNS蒙哥馬利求冪。 一切都很好,一切都很好。它只在一個SM上運行。 但是,到目前爲止,我只關注單個exp的並行化。我現在想要做的就是在幾個實驗室進行測試。也就是說,我希望將第i個下一個exp分配給一個空閒的SM。 我試過了,最後的時間總是線性增長,那就是所有的exp都分配給了同一個SM。 然後我切換到流,但沒有任何改變。 不過,我從來沒有使用過,所以也許我做錯了什麼.. 這是

    3熱度

    1回答

    我預計GTX 680(它是GPU的最新版本之一)能夠併發數據傳輸(雙向併發數據傳輸)。但是當我運行cuda SDK「設備查詢」時,術語「併發拷貝和執行」的測試結果是「帶有1個拷貝引擎的是」,這意味着GPU不能進行併發數據傳輸。 我不知道我的測試結果是否也發生在你身上?你可以與我分享哪些設備可以同時傳輸數據嗎? 謝謝!

    0熱度

    1回答

    我想了解CUDA流,我已經做了我的第一個程序與流慢,但它是比通常的內核函數慢... 這是爲什麼代碼慢 cudaMemcpyAsync(pole_dev, pole, size, cudaMemcpyHostToDevice, stream_1); addKernel<<<count/100, 100, 0, stream_1>>>(pole_dev); cudaMemcpyAsync(pol

    1熱度

    2回答

    我寫了一個代碼,每個GPU使用多個主機(OpenMP)線程。每個線程都有自己的CUDA流來定購請求。它看起來非常類似於下面的代碼: #pragma omp parallel for num_threads(STREAM_NUMBER) for (int sid = 0; sid < STREAM_NUMBER; sid++) { cudaStream_t stream; cu

    8熱度

    2回答

    對於我的CUDA開發,我使用的是16核的機器和1個帶16個SM的GTX 580 GPU。對於我所做的工作,我計劃啓動16個主機線程(每個核心1個),每個線程啓動1個內核,每個線程有1個塊和1024個線程。我的目標是在16個SM上並行運行16個內核。這可能/可行嗎? 我試圖儘可能多地閱讀獨立的上下文,但似乎沒有太多可用的信息。據我所知,每個主機線程可以有自己的GPU上下文。但是,如果我使用獨立的上下