清华「计图」现在支持国产芯片了!

清华自研的深度学习框架计图(jittor)在动态图推理速度上又一次完胜pytorch。
最近,计图团队完成了在寒武纪芯片mlu270上的移植。
这一次跟寒武纪的合作,使jittor在backbone网络模型中的动态图推理速度较pytorch平均提升了276.69倍。
从团队公布的实验结果可以看到,在寒武纪芯片上分别用计图(jittor)和pytorch进行推理。
计图(jittor)在16种backbone网络模型中的推理速度都较pytorch大幅提升,其中包括alexnet、vgg系列、resnet系列。
其中最快的是alexnet,提升速度达到了464.43倍,最慢的resnet50也达到了153倍。
平均提升速度达276.69倍。
△表1:模型具体数值
与此同时,计图的精度损失也较pytorch大幅减少。
△表2:resnet18的mse误差对比
团队以resnet18网络为例进行对比,baseline是cpu;结果显示:计图的精度损失比pytorch降低了42.53%。
还是「元算子」的功劳
性能得到如此大的提升,是怎么实现的呢?
要知道,在tensorflow,pytorch框架底层,有上千个算子;想要移植新的硬件,就必须将大量的算子复写,这样一来不仅工作量剧增、而且难度也会加大。
jittor这次还是依靠他们的核心武器——元算子。
根据jittor官方文档定义,元算子是指神经网络所需的基本算子。
早在设计jittor的时候,研发团队就定下了一个目标,即用户只需要数行代码,就可定义新的算子和模型。在保证易用的同时,不丧失任何可定制性。
所以在jittor中,多个元算子之间,可以相互融合成更加复杂的算子,这些复杂算子构成了神经网络计算的多个模块,如卷积层,归一化层等等。
△使用元算子实现卷积层
这一次将jittor移植到寒武纪上,也是同样的原理。
研究团队把神经网络所需的基本算子,定义为三类共18个元算子。
让元算子相互融合形成常用算子,这样就能通过优化非常少的元算子,实现对常用算子性能的提升。
并且,元算子还是反向传播闭包,所有元算子反向传播后依旧是元算子。
所以在完成三类元算子的移植后,jittor天然就能支持大部分常用算子的推理和简单训练。
从jittor元算子到bang
为了能让用户更为简单地操作,jittor内置了元算子编译器,可以将用户的python代码动态编译成寒武纪bang语言。
bang语言是专门针对寒武纪产品架构的一种代码语言,它能极大优化寒武纪芯片的通用编程能力,提升用户编程的自由度。
并且它还有全套编译工具链来提高性能。包括cncc(cambricon neuware compiler collection )、cnas(cambricon neuware assembler)、cnlinker(cambricon neuware linker)。
jittor内置的元算子编译器可以把元算子自动转化为bang算子。
采用动态编译的方式,能在运行时获取更多的信息,比如计算图上下文、形状信息等,这些信息都可以进一步提升算子的性能。
并且,jittor还内置了可以根据硬件设备自动对bang语言进行优化的优化编译遍(complier pass),从而生成对硬件设备更为适合的底层算子。
用这种方法,仅仅一行python代码,就能表示batchnorm算子的核心思想。
元算子编译器再把这行代码自动优化成bang语言代码。
由于bang语言的设计更加成熟,提供了类似于cuda语言的线程调度模式,使得上手和调试都更加简单;也能更好地释放寒武纪芯片的算力。
清华自研,首个中国高校深度学习开源框架
计图(jittor)的开发团队,均来自清华大学计算机系图形学实验室,负责人是清华大学计算机系的胡事民教授。
而主要负责开发的,则是来自实验室的博士生们:梁盾、杨国烨、杨国炜、周文洋……
计图(jittor)与主流的深度学习框架tensorflow、pytorch等最大的不同在于,它是一个完全基于动态编译(just-in-time)、使用元算子和统一计算图的深度学习框架。
它可以不像pytorch那样依赖tracing机制,让用户的操作更加简单,同时还可以得到更好的学习训练效果。
对于这一次取得的成果,开发者之一梁盾透露未来有可能发表在顶会上,并且会开源给大家。
此前,计图开源的点云模型库,在多种主流模型上训练性能较pytorch提升一倍以上;并发布了第一个支持金属度、粗糙度的可微渲染库。
最近,他们还开源了一个智能p图神器deepfaceediting,可以通过草图自由编辑人脸。
感兴趣的同学可以去试试哦~
github开源:
https://github.com/iglict/deepfaceediting-jittor


什么样子的人工智能才是我们需要的
基于区块链技术的农业平台GrainChain介绍
高品质万兆园区网络带你领略音视频会议体验升级,沟通无边界,视频零卡顿
工业4.0时代无法忽视的网络安全问题
串口传输速率低于波特率怎么办 串口通信的波特率如何设置
清华「计图」现在支持国产芯片了!
采埃孚展示预碰撞外置侧面安全气囊系统
晶体管是谁发明的_晶体管发明时间
华为nova4e亮点汇总
IBM宣布推出世界首个通用量子计算机 量子云服务也不远了
基于OpenVINO™工具包部署飞桨PP-Human的全流程
详解STM32F407VE中的串行总线功能
手机电磁兼容设计及EMI解决方案
用图卷积网络解决语义分割问题
Miso Robotics推出Flippy 2厨房机器人
常用的功率半导体器件
人工智能驱动的应用程序,为体育健儿带来健康保障
8位MCU TM52F1363在电陶炉中的应用
自动断路器的使用注意事项
VCS/XRUN如何创建一个非UVM的简单仿真环境?