什么是异构计算? 核间通信简介

57 篇文章 17 订阅
8 篇文章 4 订阅

异构CPU是指在一个计算系统中使用不同类型的CPU,例如不同的架构、指令集、功能或性能的CPU。异构CPU可以提高系统的效率、灵活性和可扩展性,适应不同的计算需求和场景。1https://bing.com/search?q=%E5%BC%82%E6%9E%84CPU

异构CPU的一种常见形式是CPU+GPU,即将通用处理器(CPU)和图形处理器(GPU)结合起来,利用它们各自的优势,实现高性能的异构计算。2 CPU+GPU异构计算在人工智能、图形渲染、科学计算等领域有广泛的应用。3https://zhuanlan.zhihu.com/p/491128886

除了CPU+GPU,还有其他类型的异构CPU,例如CPU+FPGA、CPU+ASIC、CPU+NPU等,它们都是根据不同的计算目标和工作负载,选择合适的协处理器来加速计算。4https://blog.csdn.net/wypblog/article/details/120387187

如果您想了解更多关于异构CPU和异构计算的内容,您可以参考以下网页:

  • 什么是异构计算?https://www.zhihu.com/question/63207620

    随着自动驾驶作为汽车行业发展趋势以及相关芯片引起高度重视,一下子异构计算芯片成为了行业热点。很多朋友对什么是异构计算芯片很感兴趣,跟着小星详细了解一下异构计算的技术细节、未来趋势和在汽车自动驾驶中的应用吧。

    什么是异构计算

    异构计算架构灵活性和效率

  • 异构计算“Heterogeneous Computing”是一种特殊的并行分布式计算系统。它能够经济有效地实现高计算能力,可扩展性强,能够非常高效地利用计算资源。

  • 与之相对的概念就是同构计算“Homogeneous Computing”,也就是为大家熟知的多核理念。为了突破计算算力受制于功耗的瓶颈,多核CPU技术得到越来越多的应用。强大的CPU采用越来越多的CPU内核这就是传统同构计算系统。很快人们就发现在AI人工智能和自动驾驶爆炸式增长的计算需求下,传统同构计算系统已经无法满足要求,GPU、DSP、FPGA和ASIC由于特定需求下高效性越来越多的被应用。而异构计算技术应运而生,像一个大厨将CPU、GPU、DSP、FPGA和ASIC这些优良食材制成一道融合各方口味特点的佳肴。

    自动驾驶的异构计算系统需求

    比如自动驾驶中的摄像头视觉图像处理的计算需求为例,它分为图像获取、特征抽取、特征处理、模式识别和动作反馈等步骤。其中对大量图像数据的高速并行实时处理比如像素处理、图像金字塔和梯度检测等需要GPU和ISP图像信号处理器这样专用内核来高速计算。

  • DSP和专用加速器则偏向卷积或傅里叶等数学计算加速。

  • CPU更倾向通用计算和复杂动作反馈决策。依托异构计算技术能够整合这些不同架构的内核到单一芯片中从而适配自动驾驶的复杂计算要求。

  • 现在的AI芯片越来越像人脑,而人脑本身就是典型的异构架构。左脑负责语言和逻辑,右脑负责情感和创造,小脑负责运动和应激反应,各有分工且都不可或缺。

异构计算芯片典型案例

异构计算芯片苹果M1

那么到底什么样的芯片是典型的异构计算芯片呢?

让我们来举个例子。苹果最新款的Mac Book Air采用了自研芯片苹果M1替代传统的CPU、DDR4内存、IO接口芯片、苹果T2加密芯片和雷电Thunderbolt接口控制芯片的诸多功能。苹果M1集成了8个CPU内核、8个GPU核心和16个神经网络加速引擎。并且这些不同架构的内核可以通过标准内存访问架构UMA进行高速数据共享。是异构计算技术使得如此多不同类型的计算核心可以高效协同。苹果M1以优异的性能功耗比开创了自研异构计算芯片在笔记本电脑市场商用的先河。

异构计算在自动驾驶中的迭代

摄像头采集图像进行分层学习

