华夏基石e洞察|绝地求生的华为:万字长文详解华为智能深潜策略( 三 )


英伟达是率先在人工智能加速方面实现突破并获得领先地位的企业 。 这家公司的GPU是人工智能应用的主流芯片 , 其背后的CUDA并行计算架构相当于在传统CPU处理器的基础上挂接了GPU , 从过去的单一中央处理器过渡了“CPU+GPU” 并用的协同处理范式 , 很好地满足了智能计算的需求 。 像谷歌和脸书等公司 , 全都采用英伟达的人工智能芯片来进行智能训练和推理 。
当然 , 虽然CUDA率先实现了强大的算力输出 , 但也有弱点 , 那就是软硬件的整合或者兼容不够 。 作为一家提供人工智能芯片的公司 , 英伟达的GPU必须要在实际应用过程中与不同的计算框架适配 , 例如谷歌的TensorFlow、脸书的Caffe等 。 这就必须牺牲一定的效率才能为不同的软件平台腾出实现定制化的空间 。
华为的达芬奇架构学习了英伟达的处理方式 , 但走得更远一些 。
第一 , 达芬奇的主基座仍然是ARM架构 , 这跟英伟达的处理方式相似 , 同样是在传统中央处理器上挂接一个人工智能加速器 。 达芬奇架构中的核心运算设计是名为“3D Cube”的计算模式 , 其基本思路是:以矩阵处理阵列的立体形式来处理 乘加运算 。 相当于比传统的2D结构增加了一个维度 , 过去那种需要64×64的运算在3D Cube下只需要化约为16×16×16就能算出 , 这就可以大幅提高运算效率、降低时延 。 3D Cube是达芬奇架构的核心创新点 , 也被称作“达芬奇魔方” 。
第二 , 达芬奇架构使用3D Cube对矩阵运算进行加速 , 但对于之后的向量运算和激活等则采用单独的模块进行灵活处理 。 这样就抓住了主要矛盾 , 实现算力大幅提升的同时 , 又能提高整体运算系统的灵活性 , 使得整个运算系统更具弹性 。
第三 , 主核+微核的结构使得算力输出极具弹性 , 可以根据不同的计算任务灵活组合 , 这就可以在很大程度上减少不必要的功耗 , 达到有限能耗下的最优算力输出 , 此即华为宣称的全场景覆盖 。 大到云计算、服务器 , 小到智能门铃这样的超低功耗物联网设备 , 达芬奇架构下的芯片都可以轻松应对 。
第四 , 达芬奇架构下的芯片与华为自身的软硬件产品深度耦合 , 避免了数据转接和重复调用的问题 。 这种纵向一体化的做法可以实现从芯片到终端再到系统的全链条贯通 , 但也阻碍了华为芯片的对外共享 , 以后借助开源可能会好一些 。 这种做法给华为未来的生态系统构建平添了不少障碍 , 伴跑华为的合作伙伴自身需要具备非常强大的实力才行 , 注定华为只会跟猛兽同行 。
当然 , 计算架构只能优化算力输出 , 而想要让算力真正产生效力 , 还需要依托软件平台的支撑 , 也就是“计算框架” 。
3、计算框架
人工智能的底层是芯片 , 芯片性能取决于计算架构 , 而将芯片的计算能力转化为真正的应用场景 , 则还需要几个步骤 , 其中最重要的 , 就是衔接硬件与软件的计算框架 。
计算框架或深度学习框架向下连接芯片 , 向上承接各种业务模型 , 是实现硬件语言和软件语言互译的关键桥梁 , 相当于人工智能版的操作系统 。 只有基于这个操作系统 , 应用软件才能够被开发并运行 , 从而覆盖相应的应用场景 。
世界上比较著名的计算框架主要有谷歌的TensorFlow和脸书的PyTorch 。 其中 , TensorFlow应用最为广泛 , 已经有4600万用户 , 是用户数最多的深度学习框架 。 国内企业百度推出的“飞桨”(PaddlePaddle)深度学习平台是最早实现开源(2016年)的国产化深度学习框架 , 目前服务的开发用户数达到150万 , 企业级用户6.5万 , 发布模型16.9万个 。 在2019年的世界互联网大会上 , 飞桨入选“世界互联网科技领先成果”奖 。
鉴于计算框架扮演软硬件翻译界面的角色 , 所以好的计算框架必须一方面具备硬件友好度(运行态高效) , 另一方面具备开发者友好度(开发态友好) 。 前者主要指对CPU、GPU等计算资源的分配方式 , 后者主要指开发者的进入门槛是否足够低 。


推荐阅读