Compileroptimierung und Load-Store-Konflikte: Ein Performance-Cliffhanger

2025-05-04

Dieser Artikel beschreibt ein unerwartetes Performance-Problem: Ein einfacher Geometriedecoder zeigt massive Performance-Unterschiede zwischen verschiedenen Compilerversionen. Die Ursache? Ein wenig bekanntes mikroarchitektonisches Detail: Load-Store-Konflikte. GCC-14 erzielte durch geschickte Vektorisierung eine Performance-Steigerung. GCC-15 hingegen führte aufgrund geänderter Optimierungsstrategien zu einer deutlichen Regression mit häufigen Load-Store-Konflikten. Clang hingegen übertraf auf ARM-Architekturen die Erwartungen, indem es die Load-Store-Eigenschaften optimal nutzte. Dies unterstreicht, dass Compileroptimierung keine Allheilmittel ist; die genaue Betrachtung des generierten Codes und der zugrundeliegenden Hardware-Mikroarchitektur ist entscheidend.

Mehr lesen

Erstaunliche Unterschiede: Ein Vergleich des Speicherverbrauchs von Beschleunigungsstrukturen auf GPUs

2025-04-02

Dieser Artikel vergleicht den Speicherverbrauch beim Erstellen von Beschleunigungsstrukturen (BVHs) für Raytracing auf GPUs verschiedener Hersteller. Die Ergebnisse zeigen erhebliche Unterschiede, wobei die neuesten NVIDIA-GPUs nur ein Drittel oder sogar nur ein Zwanzigstel des Speichers im Vergleich zu AMD-GPUs benötigen. Der Artikel geht detailliert auf die interne Struktur von BVHs ein, vergleicht verschiedene Treiberimplementierungen und die Auswirkungen der Hardwarearchitektur. Er analysiert die Implementierungsdetails von BVHs der AMD-Architekturen RDNA2/3 und RDNA4 und erklärt die Gründe für die Unterschiede im Speicherverbrauch. Abschließend folgert der Autor, dass der Speicherverbrauch von BVHs stark von Hardware, Treibern und Algorithmen beeinflusst wird, und prognostiziert das Potenzial für zukünftige Verbesserungen.

Mehr lesen