扫盲人工智能的计算力基石--异构计算

简介: 本文将带领入门读者了解CPU,GPU,FPGA,ASIC和异构计算的一些基本概念和优缺点,希望帮助入门者和爱好者建立基本的芯片概念

人工智能有三要素:算法,计算力,数据。我们今天主要来讲讲计算力。

计算力归根结底由底层芯片提供。按照计算芯片的组成方式,可以分成:
同构计算:使用相同类型指令集和体系架构的计算单元组成系统的计算方式。
异构计算:使用不同类型指令集和体系架构的计算单元组成系统的计算方式。常见的计算单元类别包括CPU、GPU、ASIC、FPGA等。

CPU_

我们从CPU开始,讲一个小故事来帮助你理解一切。

异构厨房系统:

有一个大厨(CPU),能做各种菜(兼容性好),但是某些大量重复的动作(例如切菜)明显减慢了他做菜的速度。原来客人都点炒青菜,拌黄瓜之类的,大厨自己还算能胜任,但是最近(大数据时代到来),客人要求高了很多,开始点各种大菜(大量数据复杂处理)。

____px_2018_06_26

大厨力不从心,于是老板需要找个帮手(协处理器)来帮助他,比如在切菜方面,这个帮手可以同时处理很多菜品(并行处理),而且速度很快(低延时)。希望在合理的分工协作下,厨房能满足新的需求。

为什么CPU在大量数据处理时效率不高?

在之前餐厅的例子里,大厨CPU能灵活控制整个做菜流程,更偏向一个控制者,但很多场景下并不是最好的执行者。CPU作为通用处理器,也是更偏重支持控制流数据。CPU每个物理核中大部分的硬件资源被做成了控制电路和缓存,用来提高指令兼容性和效率。只有小部分是真正用来计算的逻辑运算单元(ALU)。在这样的架构下,CPU能兼容大量指令,但是实际的计算效率并不高。

而且,CPU这个大厨很健忘,每做完一步都要去看看菜谱,甚至健忘到切菜每切一刀,都要去看看下一刀怎么切。实际运行中,CPU的代码都存在Memory这个“菜谱”中,需要经过取指令,译码,然后才能执行指令。在这个流程中,取指令,译码会开销额外的时间,降低了数据处理速度。
CPU_

同构厨房系统:

有人会说,为啥不再雇个大厨(双核),这样组成一个同构厨房系统不好吗?当然可以,因为之前的芯片结构貌似就是这样迭代的。但是或许有以下缺陷无法避免:

  1. 大厨贵 -- 价格
  2. 大厨在某些方面其实不一定擅长,比如你切菜切得过料理机吗?-- 性能
  3. 厨房就这么大,再来个人可能没空间 – 芯片面积
  4. 大厨吃的比较多,老板想省点 – 功耗

对协处理器的要求?

老板对这个帮手也是精心挑选的,主要体现在:

  1. 最好能提供多样的菜品加工能力,比如洗菜,切菜一体化。(算法性能)。异构系统中,High Performance Compute要求全面实现加速算法,而不是仅仅是几个步骤。所以协处理器需要能全面支持需要用到的场景关键算法。
  2. 支持同时、快速加工(数据并行处理能力,低延时处理能力)。协处理器需要有大量的数据并行通道,每个通道需要支持低延迟的数据管线处理。
  3. 便于操作和菜品存取(接口性能)。要提供合适的接口带宽,快速,安全地和主处理器进行数据交互。
  4. 安装方便,能更新处理流程(配置灵活)。用户能方便地安装,配置,最好能更新协处理器的功能,方便日后计算需求的升级迭代。
  5. 节能(功耗)。更低的功耗意味着更低的运行成本,更小的空间占用和更简单的热处理方案。

GPU:动作很快的笨笨小帮厨

GPU和CPU都属于通用处理器,但是却有不同的架构。如果把CPU大厨形容为“头脑发达(控制电路多),四肢简单(计算电路少)”,那么GPU帮厨正好相反。在GPU中,硬件资源被大量用作逻辑运算单元(ALU),小部分用作控制电路。这为大规模的数据并行处理提供了基础。其实,这个帮手在特定工作中远远超过了师傅(切菜洗菜超级快),大厨可以放心地把算法简单、重复性高、需要大量并行操作的工作交给它。
CPU_GPU
但是GPU支持的控制复杂度较低。当你要求笨笨的GPU把所有菜都切丝,它一定完成得又快又好,但是你告诉它:“土豆切丝,洋葱切片,南瓜雕花……”它就没有那么高效了。这是因为,复杂的控制流程会产生大量的分支(如编程语言中的case和if else),而GPU中一个控制单元要负责好几个计算单元。所以,如果要最大程度地使用GPU,势必要求控制分支越少越好。
另外,GPU有CPU大厨的共同毛病:健忘(需要从Memory读取指令),这带来了一系列问题(如功耗大,基于指令系统,要译码)。
GPU_

