#simd

2025-06-21

And we just renamed it again. Who would have thought that we can name something 'vec' when we already have 'vector' 😅.
It'll be std::simd::vec<T, N> and std::simd::mask<T, N> in C++26.
Also vec and mask are (read-only) ranges now (range-based for works) and we got permutations, gather & scatter, compress & expand as well as mask conversions to and from bitset and unsigned. 🥳
Lot's of implementation and optimization work ahead for me now.

#cpp26 #simd #cplusplus #cpp

2025-06-20

Зажигаем миллиард цветов миллионом строк

Надругательство над C# , C++ и HLSL , игрища с булками и буферами, тройная полиглотность, SIMD , пепекторы, DirectX , экономия 800 Тб ОЗУ, быстрая степень и многое другое. В этой части я расскажу и покажу, как делал софт на собственном фреймворке, который управляет ядерной подсветкой и механической видеостеной. Осторожно, трафик!

habr.com/ru/articles/902040/

#c# #net #C++ #hlsl #directx #подсветка #мониторы_и_тв #simd #ненормальное_программирование #программирование

2025-06-20

Зажигаем миллиард цветов миллионом строк

Надругательство над C# , C++ и HLSL , игрища с булками и буферами, тройная полиглотность, SIMD , пепекторы, DirectX , экономия 800 Тб ОЗУ, быстрая степень и многое другое. В этой части я расскажу и покажу, как делал софт на собственном фреймворке, который управляет ядерной подсветкой и механической видеостеной. Осторожно, трафик!

habr.com/ru/articles/902040/

#c# #net #C++ #hlsl #directx #подсветка #мониторы_и_тв #simd #ненормальное_программирование #программирование

nietras 👾nietras
2025-06-17

New blog post "Sep 0.11.0 - 9.5 GB/s CSV Parsing Using ARM NEON SIMD on Apple M1 🚀"

🛠️ New parser based on @geofflangdale bulk move mask

📈 Sep up from 7 GB/s on and 1.5x faster on 100 (4 GB/s to 6 GB/s)

🧑‍💻 SIMD and assembly on 9.0

👇
nietras.com/2025/06/17/sep-0-1

GripNewsGripNews
2025-06-15

🌕 子字串搜尋的SIMD友善演算法
➤ 如何利用SIMD指令集提升字串搜尋效率
0x80.pl/notesen/2016-11-28-sim
本文探討了在現代CPU架構下,針對字串搜尋問題的效能優化。傳統字串搜尋演算法(如Knuth-Morris-Pratt、Boyer Moore、Karp-Rabin)假設單個字元比較是廉價操作,但現代CPU的SIMD指令集允許同時比較多個字元,使得傳統假設不再成立。文章介紹了兩種利用SIMD指令集優化字串搜尋的方法,並提供了從SWAR到AVX512F等不同實現的效能測試結果,證明瞭SIMD在提升搜尋效率上的潛力。
+ 這篇文章深入淺出地解釋了SIMD運算在字串搜尋中的應用,對於想提升程式效能的開發者來說很有幫助。
+ 實際的效能測試數據讓人信服,SIMD確實能在某些情況下大幅提升搜尋速度。

Gareth Lloyd (He/him)glloyd@fosstodon.org
2025-06-14

I'm putting a talk together about #programming Mandelbrot image generator with insight into profiling and optimisation. Main part will be normal optimisations, #simd, #multithreading, and possibly gpu acceleration.

I'll also show micro benchmarking, hotspot/perf, intel advisor, and also inspecting assembly code.

Any other interesting bits I should look into putting into my talk?

#cpp #cplusplus

Firesledge 🔥🛷Firesledge@piaille.fr
2025-06-12

Believe it or not, it’s 2025 and I just implemented the first “standard FIR” class in my #DSP library for #PédaleVite (#DIY guitar/bass #multiFX). Such a basic processing neglected for years…

It’s optimized using #SIMD instruction sets (NEON and SSE) so I can run a 4096-tap impulse at 2.7 % CPU load per #audio channel on a #RaspberryPi5. This means a decent cabinet simulation without any of these complex zero-latency partitioned convolution algorithms.

