Property YShuffleKernel_AcceleratedTypes
- Namespace
- Zyl.VectorTraits
- Assembly
- VectorTraits.dll
YShuffleKernel_AcceleratedTypes
Types with hardware acceleration when running YShuffleKernel
(运行 Shuffle
时具有硬件加速的类型).
public static TypeCodeFlags YShuffleKernel_AcceleratedTypes { get; }
Property Value
Remarks
Meaning of suffixes (后缀的含义).
- (none): Normal (常规).
- Args: Arguments calculation for only shuffle (仅换位的参数计算). Provide arguments for YShuffleKernel_Core (为 YShuffleKernel_Core 提供参数).
- Core. Core calculation for only shuffle (仅换位的核心计算). Its arguments are derived from YShuffleKernel_Args (其参数来源于 YShuffleKernel_Args).
Similar methods (相似的方法).
- Shuffle(Vector256<byte>, Vector256<byte>): If the index value is out of range, the element will be cleared (若索引值超出范围, 元素会被清零).
- YShuffleInsert(Vector256<byte>, Vector256<byte>, Vector256<byte>): If the index value is out of range, the elements of the background vector will be inserted (若索引值超出范围, 会插入背景向量的元素).
- YShuffleKernel(Vector256<byte>, Vector256<byte>): If the index value is out of range, the result is undefined (若索引值超出范围, 结果是未定义的). It has the best performance, and is used when you are sure that the index value is not out of range (它的性能最好, 用于确信索引值不会超出范围时).
Related hardware instructions (相关的硬件指令).
Architecture | 8bit | 16bit | 32bit | 64bit |
---|---|---|---|---|
Arm | Same vqtbl1q_u8 | (None) | (None) | (None) |
Wasm | Same i8x16.swizzle | (None) | (None) | (None) |
X86 | _mm256_permutevar32x8_epi8(Avx512Vbmi) , combine by _mm256_shuffle_epi8(Avx2) | _mm256_permutevar16x16_epi16(Avx512BW) | _mm256_permutevar8x32_epi32(Avx2) | _mm256_permutexvar_epi64(Avx512F) |
- See Also