技术解读倚天 ECS 实例 — Arm 芯片的 Python-AI 算力优化

2023-11-15

深度学习技术在图像识别、搜索推荐等领域得到了广泛应用。近年来各大 CPU 厂商也逐渐把 AI 算力纳入了重点发展方向,通过《Arm 芯片 Python-AI 算力优化》我们将看到龙蜥社区 Arm 架构 SIG(Special Interest Group) 利用最新的 Arm 指令集优化 Python-AI 推理 workload 的性能。

倚天ECS实例的AI推理软件优化

阿里云推出的倚天Arm ECS实例,拥有针对AI场景的推理加速能力,我们将了解加速的原理以及以及相关的软件生态适配。

卷积神经网络(CNN)在图像和语音领域使用广泛,神经网络算法相比传统的算法消耗了更多算力。为了探索对计算的优化,我们进一步看到AlexNet模型(一种CNN)的推理过程的各个层的计算资源消耗占比。

可以看到名为conv[1-5]的5个卷积层消耗了90%的计算资源,因此优化CNN推理的关键就是优化卷积层的计算。

我们进一步来看如何对图像应用卷积核:

  1. 使用im2col根据卷积核尺寸,将图像转化为若干块(patch)
  2. 将多个卷积核展开成若干向量
  3. 对由图像块组成的矩阵和由多个卷积核展开组成的矩阵应用矩阵乘法

上面一页的计算应用了矩阵乘法操作,为什么我们不采用更加直接的迭代计算方式,而是采用需要额外内存的矩阵乘法呢?这里有两个关键因素:

  • 深度学习的卷积计算量很大,典型计算需要涉及5000万次乘法和加法操作,因此对计算的优化十分重要
  • 计算机科学家们已经深入探索了矩阵乘法操作,矩阵乘法操作可以被优化得非常快。

fortran世界中,GEMM(general matrix multiplication)已经成为一个通用操作:

该操作通过对数据重新排列,精心设计计算过程,利用多线程和向量指令,可以比自己实现的朴素版本快十倍以上。因此使用矩阵运算带来的收益相比额外

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

