terion
Korona uciska, więc byłą motywacja do nowego wpisu:
https://extensa.tech/blog/avx-throttling-part1/

Tym razem o tym jak rozszerzenia AVX mogą spowolnić zegar CPU z przykładami i propozycjami diagnostyki.
#cpp #cplusplus #programowanie #extensa #blogi
2
terion
Po przerwie, popełniłem wpis na blogu.
Tym razem o tym jak i kiedy używać prefetchingu.
https://extensa.tech/blog/prefetching/

#cpp #cplusplus #programowanie #extensa #blogi
6
  • Najlepsze
  • Wszystkie komentarze
Passer93
@terion: Z tym angielskim to taka luźna uwaga, bez spiny. I tak liczy się merytoryka, wszyscyj sa przyzwyczajeni że to srodowisko jest miedzynarodowe i kazdy ma swoje jezykowe nalecialosci.
A mi sie merytorycznie podobalo, dowiedzialem sie paru nowych rzeczy.
3
Passer93
Spoko, tylko angielski trochę kwadratowy. Łap plusa
1
terion
Nowy wpis na moim blogu. Druga część posta o dziwnych i dziwniejszych metodach upychania danych w strukturach. Co można zyskać, a co stracić. Tym razem bez assemblera, za to z pewnością z górą literówek... ヽ( ͠°෴ °)ノ
https://extensa.tech/blog/shrinking-structure-part2/

#cpp #cplusplus #programowanie #extensa #blog
4
  • Najlepsze
  • Wszystkie komentarze
terion
@Blitzkrung: Cała przyjemnośc po mojej stronie (。◕‿‿◕。)
0
terion
Nowy wpis na moim blogu. Druga część posta o "function multi-versioning". Tym razem o problemach z użyciem "multi-versioningu" w połączeniu z "builtins" (przepraszam za słownictwo)
https://extensa.tech/blog/multi-versioning-problem-part2/

Tak, wciąż jest assembler, więcej niż kiedykolwiek... Ale na pocieszenie są też obrazki.

#cpp #cplusplus #programowanie #extensa #blog
4
  • Najlepsze
  • Wszystkie komentarze
terion
Nowy wpis na moim blogu. Tym razem wprowadzenie do funkcji popcount i używania jednej binarki na wielu architekturach x86 (function multi-versioning)
https://extensa.tech/blog/multi-versioning-problem/

Tak, wciąż jest assembler...
W kolejnym wpisie będzie o tym kiedy multi-versioning nie jest idealny.

#cpp #cplusplus #programowanie #extensa #blog
6
  • Najlepsze
  • Wszystkie komentarze
terion
@dupasmoka:
Tak, to prawda. Z drugiej strony w publikacji która linkuje autorzy udowadniają ze implementacja oparta o AVX2 ale bez użycia instrukcji popcnt może być szybsza niż sprzętowy popcnt.
2
dupasmoka
@terion: na mnie wywarla wrazenie taka implementacja popcnt, int popcnt(int x) { int r=0; while (x) { x = x & (x-1); r++; } return r; } (jezeli nie zrobilem gdzies bledu)
1
terion
Nowy wpis na moim blogu. Tym razem o tym jaki jest koszt wołania funkcji i o tym jak niektóre flagi kompilacji mogą niespodziewanie wpłynąć na wydajność kodu:
https://extensa.tech/blog/compiler-flags-magic/

Uwaga dla wrażliwych: jest assembler...

#cpp #cplusplus #programowanie #extensa.tech #blog
7
  • Najlepsze
  • Wszystkie komentarze
terion
@b33zon:
Hej. Nie chodzi o optymalizację.
Dodaj sobie przełącznik -std=c++11 albo -std=c++17 i ffsl() będzie wołane, a nie inlineowane.
Ale faktycznie jestem zaskoczony, że na domyślnych ustawieniach beż żadnych flag jest włączone -std=gnu++11

Generalnie wniosek z tego taki, że warto mieć włączone i -std=gnu++XX i używać builtin, bo z jednej strony są jakieś dodatkowe optymalizacje, a z drugiej strony dla builtin jest lepsza gwarancja, że będzie zawsze inline.
1
terion
Wrzuciłem krótkie zajawki z OSS SUmmit w Lyonie:
extensa.tech

Podobno dzisiejsza młodzież używa jakiegoś Twittera czy tam innego Ćwierkacza? Nie wiem o co chodzi, ale założyłem konto |૦ઁ෴૦ઁ|
https://twitter.com/teri0n

#cpp #programista15k #cplusplus #programowanie #extensa
3
  • Najlepsze
  • Wszystkie komentarze