达芬奇架构NPU

  达芬奇架构的核心优势是什么?如何更好地赋能麒麟990?

  达芬奇架构,是华为自研的面向AI计算特征的全新计算架构,具备高算力、高能效、灵活可裁剪的特性,是实现万物智能的重要基础。具体来说,达芬奇架构采用3D Cube针对矩阵运算做加速,大幅提升单位功耗下的AI算力,每个AI Core可以在一个时钟周期内实现4096个MAC操作,相比传统的CPU和GPU实现数量级的提升。  

3D Cube

  同时,为了提升AI计算的完备性和不同场景的计算效率,达芬奇架构还集成了向量、标量、硬件加速器等多种计算单元。支持多种精度计算,支撑训练和推理两种场景的数据精度要求,实现AI的全场景需求覆盖。

  在如智能手机等实际端侧AI应场景中,AI算力与功耗的协调是至关重要的,一般来讲更高的AI算力意味着更大的功耗,因此智能手机的续航常常使AI算力受限。而有了达芬奇架构NPU,这一状况将得到改善,如果麒麟990能够搭载达芬奇架构NPU,麒麟芯片或将再次迎来震动行业的算力升级。

  DaVinci Core是如何实现高效AI计算的?

  华为推出AI芯片昇腾310,达芬奇架构,昇腾310相当于AI芯片中的NPU。其中,DaVinci Core只是NPU的一个部分,DaVinci Core内部还细分成很多单元,包括核心的3D Cube、Vector向量计算单元、Scalar标量计算单元等,各自负责不同的运算任务实现并行化计算模型,共同保障AI计算的高效处理。

  

  • 3D Cube矩阵乘法单元:算力担当

  刚才已经提到,矩阵乘是AI计算的核心,这部分运算由3D Cube完成,Buffer L0A,L0B,L0C则用于存储输入矩阵和输出矩阵数据,负责向Cube计算单元输送数据和存放计算结果。

  • Vector向量计算单元:灵活的多面手

  虽然Cube的算力很强大,但只能完成矩阵乘运算,还有很多计算类型要依靠Vector向量计算单元来完成。Vector的指令相对来说非常丰富,可以覆盖各种基本的计算类型和许多定制的计算类型.

  • Scalar标量计算单元:流程控制的管家

  Scalar标量运算单元主要负责AI Core的标量运算,功能上可以看作一个小CPU,完成整个程序的循环控制,分支判断,Cube/Vector等指令的地址和参数计算以及基本的算术运算等。

  3D Cube计算方式,有哪些独特的优势?

  不同于以往的标量、矢量运算模式,华为达芬奇架构以高性能3D Cube计算引擎为基础,针对矩阵运算进行加速,大幅提高单位面积下的AI算力,充分激发端侧AI的运算潜能。以两个N*N的矩阵A*B 乘法为例:如果是N个1D 的MAC,需要N^2(即N的2次方)的cycle数;如果是1个N^2的2D MAC阵列,需要N个Cycle;如果是1个N维3D的Cube,只需要1个Cycle。

  

  (图中的计算单元的数量只是示意。实际可灵活设计)

  华为创新设计的达芬奇架构将大幅提升算力,16*16*16的3D Cube能够显著提升数据利用率,缩短运算周期,实现更快更强的AI运算。这是什么意思呢?举例来说,同样是完成4096次运算,2D结构需要64行*64列才能计算,3D Cube只需要16*16*16的结构就能算出。其中,64*64结构带来的问题是:运算周期长、时延高、利用率低。

  达芬奇架构的这一特性也完美体现在麒麟810上。作为首款采用达芬奇架构NPU的手机SoC芯片,麒麟810实现强劲的AI算力,在单位面积上实现最佳能效,FP16精度和INT8量化精度业界领先,搭载这款SoC芯片的华为Nova 5、Nova 5i Pro及荣耀9X手机已上市,为广大消费者提供多种精彩的AI应用体验。

  更强算力的麒麟990,开启互联互通的智慧新场景

  一直以来,麒麟芯片的AI实力之所以受到人们的认可,除了强劲的AI计算力领先行业,华为手机实现众多应用场景。达芬奇架构作为华为自研架构,在应用适应性方面与华为的理念一脉相承,基于灵活可扩展的特性,达芬奇架构能够满足端侧、边缘侧及云端的应用场景,可用于小到几十毫瓦,大到几百瓦的训练场景,横跨全场景提供最优算力,麒麟990所使用到的只是端侧AI最基本的一部分。

  

  并且,想要真正实现万物互联的AI生态,离不开广大的AI开发者,那么选择开发统一架构就是一个非常关键的决策了。对于广大开发者来说,基于达芬奇架构的统一性,在面对云端、边缘侧、端侧等全场景应用开发时,只需要进行一次算子开发和调试,就可以应用于包括麒麟芯片在内的不同平台,大幅降低了迁移成本。

  

  体验最多的AI应用大多来源于智能手机,但对于整个AI生态来说,智能手机只是一个开端,未来更多的AI应用涌现、跨平台迁移才能真正实现无处不在的智慧生活。因此,如果麒麟990真的搭载了达芬奇架构NPU,不止是手机算力提升那么简单,以AI之力加速万物互联的智慧时代。

  采用达芬奇架构AI芯片Ascend 910,与之配套的新一代AI开源计算框架MindSpore。

