CUDA 定数メモリ領域を 2 次元で割り当ててコピーする方法はありますか? cudaMemcpyToSymnbol
of __constant__ はオプションではないようです。
質問する
1004 次
1 に答える
3
CUDA SDK (またはサンプル) の quasirandomGenerator の例は、対応する cudaMemcpyToSymbol を使用して定数メモリに割り当てられている 2 次元テーブルを示し、quasirandomGenerator_kernel.cuh にテーブルを設定します。
2D テーブルの宣言:
static __constant__ unsigned int c_Table[QRNG_DIMENSIONS][QRNG_RESOLUTION];
cudaMemcpyToSymbol 呼び出し:
//Table initialization routine
static void initTableGPU(unsigned int tableCPU[QRNG_DIMENSIONS][QRNG_RESOLUTION]){
cutilSafeCall( cudaMemcpyToSymbol(
c_Table,
tableCPU,
QRNG_DIMENSIONS * QRNG_RESOLUTION * sizeof(unsigned int)
) );
}
テーブルは内部で 1 次元の方法で処理されているため (pQB で示唆されているように)、OP が正確に探していたものかどうかはわかりません。サンプルは、CUDA SDK (または CUDA 5.0 RC ツールキットで呼び出されるサンプル) をインストールすると自動的にインストールされますが、こちらの Web で個別に見つけることができます。 右側の適切なダウンロード リンクを選択して、サンプル コードを含むアーカイブを取得します。次にアーカイブを開き、ファイル quasirandomGenerator_kernel.cuh を探します。
于 2012-09-26T19:48:46.470 に答える