深度学习推理引擎技术栈
作者:互联网
从事深度学习引擎开发,需要具备相关的知识。
目前,一般需要掌握以下技术。
首先,自上而下分为三类。
第一,算法和应用层面上。需要了解深度学习相关的知识,比如CV、NLP、语音、推荐等领域的深度学习模型(ResNet、Bert等等)。同时需要熟悉主流AI框架的使用,例如pytorch、tensorflow。目前,pytorch应用更为广泛,可以优先考虑。
第二,引擎开发层面。需要熟悉Linux下C++开发相关的知识,例如C++语言、cmake编译工具,docker/k8s开发和部署,以及常用的C++库(例如boost、protobuf、grpc等)。
第三,底层硬件相关的编程模型。例如,CUDA编程、Arm相关优化技术等。
以上,是主要的核心技术栈。
除此之外,还需要了解一些业界所用的优化技术。例如,自动调优TVM、并行编程优化、模型的图优化、模型的剪枝和量化、AutoML等技术。
当然,也需要对业界已有的框架有所涉猎,从而取长补短。例如,ncnn,TNN,MNN,onnxruntime,TensorRT等等。
标签:例如,需要,优化,编程,C++,引擎,深度,推理 来源: https://www.cnblogs.com/tangjicheng/p/16342106.html