nc4hw4排布配合neon加速im2col+gemm的卷积推理

本文介绍了nc4hw4内存排布方式及其如何通过配合Neon指令集提升卷积推理性能。nc4hw4排布能够简化矩阵乘法(GEMM)操作,特别适用于矢量操作,实验证明其显著提高了运算效率。

nc4hw4排布配合neon加速im2col+gemm的卷积推理

一:前言

一个tensor常见的内存排布有nchw和nhwc,除此之外,MNN还有一种内存排布方式叫做nc4hw4,如何理解这个排布呢?这种排布对性能又有什么提升呢?

二:什么是nc4hw4

图片中已标明来源
图片中已标明来源

概念本身很简单,两幅图就很能说明.其实nc4hw4准确的说应该是n(c/4)h(w*4).一句话来说就是:沿着c方向取4个数按照w方向排列.如果c不是4的倍数,则全用0补上.

三:nc4hw4如何提升卷积推理性能

nc4hw4的出现就是为了配合矢量操作,如矢量读写,矢量乘累加,在arm上就是neon指令.由于在进行hw平面上的二维gemm时,不同c维度之间是互不影响的,正适合作为矢量操作的不同元素.nc4hw4排布配合neon加速im2col+gemm的卷积推理的具体过程如下:

  • 3.1.初始状态
    在这里插入图片描述

所有的图在内存中的排列都是从左到右从上到下从前到后依次分布的.本文以filter对input进行卷积为例

  • 3.2.转成nc4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值