C++Amp でコードを書いているときに、非常に奇妙な例外が発生しました。次のように 2 つの concurrency::array オブジェクトを定義します。
concurrency::array<float, 2> img_amp_data(11, 11, image_data.begin());
concurrency::array<float> a_amp_result(121, empty_vec.begin());
それらの最初の要素にアクセスしたいとき
std::cout << img_amp_data[0][0] << std::endl;
すべてが正常に動作しますが、2 番目のものにアクセスしたい場合
std::cout << a_amp_result[0] << std::endl;
次の例外が発生します。
例外: (アレイは CPU でアクセスできません)
2次元以上の配列にアクセスでき、1次元配列のみにアクセスすることは禁止されているため、これは非常に奇妙な状況ですか? 何か案は?