reduction

    2熱度

    1回答

    看起來有可能只減少奇數個元素。例如,它需要總結數字。當我有偶數個元素的,這將是這樣的: 1 2 3 4 1+2 3+3 6+4 但是做什麼,當我有,例如1 2 3 4 5?最後一次迭代是三個元素6 + 4 + 5的總和還是什麼?我看到了同樣的問題here,但找不到答案。

    0熱度

    1回答

    這裏是矩陣向量乘法的Fortran子程序。這可能是老式的和低效的多種方式,但現在我只是想獲得它OpenACC的指令來工作,我試圖找出減少是如何工作的: subroutine matrmult(matrix,invec,outvec,n) integer:: n real*8, intent(in):: matrix(n,n), invec(n) real*8, intent(out) ::

    0熱度

    1回答

    我想並行化一段代碼,我已經解決了並行調度地圖中的插入與減少的問題。但是這個程序給我一個內存錯誤,我認爲它與地圖大小的條件檢查有關。有一個概念錯誤,或者是否有可能同步該部分? if (PERF_ROWS == MAX_ROWS) { int array_dist[PERF_ROWS]; #pragma omp declare reduction (merge : std::m

    0熱度

    1回答

    當我讀取還原變量的初始值是根據用於還原的運算符設置後,我決定不是記住這些默認值,而是顯式初始化它。所以我修改了代碼中question by Totonga如下 const int num_steps = 100000; double x, sum, dx = 1./num_steps; #pragma omp parallel private(x) reduction(+:sum) {

    1熱度

    1回答

    Please click this to see my problem 嗨。 關於這個問題,我只是不明白其提供的解決方案。 我們知道的ATM補= {<M,W>:M是TM和M不接受白}如照片的描述 和RTM = {<M,W>:M是TM是拒絕輸入列W} 如果我們把M,epsilon到每個以上, the complement of Atm = M does not accept epsilon Rtm

    0熱度

    1回答

    L2 = {<M> : M is a TM and there exists an input string w such that M halts within 10 steps on input w} 嗨。我正在創建一個算法,以顯示L2以上是可確定的。 而提示被給出爲以下: 要顯示L2是可判定的,測試對 長度的所有輸入串給定的TM M達至多10,每一個用於10個步驟。請注意,有很多這樣的字

    0熱度

    1回答

    讓我們從這裏開始: 據說所有NP問題可以減少到SAT(布爾可滿足性問題)。爲了更準確地到電路SAT,因爲像NP這樣的所有決策問題應該以回答是或否。 但是現在,如果我有一個隨機的NP問題,如何建立一個布爾電路來測試,如何分組我的輸入,什麼樣的門(AND,NOT或OR等)應該連接這些輸入。所以基本上,我的問題如何設計布爾電路它給出了一個答案TRUE或FALSE。 最後,那個答案意味着什麼。我明白TRU

    0熱度

    1回答

    我已經使用不使用推力設備向量的普通CUDA代碼編寫了內核。內核輸出存儲在設備數組中的一些結果,比如說數組X.我想現在對X進行縮減。是否有一種方法可以在不先將X複製到推力的情況下使用thrust :: reduction函數: device_vector變量?

    1熱度

    2回答

    大多數用於並行減少的算法使用共享(本地)內存。 Nvidia,AMD,Intel等。 但是,如果設備沒有共享(本地)內存。 我該怎麼辦? 如果我使用相同的算法,但在全局內存上存儲臨時值,它會工作正常嗎?

    1熱度

    1回答

    我想減少一個數組使用CUDA的元素的總和。我無法將設備中計算出的總量傳回主機,以便將其打印出來。 這是輸出我得到:陣列的 內容:33 36 27 15 43 35 36 42 49 21 數組元素的減少總和= 4204303 降低總和顯然是錯誤的。 這是我的代碼。 #include <stdio.h> #include <cuda.h> #define N 10 __global__ v