0

全て。x、y、z など、長さが異なる 3 つの配列があります。f(x)*f(y)*f(z)*f(x,y,z)fが異なる関数である場所の合計を計算したい。現在、C で再帰ループを使用しています。数値が非常に大きいため、C コードは非常に低速です。CUDAでそれを行う最良の方法は何だろうか?前もって感謝します。

4

1 に答える 1

1

あなたが尋ねた質問は少し漠然としています。

まず、配列 x、y、z を GPU グローバル メモリに転送します。x+y+z< 512 の場合、(ループの助けを借りずに) 共有メモリの概念を使用できます。満足できない場合は、ループを使用できます。f(x)、f(y)、f(z)、f(x、y、z) を個別に評価し、それらを乗算します (乗算ごとに単一のスレッド)。また、長さ x、y、z は、配列の乗算プロパティと一致している必要があります。

于 2012-11-05T06:58:23.647 に答える