首页科技 › AI就是高品质总计

AI就是高品质总计

原标题:AI就是高性能计算

我们平时在做业务的时候很少会有性能上的瓶颈,偶尔产生的UI层的卡顿也是我们对程序结构设计的不合理产生的。但是性能优化却是一个好的程序员所应具备的,而且在某些特殊的场景下,我们还要有能力去解决很多极限的性能问题,这里就来聊聊高性能计算方面的问题。

SUN说:网络就是计算机。

首先我们将这类问题分为两种:

联想说:AI就是HPC(高性能计算)。

  1. 减少计算量
  2. 加快单位时间的计算量

抱歉,联想没有说。这是小编总结的。

减少计算量

对于减少计算量来说,大家都是最熟悉的,也是平时碰到的最多的方法。

尽管联想没有明确这样说,但在8月31日举行的2018联想全球超算峰会上,联想对外发布了全新AI产品家族,将HPC、AI紧紧关联在一起。

算法优化

最常见的要属算法优化,比如查找算法,用二分法代替顺序查找,排序用快速排序代替冒泡排序。

另一个比较典型的例子就是高斯模糊算法,将一次二维矩阵的乘法转化为两次一维矩阵的乘法,虽然看似改变很小,但是在整个图片的计算量上出入非常的大。以3*3大小的矩阵来看,一次二维矩阵乘法需要9次浮点乘法,而两次一维矩阵仅需要2*3次浮点乘法,如果是6*6的矩阵,这个比例将会达到36/12

亚洲城ca888官方网站 1

数据结构优化

在我们需要更高性能的时候,我们不太可能一个方案能够满足所有的情况,往往需要特定的场景使用特定的方案。

在随机读取远大于随机写入的时候,数组的确是一个好方案,但是如果随机写入远大于随机读取的时候,链表的性能就会优于数组。如果读取和写入都比较频繁,那么树的结构可能会是你的首选,根据所需不同可以采用平衡二叉树,B/B+树,跳跃链表等。

如果需要大量写入磁盘,顺序的读取,比如日志系统这种,那么Google的LevelDB也是一个非常好的选择。

总之,根据需要来选择适合的数据结构也能大量的提升性能。

这也是AI就是HPC的灵感来源

空间换取时间

要知道,很多的计算是重复的,而这些重复的计算可能会消耗我们大量的时间,那么我们在空间充足的情况下,何不缓存这一部分的数据的?

其实很多的第三方库都使用了这种思想的,索引也可以认为是这种思想。这里举个简单的例子。

在图片处理的过程中,卷积的计算量是非常大的,而乘法占了很大一部分比例。而根据我的了解,ARM在处理乘法的时候,可能需要6个时钟周期,而加法只需要一个,如果能将乘法的结果缓存下来,通过加法访问是不是一种可行的方案呢?一个颜色的色值只有0~255的区间,是一个可以穷举的范围,所以缓存这部分结果,通过偏移量(也就是加法)来访问结果,是否也可以减少计算时间呢。

这种方法一般都会有一个阈值,超过这个阈值之后才会有明显的性能差距,所以在使用之前需要评估好自己的场景是否会处于优化的阈值内。

早已经是产业共识

低等语言实现

很多高级语言在实现的时候,会附加一部分高级语言的特性,比如内存回收机制等,越是底层的语言我们越是能够控制其计算量。

极端的例子就是采用汇编方案,这样能够最为极限的控制其性能。当然这样的问题是兼容性问题,需要为多个平台分别写汇编代码。其中OpenCV中的部分计算过程就是采用了汇编语言实现的。

这种方案对于其他高级语言(JAVA,JS等),采用C来实现其底层,或许是个好的尝试。但是使用汇编这种方法虽然有效,但是不太建议,毕竟在晦涩程度和兼容性上考虑,带来的性价比并不高,只有在极少数的特定情况下,才会考虑。

AI就是高性能计算,这已经是产业界的共识。

加快单位时间的计算量

除了从计算量上来优化,我们还可以通过一些其他手段,包括更优秀的硬件来帮助我们。

但以小编知识结构,其实一时转不过来,没有领悟其中的奥秘。

并行计算

目前的大部分CPU都不是单核的了,包括很多移动设备上的。但是如此高的性能我们往往不能很充分的利用。

在iOS中就有一个适合并发计算的接口dispatch_apply。采用多线程可以最大限度的开发出CPU的潜能。

HPC为AI提供了计算引擎,大数据为AI提供了数据引擎;反过来,AI、大数据给HPC带来了新的业态。”这就是结论。

CPU层面上的浮点计算

