张量加速引擎(Tensor Boost Engine)作为算子的兵工厂,为基于昇腾AI处理器运行的神经网络提供算子开发能力,用TBE语言编写的TBE算子来构建各种神经网络模型。同时,TBE对算子也提供了封装调用能力。在TBE中有一个优化过的神经网络TBE标准算子库,开发者可以直接利用标准算子库中的算子实现高性能的神经网络计算。除此之外,TBE也提供了TBE算子的融合能力,为神经网络的优化开辟一条独特的路径。
张量加速引擎TBE的三种应用场景
1、一般情况下,通过深度学习框架中的标准算子实现的神经网络模型已经通过GPU或者其它类型神经网络芯片做过训练。如果将这个神经网络模型继续运行在昇腾AI处理器上时,希望尽量在不改变原始代码的前提下,在昇腾AI处理器上能发挥最大性能。因此TBE提供了一套完整的TBE算子加速库,库中的算子功能与神经网络中的常见标准算子保持了一一对应关系,并且由软件栈提供了编程接口供调用算子使用,为上层深度学习中各种框架或者应用提供了加速的同时尽量避免了开发昇腾AI处理器底层的适配代码。
2、如果在神经网络模型构造中,出现了新的算子,这时TBE中提供的标准算子库无法满足开发需求。此时需要通过TBE语言进行自定义算子开发,这种开发方式和GPU上利用CUDA C++的方式相似,可以实现更多功能的算子,灵活编写各种网络模型。编写完成的算子会交给编译器进行编译,最终执行在AI Core或AI CPU上发挥出芯片的加速能力。
3、在合适的场景下,TBE提供的算子融合能力会促进算子性能的提升,让神经网络算子可以基于不同层级的缓冲器进行多级别的缓存融合,使得昇腾AI处理器在执行融合后的算子时片上资源利用率获得显著提升。
综上,由于TBE在提供算子开发能力的同时也提供了标准算子调用以及算子融合优化的能力,使得昇腾AI处理器在实际的神经网络应用中,可以满足功能多样化的需求,构建网络的方法也会更加方便灵活,融合优化能力也会更好的提高运行性能。