首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

怎么使用SSE提升性能呢

2013-06-19 
如何使用SSE提升性能呢?SSE是不是一块鸡肋呢?[解决办法]SSE Streaming SIMD Extension. 这东西最大优势

如何使用SSE提升性能呢?

怎么使用SSE提升性能呢
怎么使用SSE提升性能呢
怎么使用SSE提升性能呢

SSE是不是一块鸡肋呢?
[解决办法]
SSE = Streaming SIMD Extension. 这东西最大优势是流式处理大量数据,而不是优化单次运算。看看Intel文档就知道了。

特定匀速可以用SSE进行单次运算的优化,但主要还是矢量化后流式处理。如果你有一个所有a的数组和一个所有t的数字,那一个SSE单精度乘法就可以算出四个at。
[解决办法]
我想说至少你这个运算矢量化流式处理一点问题没有。

SSE是个偏向RISC的东西,除非能大规模提升效率的功能,否则基本上是不会加的
[解决办法]
我发现你完全没搞明白什么是矢量化...

如果你要算一堆a和一堆t的积at,常规算法是一个循环挨个算,矢量化是一次把几个a放入一个SIMD寄存器,把对应的几个t放入另一个SIMD寄存器然后进行运算。

而对于你的这种复杂运算的处理是矢量化计算里面的简单运算,也就是分别矢量化计算at,-bx,-cy,-dz,at - bx,cy + dz,(at - bx) + (cy + dz)。这个根本不需要高级指令。

另外现在的SSE是支持点乘的,可以简化一点上面的步骤。

另外矢量化运算寄存器不够用需要多次循环的时候注意内存优化。

热点排行