Intel i3 プロセッサで 32 要素 (各 1 バイト データ) の合計削減を見つけようとしています。これは私がしました:
s=0;
for (i=0; i<32; i++)
{
s = s + a[i];
}
ただし、私のアプリケーションはリアルタイム アプリケーションなので、時間がかかります。最終的な合計が 255 を超える可能性があることに注意してください。
低レベルの SIMD SSE2 命令を使用してこれを実装する方法はありますか? 残念ながら、私は SSE を使用したことがありません。この目的でsse2関数を検索してみましたが、これも利用できません。このような小さなサイズの問題の計算時間を短縮することは (sse) 保証されていますか?
助言がありますか??
注: OpenCL と CUDA を使用して同様のアルゴリズムを実装しましたが、問題のサイズが大きい場合にのみうまく機能しました。小規模な問題の場合、オーバーヘッドのコストはより多くなりました。SSEでの動作がわからない