matlab で cuda\jacket を使用すると、if ステートメントの応答が非常に遅くなります。(単純な for ループと if 条件を使用して極大値を見つける同じコードで 5 秒対 0.02 秒)
GPU プログラミングは初めてなので、以前のmatlab if ステートメントと CUDA SO の議論を見たときに、何かが足りないと感じました。コードをベクトル化した方がよいことを知るために、cuda を使用する必要はありません。ただし、とにかく if ステートメントを使用する必要がある場合があります。たとえば、2D 画像のピクセル (m(a,b) など) が 8 つの最近傍の極大値であるかどうかを調べたいと思います。matlab でこれを行う簡単な方法は、if ステートメントで 8 つの論理条件を使用することです。
m(a,b)>m(a-1,b-1) & m(a,b)>(a,b-1) & m(a,b)>(a+1,b-1)の場合& ... すべての最近傍について
これを解決する (またはベクトル化する) 方法を教えていただければ幸いです...