AI芯片厂商开始意识到,AI芯片的计算性能再好,失去完备的软件包工具链的支持,也将丧失优势、举步维艰。
此种情况下,抢滩软件生态至关重要。
芯片业巨头英伟达率先推出深度学习软件包TensorRT。它相对简单易用,在深度学习算法推理阶段能将GPU的计算能力更大程度释放出来。得益于软件包的助力,GPU的应用范围从图像视频领域扩展到金融行业,最后扩展到计算需求量大的AI、深度学习领域。
如果说英伟达的GPU是个性能强大的火箭,那么TensorRT就是送它到深度学习的助推器,软件包对AI芯片的重要性不言而喻。
成立一年半的深鉴科技开始也没想到,自主研发的DNNDK一不小心就对标了英伟达的TensorRT。
这套面向AI异构计算平台DPU(Deep-learning Processor Unit,深度学习处理器)自主研发的原创深度学习开发SDK,提供了自动化压缩和编译工具链全流程支持,是国内首家公开发布的深度学习开发SDK。
“像,但并不一样,我们有自己技术、专利上的优势。”深鉴科技的编译器架构师孙晓明告诉量子位。
这套SDK性能如何,会为国内AI芯片市场带来怎样的新趋势?我们往下看。
△ 深鉴科技室内
深鉴科技,何许人也?
2016年3月,毕业于清华大学电子系的姚颂放弃了CMU读博的机会,和同是清华人的汪玉、韩松一起创建了深鉴科技。
△ 深鉴科技创始人团队,从左到右依次为首席科学家韩松,联合创始人、CEO姚颂,联合创始人汪玉,合伙人、CTO单羿
在神经网络压缩和稀疏化方面的研究中,深鉴很快崭露头角。2016年5月的ICLR大会有两篇最佳论文,一篇来自DeepMind,另一篇就来自深鉴的首席科学家韩松。论文解释了如何利用“深度压缩”(Deep Compression)技术将神经网络压缩数十倍而不影响准确度,从而降低计算复杂度和存储空间。
俗话说,扎根越深,前进越稳。
这一年,深鉴研发了面向深度学习应用的可编程通用计算平台:亚里士多德架构DPU,定义和实现了一套用于映射DNN算法的高度优化可编程指令集。
它不仅在实现高性能、高能效比目标的同时兼顾通用性和灵活性,支持如AlexNet、VGG、GoogLeNet、ResNet、Faster-RCNN, YOLO, SSD等流行CNN,还兼具可扩展特性,在DPU指令集提供支持的基础上可无缝运行其它用户自行扩展或衍生的神经网络。
从公司成立初启动亚里士多德架构DPU研发的同时,深鉴就开始布局软件生态,于今年上半年完成软件工具链的原型开发和验证,如今对外正式推出了深度学习全栈式SDK DNNDK(Deep Neural Network Development Kit)。
DNNDK实现从深度学习算法到DPU硬件平台的高效映射,为DPU从移动端到数据中心端各类应用提供统一的工具包和编程接口。
在极大降低DPU平台深度学习应用开发门槛和部署难度的同时,能够显著加速AI产品从开发到面市的进程。
完整全流程软件工具链
作为一款国内首发深度学习开发SDK,DNNDK提供了一套完整全流程软件工具链,涵盖了神经网络推理(Inference)阶段从模型压缩、异构编程、编译到部署运行的全流程支持,帮助深度学习算法工程师和软件开发工程师轻松利用DPU的深度学习计算能力,实现AI计算负载的加速。
“借助DNNDK提供的轻量级C/C++ APIs,开发一个ResNet50图像分类应用,大概只需要两百行左右的代码量,其中与DPU编程相关的代码只有五十行左右。”深鉴科技编译器架构师孙晓明在接受采访时举了这样一个例子。
△ 编译器组日常,中间为编译器架构师孙晓明
同时,开发人员无需任何异构计算编程方面的经验和背景,只需要使用标准的C/C++编程语言,相比CUDA、OpenCL等异构编程接口开发门槛更低。
△ DNNDK的完整全流程软件工具链
DNNDK框架主要包含深度压缩工具DECENT (DEep ComprEssioN Tool)、深度神经网络编译器 DNNC (Deep Neural Network Compiler)、深度神经网络汇编器DNNAS (Deep Neural Network Assemler)、神经网络Runtime N2Cube (Cube of Neural Network)、Simulator和Profiler等几个核心组件。
△ DNNDK框架
在接受采访时孙晓明表示,目前DNNDK支持Caffe框架的神经网络模型,对TensorFlow和MXNet框架的支持在开发中。
深度压缩
深度压缩是深鉴核心技术的重中之重。
依托神经网络模型压缩领域研究成果,深鉴研发了深度压缩工具DECENT,将韩松博士提出的剪枝(Pruning),量化(Quantization),权重共享(WeightsSharing)以及霍夫曼编码(HuffmanEncoding)等一系列深度压缩技术实现了自动化,让普通用户也能够使用深度压缩,在保证基本不损失算法精度的前提下可将网络模型的规模压缩数倍至数十倍,例如将VGG-16网络模型的规模压缩49倍。
△ DECENT工作流程
深鉴原创的混合编译技术解决了深度学习应用在AI异构计算环境下编译和部署中的困难,开发人员用C/C++编程语言开发、运行在CPU上的应用代码与运行在DPU上的神经网络指令流代码一起完成混合编译和链接。
“DNNDK提供的自动化压缩和编译工具,能帮助DPU开发者实现从深度学习算法到应用的一键式快捷部署、避免了繁琐的手动设置和参与。”孙晓明表示。
△ DNNDK混合编译模型
与其它深度学习解决方案相比,DNNDK能够将深度学习算法部署到硬件的周期从数天降低到数分钟,提高AI研发人员的工作效率。
号外号外,DNNDK已上线
这套深鉴科技原创的深度学习开发SDK于2017年10月17日00:00上线,查看地址:
http://www.deephi.com/dnndk/
不会用没关系,这有一份使用方法的Demo视频链接地址:
http://www.deephi.com/assets/demo_dnndk_resnet50_1016.mp4
要不要去试试看?
— 完 —