Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio AVX2采集指令_Visual Studio_Avx2 - Fatal编程技术网

Visual studio AVX2采集指令

Visual studio AVX2采集指令,visual-studio,avx2,Visual Studio,Avx2,当我使用Visual Studio通过编译器instrinsic生成AVX2聚集指令时,它不会插入VXORPS指令,以打破写入YMM寄存器的先前指令与聚集指令之间的依赖关系 然而,英特尔编译器确实做到了这一点,由于数据依赖关系被打破,最终结果是显著的性能改进 出于我不想深入讨论的原因,我不能使用英特尔编译器,那么有没有办法“强制”Visual Studio插入该VXORPS指令 我已经尝试过创建一个中间层m256i并调用VXORPS,但并没有成功。除了文字之外,您还可以用intrinsic显示一

当我使用Visual Studio通过编译器instrinsic生成AVX2聚集指令时,它不会插入VXORPS指令,以打破写入YMM寄存器的先前指令与聚集指令之间的依赖关系

然而,英特尔编译器确实做到了这一点,由于数据依赖关系被打破,最终结果是显著的性能改进

出于我不想深入讨论的原因,我不能使用英特尔编译器,那么有没有办法“强制”Visual Studio插入该VXORPS指令


我已经尝试过创建一个中间层m256i并调用VXORPS,但并没有成功。

除了文字之外,您还可以用intrinsic显示一点代码吗?。如果您继续使用MSVC进行优化,尤其是AVX/AVX2/FMA,这会让您一次又一次地失望。您是否尝试在这些命令中使用“volatile”以便编译不会优化它们?您可以使用内部函数手动编写收集逻辑。前一段时间我确实写过矩阵乘法的收集逻辑。如果你感兴趣,我可以发布这个片段。