.NET SIMD添加字节和ushort数组

.NET SIMD添加字节和ushort数组,.net,vectorization,sse,simd,managed,.net,Vectorization,Sse,Simd,Managed,有一个长字节数组需要添加到short类型的目标数组中。可以在以下位置找到解决方案: 我正在尝试使用 它缺少对“unpack”指令的支持(需要将单个16元素字节数组解包为两个8元素的短数组以进行添加)。 以下是受管SIMD支持的操作: 有人知道如何使用上面的简化SIMD指令集(避免标量加法)实现两个数组的加法(short[]=byte[]+short[])吗。提议的API遵循与基础SSE2指令类似的设计;要加宽,输入向量的下半部分和上半部分将写入两个输出向量。为了缩小范围,来自两个输入向量的元素

有一个长字节数组需要添加到short类型的目标数组中。可以在以下位置找到解决方案: 我正在尝试使用 它缺少对“unpack”指令的支持(需要将单个16元素字节数组解包为两个8元素的短数组以进行添加)。 以下是受管SIMD支持的操作:

有人知道如何使用上面的简化SIMD指令集(避免标量加法)实现两个数组的加法(short[]=byte[]+short[])吗。提议的API遵循与基础SSE2指令类似的设计;要加宽,输入向量的下半部分和上半部分将写入两个输出向量。为了缩小范围,来自两个输入向量的元素被转换(带符号或无符号饱和),然后打包成单个输出向量

作为API提案,实际发布可能需要很长时间,也可能需要很长时间

除非最终升级JIT以生成内部函数,否则这些方法是无用的(性能方面的)。我担心,这意味着您应该简单地假设该功能还不存在。如果当前使用本机代码方法(通过C++/CLI或P/Invoke),则应继续使用当前方法,因为还没有替代方法

要了解JIT端实现的状态,请执行以下操作:

根据评论,它不会出现在.NET标准2.0中,但很可能是.NET标准2.1的一部分