In scientific application using triangular grids it is often the case to load a value from all three vertices of the triangle which is spread across RAM. In order to use SIMD instruction to speed up execution time of the program the three values must be stored into a single SIMD register to perform e.g. […]
27.02.2024
Analyse AVX _mm256_i32gather_pd instruction
Comments Off on Analyse AVX _mm256_i32gather_pd instruction
12.09.2017
C++ Guns - Missed optimizations
Compiler sind nicht perfekt. Gerade das Optimieren von Code ist so komplex, dass es keinen Algorithmus dafür gibt. Ehr werden Heuristiken dafür benutzt. So kommt es schon mal vor, dass bei banal aussehenden Code die Compiler Optimierung versagt hat und es möglich ist, von Hand schnelleren Assembler Code zu schreiben. In [1] wurde viele solcher […]
Comments Off on C++ Guns - Missed optimizations
04.04.2011
Etwas über C, Assember und Performance
Angenommen, ihr habt folgenden Code int main() { int i = 0; for(; i < 255; i++) { if(i != 10) printf("a"); else printf("b"); } return 0; } Angenommen, man ändert if(i != 10) zu if(i == 10). Läuft der Code schneller? Bei diesem Beispiel: Nein. Ich habe mir den erzeugten ASM Code ausgeben lassen […]