首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SSE优化代码的性能与普通版本相似

SSE优化代码的性能与普通版本相似
EN

Stack Overflow用户
提问于 2011-08-11 00:04:42
回答 2查看 1.8K关注 0票数 2

我想在英特尔的SSE上迈出我的第一步,所以我遵循了here发布的指南,不同的是,我不是为Windows和C++开发,而是为Linux和C开发(因此我不使用任何_aligned_malloc,只使用posix_memalign)。

我还在没有使用SSE扩展的情况下实现了一个计算密集型方法。令人惊讶的是,当我运行程序时,两段代码(有SSE的代码和没有SSE的代码)的运行时间相似,通常是使用SSE的代码略高于另一代码的时间。

这正常吗?有没有可能GCC已经用上交所进行了优化(也使用了-O0选项)?我也尝试了-mfpmath=387选项,但没有办法,仍然是一样的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-11 00:18:54

对于浮点运算,您可能看不到SSE带来的巨大好处。大多数现代的x86 CPU都有两个FPU,所以双精度可能只有SIMD标量的速度相同,而单精度可能在好的情况下为SIMD提供标量的2倍。然而,对于整数运算,例如8位或16位的图像或音频处理,您仍然可以使用SSE获得实质性的好处。

票数 2
EN

Stack Overflow用户

发布于 2011-08-11 00:10:44

GCC有一个非常好的内置代码向量器( iirc在-O0和更高版本),所以这意味着它将在任何可能的地方使用SIMD来加速标量代码(如果可能的话,它也会对SIMD代码进行一些优化)。

很容易确认这就是这里发生的事情,只需反汇编输出(或者让gcc发出注释的asm文件)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7014018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档