3 ms·
SIMD is pretty intuitive if you’ve used deep learning libraries, NumPy, array based or even functional languages
by intalentive 3y ago
SIMD is pretty intuitive if you’ve used deep learning libraries, NumPy, array based or even functional languages
- westurner 3y agoNumPy roadmap: https://numpy.org/neps/roadmap.html https://numpy.org/neps/roadmap.html : > Improvements to NumPy’s performance are important to many users. We have focused this effort on Universal SIMD (see NEP 38 — Using SIMD optimization instructions for performance) intrinsics which provide nice improvements across various hardware platforms via an abstraction layer. The infrastructure is in place, and we welcome follow-on PRs to add SIMD support across all relevant NumPy functions "NEP 38 — Using SIMD optimization instructions for performance" (2019) https://numpy.org/neps/nep-0038-SIMD-optimizations.html#nep38 https://numpy.org/neps/nep-0038-SIMD-optimizations.html#nep3... NumPy docs > CPU/SIMD Optimizations: https://numpy.org/doc/stable/reference/simd/index.html https://numpy.org/doc/stable/reference/simd/index.html std::simd: https://doc.rust-lang.org/std/simd/index.html https://doc.rust-lang.org/std/simd/index.html "Show HN: SimSIMD vs SciPy: How AVX-512 and SVE make SIMD nicer and ML 10x faster" (2023-10) https://news.ycombinator.com/item?id=37808036 https://news.ycombinator.com/item?id=37808036 "Standard library support for SIMD" (2023-10) https://discuss.python.org/t/standard-library-support-for-simd/35138 https://discuss.python.org/t/standard-library-support-for-si...
- westurner 3y agoAutomatic vectorization > Techniques: https://en.wikipedia.org/wiki/Automatic_vectorization#Techniques https://en.wikipedia.org/wiki/Automatic_vectorization#Techni... SIMD: Single instruction, multiple data: https://en.wikipedia.org/wiki/Single_instruction,_multiple_data https://en.wikipedia.org/wiki/Single_instruction,_multiple_d... Category:SIMD computing: https://en.wikipedia.org/wiki/Category:SIMD_computing https://en.wikipedia.org/wiki/Category:SIMD_computing Vectorization: Introduction: https://news.ycombinator.com/item?id=36159017 https://news.ycombinator.com/item?id=36159017 : > GPGPU > Vectorization, Stream Processing > Compute kernels: https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units#Vectorization https://en.wikipedia.org/wiki/General-purpose_computing_on_g...
- lifthrasiir 3y agoI don't think so. SIMD is more like a weird mix of vector processing and bizzare mathematical transformations originated from low-level facts, and the latter becomes more significant when SIMD targets shorter inputs. I recently helped my friend who needed a fast CCSDS Reed-Solomon decoder in Python. The existing Python library was really slow, like 40 blocks per second, while the same algorithm written in C# claimed 10,000+ blocks per second. It turned out that the Python version made use of Numpy but so badly that it was much faster to eschew Numpy. After some additional optimizations to avoid modulos, my version easily handled ~2,000 blocks per second without Numpy.