Speedrun Into Massive Data: Using SIMD in C#
summary
Covers how .NET actually uses SIMD via System.Numerics.Vector to vectorize arrays, showing a naive vectorized sum and that vectorized summing yields ~2x speedup over a plain for loop on the presenter’s M2 Pro (13.4 µs → ~7.4 µs), explains tails, overflow checking and why LINQ Sum already sometimes uses hardware acceleration, and demonstrates GPU offload using ILGPU / CUDA/OpenCL with a naive matrix‑multiply kernel while warning about copy overhead and when GPU parallelism pays off.
AI-written summary · about
chapters (7)
- 0:00Introduction and agenda
- 2:20SIMD foundations
- 7:53Flynn's taxonomy and SIMD
- 14:00Hardware and .NET abstractions
- 26:12Implementing SIMD in C#
- 32:19Benchmarking and performance
- 42:58GPU acceleration and conclusion
related talks
52mSIMD in .NET: Image Processing with Intrinsics
58m.NET Core Internals and Optimizations
56mState of the .NET Performance
01h 03mF# for Performance-Critical Code
59mHigh-performance code design patterns in C#
01h 00mMetaprogramming for the masses
01h 04mTurbocharged: Writing High-Performance C# and .NET Code
01h 01mBeating CoreCLR's own C++ code with CoreCLR 3.0 intrinsics
