在阅读Zig 语言参考后,我发现向量部分指出 a@Vector将在可能的情况下使用 SIMD 指令。后续有一个示例
const a = @Vector(4, i32){ 1, 2, 3, 4 };
const b = @Vector(4, i32){ 5, 6, 7, 8 };
// Math operations take place element-wise.
const c = a + b;
Run Code Online (Sandbox Code Playgroud)
,但我正在寻找是否可以编写一个循环来就地for操作单个指令 并保证使用 SIMD 指令。例如,我可以在 Julia 中使用 SIMD 指令,如下所示。@Vector
arr = Vector{Float64}(under, 32)
@simd for i in eachindex(arr)
@inbounds arr[i] = 2 * i
end
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!