OpenMP、TBB、および OpenCL で通常のループ アプリケーションをいくつか実装しました。これらすべてのアプリケーションで、カーネルで特定の最適化を行わずに CPU でのみ実行している場合、OpeCL は他のアプリケーションよりもはるかに優れたパフォーマンスを提供します。OpenMP と TBB も優れたパフォーマンスを提供しますが、OpenCL よりもはるかに劣ります。これらはどちらも CPU に特化したフレームワークであり、少なくとも OpenMP/TBB と同等のパフォーマンスを提供する必要があるためです。
私の 2 番目の懸念は、OpenMP と TBB に関して言えば、私はそれほど専門家ではないので、非常に優れた最適化のために調整していない私の実装では、OpenMP は常に TBB よりもパフォーマンスが優れているということです。通常、OpenMP が TBB よりもパフォーマンスが優れている理由はありますか? どちらも、または OpenCL でさえも、低レベルで同じ種類のスレッド プーリングを使用していると思うので、専門家の意見はありますか? ありがとう