特斯拉等车厂率先实施人工智能的驾驶辅助系统。其中人工智能的核心技术为深度学习Deep Neural Networks (DNN)。通过对摄像头采集图像进行分层学习,从图像中可以抽取相应的目标位置,路线规划。从而通过深度学习,规划出的路径不再完全依靠车道线,而是基于对于前方目标辨认标识出的安全空间。

奥迪自动驾驶控制器zFAS

自动驾驶控制器当中的计算平台为了实现人工智能的需求,实际上有一个迭代演进的过程。我们以率先量产L3自动驾驶的奥迪A8L为例。其自动驾驶的核心自动驾驶控制器zFAS采用了大量不同架构的计算芯片实现1个激光雷达、5个毫米波雷达和3个摄像头的信号处理和决策。等效算力在2TOPS左右。其核心处理器包括

  • Tegra K1 来自 NVIDIA,用于人工智能机器学习
  • Aurix 来自 Infineon,用于提供符合功能安全和信息安全的驾驶辅助管理
  • Cyclon V 来自 Altera,用于基于FPGA技术高速处理信号融合
  • EyeQ3来自Mobileye,,用于进行视觉信号处理

特斯拉Autopilot2.0域控制器CCM中央计算模块

特斯拉演进至Autopilot2.0则将驾驶辅助的控制都合并到了CCM中央计算模块当中。CCM就像车载的强力大脑,它高速处理1个毫米波雷达和8个摄像头信号,算力提升至10TOPS。但它仍采用分立的SOC和GPU架构,包含如下组成部件:

  • Parker SOC + Pascal GPU 来自 NVIDIA,用于人工智能机器学习
  • Aurix 来自 Infineon,用于提供符合功能安全和信息安全的驾驶辅助管理
  • Ethernet Switch 来自 Marvel,用于基于以太网技术的高速信号交互

特斯拉Autopilot3.0域控制器采用自研异构芯片FSD

而迭代至Autopilot3.0可以说是自动驾驶中央计算模块的分水岭和里程碑。因为采用自研异构芯片FSD,使得芯片内部集成了3个四ARM A72 CPU核心加GPU和2组神经网络处理单元NPU。它能更高速且低能耗地处理1个毫米波雷达和8个摄像头信号,系统算力大幅提升至144TOPS。这其中异构计算架构功不可没。

英伟达自动驾驶异构芯片

作为通用图形处理单元GPU领军者英伟达NVIDIA很快意识到了深度学习神经网络DNN在自动驾驶中的崛起和应用挑战。从而基于异构计算架构推出了一系列定制的SOC芯片。比如小鹏P7采用的Xavier芯片算力为30TOPS,它具有强大的八核ARM64处理核心和512核Volta GPU,并且能够达到汽车安全所需要功能安全ASIL-D(最高等级)的级别。相对整车级别优化了功耗性能比。而即将量产的蔚来ET7配备了ADAM超算平台,算力达到1016TOPS。ADAM超算平台采用了4组英伟达最新的Orin自动驾驶异构计算技术SOC芯片。每组Orin芯片集成了12个ARM A76 CPU核心和算力在200TOPS左右的GPU内核。

英伟达异构计算软件架构CUDA

有了优秀的异构计算架构组成的芯片,还需要能够高效协调异构芯片中不同类型计算核心的软件架构才能让自动驾驶如虎添翼。为此英伟达开发了专用的异构计算软件架构CUDA,而其他厂商则抱团组成异构计算软件联盟并推出了相应的OPENCL软件架构。有了高效的软件平台,广大的开发者能够快速的将人工智能算法适配到相应的硬件计算资源,这是异构技术技术在自动驾驶领域高速发展的关键。

综上所述,依托异构计算技术能够整合CPU、GPU、DSP、FPGA和ASIC不同架构的内核到单一芯片中从而适配自动驾驶的复杂计算要求。而自动驾驶也经历了从复杂分立到高度集成异构计算芯片方案的演进。基于异构计算技术不仅系统算力更强,而且定制的软件架构能够加速自动驾驶算法快速高效的适配。希望今天小星的介绍能让大家对异构计算相关技术细节有个深入的了解。