ASIC: 最强订制料理机

如果给ASIC牌料理机制定一句广告语,我觉得是:最快速度,最低能效,您厨房的最强帮手。
_11

我们先来看看为什么ASIC像“料理机”。因为它摆脱了指令系统,没有了“健忘”问题,所有功能都固化了交付给客户,更像一台厨房机器。ASIC的中文全称是“特殊订制集成电路”。它是订制的,也意味着不需要去纠结CPU和GPU怎样分配控制资源和计算资源的问题了,想怎么分配就怎么分配。

编程语言越接近底层硬件,运行速度越快。ASIC的设计是直接用软件思维搭建硬件电路,所有的设计是直接建筑在物理硬件(门电路)上的。所以,ASIC不需要取指令和译码,每个时间单位都能专注于数据处理或者传输,大大提高了效能。直接设计的硬件结构也让数据处理管线真正实现,每一级的处理结果能直接用于下一级的输入,无缝连接。在一定规则下(比如一定芯片面积和布线规则下),并行通道可以最大化叠加。在功耗方面,因为硬件利用的最大化,是所有协处理器里最小的。

那么厉害的ASIC,看来我们的最佳方案一定是它了吧,问题来了:ASIC料理机哪里能买到呢?对不起,哪里都买不到,刚刚说了只能订制。这个过程很漫长,带来的风险自然很大。更重要的是,CPU大厨在拿到专属料理机后,如果突然有一天想把功能更新一下,比如原来土豆切丝,现在想切土豆片了。很抱歉,只能再订制一次。

FPGA: 可变化的万能料理机

FPGA也是料理机,也没有指令系统。和ASIC一样:它的设计也是直接建筑在物理硬件上。这样的结构就已经注定了FPGA在大量数据处理时的优势。事实上,它几乎具有ASIC的所有优点,速度功耗也远远优于通用处理器,但是和ASIC对比,还稍微差一点,例如:功耗大一点,速度慢一点,同样芯片面积下能实现的功能弱一点。不过,FPGA却有一个巨大优势。

FPGA,中文全称“现场可编程门级列阵”。对比ASIC,有三个字无比耀眼:可编程。可编程意味着可改变。今天切土豆丝,明天切土豆片,都没有问题了,不需要进行芯片重新订制,灵活性堪比通用处理器。对比ASIC的研发流程,FPGA开发可以快速试错迭代,缩短了开发时间。其实,在半导体界,FPGA有“万能芯片”的美誉,它以可编程和灵活的直接基于硬件订制两大法宝,在众多应用场景中有着重要地位。

FPGA的主要问题在开发。FPGA料理机交付客户时其实是一个空机器,里面什么功能都没有,需要客户根据自己的需求一点点搭建。这个难度不低,主要原因是:异构算法的开发人员大部分是软件人员,缺乏对FPGA结构和数字电路的了解,编程语言也不统一(CPU端是C、C++等等,FPGA端是VHDL、Verilog)。目前解决这个问题的方法是OpenCL和HLS(High Level Synthesis)技术,支持直接把C、C++代码编译成Verilog,虽然目前转化效果仍然有待提高,但是随着这些技术的成熟,相信FPGA会站上异构计算的舞台中央。
Xilinx

总结

小结一下,本文带领大家扫盲了一下CPU,GPU,ASIC,FPGA的一些基本概念和优缺点。在人工智能不断发展的今天,成本,功耗,灵活性,易用性都被提上了需求单。如果你也想体验一下异构计算的高效,可以试着购买一下阿里云的CPU+GPU和CPU+FPGA的实例方案。另外附上一些相关文章,让大神们继续带你飞。

阿里云郑晓:浅谈GPU虚拟化技术(第一章)
阿里云郑晓:浅谈GPU虚拟化技术(第二章)
阿里云郑晓:浅谈GPU虚拟化技术(第三章)
浅谈GPU虚拟化技术(四)- GPU分片虚拟化
浅谈GPU虚拟化技术(五)- GPU图形渲染虚拟化的业界难题-VDI的用户体验
【F3简介】一张图看懂FPGA-F3实例
【F3使用场景】F3经典使用场景

