私はCUDAプログラミングから始めています。通常のCPUに比べて速度がわかりません。しかし、私は今、簡単な論理的な検討をしています。私はデバイスコードであり、検査する4Dを持っています。 を定数に変更しました。私はatomicAddを使用して、デバイスコードを通じて各繰り返しを追加しました。線形インデックスを使用して4D配列にマップする
//get global counter
int global_index = atomicAdd(&counter, 1);
私は4Dボリュームを考え、4Dボリュームに線形インデックスをマップしようとします。 2D広告3Dでは、1Dインデックスから3Dマッピングに変換する効果的な方法があります。しかし、私はこの方法論がより高い次元にどのように拡大するかを知らない。
int x = gcfg->dimlen.x;
int y = gcfg->dimlen.y/x;
int z = gcfg->dimlen.z/gcfg->dimlen.y;
int photons = numberofphotons[1];
私の4次元の長さです。そこで、私は上記の4つの次元(x、y、z、numberofphotons)で指定された長さの4D配列にマップするインデックスを持っています。
これは私が探していたものです。 – woofwoof