インテル® インテグレーテッド・パフォーマンス・プリミティブ 8.2 ユーザーズガイド

キャッシュの最適化

より優れたパフォーマンスを達成するため、キャッシュのできるだけ最下位/最速レベルで局所性を利用するように作業をグループ化すべきです。スレッド/キャッシュ・ブロッキングの最適化でも同じことが言えます。

例えば、画像処理パイプラインで各ピクセルの処理が独立している場合、次のステップへ進む前に画像全体が処理されます。以下の図に示すように、ステップごとに同期が行われ、効率が大幅に低下します。



正しくないデータがキャッシュに含まれる可能性があるため、メモリーからの再読み込みが必要になります。スレッドを使用した場合、同期ポイント/バリアの数はアルゴリズムで必要な数よりも多くなります。

次の図に示すように、ローカルデータのステップを組み合わせることで、パフォーマンスを向上できます。この場合、各スレッド/キャッシュ・ブロックの反復は、画像全体ではなく ROI を処理します。



キャッシュサイズを考慮して、特に非常に大きな画像/バッファーの場合は、作業をより小さな領域に分割することを推奨します。


このヘルプトピックについてのフィードバックを送信