上一节 介绍了 avx2 向量指令集中的 load/store 操作,本节介绍如何使用 avx2 的向量指令集来实现乘累加运算。
因为我们实战中用到的 resnet50 神经网络中,卷积运算在整个模型中的比例占据是相当高,而卷积运算的核心计算就是乘累加计算。因此,只要将最核心的乘累加计算效率提高,那么整个模型的性能就会有大幅度的提高。
这一节在介绍向量寄存器的时候,举了一个例子来说明向量加法的计算,向量乘法和向量加法一样,下面我们就用实际的代码来展示,如何完成向量乘法的计算。

avx2 完成向量乘法
完成向量乘法的运算过程也很简单:
首先利用load指令将数据从内存中 load 到向量寄存器中;
然后调用 __mm256_mul_ps 指令,完成两个向量的乘法,返回结果,最后对结果进行累加操作。
由于在卷
AVX2优化:向量指令加速卷积运算
本文探讨如何使用AVX2向量指令集提升卷积运算的效率,重点在于向量乘法和累加操作。通过实例代码展示了如何利用__mm256_mul_ps指令进行向量乘法,并解释了在处理不同channel维度时的循环计算方法,以适应卷积运算的需求。提供了优化后的卷积和全连接层代码链接。
订阅专栏 解锁全文
3077

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



