适用于异构芯片(CPU,ASIC,DSP,FPGA,GPU/GPGPU)的软件并行技术

2023-12-14 05:40

本文主要是介绍适用于异构芯片(CPU,ASIC,DSP,FPGA,GPU/GPGPU)的软件并行技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

近些年,CPU等通用处理器的性能提升速度放缓,为了继续满足各行各业对高能效计算日益增长的需求,以FPGA,GPU,DSP,NPU等为代表的异构算例,一夜之间在众多的新型热点领域受到广泛关注。

首先结合市面上能够看到的具体的产品来分析这些异构核之间的差异。

多元化算力

除了上述比较通用的命名,还有一些公司为了强调某些方面的差异性,提出了不同的命名,比如VIP的PPU(Parallel Processing Unit)。条条大路通罗马,最终这些命名都强调了异构计算的一个明显特点----并行处理的特性,这一点和GPU,FPGA等类似的。

当前几种典型的计算机体系结构

以计算为中心还是以数据为中心。传统CPU是计算为中心,CPU是由指令流(程序)来驱动运行的,然后CPU作为一切的“主管”再驱动外围的GPU、其他加速模块、IO模块运行。而在超异构的DPU系统中,由于数据处理带宽性能的影响,必须是以数据为中心,靠数据驱动计算。

DSA的难以落地,使得行业不得不进行回调,GPGPU越来越多的受到重视。GPGPU的性能,比CPU好,比DSA差;其灵活可编程能力,比DSA好,比CPU差。GPGPU能平衡好性能和灵活性,是一个相对均衡的处理器平台。但是,选择GPGPU只是逃避的问题,并没有本质的解决问题。GPGPU虽然相比CPU性能要好,但受限于架构的原因,也即将在未来3-5年达到性能瓶颈。而上层软件对算力的需求永无止境,这个问题如何本质解决。

从冯诺依曼机以来,计算机体系结构设计重点关注在两个方面,能效和通用性,能效是指单位功耗内能做多少运算,通用性是指能覆盖多大的应用面。

体系结构研究有两个极端,专门定制的芯片ASIC和通用处理器CPU,ASIC的能效非常高,超过通用CPU多个数量级,但ASIC芯片通常只能支持一个特定的算法,而通用CPU理论上能够完成所有可计算的任务,但是能效非常小。这里面的主要原因是,CPU为了满足通用性,采用了非常繁重复杂的指令流水线,功能部件和缓存,运算器只占不到%10的芯片面积。而GPU的能效比比CPU高10-100倍,同时具有一定的通用性,CPU和GPU的算力可驾驭能力要强于ASIC。

NPU牺牲一定的灵活性,换来了对比GPU和CPU更高的性能比。

软件代表灵活性和低性能,硬件代表死板和高性能,矛盾双方互补,对立统一。

CPU,GPU,FPGA可以做成图灵完备的,自身具备取指执行的功能,可以作为系统的调度中心。

CPU、GPU 都属于冯·诺依曼结构,指令译码执行、共享内存。冯氏结构中,由于执行单元(如 CPU 核)可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑。由于指令流的控制逻辑复杂,不可能有太多条独立的指令流,因此 GPU 使用 SIMD(单指令流多数据流)来让多个执行单元以同样的步调处理不同的数据,CPU 也支持 SIMD 指令,但SIMD指令的支持只能算是CPU的一个锦上添花的功能,不构成CPU的主要功能,比如X86的SSE,MIPS/RISCV的向量指令,以及ARM 的NEON,都是CPU的可配置功能。

FPGA 之所以比 CPU 甚至 GPU 能效高,本质上是无指令、无需共享内存的体系结构带来的福利, FPGA 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。

谷歌发布的人工智能芯片:Tensor Processing Unit(TPU),TPU的tensor cores在执行张量,矩阵运算时,更快更有效,因为在机器、深度学习中所处理的数据类型就是张量。TPU兼具了CPU与ASIC的特点,可编程,高效率,低能耗,还有多种多样的各类用于CNN深度学习的NPU,它们也都可以归为ASIC的一种。

虽然有专用的TPU,但一些最新的GPU也包含了许多张量核。

DSP有些类似于CPU,但是它拥有更强的并行计算能力,支持多发射,VLIW指令以及单精度,双精度浮点运算和专门用于SIMD加速的MAC阵列等,使其能耗比远高于CPU。 

GPU的峰值性能要高于FPGA,PPA,性能功耗比也要更优一些,FPGA基本单元的计算能力有限。为了实现可重构特性,FPGA 内部有大量极细粒度的基本单元,但是每个单元的计算能力&

这篇关于适用于异构芯片(CPU,ASIC,DSP,FPGA,GPU/GPGPU)的软件并行技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/491322

相关文章

MySQL的cpu使用率100%的问题排查流程

《MySQL的cpu使用率100%的问题排查流程》线上mysql服务器经常性出现cpu使用率100%的告警,因此本文整理一下排查该问题的常规流程,文中通过代码示例讲解的非常详细,对大家的学习或工作有一... 目录1. 确认CPU占用来源2. 实时分析mysql活动3. 分析慢查询与执行计划4. 检查索引与表

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

使用Python检查CPU型号并弹出警告信息

《使用Python检查CPU型号并弹出警告信息》本教程将指导你如何编写一个Python程序,该程序能够在启动时检查计算机的CPU型号,如果检测到CPU型号包含“I3”,则会弹出一个警告窗口,感兴趣的小... 目录教程目标方法一所需库步骤一:安装所需库步骤二:编写python程序步骤三:运行程序注意事项方法二

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU