reduction

    0熱度

    2回答

    我正試圖在CUDA Reduction上實現優化,並且要成功完成,直到第6部分。感謝大家的幫助。爲了獲得CUDA的完整感受,我還需要完成最終優化,如幻燈片#31中所述,稱爲算法級聯。 這個想法本質上是每個線程有512個元素,並在執行縮減之前將所有元素相加。 我嘗試了一種方法,我的每個線程都從內存中訪問連續的512個數字。不幸的是,它的表現最差。我猜測是銀行衝突的一個原因,但還沒有完全弄清楚。你們中

    0熱度

    1回答

    我不是一個參加計算複雜課程的學生,只是對這個主題感興趣。我遇到這個部分: 假設我們有一個問題,我們已經證明很難解決, 和我們有一個類似的新問題。我們可能會懷疑它也是難以解決的 。我們通過矛盾來辯論:假設新問題容易解決,就是 。那麼,如果我們能夠證明舊問題的每個實例都可以通過將其轉化爲新問題的實例並解決這些問題而輕易解決,那麼我們就會產生矛盾。這 確定新問題也很難。 來源:Wikipedia 我似乎

    0熱度

    1回答

    我正在尋找一種方法來強制Spark在執行所有由工作核心執行的任務之間本地執行簡化操作,然後才能執行所有任務。 的確,看起來我的驅動程序節點和網絡bandwitch由於任務結果很大(= 400MB)而過載。 val arg0 = sc.broadcast(fs.read(0, 4)) val arg1 = sc.broadcast(fs.read(1, 4)) val arg2 = fs.rea

    0熱度

    1回答

    我需要證明L是否可判定與否: L = {< M> | M是TM和L的(M)的結合和對H_TM是在RE} (H_TM = {< M,W> | M是上瓦特}停止一個TM)

    0熱度

    1回答

    我正在CUDA中實現並行壓縮。 內核有一個__syncthreads等待所有線程完成從共享內存中的2次讀取,然後將共享內存寫回總和。 我應該使用__threadfence_block來確保寫入共享內存對所有線程都可見,以便進行下一次迭代,或使用__syncthreads,如NVIDIA's example中給出的那樣?

    1熱度

    2回答

    我有一個Subset-Sum problem的變化,其中子集的大小是k,並且所有整數都是正數(而非零)。 從網上可以看出,這個問題可以用僞多項式時間的動態規劃來解決。 我需要決定這個問題是NPC,還是在P(同時假設P!=NP)。 我試圖減少子集和問題,但有一個約束,所有整數必須大於零的問題。除此之外,我會用k填充零輸入。問題的 正式定義: L={<S1,S2,...,Sn,T,k>|There e

    1熱度

    1回答

    static void iadd(int &R, Vector &A) { unsigned sum = 0; int a; for (int i=0; i<A.vector_elements_16; i++) { a = static_cast<int>(A.data_16[i]); sum += a ; }

    0熱度

    1回答

    在以下reduction + map操作中,no。 3令我困惑。任何人都可以請解釋爲什麼 // 1 [1,2,3,4,5].filter(x => x==3).reduce((x, y) => y) // -> 3, all good // 2 [1,2,3,4,5].filter(x => x<=3).reduce((x, y) => 0) // -> 0, still good /

    0熱度

    1回答

    我有兩個功能,比方說foo和bar,我可以減少foo到bar和bar到foo。我的意思是我可以使用bar來計算foo,如果我將輸入更改爲bar或其輸出。和使用foo的計算欄相同。 foo和bar之間的這種關係有一個詞嗎? 例如,在數學術語: f(x) = x + 1 和 g(x) = x - 1 然後我可以寫F,使用G作爲: f(x) = g(x + 2) 和g用F爲: g(x) =

    1熱度

    2回答

    我想通過部分簡單代碼比較循環性能與openmp。但結果是錯誤的。 我已經使用減少來避免競爭條件,但從來沒有工作。 這裏是我的代碼:感謝您的任何建議 void TestMP_1(){ float afValueTmp[MP_TEST_NUM] = { 0 }; // MP_TEST_NUM = 10000 float sum = 0, sumNoMP = 0; floa