SIMD操作环境下非包装和包装指令之间有什么区别?SIMD操作环境下的非包装和包装指令有什么区别?
我读优化你的代码SSE的文章:
http://www.cortstratton.org/articles/OptimizingForSSE.php#batch
,当我读到
“作为额外的奖励这个问题出现了,MOVSS是一个非打包的指令,这使我们能够更好地使用并行指令解码器。“
那么有什么区别?
SIMD操作环境下非包装和包装指令之间有什么区别?SIMD操作环境下的非包装和包装指令有什么区别?
我读优化你的代码SSE的文章:
http://www.cortstratton.org/articles/OptimizingForSSE.php#batch
,当我读到
“作为额外的奖励这个问题出现了,MOVSS是一个非打包的指令,这使我们能够更好地使用并行指令解码器。“
那么有什么区别?
据我所知,填充概念性多于一个的值被传输或用作操作数手段,而非填充意味着只有一个值被进行处理; 非包装表示不进行并行处理。
并行处理没有发生还是只是被忽略?我从来没有想到这一点。当你使用'mulps'和'mulss'时,为什么不使用'mulps'而忽略其他元素呢? –
非包装是不是真的SIMD。它使用SIMD寄存器,但它只使用寄存器的第一个元素。即使对于标量值,64位浮点指针操作也会使用SIMD寄存器。但是,标量整数值仍然使用标量寄存器。 SIMD整数指令不具有标量指令的所有功能(尚未)。 –