コンパイラ最適化とロードストア競合:パフォーマンスの崖っぷち

2025-05-04

この記事では、予期せぬパフォーマンスの問題について説明します。単純なジオメトリデコーダが、異なるコンパイラバージョン間でパフォーマンスに大きなばらつきを示します。その根本原因は、あまり知られていないマイクロアーキテクチャの詳細、ロードストア競合です。GCC-14は巧妙なベクトル化によってパフォーマンスを向上させました。しかし、GCC-15は最適化戦略の変更により、ロードストア競合が頻発し、パフォーマンスが大幅に低下しました。一方、ClangはARMアーキテクチャで驚くべきパフォーマンスを示し、ロードストアの特性をうまく活用しました。これは、コンパイラ最適化が万能薬ではないことを示しています。生成されたコードと基礎となるハードウェアのマイクロアーキテクチャに細心の注意を払うことが重要です。

続きを読む

驚くべき違い:GPU間でのアクセラレーション構造のメモリ使用量の比較

2025-04-02

この記事では、様々なベンダのGPUにおけるレイトレーシング用アクセラレーション構造(BVH)のメモリ使用量をベンチマークしています。結果は、大きな差異を示しており、最新のNVIDIA GPUはAMD GPUの3分の1、さらには20分の1のメモリしか使用していません。この記事では、BVHの内部構造、異なるドライバの実装、ハードウェアアーキテクチャの影響について詳しく説明し、AMDのRDNA2/3およびRDNA4アーキテクチャのBVH実装の詳細を分析することで、メモリ使用量の差異の理由を解明しています。最後に、著者は、BVHのメモリ使用量はハードウェア、ドライバ、アルゴリズムなど多くの要因に大きく影響されること、そして将来的な改善の可能性を示唆しています。

続きを読む