【发布时间】:2016-09-08 06:25:16
【问题描述】:
我有一个__m256,用来存放8个浮点数,里面的元素是这样的:
__m256 v = {0,1,2,3,4,5,6,7};
现在我想获得另一个 __m256 值,例如:
__m256 dst = {0,1,2,4,5,6,x,x};
x 这里的意思是我不在乎。
我不熟悉 SIMD,有人可以帮忙吗?或者给我一些提示?
谢谢!
【问题讨论】:
-
详细信息取决于您用于访问 SIMD 指令的库。我猜
__m256表示一些英特尔的东西。 -
@Cheersandhth.-Alf 是的,我在支持 AVX2 的 Intel CPU 上使用 GCC。
-
也许看看英特尔的文档,然后呢?我很确定也必须有教程。我从来没有研究过这些东西。
-
你打算如何处理结果?如果您在打包和填充的 vec3 格式之间进行复制,则可以只使用 128b 加载/存储,并将存储重叠一个元素。如果您可以使用 AVX2,那么加载/随机播放/存储重叠的两个元素可能会更快,就像您提议的那样。