我正在做一些需要SIMD的工作,我需要对双打数组进行操作。任何主流架构都支持这个吗?我只看过浮点运算。
先谢谢, 斯蒂芬
答案 0 :(得分:3)
是的,x86可以使用SSE2指令来完成。也是一个CELL,虽然在进行双精度计算时它的性能非常糟糕。
答案 1 :(得分:1)
ARM VFP也可以做双打。
新的NEON SIMD扩展(这是迄今为止我见过的最好的SIMD指令集)可能不幸只能处理32位浮点数。
答案 2 :(得分:1)
Here's VS2008中C ++编译器支持的SEE2内在函数。
正如jalf所提到的,CELL处理器对SIMD的双精度支持会带来显着的性能损失(我相信PS3中未使用的芯片的后续迭代会有很大改善的行为)。
就主流而言,SSE2于2001年进入奔腾4,因此在x86行业中广泛使用。根据{{3}} 95%的人口有SSE2所以我认为定位它是安全的。
答案 3 :(得分:0)
以计算能力1.3或更高级别运行的CUDA也可以这样做。较新的GTX 2xx卡可以做到这一点。