C#中的矢量化是通过向量类实现的.有不同大小的矢量,如Vector64/Vector128/Vector256.但我该如何使用它们呢?我已经用Vector256<T>
编写了一个for循环,但是如果设备不支持这个向量,我想回退到Vector128<T>
或Vector64<T>
.我怎么才能退回到那个.我是不是遗漏了某种通用的IVector<T>
接口?我需要为每种大小的矢量复制并粘贴整个内容吗?
非常感谢你
C#中的矢量化是通过向量类实现的.有不同大小的矢量,如Vector64/Vector128/Vector256.但我该如何使用它们呢?我已经用Vector256<T>
编写了一个for循环,但是如果设备不支持这个向量,我想回退到Vector128<T>
或Vector64<T>
.我怎么才能退回到那个.我是不是遗漏了某种通用的IVector<T>
接口?我需要为每种大小的矢量复制并粘贴整个内容吗?
非常感谢你
这听起来可能很烦人,但当前使用的处理方法是实际上只使用copy和paste的矢量化循环,并分别用Vector128
和Vector64
替换Vector256
.确保从最高的向量开始,向最低的方向努力.
微软可能真的应该考虑一个接口IVector<T>
,它将这些方法抽象出来.使用新的静态抽象方法,这当然是可能的,但目前您必须坚持使用copy和paste.