达芬奇架构NPU的更多相关文章

  1. 基于TI Davinci架构的多核/双核开发高速扫盲(以OMAP L138为例),dm8168多核开发參考以及达芬奇系列资料user guide整理

    基于TI Davinci架构的双核嵌入式应用处理器OMAPL138开发入门 原文转自http://blog.csdn.net/wangpengqi/article/details/8115614 感谢 ...

  2. 【DSP开发】德州仪器达芬奇五年之路七宗罪,嵌入式处理器架构之争决战2012

    芯片是产业链上游重要的一个环节,一颗小小的芯片具有极高的技术含量和价值,半导体行业每年都会有一个各大厂商营业额的排名,除去2009年,常年盘踞在前三名位置的分别是英特尔,三星半导体和德州仪器,英特尔凭 ...

  3. 达芬奇TI DVSDK之视频数据流过程分析

    作者:openwince@gmail.com 博客:http://www.cnblogs.com/tinz    本文的copyright归openwince@gmail.com所有,使用GPL发布, ...

  4. TI DaVinci(达芬奇)入门

    (转载来自 德州仪器半导体技术(上海)有限公司 通用DSP 技术应用工程师 崔晶 德州仪器(TI)的第一颗达芬奇(DaVinci)芯片(处理器)DM6446已经问世快三年了.继DM644x之后,TI又 ...

  5. buu 达芬奇 && ROT

    一.达芬奇 百度了下电影简介,发现了斐波那契数列,同时发现密文是由斐波那契数列移动而来的,有点像base64变种 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 ...

  6. Mac 达芬奇【Davinci Resolve】 无法添加媒体

    参考 : https://zhidao.baidu.com/question/182613491787331404.html 打开软件,点击默认的未命名项目: 点击左上角图中箭头位置: 选中系统-&g ...

  7. 达达O2O后台架构演进实践:从0到4000高并发请求背后的努力

    1.引言   达达创立于2014年5月,业务覆盖全国37个城市,拥有130万注册众包配送员,日均配送百万单,是全国领先的最后三公里物流配送平台. 达达的业务模式与滴滴以及Uber很相似,以众包的方式利 ...

  8. 3D Cube计算引擎加速运算

    3D Cube计算引擎加速运算 华为达芬奇架构的AI芯片Ascend910,同时与之配套的新一代AI开源计算框架MindSpore. 为什么要做达芬奇架构? AI将作为一项通用技术极大地提高生产力,改 ...

  9. 【华为昇腾】 序言:从昇腾AI软硬件平台聊起

    2021年是很值得纪念的一年,从上半年开始跟随导师编写有关华为昇腾软件栈CANN的教材,一年的时间反复迭代 终于快要出版了. 这一系列博客可以视作我从编者的角度,重新梳理的全书思路.明年入职商汤之后要 ...

随机推荐

  1. Mybatis的简单增删改查

    刚开始学习Mybatis可以先看下官方文档,MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手工设置参数以及抽取结果集.MyBat ...

  2. ltrim的思考

    ltrim的思考 说明 string ltrim( string $str[, string $character_mask] ) 删除字符串开头的空白字符(或其他字符) 案例1 $test = &q ...

  3. 工具tip

    1 postman: chrome的插件,模拟http的get.post等各种请求 2 010: 二进制文件查看,支持很多文件格式和强大的脚本:010 Editor体验 3 BeyondCompare ...

  4. Linux下抓包命令tcpdump的使用

    在linux下,可以使用 tcpdump 命令来抓取数据包. 主要用法如下: 过滤网卡 tcpdump -i eth0 #抓取所有经过网卡eth0数据包 tcpdump -i lo #抓取环回口的数据 ...

  5. [转帖]大家分析分析C++ X64X86通用驱动读写API源码教程

    //#include  <windows.h>//#include <algorithm>  //#include <string.h>//#include < ...

  6. 修改linux默认文件创建权限-umask命令解析

    umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的. 对于root用户,系统默认的umask值是0022:对于普通用户, ...

  7. mongodb 在PHP中常见问题及解决方法

    1.$in needs an array 解决:查询用到in操作的时候,说in操作对应的不是我一个数组,或者数组索引不是以0开始的 方法:array_values重新生成一个索引为0开始的数组即可 $ ...

  8. 在服务器上使用 smart http 搭建 Git 服务器

    前言 最近一直在写 django 网页的代码,随着代码的量越来越大,管理起来也有点复杂(当然,有在使用 git 进行代码管理).同时由于有不同的工作环境,有些工作环境对 ssh 的访问有限制,所以想到 ...

  9. Mybatis学习之自定义持久层框架(六) 自定义持久层框架:完善CRUD方法并进行测试

    前言 没想到会等到半年以后才来写这篇文章,我已经不记得当初自己想要在这篇文章中写什么了,还好有一些零散的笔记留着,就对照着上一篇文章及零散的笔记,把内容给补充完吧. 完善CRUD方法 完善Defaul ...

  10. 面试侃集合 | ArrayBlockingQueue篇

    面试官:平常在工作中你都用过什么什么集合? Hydra:用过 ArrayList.HashMap,呃-没有了 面试官:好的,回家等通知吧- 不知道大家在面试中是否也有过这样的经历,工作中仅仅用过的那么 ...