好学IT学院:IT信息技术分享交流平台
学段:职业成长  学科:计算机科学与技术  标签:科谱  来源:深圳英鹏信息技术官方帐号  作者:当代-爱搞机评测室  发布时间:2022-05-24  ★★★加入收藏〗〖手机版
简析TPU、IPU、NPU是什么?
摘要:在人工智能AI技术崛起的这几年来,在高通、苹果、三星、麒麟、联发科、Google 的SoC上,大家经常会看到“TPU、IPU、NPU”之类的名字,这些“XPU”有什么分别?是真的有那么多不同的架构?还是厂商的概念营销?难免会让人一头雾水,本文或将为你在一定程度上解开疑惑。…

【执行架构】

另一种区分处理器的方式,是看它们对特定运行环境进行的优化。例如,云端和微型物联网设备上可能可以跑相同的软件,但在不同环境中使用的架构是完全不同的,它们对性能、功耗、成本、极端条件下的运行能力等要求都是不同的。

这可能是因为对低延迟的需求,或者是因为功耗的原因,一些原来针对云计算的软件,现在被逐渐放到设备端侧运行。虽然是不同的硬件架构,但大家自然希望拥有完全相同的软件栈,以便软件能够在两种场合跑起来。云端需要提供灵活性,因为它会跑不同类型的应用程序,而且用户众多。这要求服务器硬件又要有针对应用的优化,又要能提供不同的规模。

而机器学习任务也有自己的要求,在使用神经网络和机器学习构建系统时,你需要使用软件框架和通用软件栈,让网络编程并映射到硬件,然后你可以从 PPA 的角度让软件适配不同的硬件。这推动了“让不同类型的处理和处理器适应各种硬件”的需求。

这些需求是由应用定义的。举个例子,就像一家公司设计了一个用于图形操作的处理器,他们优化和加速图形跟踪,并执行诸如图形重新排之类的操作,还有其他像矩阵乘法之类的加速机器学习的蛮力部分。

而内存访问对于每个架构来说都是一个特殊的问题,因为当你构建加速器时,最重要的目标是让它尽量长时间保持满载,你必须将尽可能多的数据传送到 ALU,让它尽可能多地吞吐数据。

它们有许多共同之处,它们都有本地内存,有片上网络来进行通信,每个执行算法的处理器都在处理一小块数据,这些操作都由运行在 CPU 上的操作系统调度。

对于硬件设计人员,棘手之处在于任务预测。尽管在某些层面上会有类似的操作类型,但人们正在研究不同层面上差异。为了处理神经网络,需要几种类型的处理能力。这意味着你需要对神经网络的一部分进行某种方式的处理,然后在另一层又可能需要另一种处理操作,而且数据移动和数据量也是逐层变化的。

你需要为处理管线构建一整套不同的加速器,而理解和分析算法并定义优化过程,是涉及到完整体系结构的任务。就像对于基因组测序,你可能需要进行某些处理,但你不能用单一类型的加速器来加速所有东西。CPU负责管理执行流水线,对其进行设置、执行 DMA、进行决策。

当中可能涉及到分区执行的问题。没有任何一种处理器可以针对每种任务进行优化——FPGA、CPU、GPU、DSP都做不到。芯片设计商可以创建一系列包含所有这些处理器的芯片,但客户应用端的难点在于,他们要自己确定系统的各个部分要在哪些处理器上运行,是在 CPU 上?在 FPGA 上?还是在 GPU 上?

但无论如何,里面总是需要有 CPU 的,CPU 要负责执行程序的不规则部分,CPU 的通用性有自己的优势。但反过来,如果是专门的数据结构或数学运算,CPU就不行了。毕竟 CPU 是通用处理器,它没有针对任何东西进行优化,没有特别擅长的项目。

ChatGPT和人工智能简介
  在当今这个数字化时代,人工智能的应用已经贯穿到我们的生活中的各个方面,尤其是在实现人机交互方面,ChatGPT(Generativ…
  • 好学触屏公众号虎力全开、杨帆起航!
  • 好学考试H5触屏版开放内测