有没有办法以SIMD方式“向量化”数组之间的元素相加?
例如,我想将以下操作进行向量化:
例如,我想将以下操作进行向量化:
var a = new[] { 1, 2, 3, 4 };
var b = new[] { 1, 2, 3, 4 };
var c = new[] { 1, 2, 3, 4 };
var d = new[] { 1, 2, 3, 4 };
var e = new int[4];
for (int i = 0; i < a.Length; i++)
{
e[i] = a[i] + b[i] + c[i] + d[i];
}
// e should equal { 4, 8, 12, 16 }
转化为类似于:
var e = VectorAdd(a,b,c,d);
我知道在C++ / XNA库中可能存在某些东西,但是我不知道我们是否在标准的.Net库中有它。
谢谢!