昇腾AI处理机_学习笔记一:Img2col 卷积加速算法

这篇具有很好参考价值的文章主要介绍了昇腾AI处理机_学习笔记一:Img2col 卷积加速算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Img2col 卷积加速算法


一、Img2col是什么?

Img2col 通过矩阵乘法实现卷积的加速运算的方法,该方法被广泛应用在CPU、GPU等通用计算芯片上。同时在一些特定域结构(Domain Specific Architecture , DSA)上,比如华为的昇腾AI处理机中,使用了Img2col为需要进行卷积运算的矩阵进行了预处理。

二、CNN中的卷积运算

CNN(Convolutional Neural Network)网络中,相对于FCNN(Fully Connected Neural Network)网络引入了权重共享的概念。大大降低了神经网络运算过程中的参数量级。

以单通道输入的第一层卷积层为例,卷积核大小为33。第一层卷积运算需要对输入层的数据使用第一层卷积核(滤波器)进行卷积运算。输入层的矩阵可以很大,每一次卷积运算都只会针对输入层中一个33的区域(感受野)进行卷积运算。运算结束后通过移动卷积核位置(滑动步长)对下一个感受野进行卷积运算。每一次卷积运算会输出一个数据。当卷积核扫描完整个矩阵,则输出一个和输入相同长宽的矩阵(数据矩阵需要对边沿进行补零)。
昇腾AI处理机_学习笔记一:Img2col 卷积加速算法

昇腾AI处理机_学习笔记一:Img2col 卷积加速算法
可以发现,这个过程中,每一次矩阵运算只能对一个感受野中的输入数据进行运算,要运算完整个输入矩阵,需要多次卷积运算(多线程)。根据体系结构分析,整个输入矩阵在内存中保持的位置是连续的,如果缓存块(Cache line)不够大的话,一个感受野中的9个数据会被保持在不同的Cache line中,导致数据不连续,会频繁造成缓存缺失,导致产生较大的访存开销。这会严重拖慢处理器的运算速度。

三、Img2col对卷积运算加速

对于这个问题,已经有一些解决方法,比如使用FFT对卷积运算进行加速,或者更简单一点的方法是使用Img2col对输入数据进行预处理。
昇腾AI处理机_学习笔记一:Img2col 卷积加速算法
昇腾AI处理机_学习笔记一:Img2col 卷积加速算法
将输入矩阵的每一个感受野展开为一个9元素向量。如图中的X1、X2感受野。将所有感受野拉成的向量拼接组合成一个新的矩阵XI2C。

同理将卷积核也拉成9元素向量。图中该卷积核只有两个矩阵,所以只有两个9元素向量。将两向量拼接得到矩阵WI2C。

将偏置b也拉成同样的矩阵。可通过如下图的方式,实现用矩阵乘法实现卷积运算。对比同样使用同样的处理机进行运算。以每一行和列的运算为一个线程划分。

(1)如果直接进行卷积运算,每一个线程需要读取一个感受野中的数据、两个卷积矩阵的数据和1个偏置数据b。这个过程中,感受野数据由于在内存中不连续,每一个线程都会造成缓存缺失,导致线程堵塞,性能变差。

(2)如果对Img2col对输入矩阵进行预处理,则将卷积运算变为了行列乘加的矩阵乘。以矩阵XI2C的每一行与矩阵W12C的每一列之间的向量内积运算为一个线程。每个线程需要从内存中取出XI2C的一行数据、矩阵WI2C的一列数据和矩阵bI2C的一列数据。这里的所有数据在内存空间都是连续的。所以不会造成缓存缺失。所以运算速度加快。
昇腾AI处理机_学习笔记一:Img2col 卷积加速算法
还能进一步改进,偏置b矩阵和矩阵XI2C合并,省略了一次矩阵的加法运算。进一步提升运算速度。
昇腾AI处理机_学习笔记一:Img2col 卷积加速算法

图片引用1:https://blog.csdn.net/weixin_42863507/article/details/106320968?spm=1001.2101.3001.6650.11&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-11.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-11.pc_relevant_aa&utm_relevant_index=15
图片引用2:昇腾AI处理器 架构与编程 第1章 基础理论文章来源地址https://www.toymoban.com/news/detail-446815.html

