异构计算--CUDA架构

news/2025/2/22 1:05:00/

1.CUDA是什么?

  CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台,是一种通用并行计算架构,该架构使GPU能够解决复杂的计算问题。说白了就是我们可以使用GPU来并行完成像神经网络、图像处理算法这些在CPU上跑起来比较吃力的程序。通过GPU和高并行,我们可以大大提高这些算法的运行速度。

2.CPU&CUDA架构

  处理器结构有2个指标要经常考虑的:延迟和吞吐。延迟指从发出指令到返回最终结果中间经历的时间间隔;吞吐指单位时间内处理的指令的条数。由于CPU以处理计算和控制为主要任务,所以设计理念是延迟导向内核;由于GPU以并行处理为主要任务,所以设计理念是吞吐导向内核。

(1)CPU

  CPU(CentralProcessing Unit)中央处理器,是一块超大规模的集成电路,主要逻辑架构包括控制单元Control,运算单元ALU和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。简单说,就是计算单元、控制单元和存储单元。
架构图如下所示:
在这里插入图片描述

  CPU遵循的是冯·诺依曼架构,其核心是存储程序/数据、串行顺序执行。因此CPU的架构中需要大量的空间去放置存储单元(Cache)和控制单元(Control),相比之下计算单元(ALU)只占据了很小的一部分,所以CPU在进行大规模并行计算方面受到限制,相对而言更擅长于处理逻辑控制。CPU无法做到大量数据并行计算的能力,但GPU可以。

(2)GPU

  GPU(GraphicsProcessing Unit),即图形处理器,是一种由大量运算单元组成的大规模并行计算架构,早先由CPU中分出来专门用于处理图像并行计算数据,专为同时处理多重并行计算任务而设计。GPU中也包含基本的计算单元、控制单元和存储单元,但GPU的架构与CPU有很大不同,其架构图如下所示。
在这里插入图片描述

  与CPU相比,CPU芯片空间的不到20%是ALU,而GPU芯片空间的80%以上是ALU。即GPU拥有更多的ALU用于数据并行处理。这就是为什么GPU可以具备强大的并行计算能力的原因。
从硬件架构分析来看,CPU和GPU似乎很像,都有内存、Cache、ALU、CU,都有着很多的核心,但是CPU的核心占比比较重,相对计算单元ALU很少,可以用来处理非常复杂的控制逻辑,预测分支、乱序执行、多级流水任务等等。相对而言GPU的核心就是比较轻,用于优化具有简单控制逻辑的数据并行任务,注重并行程序的吞吐量。
  简单来说就是CPU的核心擅长完成多重复杂任务,重在逻辑,重在串行程序;GPU的核心擅长完成具有简单的控制逻辑的 任务,重在计算,重在并行。

3.异构计算

  所谓异构计算,是指CPU+ GPU或者CPU+ 其它设备(如FPGA等)协同计算。⼀般我们的程序,是在CPU上计算。但是,当⼤量的数据需要计算时,CPU显得⼒不从⼼。那么,是否可以找寻其它的⽅法来解决计算速度呢?那就是异构计算。例如可利⽤CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、甚⾄APU(Accelerated Processing Units, CPU与GPU的融合)等计算设备的计算能⼒从⽽来提⾼系统的速度。异构系统越来越普遍,对于⽀持这种环境的计算⽽⾔,也正受到越来越多的关注。
  ⽬前异构计算使⽤最多的是利⽤GPU来加速。主流GPU都采⽤了统⼀架构单元,凭借强⼤的可编程流处理器阵容,GPU在单精度浮点运算⽅⾯将CPU远远甩在⾝后。如图所示为CPU+GPU异构计算的一个示意图,其中GPU主要负责并行计算。
在这里插入图片描述

