78、avx2 数据 load/store 向量化操作介绍

发布时间:2024年01月18日

向量寄存器和一个最简单的寄存器-内存的存储器模型,查看上一节

本节基于整个内存模型,介绍一下如何使用 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 加载到了向量寄存器中。

这三条语句就完成了数据从内存到寄存器中的加载,再熟悉了这个内存模型后,是不是感觉很简单就可以实现?

<
文章来源:https://blog.csdn.net/dongtuoc/article/details/135660619
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。