向量寄存器和一个最简单的寄存器-内存的存储器模型,查看上一节。
本节基于整个内存模型,介绍一下如何使用 avx2 向量指令集,来完成数据从内存到寄存器中的交互的。

load 操作
在改内存模型下,load 操作指将数据从内存中加载到寄存器中。
使用 C++ 代码实现如下:
float data[8] = {0.1, 0.1,0.1, 0.1,0.1, 0.1,0.1, 0.1};
__m256 vector_data;
vector_data = _mm256_loadu_ps(data);
第一步我们定义了一个有 8 个 float 浮点数的变量data,这个变量就是在内存中的(栈内存)。
随后我们定义了一个 向量寄存器 vector_data,该寄存器的类型是 256 bit,因此可以存放 8 个 float 浮点数。
接下来通过一条 intel avx2 指令集中的指令 _mm256_loadu_ps,将内存中的数据 data 加载到了向量寄存器中。
这三
本文介绍了AVX2指令集中的load和store操作,用于数据在内存和向量寄存器间的交互。通过_C++_示例展示了如何使用_mm256_loadu_ps_和_mm256_storeu_ps_指令,强调了这两种指令在向量化加速中的关键作用,是区分标量计算与向量计算的边界。
订阅专栏 解锁全文
69

被折叠的 条评论
为什么被折叠?



