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

本文介绍了AVX2指令集中的load和store操作,用于数据在内存和向量寄存器间的交互。通过_C++_示例展示了如何使用_mm256_loadu_ps_和_mm256_storeu_ps_指令,强调了这两种指令在向量化加速中的关键作用,是区分标量计算与向量计算的边界。

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

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

这三

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董董灿是个攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值