华为昇腾系列开发入门教程一:简单的几个名词

编|章磊

几句废话

前段时间有幸参加了华为昇腾CANN训练营第二期,说实话,也没怎么听,一是那几天确实忙,二是也确实听不懂。
华为昇腾系列开发入门教程一:简单的几个名词_第1张图片

在安卓应用层开发多年,听到什么机器学习、卷积甚至python就头大,以前还和同学开玩笑说这辈子不会碰python,没想到这么快就打脸。

至于为什么要搞这玩意儿,其实跟研究生课题有关,没办法,导师说搞,那就搞呗,印证了那句歌词怎么唱来着,什么“被逼的,被逼的”,哈哈,开个玩笑。

好了,废话不多说。
这两天又重新把视频看了一遍,目的很简单,就是昇腾的几个概论搞清楚,弄清楚自己究竟是在干啥,自己写的代码在整个生态中处于啥地位。

几个概念

昇腾(Ascend)是啥

不知道昇腾的应该听说过前段时间的昇腾概念股吧,但凡沾点昇腾概念的股都涨了不少。

刚开始接触这个词,我以为仅仅是芯片的代号,但是看到那句“昇腾万里 让智能无所不及”,乖乖!顿时领悟到这家伙提供的是一套自下而上的全栈式解决方案。

上面是华为官网截的一张图,昇腾系列芯片只在最底层,包括Ascend310(推理)和Ascend910(训练),除此之外,在Atalas系列硬件中还包含Atalas 200,200dk,300,500,800等在不同程度上集成了310和910芯片以满足不同业务场景的硬件环境,比如200需要焊接电路板,200dk就不需要,800用的就是若干310和910的组合。

大家不要纠结这些东西具体是啥,我也还没弄明白,只要明白Atalas系列硬件提供了训练和推理的硬件接口。

顺便提下,为什么取Atalas这个名字,据说是神话中的某号人物,我也特地百度了下,确实是希腊神话被罚作苦役的大力神,不知道是不是那个推一辈子球的那个,不纠结,这不重要。
华为昇腾系列开发入门教程一:简单的几个名词_第2张图片

CANN
大家跟我一起读“看恩”,我听有的华为老师读“砍恩”,不管怎么说,比我直接读4个字母6多了。

欲懂含义,必先了解其全称!Computing Architecture Neural Network,英文六级的重要性突显出来了。

说的这么玄乎,以我目前结合谭涛老师的说法加上自己的领悟,其实就是管理算子和提供一系列开发工具的平台,什么是算子,目前理解是与芯片打交道的函数,毕竟对大多数人来说,根据指令集做开发难度肯定比拿别人已经实现的函数直接用要容易且方便不少滴!

从上图可以看出,CANN还提供了算子融合和加速的能力,因为刚接触也不太懂,比如算子融合,老谭画了这么个图:
华为昇腾系列开发入门教程一:简单的几个名词_第3张图片
右边圆圈里就是一个个算子,左边是内存。算子A请求NPU计算并把结果放在内存中,算子B也肯定是同样的操作,如果说算子B用的是A的结果,那么是不是有可能把A和B融合下再放到NPU中计算呢?大概就是这么个意思。

当然了,这只是CANN能力冰山一角,这里也强烈感兴趣的同学去看下B站老谭的视频。

MindSpore

如果说有一坨算子摆在这,我们能拿它做什么?我听到了有同学说“组装”,就像小时候摆弄一堆零散的小零件一样。

那算子的组装成品就是模型,模型其实就是一张有向无环图,每个顶点就是算子。
华为昇腾系列开发入门教程一:简单的几个名词_第4张图片

为什么要强调有向无环图,因为模型作为一个大的算法必须满足算法的有穷性。

模型是通过大量数据训练而来的,跟卷积有多大关系等我研究了再说。但训练有个框架肯定是极好的,比如耳熟能详的Tensor Flow,Pytorch等,那昇腾就弄了个MindSpore训练推理框架,具体我还没用过,后续搞明白再说。

MindX SDK
想象下,我们已经有了模型,但对于一个具体的业务场景,比如从一张图中识别出一匹马,还是需要基于模型来实现业务需求的。
华为昇腾系列开发入门教程一:简单的几个名词_第5张图片
那我们就可以使用Mindx中的mxVision库,去加载模型、流程编排、处理输入输出等。
具体功能参见:https://www.hiascend.com/software/mindx-sdk

Mind Studio
其实就是一个普通的IDE而已,喜欢用GUI的同学可以使用这个,但也不是非用不可,命令行也是可以滴。

ModelArts

关于ModelArts,华为官网的解释是:

ModelArts是面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半自动化标注、大规模分布式Training、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期AI工作流。

简单一句话,你,不是要做算子开发嘛,不是要训练推理嘛,不要是用模型来做图片分类、人脸识别啥玩意儿嘛,你在哪儿弄环境去?昇腾芯片不单卖,Atalas几个套件听说是1后面无数个0,就我们兜里的几个钢镚是玩不转的。

华为就搞了这么个玩意儿,相当于提供了一整套软硬件环境,大家来这上面玩,相当了,它不仅提供了软硬件环境,功能与DevOps有异曲同工之妙。

只有一个前提,就是收费收费收费!!!当然了,像我这样的穷B,也完全也可以通过参加训练营的方式,去领代金券啊,什么3000、5000的,有本事就去参加就去领哈,白嫖以实现算力自由。

再发几个资源

昇腾官网:https://www.hiascend.com/
这里几乎涵盖了昇腾开发相关的所有资源,如在线课程、模型库(Model Zoo)以及活动、论坛等。
后续报名信息也可以在下图的CANN训练营中直接报名。
华为昇腾系列开发入门教程一:简单的几个名词_第6张图片
B站老谭视频
https://space.bilibili.com/668461244
这里有前几期的录屏,感兴趣的同学可以提前复习。

华为云官网
https://www.huaweicloud.com/
里面可以购买资源,如云服务器等。

Termius
https://termius.com/
远程连接工具

FileZilla
https://filezilla-project.org/
图片等资源文件命令行不方便看,就用这个。

总结

好了,今天就说这么多了,自己目前也是一个小白,但这段时间听下来,“内赢(孔炽斌老师的广东腔)”还是挺不错的。

后面也会一如既往地往这些知识点学好学扎实,有兴趣的同学可以通过上面链接的链接报名喔~

免责声明:
简单地把这几天上课的想法先大概总结下,有什么不对的地方,欢迎指正。

你可能感兴趣的:(#,昇腾AI,人工智能,深度学习)