01 建立Django工程

        核间通信主要面向多核处理器,多核处理器也叫多微处理器核心,是指在一枚处理器中集成多个完整的计算引擎。这些核心可以分别独立运行程序指令,利用并行计算的能力,可以加快程序的运行速度,提高多任务能力,由此得到的结果就是性能大幅度超过单核处理器。

        在汽车电子领域,多核处理器(SOC)主要采用ARM架构的Cortex系列,Cortex系列根据不同的应用场景又可以分为几个大类:

        1、Cortex-M (Embedded  Microcontroller  Processors) 用于小型微控制器的应用程序。

        2、Cortex-R(Embedded Real-time Applications Processors)用于实时性能要求较高的应用程序。

        3、Cortex-A(Application Processors)通常用于需要操作系统或高性能支持的应用程序。

        嵌入式多核处理器通常包括同构多核处理器与异构多核处理器。

Image

        同构多核处理器:由多个相同的通用处理器核心组成, 每个处理器核心可以独立地执行任务。

        异构多核处理器:由多个不同类型的处理器核组成(S32G/S32V/R-Car),不同类型可以指Cortex核的类型不同,或者不同架构的核,可以是A核+M核或者是ARM核+DSP核

        同构多核软件架构:

        SMP构架(多核运行同一个OS),系统中所有CPU共享系统内存和外设资源,由操作系统统一负责处理器间协作及资源的调度。

Image

        异构多核软件架构:

        AMP构架(多核运行不同OS),用户需要对各个操作系统使用的硬件资源进行划分,CPU间的合作仅限于使用共享存储器。

Image

02 同构多核核间通信

        同构平台的核间通信机制可以分为软件机制和平台特定的硬件机制。软件机制实现核间通信可以将其理解为进程之间的通信;

        进程间主要通信方式为:

        1、管道

        2、消息队列

        3、共享内存

        4、信号量

        5、Socket

        特定硬件机制就是同构平台本身提供的内部多核协作机制。

03 异构多核核间通信

        异构多核处理器之间的通信,通常是通过各种总线(如PCIe总线、SPI)、以太网、共享内存等实现;

        SPI、PCIe和以太网:都是将要通信的数据按照各自的协议要求封装成数据帧在两个核之间进行通信

        共享内存:通过芯片上两个核都能访问的Share RAM区域进行数据的交互

        异构多核核间通信在具体的实现过程中主要采用共享内存和中断通道结合的方式进行核间通信,一般过程如下图所示:

Image

        步骤1:核1拷贝通信数据到核1和核2 共享的数据缓存;

        步骤2:核1生成通信控制消息并写入数据缓存,该消息指明了通信数据的地址、数据大小等,通信控制消息被组织在一个列表中,以允许核1持续地对核2发出新请求,同时也便于核2能够有序地执行核1的请求;

        步骤3:核1使用中断或者其他机制来请求核2进行通信;

        步骤4:核2收到通信请求后从消息列表中读取控制消息;

        步骤5:核2根据控制消息读取通信数据;

        步骤6、7、8、9、10是反向的通信过程

        控制消息队列则主要是采用RingBuffer的数据结构进行读写指针的管理:

Image

04 核间通信性能影响因子

        影响核间通信性能主要元素:

        1、通信粒度的大小:通信数据块越大,传送所需时间越多,数据块越小,传送时间越小但是增加核间通信次数和核间通信过程中控制交互过程的耗时,从而增加核间通信的时间开销。

        2、通信缓存类型:分为片内RAM和片外RAM,使用系统总线来连接片外RAM 作为共享数据缓存容量大但是速度低,使用片内SRAM速度快但是造价高。

        3、消息传输机制:分为中断和轮询机制来请求通信,中断机制需要相应的中断处理程序,会给系统带来额外的时空开销。而轮询机制需要周期性的不断地检查标志位来判断是否有未处理的通信请求,周期任务间隔不好控制。

05 核间通信标准接口MCAPI

        芯片底层的核间通信方式可以多种多样但是需要封装成一个标准的接口提供给应用层APP。

        标准MCAPI是多核联盟在考虑内存占用、功耗等方面因素的前提下提出的一套针对嵌入式平台的规范多核通信API(Multicore Communication API)—MCAPI,并于2011年发布。

        MCAPI规范定义了一套API和语义,用于在嵌入式系统中多核之间进行通信和同步。使用MCAPI规范的应用层代码,在跨硬件平台、及操作系统中有更好的移植性。

Image

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值