欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

怎么使用sse提升性能呢

更新时间: 2014-01-05 03:17:47 责任编辑: Author_N1

 

如何使用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是支持点乘的,可以简化一点上面的步骤。

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

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:17:47
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20514/
本文WWW.DOC100.NET DOC100.NET版权所有。