我如何抽象Vector256的逻辑<T< in C# to support different hardware configurations?

问题描述 投票:0回答:1

C# 中的向量化。通过 Vector 类工作。有不同大小的向量,例如 Vector64/Vector128/Vector256。但我该如何使用它们呢?我已经用

Vector256<T>
编写了一个 for 循环,但是如果设备不支持这个向量,我想退回到
Vector128<T>
Vector64<T>
。我该如何回到那个状态。我是否缺少某种通用的
IVector<T>
界面?我需要为每个尺寸的 Vector 复制并粘贴整个内容吗?

非常感谢

c# .net vector vectorization simd
1个回答
1
投票

这可能听起来很烦人,但当前使用的处理方法实际上只是复制并粘贴矢量化循环,并分别用

Vector256
Vector128
替换
Vector64
。确保从最高向量开始并向最低向量努力。 微软实际上应该考虑一个接口 IVector 来抽象这些方法。使用新的静态抽象方法,这完全是可能的,但现在您必须坚持使用复制和粘贴。

© www.soinside.com 2019 - 2024. All rights reserved.