gpt4 book ai didi

optimization - 自动矢量化与手动矢量化代码

转载 作者:行者123 更新时间:2023-12-03 16:05:26 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

去年关闭。




Improve this question




在某种意义上,使用显式编译指示手动矢量化代码还是依赖或使用自动矢量化更好?为了使用自动矢量化获得最佳性能,必须监视编译器输出以确保循环被矢量化或修改它们直到它们可矢量化。

使用手动编码,可以确定正在发出所需的指令,但现在代码可能不可移植(对于其他架构或其他编译器)。

最佳答案

自动矢量化对我来说从来没有奏效。对我来说,目前似乎自动矢量化仅适用于非常琐碎的循环。

我使用 pragma/intrinsic 方法并查看程序集。如果编译器生成错误代码(例如将 SSE 寄存器溢出到堆栈上或添加冗余移动),我将对整个循环体使用内联汇编器。

便携性不是问题。通常,您从 C/C++ 循环开始并使用内在函数对其进行优化。只需保留旧循环并将其用作 SIMD 实现的单元测试/后备。此外,能够通过编译时定义从项目中删除所有 SIMD 代码总是明智的。这样调试应用程序要容易得多。相同的定义可用于交叉编译。

关于optimization - 自动矢量化与手动矢量化代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/409560/

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