技术解读倚天 ECS 实例 — Arm 芯片的 Python-AI 算力优化 的相关文章

  • 如何在 Google App Engine 的 Python 中获取 StringProperty 的值?

    如何获取 nbd Model 的值 我想返回由多个字段组成的描述 但我无法让它工作 这是我的班级代码 class User ndb Model name ndb StringProperty email ndb StringProperty
  • 如何使用 Python 裁剪图像中的矩形

    谁能给我关于如何裁剪两个矩形框并保存它的建议 我已经尝试过这段代码 但效果不佳 import cv2 import numpy as np Run the code with the image name keep pressing spa
  • 如何让python优雅地失败?

    我只是想知道如何让 python 在所有可能的错误中以用户定义的方式失败 例如 我正在编写一个处理 大 项目列表的程序 并且某些项目可能不符合我定义的格式 如果 python 检测到错误 它目前只会输出一条丑陋的错误消息并停止整个过程 但是
  • Perl 是否有相当于 Python 的 `if __name__ == '__main__'` 的功能?

    有没有一种方法可以确定当前文件是否是 Perl 源中正在执行的文件 在 Python 中 我们使用以下结构来做到这一点 if name main This file is being executed raise NotImplemente
  • 使用多级解决方案计算二维网格中的最近邻

    我有一个问题 在 x y 大小的网格中 我提供了一个点 并且我需要找到最近的邻居 在实践中 我试图在 pygame 中找到距离光标最近的点 该点跨越颜色距离阈值 计算如下 sqrt rgb1 0 rgb2 0 2 rgb1 1 rgb2 1
  • numpy:大量线段/点的快速规则间隔平均值

    我沿着一维线有许多 约 100 万个 不规则间隔的点 P 这些标记线段 这样 如果点是 0 x a x b x c x d 则线段从 0 gt x a x a gt x b x b gt x c x c gt x d 等 我还有每个段的 y
  • 对于相同的查询,MySQL Workbench 比 Python 快得多

    MySQL Workbench 中的以下查询需要 0 156 秒才能完成 SELECT date time minute price id FROM minute prices WHERE contract id 673 AND TIMES
  • 如何在Python代码中查找列号

    简短问题 当按上述方式调用函数时 我可以找到行号here https stackoverflow com questions 3056048 filename and line number of python script 同样 如何找到
  • 张量流和线程

    下面是来自 Tensorflow 网站的简单 mnist 教程 即单层 softmax 我尝试通过多线程训练步骤对其进行扩展 from tensorflow examples tutorials mnist import input dat
  • 返回上个月的日期时间对象

    如果 timedelta 在它的构造函数中有一个月份参数就好了 那么最简单的方法是什么 EDIT 正如下面指出的那样 我并没有认真考虑这一点 我真正想要的是上个月的任何一天 因为最终我只会获取年份和月份 因此 给定一个日期时间对象 返回的最
  • Pandas groupby apply 执行缓慢

    我正在开发一个涉及大量数据的程序 我正在使用 python pandas 模块来查找数据中的错误 这通常工作得非常快 然而 我当前编写的这段代码似乎比应有的速度慢得多 我正在寻找一种方法来加快速度 为了让你们正确测试它 我上传了一段相当大的
  • Pandas:将 pytz.FixedOffset 应用于系列

    我有一个带有timestamp列看起来像这样 0 2020 01 26 05 00 00 08 00 1 2020 01 26 06 00 00 08 00 Name timestamp dtype datetime64 ns pytz F
  • 如何使用 django-pyodbc (ubuntu 16.04) 配置数据库设置 Django-MSSQL?

    我是 Django 新手 目前正在尝试使用另一个数据库来保存我的模型 即MS SQL 我的数据库部署在docker容器中 903876e64b67 microsoft mssql server linux bin sh c opt mssq
  • 根据列索引重命名 Dataframe 列

    是否有内置函数可以按索引重命名 pandas 数据框 我以为我知道列标题的名称 但事实证明第二列中有一些十六进制字符 根据我接收数据的方式 我将来可能会在第 2 列中遇到这个问题 因此我无法将这些特定的十六进制字符硬编码到 datafram
  • Python:无法使用 os.system() 打开文件

    我正在编写一个使用该应用程序的 Python 脚本pdftk http www pdflabs com tools pdftk the pdf toolkit 几次来执行某些操作 例如 我可以在 Windows 命令行 shell 中使用
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • Pip 无法在 Windows 上安装 Twisted

    我正在尝试在 Windows 8 计算机上安装 Twisted 在 Twisted 官方网站上 只有一个 Windows 版的 Wheel 文件 https twistedmatrix com trac wiki Downloads htt
  • 如何在Tensorflow中保存估计器以供以后使用?

    我按照教程 TF Layers 指南 构建卷积神经网络 以下是代码 https github com tensorflow tensorflow blob r1 1 tensorflow examples tutorials layers
  • 如何使用 Pandas Series 绘制两个不同长度/开始日期的时间序列?

    我正在绘制 每周总事件 的几个熊猫系列对象 系列中的数据events per week看起来像这样 Datetime 1995 10 09 45 1995 10 16 63 1995 10 23 83 1995 10 30 91 1995
  • 在父类中访问子类变量

    我有一个父类和一个继承的子类 我想知道如何访问我的父类中的子类变量 我尝试了这个但失败了 class Parent object def init self print x class Child Parent x 1 x Child Er

