你只恍惚听人说高性能计算小众,你却不知道前因后果

你只仿佛听人说高性能计算很难,你却不曾尝试过并行

你只知道国内高性能计算就业机会不算很多,你却不知道国外早已如火如荼

你不知道自己的路怎么走,却忘记该看看别人的路怎么走

告诉你高性能计算圈子小的人却早已入圈

告诉你高性能计算很难的人也开始接触并行优化

国内就业机会一年比一年好,薪资一年比一年高

国外的高中生都开始接触并行编程

你却每天被GPT愁坏了身体

如果你没有能量,就靠近能量强的人,听听高性能计算从业15年+大佬的经验,看看OpenBLAS创始人对高性能计算前景的判断

高性能计算究竟是不是好的职业方向?-LMLPHP

以下来自OpenBLAS创始人演讲原文,原视频请看UP已发布的视频

然后从我个人的角度,或者说从我个人理解来说,呃,我觉得高性能计算领域是一个长期可发展的领域,是非常值得作为一个长期的职业道路在,为什么呢。

一个呢是。这个领域其实是还挺难的,就是不是就是或者说他做往深了做,它实际上是可以往深做很多的东西。这也这个的好处是代表着呃,个人的经验是可累积的,然后你在这领域做了几年,几十年或者更长的时间的话,你你这部分的这个个人技术能力,个人经验的这价值提高度是很好,是可累积,这上是一个好的事情,因为大家想长期做一个行业的话,肯定是要它,要它有足够的厚度,这样的话你可能。

十年后你能做的事情肯定会要比那些嗯七入行的人要做的好的多,这就代表了你的价值嘛,这个可能是你的个人累积起动来。

第二个的话可能会大家考虑要考虑,要想的是就是。我的工作会不会有可能会被一些机器替代,比如说现在什么GPT(演讲时间2022年6月,当时还没有GPT,这里为方便大家理解添加的。张博很有预见性,提前一年遇见了AIGC的浪潮)很火对吧,比如说现在什么无代码编程很火或者什么之类的这些事情,就是说呃,计算机辅助或者说AI辅助的这些的,或者其他这种辅助,这些事情必然会是一个的趋势,它它很有可能会替代一些重复的劳动就是一些低技术门槛的劳动,而目前看到这个高层计算领域可能靠呃,这个。自动化完全替代,或者是所谓算法完全替代,AI完全替代的话,目前看可能性还是比较低的。因为这个领域的知识要求还比较广,很难有一个,呃。就是非常智能的东西,把这个把我们全部干掉,这个估计是比较困难,

所以说从这个两个的角度来说,我觉得这是一个适合给这种对底层技术有爱好的长期从事的一个职业方向,这是我的这个的个人的观点啦。

然后后面的话就是说,比如说举一个具体例子,我一直觉得我们高性能计算去做什么,其实你可以就是在做底层framework,或者做这个框架的人来说,很多时候我们其实是在做这种硬件和应用的桥梁。

比如说你可以想象成一边是一个这种上层应用,比如说深度神经网络,或者什么解方程,或者什么其他这些的应用,呃,另外一边呢,可能是面向了不同的硬件,可能有CPU,有GPU,有NPNPFPJ,或者国产的重核,或者说大规模的病毒计算机,或者超算等等,你直接把这个应用放到这个硬件上,它很多时候是跑不起来的。

就很很多时候可能只有一些CPU可能能跑到,就举一个简单的例子,呃,大家可能都写过排序算法,对吧,如如果说一个排序算法可能只是一个非常简单的冒泡排序。我对这个数据量非常小的情况下,我的速度还很快,对吧,但是如果我数据量很大的时候。我的这部分的速度必然就会下降了,那我要怎么做呢?

有我一个选择是我换更快的硬件,对吧,我我随着我这个处理器的主频提高,我的内存访问速度提高,我的软件的这部分,你如果把这个想象成我的应用调用了一个排序的一个的库或框架来说。我的软件不需要做更改,我只是随着硬件的变化,我就能获得一个比较高性能的,这个从应用上来说,我就解决了这个排序的事情。

对吧,这个是理想的情况,这很多时候都是在这个,可能20几年前,当时摩尔单核摩尔定律还生效的时候,很多时候是这么做的,因为我硬件每每18个月就会性能翻番吧,单核的性能翻番。