gitlab.com/EleonoreMizo/pedale

A screen capture of a terminal displaying the speed performance corresponding to various settings for the convolution algorithm.
2025-06-10

@Methylzero @diehlpk @hpcnotes I've been asking that question since 2009, when I started doing #SIMD. It's not just GPUs where this makes a difference. FP32 is significantly more efficient on CPUs since a long time.

Larry (Mr.Optimization)fast_code_r_us@floss.social
2025-06-05

I decided to share my Arm NEON optimizations for the FFmpeg Cinepak encoder. On Apple Silicon / RPI / NEON 32/64-bit, it gets a 250-300% speedup for encoding:

github.com/bitbank2/FFmpeg-in-

#FOSS
#Optimization
#SIMD
#NEON

2025-06-02

and for the #IEEE754 / #floatingpoint nerds (you know who you are!) here's a much more definitive answer/breakdown of our IEEE Binary FP32 conformance for the Vector Unit! github.com/tenstorrent/tt-isa-

#RVV #SIMD #HPC

卡拉今天看了什麼ai_workspace@social.mikala.one
2025-05-31

Beware of Fast-Math | Hacker News

Link
Beware of Fast-Math
https://simonbyrne.github.io/posts/fast-math/

📌 Summary:
本文詳細解析了編譯器中常見的編譯選項「fast-math」,探討其優化浮點數運算的原理、可能帶來的問題及實務使用上的注意事項。fast-math 透過放寬 IEEE 754 浮點運算標準的限制,提升數學運算速度,但代價是生成的結果可能不完全正確,甚至導致程式錯誤。文章說明 GCC、Clang、ICC、MSVC 等編譯器實作 fast-math 旗標時開啟的多項優化選項,包括禁用特殊數檢測(NaNs 和無限大)、重新排序運算順序、以及將接近零的次正數(subnormals)直接設為零等。這些優化在多數情境下提高效率,但可能破壞精確度,影響需要嚴格運算順序的補償算法(如 Kahan summation)及導致錯判 NaN 狀態。文中指出,使用 fast-math 時應進行嚴謹測試,包括建立驗證測試與效能基準,並仔細逐項啟用或關閉各子選項,確保程式在滿足效能需求同時不犧牲精度。此外,建議程式碼層級提供更細微的優化控制,替代單一全域編譯旗標,未來編譯器與語言應提供更明確及局部性的設定方式以強化安全性與可控性。最後,文章也呼籲編譯器開發團隊改善相關文件與錯誤回報處理,並提升使用者教育,避免誤用 fast-math 造成難以偵錯的問題。

🎯 Key Points:
→ ★ fast-math 定義:一組允許打破 IEEE 754 浮點標準部分規則的編譯器旗標,目標是數學運算速度優先,允許不完全正確結果。
→ ★ GCC 中 -ffast-math 包含多項子選項,如-fno-math-errno、-funsafe-math-optimizations、-ffinite-math-only、-fassociative-math 等。
→ ★ 主要破壞點說明:
  ① -ffinite-math-only 假設無 NaN/±Inf,移除相關檢查,導致這些案例無法偵測與處理。
  ② -fassociative-math 允許改變浮點運算結合順序,利於 SIMD 指令優化但可能破壞精度,影響補償算法與高精度需求。
  ③ flushing subnormals to zero(FTZ)優化會將極小的次正數轉為零,這在音訊和圖像應用可能可接受,但會導致數值分析結果錯誤,且影響整個執行緒的浮點環境。
→ ★ SIMD 與向量化說明:重新排序浮點加法不符標準但有助於運用向量指令集(SIMD),大幅提昇速度。
→ ★ 使用建議:
  * 若不在意精度,fast-math 在影音、遊戲或機器學習等領域可能合適。
  * 若需精度保障,須採嚴格驗證流程,包括開發測試用例、效能基準,細分啟用選項和系統性排除錯誤。
  * 盡量避免將 fast-math 固定寫死於開源庫編譯規則中。
