来源:时间: 2024-10-25
深度学习训练框架要想打破Tensorflow和Pytorch,德州仪器TI深度学习框架生态掌控力
现在AI芯片的行业趋势是:GPU在通用性的基础上逐渐增加专用计算单元;而类似TPU的ASIC芯片在专用性的基础上逐渐增加通用计算单元——两类芯片有逐渐收敛的趋势。英伟达在用于深度学习领域的GPU上的设计思路是“在通用的基础上增加专用运算单元”,例如在Volta架构上开始增加TensorCore(专门用于深度学习加速)、在Turing架构上开始增加RTCore(专门用于光线追踪加速),德州仪器TI通用性为特殊的计算或者算法实现特殊架构的硬件以达到更快的速度。而AI芯片一开始走专用路线,但是现在在专用性之外也在架构设计上也增加了通用计算单元(例如谷歌TPUv1主要是矩阵乘法运算单元占了24%芯片面积,但是TPUv2也开始增加浮点ALU做SIMD)。华为在2019年8月发布的昇腾910与英伟达在2020年5月发布的A100性能相当,但是我们认为华为的主要问题在于不具备深度学习框架生态掌控力。即使其芯片性能与英伟达水平差不多,两大主流深度学习训练框架没有基于华为昇腾910做特定的优化,所以算法结合上述两大训练框架在昇腾910上实际跑出来的性能其实不如英伟达A100;目前仅华为自研的深度学习框架MindSpore对昇腾910和昇腾310做了特别优化,由于MindSpore大部分精力都是放在对昇腾芯片的算子支持和优化上,对英伟达GPU的支持还不够,所以只有同时使用深度学习框架和昇腾芯片才能同时发挥出两者的最佳性能。要想在深度学习训练框架要想打破Tensorflow和Pytorch的垄断必须要靠原始创新,而目前包括华为MindSpore在内的国产深度学习框架尚未很好解决上述两大训练框架的痛点。Caffe之所以能够在早期获得开发者欢迎是因为解决了深度学习框架从0到1的过程,Tensorflow之所以可以取代Caffe是因为解决了其不够灵活、不能自动求导、对非计算机视觉任务支持不好等问题,Pytorch之所以明显抢夺Tensorflow的份额是因为Pytorch引入了动态图解决了Tensorflow是静态图设计调试困难的问题。但是目前国产的三个深度学习框架百度PaddlePaddle、旷视Megengine、MindSpore还没有完美解决开发者在用Tensorflow和Pytorch所遇到的痛点,我们认为Tensorflow和Pytorch目前共同的痛点在于对海量算子和各种AI芯片支持的难度,正在探索靠AI编译器的技术来解决上述问题,但是目前编译技术仍然还达不到人工优化的效果。华为全面布局了三个层次的AI编译器,包括图灵完备的图层IR设计、使用poly技术的图算融合/算子自动生成技术(以TVM编译器的设计思想推出算子开发工具TBE来解决算子开发自动优化的问题)。