到了这里,关于昇腾AI处理机_学习笔记一:Img2col 卷积加速算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 操作系统实验——处理机调度算法(C语言)

    操作系统实验——处理机调度算法(C语言)

    目录 实验要求 代码实现 运行结果 代码解析   1、设定系统中进程数,每一个进程用一个进程控制块表示。 2、输入每个进程的“优先数”和“要求运行时间”。 3、为了调度方便,将进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程 4、处理机调度总是选

    2023年04月27日
    浏览(9)
  • 【第三章 | 处理机调度与死锁】《操作系统 慕课版》课后答案 + 复习

    【第三章 | 处理机调度与死锁】《操作系统 慕课版》课后答案 + 复习

    目录 【第三章】处理机调度与死锁 | 本章概念 1.处理机调度概述 2.调度算法相关概念 3.实时调度相关概念 4.死锁 5.资源分配图 | 本章算法 1.周转时间与带权周转时间的计算公式 2.调度算法 FCFS  SJF  PR  RR 3.实时调度算法 EDF 4.避免死锁 —— 银行家算法 | 课后简答题 1.处理机调

    2024年02月01日
    浏览(11)
  • 编写C程序模拟实现单处理机系统中进程调度,实现对多个进程的调度模拟,要求采用多级反馈队列调度算法进行模拟调度。(江西师范大学)

    编写C程序模拟实现单处理机系统中进程调度,实现对多个进程的调度模拟,要求采用多级反馈队列调度算法进行模拟调度。(江西师范大学)

    编写C程序模拟实现单处理机系统中进程调度,实现对多个进程的调度模拟,要求采用多级反馈队列调度算法进行模拟调度。 数据结构设计:PCB:结构体;就绪队列:每个节点为进程PCB;进程状态 具体调度算法:FCFS、SJF、PR;涉及多种操作:排序、链表操作 程序输出设计:调

    2024年02月04日
    浏览(16)
  • 学习笔记:在华为昇腾NPU上进行深度学习项目【未完待续】

    昇腾社区链接: 昇腾社区-官网丨昇腾万里 让智能无所不及 第一种:在cpu或gpu上训练的模型,但要在NPU上执行模型推理; 第二种:在NPU上同步训练、推理。 中括号里的为查询结果示例。 – 查看系统架构: uname -a [aarch64,也称arm64] – 查看操作系统版本: lsb_release -a [Ubuntu

    2024年01月18日
    浏览(9)
  • 【大厂AI课学习笔记】【2.2机器学习开发任务实例】(3)数据准备和数据预处理

    【大厂AI课学习笔记】【2.2机器学习开发任务实例】(3)数据准备和数据预处理

    项目开始,首先要进行数据准备和数据预处理。 数据准备的核心是找到这些数据,观察数据的问题。 数据预处理就是去掉脏数据。 缺失值的处理,格式转换等。 延伸学习: 在人工智能(AI)的众多工作流程中,数据准备与预处理占据着举足轻重的地位。这两个步骤不仅影响

    2024年02月19日
    浏览(13)
  • 昇腾实战丨DVPP媒体数据处理图片解码问题案例

    摘要: 本期就分享几个关于DVPP图片解码问题的典型案例,并给出原因分析及解决方法。 本文分享自华为云社区《DVPP媒体数据处理图片解码问题案例》,作者:昇腾CANN 。 DVPP(Digital Vision Pre-Processing)是昇腾AI处理器内置的图像处理单元,通过AscendCL媒体数据处理接口提供强

    2024年02月08日
    浏览(7)
  • 信创AI背景下,走进遥遥领先的华为昇腾算力

    信创AI背景下,走进遥遥领先的华为昇腾算力

    目录: 0.主要结论 1.研究背景 2.研究目的 3.研究结果 4.结论or疑问 敢立潮头的勇气和担当值得敬佩。信创AI背景下,华为AI算力逐渐成长为国内市场顶端,也是国内敢于和英伟达掰手腕的产商。【昇腾的计算性能配置可持平A100】 产品力仍是消费者用脚投票的主要驱动力。虽有

    2024年01月23日
    浏览(11)
  • 昇腾CANN DVPP硬件加速训练数据预处理,友好解决Host CPU预处理瓶

    本文分享自华为云社区《昇腾CANN 7.0 黑科技:DVPP硬件加速训练数据预处理,友好解决Host CPU预处理瓶颈》,作者: 昇腾CANN 。 随着人工智能的快速发展,越来越多的应用场景需要使用机器学习和深度学习模型。AI网络模型的训练一般分成两个关键部分,一个是训练数据预处理

    2024年02月05日
    浏览(11)
  • AI重塑千行百业,华为云发布盘古大模型3.0和昇腾AI云服务

    【中国,东莞,2023年7月7日】华为开发者大会2023(Cloud)7月7日在中国东莞正式揭开帷幕,并同时在全球10余个国家、中国30多个城市设有分会场,邀请全球开发者共聚一堂,就AI浪潮之下的产业新机会和技术新实践开展交流分享。 在7日下午举行的大会主题演讲中,华为常务董

    2024年02月12日
    浏览(5)
  • 昇腾芯片解析:华为自主研发的人工智能处理器全面分析

    昇腾芯片解析:华为自主研发的人工智能处理器全面分析

    在当今科技发展的浪潮中,昇腾芯片作为一种新兴的处理器,正引起广泛的关注和讨论。升腾芯片究竟是由哪家公司生产的?这个问题一直困扰着许多人。下面小编将全面介绍、分析升腾芯片的生产商及各类参数、应用,以便读者对其有更全面的了解 昇腾 芯片的生产商 升腾

    2024年04月11日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包