4.OpenCL与CUDA的关系

  NVIDIA的CUDA架构和KHRONOS制定的OpenCL并不冲突,他们之间的关系是API与执行架构之间的关系,举个简单的例子:我们熟悉的X86架构是一种CPU架构,而各种编程语言,如:汇编语言、C语言等低级语言或高级语言仅仅是建立在X86运算架构之上的一种编程环境。那么,CUDA架构和OpenCL之间的关系和X86与编程语言的关系是相同的。
  CUDA架构是OpenCL的运行平台之一,因此他们之间并不存在谁取代谁的关系。OpenCL仅仅是为CUDA架构提供了一个可编程的API而已。
在这里插入图片描述
参考原文
[1]http://t.zoukankan.com/liuyufei-p-13259264.html


http://www.ppmy.cn/news/455573.html

相关文章

异构加速在加速什么

目前市面上的加速芯片挺多的,比如GPU、FPGA、TPU,以及针对各种特殊应用所开发的加速芯片。自己一直想理清楚这些加速芯片到底在加速什么,一直没有确切答案。一般宽泛的说法是CPU处理效率较低的,我们就进行加速,但个人觉…

英特尔助力快手实现异构计算加速 显著提升性能,降低系统TCO

昨晚睡得好吗?睡不好可以刷快手的《11 点睡吧》。这部当代人睡眠困境的微综艺,总曝光量达到 107亿,不但科普睡眠知识,更深度探讨都市人的喜怒哀乐[1]。惊人的曝光量背后,是快手对用户画像数据的精准分析,离…

深入理解CPU和异构计算芯片GPU/FPGA/ASIC

转自,http://www.cnblogs.com/qcloud1001/p/6617764.html 随着互联网用户的快速增长,数据体量的急剧膨胀,数据中心对计算的需求也在迅猛上涨。诸如深度学习在线预测、直播中的视频转码、图片压缩解压缩以及HTTPS加密等各类应用对计算的需求已…

异构计算(Heterogeneous Compute)

1. 异构计算接口 1) RenderScript(GPU计算): 它是官方异构计算的Android API&#xff0c;从Android ICS 4.2开始&#xff0c;它启用GPU来进行计算&#xff1b;它实现了20多个滤波器(filters)&#xff0c;支持CPU和GPU&#xff0c;且针对Mali-T600进行了优化。 (Nexus 10 <Ma…

异构计算技术分析

异构计算技术分析 参考文献链接 https://mp.weixin.qq.com/s/xW_Y0JBKK3d42IZvHA9CrQ https://mp.weixin.qq.com/s/amQj0DYvs9QwIuTpsGEFNg https://mp.weixin.qq.com/s/Y2cRAHnztWw5l0eeU_pDrg https://mp.weixin.qq.com/s/WyVgGB8-dPl9L68cppUNaw 什么是异构计算&#xff1f;…

再谈异构计算CPU+GPU

异构计算的英文名称是Heterogeneous computing&#xff0c;主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式。常见的计算单元类别包括CPU、GPU等协处理器、DSP、ASIC、FPGA等。我们常说的并行计算正是异构计算中的重要组成部分异构计算近年来得到更多关注&a…

基于CPU+GPU的异构计算

GPU GPU是为了视频游戏而产生的&#xff08;至今其主要驱动力还是不断增长的视频游戏市场&#xff09;&#xff0c;在三维游戏中常常出现的一类操作是对海量数据进行相同的操作&#xff0c;如&#xff1a;对每一个顶点进行同样的坐标变换&#xff0c;对每一个顶点按照同样的光…

最新!OpenAI掌门人自曝GPU短缺,未来GPT-4会更快、更便宜

作者 | 金鹿 本文经授权转自公众号腾讯科技&#xff08;ID:qqtech&#xff09;&#xff0c;如需转载&#xff0c;请联系对方&#xff1a; 机器学习和人工智能初创公司Humanloop首席执行官拉扎哈比比&#xff08;Raza Habib&#xff09;&#xff0c;5月29日邀请OpenAI首席执…