另外,请订阅弹性计算双周刊获取第一手的阿里云ECS的技术咨询。

学习愉快!

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
机器学习/深度学习 人工智能 算法
前馈神经网络解密:深入理解人工智能的基石
前馈神经网络解密:深入理解人工智能的基石
476 1
|
机器学习/深度学习 存储 人工智能
无代码人工智能平台:成功的基石(Noogata)
随着公司寻求加速数字化转型,人工智能和机器学习自然而然地在其技术优先事项中排名靠前。 AI 和 ML 为处理“大数据”提供了重要工具。因此,随着组织继续收集更多种类的数据,以更高的速度生成并以更大的容量存储,他们自然会转向人工智能来扩展对这些信息的分析。 然而,一个主要障碍阻碍了大多数组织部署人工智能:开发模型和解决方案所需的技能很难获得。这使得专有开发不仅成本高昂,而且耗时。即使对于那些能够负担得起内部开发人员团队的人来说,要确保业务主管(他们了解他们希望从分析中获得什么)和数据科学家(他们知道如何开发和操作 AI 模型)保持一致也不是一件容易的事。沟通不畅增加了进一步的拖延和复杂性。
|
7天前
|
机器学习/深度学习 人工智能 搜索推荐
深度探索人工智能在医疗影像诊断中的应用与挑战####
本文深入剖析了人工智能(AI)技术,特别是深度学习算法在医疗影像诊断领域的创新应用,探讨其如何重塑传统诊断流程,提升诊断效率与准确性。同时,文章也客观分析了当前AI医疗影像面临的主要挑战,包括数据隐私、模型解释性及临床整合难题,并展望了未来发展趋势。 ####
|
5天前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗诊断中的应用
【10月更文挑战第36天】随着人工智能技术的飞速发展,其在各行各业的应用日益广泛,特别是在医疗领域。本文将深入探讨AI技术如何革新传统医疗诊断流程,提高疾病预测的准确性,以及面临的挑战和未来发展方向。通过具体案例分析,我们将看到AI如何在提升医疗服务质量、降低医疗成本方面发挥关键作用。
79 58
|
2天前
|
人工智能 算法 安全
人工智能在医疗诊断中的应用与前景####
本文旨在探讨人工智能(AI)技术在医疗诊断领域的应用现状、面临的挑战以及未来的发展趋势。随着科技的不断进步,AI技术正逐步渗透到医疗行业的各个环节,尤其在提高诊断准确性和效率方面展现出巨大潜力。通过分析当前AI在医学影像分析、疾病预测、个性化治疗方案制定等方面的实际应用案例,我们可以预见到一个更加智能化、精准化的医疗服务体系正在形成。然而,数据隐私保护、算法透明度及伦理问题仍是制约其进一步发展的关键因素。本文还将讨论这些挑战的可能解决方案,并对AI如何更好地服务于人类健康事业提出展望。 ####
|
1天前
|
机器学习/深度学习 人工智能 算法
人工智能在医疗诊断中的应用与挑战
本文探讨了人工智能(AI)在医疗诊断领域的应用及其面临的挑战。随着技术的不断进步,AI已经在医学影像分析、疾病预测和个性化治疗等方面展现出巨大潜力。然而,数据隐私、算法透明度以及临床整合等问题仍然是亟待解决的关键问题。本文旨在通过分析当前AI技术在医疗诊断中的具体应用案例,探讨其带来的优势和潜在风险,并提出相应的解决策略,以期为未来AI在医疗领域的深入应用提供参考。
18 3
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能在教育领域的应用与挑战
随着科技的不断进步,人工智能(AI)技术已经深入到社会的各个领域,其中教育领域尤为突出。本文旨在探讨人工智能在教育领域的应用现状、面临的挑战以及未来的发展趋势。通过分析AI技术如何改变传统教学模式,提高教育质量和效率,同时指出其在实际应用中可能遇到的问题和挑战,为未来教育的发展提供参考。
18 2
|
1天前
|
机器学习/深度学习 人工智能 物联网
通义灵码在人工智能与机器学习领域的应用
通义灵码不仅在物联网领域表现出色,还在人工智能、机器学习、金融、医疗和教育等领域展现出广泛应用前景。本文探讨了其在这些领域的具体应用,如模型训练、风险评估、医疗影像诊断等,并总结了其提高开发效率、降低门槛、促进合作和推动创新的优势。