很多场景下,都是浮点乘法运算消耗了大量的时间,特别是对于ARM系列,但是新型的ARM特别设计了关于浮点及向量的优化(VFP或者称NEON)。

在iOS中,vImage就是利用了这一特性进行了优化,如果有少量的图片运算可以使用vImage来加快我们的速度。

如何理解这个结论呢?

ARM流水线优化

ARM系列的CPU一般都有采用流水线的架构,因为每一条指令的执行都需要经过取址-译码-执行这几个步骤,采用流水线架构可以增加执行效率。

但是这也有一个反例,就是在B相关跳转指令的时候,需要清空流水线,重新加载,这也会带来一定的性能损耗。

也就是说:

int i = 0; x += i; 
i++; x += i;
i++; x += i;
i++; x += i;
i++; x += i;
i++; x += i;
i++; x += i;
i++; x += i;
i++; x += i;
i++; x += i;
i++; x += i;

for (int i = 0; i <= 10; i++) x += i;

效率要高很多。当然这里有点吹毛求疵了,一般情况下我们还是不需要考虑这部分内容的。

先说说AI,如今AI有泛化的趋势,无助于人们的理解。

GPU

其实目前来说,影响最大的莫过于图像的处理,普通的业务慢一点和快一点其实很难分辨出来,也没有必要去如此极限的优化,而图像的计算量之庞大,很容易就可以感觉出来,同时图像处理速度还制约着视频的帧率问题,所以问题的严重程度要高很多。

那么说到图像处理,就不得不涉及到GPU了。目前移动端基本都支持OpenGL2.0或OpenGL3.0,所以如果要跨平台使用可以考虑OpenGL来优化。但是如果只考虑iOS平台,让我们来看看iOS平台有哪些特定的利用GPU进行优化的方案。

简单说,这一波AI浪潮的兴起和深度神经元网络和机器学习有关。AlphaGO就是最初的表现。其中最关键的技术是以大数据处理为基础的机器学习,对于算法模型的不断调优,从而使得其具备智能判断、分析的能力。

GPUImage

这是一个利用OpenGL的开源库,是一个跨平台的第三方库,里面封装了很多滤镜,同时也支持图片、视频的处理,对于自定义和扩展也比较方便,是一款非常好用的开源库。

说到AI,很容易和人脸识别、语音识别、步态识别等具体技术联系在一起。

CIContext

Core
Image是苹果官方提供的一款图像处理库,里面包含了众多的滤镜。其中CIContext可以指定为glContext,就是GPU环境了。一般来说,我们平时开发使用,CIImage已经足够了。

CImage的扩展也非常方便,有一种类似于openGL的GLSL的语言,KLSL。有兴趣的人可以自己去研究研究。

但实际上,AI分为重型AI和轻型AI**。**

Metal

Metal是苹果比较新的一个库,专门为了替代OpenGL而做的,降低了OpenGL的学习成本。

据官方称,加入了众多的优化。其中一个比较明显的就是,将shader的编译过程放到了编译期,而不是运行期,也就是说,比起OpenGL,少了一步glCompileShader

同时Metal也和iOS的特性结合的比较好,使用起来也比OpenGL简单很多。当然这些都是iOS平台的特性,不支持跨平台。

亚洲城ca888官方网站 2

OpenCL

这个是对应于mac系统的,其他系统上也有实现,目前还不支持移动端。

其中,轻型AI在消费级产品领域应用比较快,更加容易被人们所熟悉,例如AI手机,如摄影模式的智能判断和选择等

多缓冲FrameBuffer的GPU

对于视频这类连续的计算,以上的方案已经非常的优秀了,但是我们还是没有榨干机器的性能。:D

亚洲城ca888官方网站 3

1.png

一张图片的处理流程可以表示为上图,CPU需要将数据参数准备好,然后拷贝到GPU内存空间,然后等待GPU执行。GPU执行完之后,需要等待CPU准备好下一张图片的数据并拷贝到GPU空间,在这之间是留了很多的空白时间的。

我们知道OpenGL并不是线程安全的,也就是说GPU空间是可以多线程同时访问的,那么我们可以通过多个缓冲区来解决上述空白时间的问题。

亚洲城ca888官方网站 4

2.png

上图就是我们想要达到的效果,而下图是我们采用3个缓冲区,实际上的效果。

亚洲城ca888官方网站 5

3.png

轻型AI的特点是针对目标硬件进行裁剪,可以通过硬件固化,如AI芯片,来实现秒级处理的效果。

最后

以上是对高性能计算几种方式的一个简单概括,具体的情况需要根据自己的实际情况来选择。

