我发现你完全没搞明白什么是矢量化... 如果你要算一堆a和一堆t的积at,常规算法是一个循环挨个算,矢量化是一次把几个a放入一个SIMD寄存器,把对应的几个t放入另一个SIMD寄存器然后进行运算。 而对于你的这种复杂运算的处理是矢量化计算里面的简单运算,也就是分别矢量化计算at,-bx,-cy,-dz,at - bx,cy + dz,(at - bx) + (……
SSE = Streaming SIMD Extension. 这东西最大优势是流式处理大量数据,而不是优化单次运算。看看Intel文档就知道了。 特定匀速可以用SSE进行单次运算的优化,但主要还是矢量化后流式处理。如果你有一个所有a的数组和一个所有t的数字,那一个SSE单精度乘法就可以算出四个at。
我想说至少你这个运算矢量化流式处理一点问题没有。 SSE是个偏向RISC的东西,除非能大规模提升效率的功能,否则基本上是不会加的
21,497
社区成员
41,616
社区内容
加载中
试试用AI创作助手写篇文章吧