随机推荐

  • 功能测试之单元测试

    功能测试之单元测试 单元测试 理论 实例 单元测试 理论 简介 1 单元测试的基本概念 2 单元测试的策略 3 单元测试的步骤 4 Junit测试简单Java程序 1 单元测试概念 什么是单元测试 单元测试是一种验证行为 是指对软件中的最小
  • 第1章 多线程概述

    学习多线程之前 我们先要了解几个关于多线程有关的概念 A 进程 进程指正在运行的程序 确切的来说 当一个程序进入内存运行 即变成一个进程 进程是处于运行过程中的程序 并且具有一定独立功能 B 线程 线程是进程中的一个执行单元 负责当前进程中
  • Java经典面试题详解:springframework框架

    一面 1 自我介绍和项目 2 Java的内存分区 3 Java对象的回收方式 回收算法 4 CMS和G1了解么 CMS解决什么问题 说一下回收的过程 5 CMS回收停顿了几次 为什么要停顿两次 6 Java栈什么时候会发生内存溢出 Java
  • unity3d人物碰撞提示文字

    设置碰撞体 例如cube 将脚本挂载在物体上 碰撞显示text using System Collections using System Collections Generic using UnityEngine using Unity
  • 深度学习环境配置:2080Ti+Ubuntu16.04+CUDA10+cuDNN7.3+TensorFlow-gpu1.12

    目录 第一步 系统安装 Ubuntu16 04 第二步 连接校园网 第三步 cuda10 0 cudnn7 3安装
  • ES6 语法之 Iterator

    一 概念 Iterator 遍历器 为不同的数据类型提供统一的访问机制 只要部署了 Iterator 接口 原型上有 Symbol iterator 方法 就可以完成遍历操作 遍历操作主要通过 for of 完成 let arr 1 2 3
  • 【SQL基础】SQL查询语句实例

    参考自 https www w3school com cn sql index asp 下面举实例 员工表 部门表 薪资等级表 附上sql语句 薪资等级表SALGRADE 部门表DEPT 员工表EMP CREATE TABLE DEPT D
  • Python 安装Python-Jenkins 报错No matching distribution found for python-jenkins

    1 报错情况 报错原因 找不到与python jenkins匹配的分布 pip 安装使用的是外国源镜像 导致获取超时 安装失败 获取不到新版本 解决办法 切换至 pip 源到国内镜像 2 切换pip源的方法 可以直接通过Pycharm 设置
  • Windows Server 2016搭建文件服务器

    1 进入系统在服务器管理器仪表盘中添加角色和功能 2 下一步 3 继续下一步 4 下一步 5 勾选Web服务器 IIS 6 添加功能 7 下一步 8 下一步 9 下一步 10 角色服务没有特殊要求 保持默认 下一步 我这里多选了IP和域限制
  • 2020年4月蓝桥杯第二次模拟赛解题报告(本科组)Java语言描述__2021/3/21

    3 单词重排 问题描述 将LANQIAO中的字母重新排列 可以得到不同的单词 如LANQIAO AAILNOQ等 注意这7个字母都要被用上 单词不一定有具体的英文意义 请问 总共能排列如多少个不同的单词 答案提交 这是一道结果填空的题 你只
  • 代理模式--动态代理--jdk代理

    动态代理 jdk代理 基于接口代理 cglib 基于类代理 javassist 基于字节码 一个jdk动态代理类代理的是一个接口 一般归属于一个业务 在不改动源代码的同时可以很方便的低成本的进行加工附属改造 jdk代理主要是通过java l
  • php邮件发送类源码,一个邮件发送类..

    一个邮件发送类 class emailui static function runlog mode SMTP b c d static function sendmail toemail subject message from cfg a
  • R语言确定聚类的最佳簇数:3种聚类优化方法

    原文链接 http tecdat cn p 7275 确定数据集中最佳的簇数是分区聚类 例如k均值聚类 中的一个基本问题 它要求用户指定要生成的簇数k 一个简单且流行的解决方案包括检查使用分层聚类生成的树状图 以查看其是否暗示特定数量的聚类
  • C++:指针

    目录 1 指针 1 1指针三要素 1 2修饰结构体struct 1 3 Pointers of Pointers 1 4constant修饰 pointer 2 指针和数组 2 1 数组的地址是连续的 2 2pointer arithmet
  • mysql5.7选取JDBC

    记录 springboot 2 5 0 springCloud2020 0 3 mysql5 7 选用 mysql connector java 8 0 25 报错 java security cert CertificateNotYetV
  • expected scalar type Long but found Int

    报错信息 expected scalar type Long but found Int 或者 expected scalar type Long but found Float 报错场景 pytorch的分类 本例具体为torch nn
  • anaconda和tensorflow安装教程

    即使以前安装过python的其它版本也没关系 本教程一样有效 1 anaconda安装 使用清华的源下载速度比较 下载地址 下载完成后安装 没什么需要注意的 添加环境变量 检测 anaconda环境是否安装成功 conda version
  • 解决:Pycharm无法识别Python已安装的模块,如cv2(OpenCV)模块

    https blog csdn net qq2399431200 article details 92832662 查看了好几篇这样的博客 该加的都加了 就是没解决 我装的是华军软件的破解版pycharm2018 搞了一下午 都没有弄好 最
  • rsync问题处理

    使用rsync同步时出现 in rsync opt failed Permission denied 13 检查了服务器的同步的目录权限都没有问题 网上找了说是开启了SELinux 的enforce模式 于事 root test01 etc
  • 技术解读倚天 ECS 实例 — Arm 芯片的 Python-AI 算力优化

    深度学习技术在图像识别 搜索推荐等领域得到了广泛应用 近年来各大 CPU 厂商也逐渐把 AI 算力纳入了重点发展方向 通过 Arm 芯片 Python AI 算力优化 我们将看到龙蜥社区 Arm 架构 SIG Special Interes