gpt4 book ai didi

STL - AVX2 相当于 std::clamp

转载 作者:行者123 更新时间:2023-12-02 19:16:07 26 4
gpt4 key购买 nike

给定 1 到 16 之间的精度 p,我想将 AVX2 整数寄存器限制在 -p/2p/2 之间>。我目前使用 std::clamp 对非 AVX2 整数执行此操作。

有没有办法用 AVX2 做到这一点?

最佳答案

使用x = min(max(x, lower_limit), upper_limit)以标准方式实现饱和钳位,使用您想要的任何整数宽度。或者让编译器为您自动矢量化 std::clamp

8、16、32比较方便; AVX2 没有 64 位整数的打包最小/最大,但您可以使用 vpcmpgtq 来模拟它。 AVX512 有 vpmaxsq。仅使用 SSE2,只能使用最小/最大操作的几个大小/符号组合。 SSE4.1 修复了这个问题,因此 AVX2 具有所有 3 个有符号和无符号大小。

例如,对于 8 位整数,_mm256_max_epi8对于 __m256i 向量上的有符号整数最大值。

参见Intel's intrinsics guide寻找内在。

关于STL - AVX2 相当于 std::clamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63696946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com