以 SIMD 速度計數單字
➤ 從 Python 到 C,再到 ARM NEON SIMD 的效能飛躍
✤ https://healeycodes.com/counting-words-at-simd-speed
本文探討如何透過循序漸進的方式,從 Python 逐步優化至 ARM NEON SIMD 和多執行緒 C 程式,以極致提升文字檔案的單字計數效能。作者分享了不同方法的實測結果,並詳細闡述了 SIMD 指令在處理大量資料時,如何透過單一指令並行操作多個資料元素來達成顯著的加速。
+ 這篇文章的效能優化思路非常清晰,作者的實測數據也很有說服力。SIMD 真的能帶來如此巨大的提升,令人驚嘆!
+ 雖然 SIMD 的部分比較技術性,但作者的解釋和範例很到位,對於想了解底層效能優化的人來說非常有價值。
#效能優化 #SIMD #C #Python #字串處理
純 Rust 實作 SIMD 加速演算法 (ChaCha20 / ChaCha12) 的學習心得
➤ 以 Rust 打造高效加密演算法:SIMD 加速的實戰指南
✤ https://kerkour.com/rust-simd?hn=1
本文分享作者在純 Rust 中實作 SIMD 加速的 ChaCha20 與 ChaCha12 演算法的經驗。作者說明瞭 SIMD (單一指令多資料流) 的基本概念,以及如何在 CPU 上實現向量化運算,大幅提升資料處理效率。文中探討了 SIMD 的載入、計算、儲存流程,並強調最小化記憶體存取的重要性。作者也分享了針對不同 CPU 架構(如 x86 的 AVX2、AVX-512,以及 ARM 的 NEON)進行優化的策略,以及在 Rust 中進行 CPU 特性偵測的方法,包括編譯時和執行時的偵測。整體而言,作者強調了以 Rust 撰寫安全、可讀、可測試且效能接近手寫組合語言的加密程式碼是可行的,並藉由 GitHub 專案分享了實作細節。
+ 這篇文章寫得非常深入,
#密碼學 #效能優化 #Rust #SIMD #ChaCha20 #ChaCha12
SIMD 協同處理器二元堆積操作
➤ 運用 SIMD 指令集加速二元堆積的 is_heap 與 push_heap 操作
✤ http://0x80.pl/notesen/2025-01-18-simd-heap.html
本文探討如何利用單指令多數據 (SIMD) 指令集來加速二元堆積(binary heap)的兩種關鍵操作:`is_heap`(檢查陣列是否為合法的堆積)和 `push_heap`(將新元素加入堆積)。作者提出一種創新的演算法,透過平行處理,減少比較次數,並展示了與標準 C++ 實作相比的效能提升。文中詳細說明瞭 `is_heap` 的向量化思路,以及 AVX2 指令集在此的應用,並提及 `push_heap` 的 AVX-512 實作。
+ 這種利用 SIMD 處理堆積的方法真是太巧妙了!特別是 `is_heap` 的部分,解決了傳統逐一比較效率不彰的問題。
+ `push_heap` 的效能「太差」令人意外,但我對 AVX-512 的實作細節很感興趣,希望能看到更深入的分析。
#資料結構 #效能優化 #SIMD
Zig 語言搭配 SIMD 加速子字串搜尋
➤ 運用 SIMD 向量指令,讓 Zig 字串搜尋快上加快
✤ https://aarol.dev/posts/zig-simd-substr/
本文探討如何利用 Zig 語言和 SIMD (單指令多資料流) 技術,實作出比標準函式庫更快速的子字串搜尋演算法。作者透過實現一個 SIMD 優化的演算法,並與 Zig 標準函式庫的 `std.mem.indexOf` 進行效能比較,結果顯示平均可達到約 60% 的速度提升,同時顯著降低 CPU 週期使用量。文章詳細闡述了 SIMD 的基本概念、演算法的設計思路、在 Zig 中的具體實現方法,以及透過實際的基準測試驗證其優越性,並指出未來可能的優化方向。
+ 哇!沒想到 Zig 結合 SIMD 可以有這麼驚人的效能提升,對於處理大量文字資料的應用來說,這簡直是福音!
+ 這篇文章寫得非常紮實,從原理到實作都解釋得很清楚,對於想深入瞭解 SIMD 的開發者非常有參考價值。不過,看到 branch misses 大幅增加有點令人好奇,想知道原因。
#Zig #SIMD #程式效能 #字串處理
SIMD 寄存器內運算:如何將雜湊表查找效能提升一倍
➤ 透過位元操作優化雜湊表查找效率
✤ https://maltsev.space/blog/012-simd-within-a-register-how-i-doubled-hash-table-lookup-performance
本文描述了作者如何在C#中透過位元操作,將雜湊表的查找效能提升一倍。其核心概念是將雜湊表的桶(bucket)從byte陣列改為uint陣列,並利用位移運算和邏輯運算來快速查找資料,藉此實現SIMD (Single Instruction, Multiple Data) 寄存器內運算,大幅提升效能。作者分析了原始碼的效能瓶頸,並導入了新的方法,經過測試驗證,成功將效能提升了35%。
+ 這個技巧非常棒!在C#這種受管理記憶體限制的環境下,能這樣優化效能真是令人印象深刻。
+ 讀了這篇文章,讓我對位元操作在效能優化上的潛力有了更深的瞭解。感謝作者分享經驗!
#效率提升 #雜湊表 #SIMD #C# #位元操作
The messy reality of SIMD (vector) functions
https://johnnysswlab.com/the-messy-reality-of-simd-vector-functions/
Оптимизация языковой модели Mamba для выполнения на CPU
Как оптимизировать модель Mamba для выполнения на CPU? Ускоряем код в 20 раз по сравнению с PyTorch, нарушая в процессе все правила оптимизации.
The messy reality of SIMD (vector) functions
https://johnnysswlab.com/the-messy-reality-of-simd-vector-functions/
Встреча ISO C++ в Софии: С++26 и рефлексия
Привет! На связи Антон Полухин из техплатформы городских сервисов Яндекса, и сейчас я расскажу о софийской встрече Международного комитета по стандартизации языка программирования C++, в которой принимал активное участие. Это была последняя встреча, на которой новые фичи языка, с предодобренным на прошлых встречах дизайном, ещё могли попасть в C++26. И результат превзошёл все ожидания: compile-time-рефлексия рефлексия параметров функций аннотации std::optional<T&> параллельные алгоритмы Об этих и других новинках расскажу в посте
https://habr.com/ru/companies/yandex/articles/920470/
#c++29 #с++29 #c++26 #с++26 #с++ #c++ #reflection #constexpr #exception #simd #safety #security #undefined_behavior #annotations #parallel_programming #executor #executors #ranges #coroutines
О векторном вычислении экспоненциальной функции
Как вычислить экспоненциальную функцию быстро и с минимальной погрешностью? Пишем векторизованный код.
Finding a billion factorials in 60 ms with SIMD
https://codeforces.com/blog/entry/143279
#HackerNews #Finding #a #billion #factorials #in #60 #ms #with #SIMD #codeforces #SIMD #performance #factorials #computing
Зажигаем миллиард цветов миллионом строк
Надругательство над C# , C++ и HLSL , игрища с булками и буферами, тройная полиглотность, SIMD , пепекторы, DirectX , экономия 800 Тб ОЗУ, быстрая степень и многое другое. В этой части я расскажу и покажу, как делал софт на собственном фреймворке, который управляет ядерной подсветкой и механической видеостеной. Осторожно, трафик!
https://habr.com/ru/articles/902040/
#c# #net #C++ #hlsl #directx #подсветка #мониторы_и_тв #simd #ненормальное_программирование #программирование
New blog post "Sep 0.11.0 - 9.5 GB/s CSV Parsing Using ARM NEON SIMD on Apple M1 "
New #ARM #NEON #SIMD parser based on @geofflangdale bulk move mask
Sep #performance up from 7 GB/s on #Apple #M1 and 1.5x faster on #Microsoft #Cobalt 100 (4 GB/s to 6 GB/s)
子字串搜尋的SIMD友善演算法
➤ 如何利用SIMD指令集提升字串搜尋效率
✤ http://0x80.pl/notesen/2016-11-28-simd-strfind.html
本文探討了在現代CPU架構下,針對字串搜尋問題的效能優化。傳統字串搜尋演算法(如Knuth-Morris-Pratt、Boyer Moore、Karp-Rabin)假設單個字元比較是廉價操作,但現代CPU的SIMD指令集允許同時比較多個字元,使得傳統假設不再成立。文章介紹了兩種利用SIMD指令集優化字串搜尋的方法,並提供了從SWAR到AVX512F等不同實現的效能測試結果,證明瞭SIMD在提升搜尋效率上的潛力。
+ 這篇文章深入淺出地解釋了SIMD運算在字串搜尋中的應用,對於想提升程式效能的開發者來說很有幫助。
+ 實際的效能測試數據讓人信服,SIMD確實能在某些情況下大幅提升搜尋速度。
#演算法 #SIMD #程式效能
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?
SIMD-friendly algorithms for substring searching