1 か月前 · Jul 2, 2026 6:55 AM
Writing hardware-accelerated SIMD vector arithmetic in pure C#:
CSHARP
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;
public static unsafe void MultiplyArraysAVX2(float* a, float* b, float* result, int count)
{
int i = 0;
if (Avx.IsSupported)
{
for (; i <= count - 8; i += 8)
{
Vector256<float> va = Avx.LoadVector256(a + i);
Vector256<float> vb = Avx.LoadVector256(b + i);
Vector256<float> vres = Avx.Multiply(va, vb);
Avx.Store(result + i, vres);
}
}
for (; i < count; i++) result[i] = a[i] * b[i]; // Scalar cleanup
}Multiplies 8 floating-point numbers in a single CPU cycle!