2020年11月23日晚,南京大学电子信息创新创业系列讲座有幸邀请到了华为昇腾的AI工程师谭涛,在南京大学电子科学与工程学院实验中心为同学们开展了一场精彩的“走近华为AI——DAVINCI架构探秘”主题讲座。

昇腾计算,是基于昇腾系列处理器构建的全栈AI计算基础设施及应用,包括昇腾系列芯片、系列硬件、芯片使能、AI框架、应用使能等。其中,Ascend为基于统一、可扩展架构的系列化AI、IP和芯片;CANN为芯片算子库和高度自动化算子开发工具;模型框架层中,类比于谷歌的TensorFlow,MindSpore作为华为自己提供的一个专门搭建神经网络的框架,是支持端、边、云独立的和协同的统一训练和推理框架;应用使能层提供全流程服务(ModelArts),分层API和预集成方案。

而Ascend AI芯片,为计算注入强劲的智能因子。Ascend310芯片,作为极致高能效AI SoC芯片,基于达芬奇架构,初产时半精度浮点算法可达到8T/s,而现在已经可以达到11T/s,是单功率算力最强芯片;同样基于达芬奇架构的Ascend910芯片迄今为止单芯片计算密度最大,半精度浮点算法可达到256T/s,整数精度可到512T/s。
华为ATLAS人工智能计算解决方案,基于昇腾系列AI处理器,通过模块、板卡、小站、服务器、集群等丰富的产品形态,打造面向“端、边、云”的全场景AI基础设施方案,涵盖数据中心解决方案、智能边缘解决方案,覆盖深度学习领域推理和训练全流程。

CANN,芯片算子库和高度自动化算子开发工具,兼具最优开发效率和算子最佳匹配昇腾芯片性能,包括FE(Fusion Engine)、TBE算子开发工具、CCE算子库和CCE Compiler。
其中,Fusion Engine采用融合引擎+算子管理+Task信息模式,大幅度减少算子调用开销和内存搬移,以提升性能;CCE算子库基于昇腾芯片,是深度协同优化的高性能算子库;TBE算子开发工具预置丰富的API接口,支持用户自定义算子开发和自动化调优,丰富算子开发手段和提升开发效率;而CCE Compiler基于C/C++扩展的异构混合编程语言综合编译器及二进制工具集,拥有极致性能和高效编程,以实现昇腾芯片的全场景支持。
所有昇腾AI处理器都是基于一个统一的架构——DAVINCI架构构建的。
为什么DAVINCI架构可以如此提升算力性能?这要从一个矩阵乘说起。对比CPU、Vector和CUBE,假设三种硬件都是一拍完成一个基本操作,那么对于16x16的矩阵乘——CPU需要进行16*16*16*2=8192次计算,而在此基础上Vector通过消去一个维度,进行16*16=256次计算即可,那么达芬奇架构中消去两个维度,则只需要计算一次!

在DAVINCI架构中,矩阵计算单元与累加器采用CUBE矩阵乘算法,是算力担当;
Vector负责输出缓冲区与向量计算单元,作为向量运算单元,覆盖各种基本的计算类型和许多定制的计算类型,主要包括FP16/FP32/int32/int8等数据类型的计算;
MTE/BIU和片上高速存储(Buffer)负责输入缓冲区、存储转换单元、总线接口单元与输出缓冲区。其中,BIU作为AICore的“大门”,是与总线交互的接口;MTE负责AICore内部数据在不同Buffer之间的读写管理,以及完成一些格式转换的操作。
最后,谭涛讲师为同学们介绍了实用的工具——www.huaweicloud.com。在网站上可以按时计费租用华为服务器进行高效率编程运算,与此同时在昇腾学院课程中还可以找到谭涛老师主讲的课程哦~
最后,同学们踊跃提出自己的问题,谭涛讲师都耐心为大家一一解答。相信通过这次精彩的讲座,同学们都深入了解了华为AI下的性能优异的芯片架构,尤其是DAVINCI架构。计算性能不断提升,芯片产业不断革新,未来总有无限可能。