【发布时间】:2014-04-30 00:40:05
【问题描述】:
我是 SIMD 的新手,所以我在理解如何使用向量类(例如 F32vec4)并行操作数组时遇到了一些麻烦。
如果有人能指导我了解这段代码的作用,我将不胜感激:
#include "fvec.h"
void add(float *a, float *b, float *c)
{
F32vec4 *av=(F32vec4 *) a;
F32vec4 *bv=(F32vec4 *) b;
F32vec4 *cv=(F32vec4 *) c;
*cv=*av + *bv;
}
取自HERE
所以av、bv 和cv 是F32vec4 类型的指针,它们分别指向a、b 和c?
另外,如何访问cv 的元素并将其存储回常规浮点变量中?
【问题讨论】:
-
我不确定确切的问题是什么。
av、bv和cv是指向a、b和c的指针,区别在于我们在这里假设a、b和c是指向数组的指针四个浮点数,而av、bv和cv是指向具有单个 F32vec4 的数组的指针。
标签: c++ optimization parallel-processing vectorization sse