→ ★ 未來期望:
  * 編譯器應提供更細緻、局部的優化控制機制(函式或區塊層級)。
  * 改善文件與錯誤提示,教育用戶理解使用風險。
  * 重新命名旗標避免誤導,例如改成 “unsafe-math” 更易提醒用戶。
  * 處理 FTZ 在共享庫載入造成行為不一致的問題(此為 GCC 多年尚未修正的缺陷)。
→ ★ 範例說明瞭 fast-math 如何破壞 Kahan summation的運算順序,導致優化成普通加法,喪失精度。
→ ★ 探討業界對 fast-math 的不同看法與使用場景,包含科學運算、圖形及遊戲程式開發。
→ ★ 文章提醒無法簡單用防護程式碼避免 fast-math 引起的錯誤,因為有些檢查(如 isnan)會在編譯階段被移除。

🔖 Keywords:
#fast-math #浮點運算_Floating_Point #IEEE_754 #SIMD #編譯器優化_Compiler_Optimization

2025-05-28

SIMD на x86 — чудовище Франкенштейна?

Общее количество всех команд во всех этих расширениях — 1342 инструкции ! От комментариев воздержусь, оставлю эту привилегию читателю )) При этом SIMD на RiscV очень хвалят, как очень продуманный, минималистичный, при этом мощный и выразительный: youtube.com/watch?v=lwIBp6cc-H

habr.com/ru/articles/913586/

#simd #x86 #mmx #avx #avx2

2025-05-27

SIMD blog series: @folkertdev shows examples of using SIMD in the zlib-rs project.

Part 2 explains what to do when the compiler is not capable of using the SIMD capabilities of modern CPUs effectively. We end up with a basic, but very effective, example of a custom SIMD implementation beating the compiler.

tweedegolf.nl/en/blog/155/simd

@trifectatech

#rustlang #datacompression #simd

2025-05-23

Sometimes I wish the c++ compilers were clearer about what they do, because when I mix SIMD with expression templates and it gets as optimized as the best for loop I could write, it doesn't feel like I'm doing code anymore, but dark magic

2025-05-14

On stage at the Main Track of RustWeek: Martin Larralde. Giving us a crash course on DNA, the statistics behind genome research, and how Rust has sped up this research 10x 🦀

And then SIMD to the rescue!

"SIMD in Rust is so much easier than in C!"

#RustWeek #rustlang #simd #research

Picture shows Martin's slide about analyzing Ferris' DNA, which would take 11 days.Picture shows Martin's slide, which shows that Rust sped up the research about 10 times.Picture shows a slide that says 'With our SIMD code we are now 2x orders of magnitude faster!"
2025-05-14

[Перевод] Объяснение графических процессоров для тех, кто привык работать с ЦП

За годы работы я подробно изучил, как центральные процессоры (CPU) выполняют код и как они устроены внутри. Дело в том, что я участвовал в разработке ядра Linux и ScyllaDB, а этот код очень близок к металлу. Я даже немного баловался с Verilog, безрезультатно попытавшись собрать моё собственное ядро RISC-V. Графические процессоры (GPU) в отличие от обычных в основном оставались для меня чёрным ящиком, несмотря на то, что поработать с ними всё-таки довелось. Помню, что экспериментировал с NVIDIA RIVA 128 или чем-то подобным, проверяя, как там работает DirectX. Тогда такие процессоры ещё не выделялись на фоне ускорителей 3D-графики. Я также пытался идти в ногу со временем и немного упражнялся в программировании элементарных шейдеров на современных GPU. Но я никогда глубоко не вдавался в работу с GPU, и мои взгляды можно назвать CPU-центричными. Однако, поскольку сегодня наблюдается всплеск рабочих нагрузок, связанных с ИИ, и, в частности, приходится работать с большими языковыми моделями (БЯМ), графические процессоры становятся незаменимыми для современных вычислений. К задачам, решаемым с применением ИИ, относятся масштабные прикладные тензорные операции, в том числе — сложение и перемножение матриц. А это уже работа для GPU. Но как современный GPU выполняет их, и насколько при этом возрастает эффективность по сравнению с выполнением таких же рабочих нагрузок на CPU?

habr.com/ru/companies/timeweb/

#timeweb_статьи_перевод #gpu #linux #scylladb #nvidia #cpu #процессор #искусственный_интеллект #cuda #simd

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst