欢迎关注我的公众号 [极智视界],获取我的更多经验分享
大家好,我是极智视界,本文介绍一下 算能SDK架构。
邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq
说到AI硬件的国产化,大家可能第一时间想到的是华为昇腾、寒武纪、百度昆仑等,但是北京还有一家厂商,他的母公司是做比特币的 (比特大陆),现在大家可能知道了,没错他就是算能。当你了解完算能的产品矩阵、SDK(部署链路)和实际设备的性能后,你可能也会相信他会在国产AI硬件中扮演一份举重轻重的存在。
算能的SDK是我所了解的国产AI硬件厂商中做的比较好的,不论是他的迭代速度、生态还是他的架构,都是比较好的。各家厂商的SDK肯定是围绕自身的硬件特性进行设计的,为了衔接多样的算法前端和特殊的硬件后端,越来越多的硬件厂商会选择深度学习编译器来做这个技术栈。像昇腾、昆仑等厂商就选择了基于tvm的技术栈,而算能在这个方向有一个新颖的亮点:他是基于milr的。说这是"新颖的亮点",并不是说milr要比tvm好,而是这种技术栈在AI厂商的应用中比较少。这也可能是算能的卡是基于tpu架构的,而milr是google的 (猜的)。
下面来说说算能SDK的架构。
算能的SDK包括基础工具和高阶工具,其中基础工具包括tpu-nntc、libsophon、sophon-mw、sophon-sail,高阶工具包括tpu-mlir、tpu-perf、tpu-kernel。一图胜前言,整体架构如下:
架构图中,自上而下是"从高级到低级"的过程,应用层 -> runtime层 -> 驱动层。可以看到,上层可以衔接超多的主流AI训练框架,如:tf、pytorch、caffe、paddlepaddle,还有中间模型框架onnx (对于onnx的支持是个一劳百益的设计)。然后往下衔接前端的有tpu kernel、tpu lang、tpu plugin,还有一些模型转换和量化模块等,另外还有像tpuperf这种对性能进行分析定位的工具(这是必不可少的)。中间层主要就是指编译优化了,这里用的技术栈就是mlir。后端就是一些符合算能bm1684或者是bm1684x芯片的后端代码了。
在了解了算能SDK的架构之后,再来看看一些重要模块都是用来干嘛的。我做了个图进行整理,如下:
好了,以上分享了 算能SDK架构,希望我的分享能对你的学习有一点帮助。
畅享人工智能的科技魅力。邀请您加入我的知识星球,星球内有丰富的AI技术应用相关技术文章、资源、项目源码,涵盖人脸、检测、分割、多模态、自动驾驶、工业等实用、好玩的项目应用,一定会对你的学习有所帮助。https://t.zsxq.com/0aiNxERDq