私はC++ AMPで遊んでいますが、何らかの理由でダウンしたコードがコンパイルされません。この:次のエラーでparallel_for_eachでサポートされていないタイプのエラー
concurrency::extent<2> e(2,2);
concurrency::parallel_for_each(grid<2>(e), [](index<2> i) restrict(direct3d) {
});
結果:
error C3576: 'wmain::': Concurrency::details::_Parallel_for_each argument #3 has unsupported type c:\program files (x86)\microsoft visual studio 11.0\vc\include\amp.h
ちょうどconst _Kernel_type& _Kernel
注用に渡されるラムダ式を好きには表示されません。私はAMPサポートを含むVisual Studio 11 Developer Previewを使用しています。 "restrict(direct3d)"は、どのアクセラレータが問題のコードを実行するかを制御する新しいキーワードです。
アイデア?私はいくつかの異なる例からコピーしようとしましたが、何も動作しませんので少しうまくいきます。
私の友人は絶対天才です(学者と紳士だけでなく)!もちろん完璧なセンスです。親切にありがとう。 – Dave
私は助けることができてうれしいです。 –
これに加えて、入力(配列など)を含めなければ、出力、つまりvalueで取り込まれたarray_viewを指定した場合、正常に機能します。だから私はラムダでキャプチャされた少なくとも1入力または1出力が必要だと思います。ベータ版ではこの制限が緩和されていることはよく分かります。もちろん後天候はすばらしいことですが、今は完全に明白です:) – Dave