但对于重型AI来说,体现出来的特点就是大数据、大模型和多任务。其模型训练需要大数据和大机器,其中HPC首当其冲。追求的是高吞吐率的智能推理以及复杂的关联关系分析。

简单说,当今的AI可以理解为算法、机器学习和人工经验的结合,是基于数据和结果,对于控制参数进行调优的结果。

绕不开的GPU话题

谈到AI,GPU是一个绕不开的话题。

亚洲城ca888官方网站,实际上,不仅是GPU,围绕着复杂繁多的AI应用场景,如今GPU、TPU、HPU、BPU、IPU、NPU、VPU、XPU等百花齐放。几乎26字母都已经被用到。

原因很简单,没有任何一款通用处理器或者芯片可以满足所有AI应用场景的需要。

似乎这些和HPC无关。

说到HPC,离不开Top500排行,以Link Pack测试性能指标为前提的排行。

HPC、超级计算机的性能被誉为一个国家科技实力象征,王冠上的明珠。

亚洲城手机客户端登录,中国在Top500排行榜上取得了突破性的进展,天河2号和神威太湖之光连续6次和4次拿到了冠军,连续5年占据榜首。今年,才刚刚被美国Summit超过,行内人透露,用不了多久,也许就是半年之后,就会被国产机超过。

这个成绩是怎么取得的呢?

亚洲城ca888官方网站 6

答案就是抓住了“异构并行计算”的机会。其中,GPU、FPGA和APU功不可没,从百万亿次,千万亿次,都是靠这样的一个技术。

HPC接下里的目标是E级计算,靠“异构并行计算”,靠花钱是没有办法突破E级计算的,接下来要面临“访存墙、通信墙、可靠性墙、能耗墙、并行计算可扩展性”等一系列难题。

简单说就是互联、网络、可靠性和功耗。

E级计算有用吗?

除了象征意义之外,计算能力也是非常重要的。

亚洲城ca888官方网站 7

诺禾致源高级副总裁吴俊

在采访中,诺禾致源高级副总裁吴俊表示,作为一家开展基因测序服务和研究的公司,从测序仪产生的海量数据处理,到最终结果的分析判定,都需要强大的数据处理能力。

此前,1台基因测序仪产生的数据量是200GB~300GB,如今已经快速发展到6TB,时间也从7天~8天,缩短到2.5天。基因测序的成本,也从1万人民币暴跌到1000元左右,具备了商业化应用的前景。

HPC计算性能的提升,显然有助于服务流程的优化,快速相应需求。但是与此同时,也要根据商业模式选择合理的方案,没有办法无限制的追逐高性能。

相比于性能,诺禾致源更加看重的可靠性、稳定性以及节能的水平。联想在温水冷却等节能技术上独树一帜,在IBM
x86服务器的基础上,有很多读到技术和可靠性、稳定性保障,这也是他们选择联想高性能计算的原因。

吴俊表示,现有基因测序分析软件并不适用于GPU。但在AI助力方面,HPC的计算能力、数据处理能力仍然是可以信赖的基础。

www.ca888.com,联想数据中心业务集团制造行业总监许子牛表示:HPC助力AI是一个方面,另外AI也可以助力HPC,例如能耗问题,访存效率的提升,都可以借助AI技术。这对于E级计算机的实现,也具有重要意义。

即使对于E级计算,“异构并行计算”仍然是首选的技术,各种XPU加速技术也有助于目标的实现。

未来的HPC不仅针对科学计算,将同样适用于大数据、AI的应用场景,这将会是一个应用领域兼顾的过程。

本次联想全球超算峰会,联想发布自主研发的AI产品家族:ThinkSystem
SR670、ThinkSystem HG680、ThinkSystem
HG690共3款产品,其实是HPC、AI优化的结果。联想还推出第三代温水水冷解决方案“海王星”系统,其中包括Direct-to-Node温水水冷技术、后门热交换器、以及由空气和液体冷却组成的混合冷却技术,使数据中心的运行效率提升高达50%。

亚洲城ca888官方网站 8

这就是联想接地气的结果。

在本次峰会上,联想没有披露更多E级计算机进展,但其并不遥远。

小结

AI技术思路的突破,正在颠覆、改变就有的格局。以HPC为例,也在从科学计算、工程计算,渗透到大数据和AI,HBM(High
Bandwidth Memory)、XPU、3D
NAND、Optane等新技术产品的出现,也会极大改变现有的商业格局。

世界正在快速变化中,HPC当然也不例外!返回搜狐,查看更多

责任编辑:

转载本站文章请注明出处:亚洲城手机客户端登录 https://www.little-lily.com/?p=2912

上一篇:

下一篇:

相关文章