但是现在从零几年以后看起来,你的硬件的单核性能,就是主频速度其实是没有变化,如果说你的代码就是你的框架,或者说你的库,不做针对性的,就是并行化也好,或者想更好的算法,或者用它的向量化,或者用易购也好。你其实是用不了这些硬件的性能的,因为这硬件所用的这些手段已经不是局限局限在这个主频了,主频上已经实际上是没什么提升,它都是用了这种体架构的状态。

如果是以高性能计算,或者是以这种高性能计算机来说,高性能计算机的这个峰值性能。它是。每十年会提高1000倍。每十年提高一个1000倍,这其实是远远超过了摩尔定律的那个增长的倍数,所以它其实里边实际上除了摩尔定律这种或者工艺制成变化,它其实里边有很多的,呃,用了更大规模的机器,用了这种体系结构的变化,在你每十年你的硬件提高1000倍的话,如果我的软件没有变化,我的软件是。我的这一部分的应用其实是没办法去跟上我硬件提升的步伐的,就是说虽然你硬件上提高了硬件背,但我软件上发挥的效率很低,这上就是问题所在。

而高性能计算工程师。大部分时间就是要弥补这个差距,就是做这个framework和library的这部分的加速和优化,能让应能让上层的应用能追赶上我的这个硬件提高的这一部分步伐,这个在之前的传统的这些科学计算领域其实很多时候就做到了,比如典型的可能以稠密巨人计算为主,可能这些其实就很多都已经做得很好了。

然后更具体来说,比如说对于现在比较火的这些AI,我可能又要提AI,其实这个报告举了很多AI例子,就是说很多在这些时候,他可能遇到的任务,就可能就会和你的这个,呃,这个AI的相关,或者说这个部署相关。比如说我要。呃,部署一个DNN的模型去做推理,就是,呃,算法工程师可能已经是在这个GPU的机群上,我已经训练了一个模型,我现在要用这个模型,我要去做ER,我要用推理部手。那我们要怎么做?这边其实对于这一部分的一个优化的目标,实际上就是说在保证模型正确的前提上,我的速度越快越好,这上是你要想做的最终优化目标,这为什么这样一个呢?是意味着。

我尝试可以用同样的硬件来支持更多的负载。比如说你可能之前做呃,比如说你的这个推理可能呃每秒可能是呃十十。1000个吧,1000个图像我随便加驶,可能别人的话可能做到2000个,这样的话我是不是就可以雇更少的机器,或者租用更少的云服务器来去达到类似的效果呢?是吧,这样的话可以节省了硬件成本,然后另外一些说我达到类似的效果,我是不是可以不用GPU,对吧,我是不是可以只用CPU或者其他用一些其他的高性价比的硬件达到。类似的效果,或者是你这个经济账能算得过来,因为在云厂商里边,你你带GPU的这个服务器和不带GPU的这个服务器,它的这个价格还是差挺远的,对吧,这实上,这实际上,这实际上是举了一个服务器上的一个云端的做例子,在嵌入式端的话,做嵌入式的influence,其实也是类似,因为有芯片有很多种吧,有这种。

带NPU的,不带NPU的可能是便宜的贵的等等这些,其实很多人这个实际上就要求很多时候你就实要去开发或优化一个高性能的一个,呃,AI的推理框架,这里边你可以去自源,或者说基于开源的改,或者说是你可能直接开源的满足需求,这个里边,这里边就会涉及到要做这种高性能的这种的算子实现,包括什么卷积的实现呀,石化的实现呀,然后可能还有很多这种心情算子实现,然后支持这种的算子的融合呀,图优化这些相关的技术啊,然后要支持多精度啊,就是比如说有些可能是可以跑FP16,或者跑INT8或者甚至INT4,如果是有硬件支持啥,然后还有一些对于这个异购加速器的支持。等等的很多这种方面都是你需要做的这部分的开发任务,这上是我举的一个以AI为主的一个呃例子,如果说是在一个呃AI算法公司,这个对高性能计算工程师的很多的需求,很多时候都会涉及到这些呃模型的部署上做的工作,而且这是你具体要做的事情。

 

06-07 03:00