反正有人用SIMD的方式在陣列中添加元素「矢量化」嗎?C#矢量化陣列添加
例如,我想談談:
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庫中有它。
謝謝!
我覺得像你寫的那樣簡單的循環是通過優化編譯器進行矢量化的。 – Tudor