GPGPU是通用图形处理器。由于产业游戏的推动,GPU成为专门为提升图形渲染效率的而设计的处理器芯片。随着功能的不断完善,GPU逐渐发展成为并行计算加速的通用图形处理器,即GPGPU。近年来,人工智能的发展,GPGPU由于其强大的计算能力和高度灵活的可编程性,已经成为深度学习训练和推理任务最重要的计算平台。

1.1GPGPU 与并行计算机

并行计算机:并行计算是一些处理单元的集合,它们通过通信和协作快速解决一个大的问题。

  • 处理单元:具有指令处理和计算能力的逻辑电路。一个处理单元既可以是一个算术逻辑单元,也可以是处理器核心、处理器芯片或者整个计算节点。
  • 处理单元的集合:说明并行计算有一定的规模性
  • 通信:是指处理单元之间进行数据交互。通信明确了两类并行体系结构:共享存储结构和消息传递结构
  • 协作:指并行任务在执行过程中相对于其他任务的同步关系,约束了并行计算进行多任务处理的顺序,保证其正确性。
  • 快速解决一个大的问题:并行计算机是为解决一个问题工作的,其设计目标是性能

从定义看,GPGPU体系结构也符合并行计算机的定义,而且它明确的采用了类似单指令多数据的设计方式和实现方法,成为当今并行计算机最成功的的设计范例之一。

1.1.1 并行体系结构

·根据指令流和数据流定义并行计算机的类型。指令流是单个程序计数器产生的指令序列,数据流是指令所需要的数据和其访问地址的序列,包括输入数据、中间数据和输出数据。

  • 单指令流单数据流(SISD):这个并不是并行体系结构,但他可以利用指令级并行,在指令相互独立时实现多条指令的并行。传统的单核CPU是SISD典型代表。
  • 单指令流多数据流(SIMD):一条指令对多个数据进行操作,向量处理器就是典型代表。实际中,SIMD通常要求问题中包含大量对不同数据的相同运算,SIMD需要高速 I/O 和大容量存储来实现高效并行。GPGPU也借鉴了SIMD,通过内置很多SIMD处理单元和多线程抽象来实现强大的计算处理能力。
  • 多指令流单数据流(MISD):采用多条指令来处理单条数据流,数据可以从一个处理单元传递到另一个处理单元实现并行处理。一般认为,脉动阵列是MISD的实例,例如谷歌的TPU系列深度学习加速器。
  • 多指令流多数据流(MIMD):最为通用的体系结构,它对指令流和数据流之间没有限制,各个处理程序既可以执行同一程序,也可以执行不同的程序。MIMD通用性搞,但设计复杂导致性能低下。

并行体系结构最基本的方式是单核内指令级并行,即处理器在同一时刻可以执行多条指令。

  • 流水线技术是实现指令级并行的使能技术
  • 采用流水线技术设计的指令级并行微处理器内核已经成为设计典范
  • 在这个基础上是多线程和多核并行,即一个芯片上集成多个处理单元或处理核心,同时完成多个任务
  • 再上一个层次是计算机并行,即多个芯片通过专用的网络连接在一起实现更大规模的并行
  • 更高层次并行是仓储级计算器,即借助互联网技术将数以万计的处理器和计算节点连接在一起,每个节点是一个独立的计算机,并具备前面描述的多种层面的并行。

指令级和数据级并行适合在内核完成,因为它所需要的寄存器传输级(RTL)通信和协作在核内以极低的延迟完成。

现代处理器中的每个核心都会综合运用流水化、超标量、超长指令、分支预测、乱序执行等技术充分挖掘指令级并行。相对来说,MIMD的并行层次更高,会更多的利用多个处理单元、多个处理单元、多个处理核心和多个处理器或更多节点来实现。

1.1.2 GPU和CPU体系结构对比

CPU设计理念

  • 注重通用性来处理各种不同的数据类型
  • 同时支持复杂的控制指令,例如条件指令、分支、循环、逻辑判断及子程序调用等
  • 因此CPU微架构的复杂性高,是面向指令执行的高效率而设计的

GPU设计理念

  • 最初是针对图形处理领域而设计的
  • 图形运算的特点是大量同类型数据的密集运算

核心数对比:对于CPU来说,内核较少,一般是4核或者8核;而GPU却是数以千计更小、更高效的核心组成。这些核心专门为了同时处理多任务而设计,因此GPU也被叫做众核处理器。

CPU和GPU的架构对比图:

CPU

  • 大部分晶体管用于构建控制电路和存储单元,只有啥部分的晶体管用来完成实际的运算工作,这使得CPU在大规模并行计算能力上极受限制
  • CPU更擅长逻辑控制,能够使用复杂的运算环境
  • 由于CPU一般除磷低延迟任务,所有更需要L1、L2、L3高速缓存空间来减少访问指令和数据时产生的延迟

GPU

  • GPU控制相对简单,对高速缓存的需求相对较小
  • 所以大部分的晶体管可以组成专用电路、多条流水线,使得GPU的计算能力有了突破性的飞跃
  • 图形渲染的高度并行性,使得GPU可以通过简单增加处理单元和存储器控制单元的方式提高处理能力和存储器宽带。

近年来,CPU 大幅提高了峰值浮点性能。单仍旧与具有强大浮点运算能力的GPU存在差距。

【GPGPU编程模型与架构原理】第一章 1.1 GPGPU 与并行计算机相关推荐

  1. 【GPGPU编程模型与架构原理】第二章 2.1 计算模型

      本章介绍以CUDA和OpenCL 并行编程中的一些核心架构概念来展示GPGPU的计算.编程和存储模型.本章还介绍虚拟指令集和机器指令集,逐步揭开GPGPU体系结构的面纱. 2.1 计算模型 计算模 ...

  2. 【GPGPU编程模型与架构原理】第一章 1.2 GPGPU 发展概述

    1.2 GPGPU 发展概述   l随着半导体工艺水平不断提高和计算机体系结构设计的不断创新,GPU快速发展,从传统图形图像相关的三维图形渲染专用加速器拓展到多种应用领域,形成通用的图形处理器. 1. ...

  3. 【GPGPU编程模型与架构原理】第一章 1.3 现代 GPGPU 产品

      世界最大的两家图形芯片提供商:美国的NVIDIA 和AMD公司在桌面和工作站GPU和GPGPU遥遥领先.除此之外,Intel 公司主要发展集成显卡业务,其他公司在嵌入式GPU迅速发展. 1.3.1 ...

  4. 走向ASP.NET架构设计--第一章:走向设计

    走向ASP.NET架构设计--第一章:走向设计 前言:很多做开发的人都在不断的摸索着,积极的学习,试图找出一条走向架构设计的成功法则.每当有人问起我们的职业,我们也常常在说:"软件设计&qu ...

  5. 人工智能原理——第一章 绪论

    人工智能原理--第一章 绪论 文章目录 人工智能原理--第一章 绪论 1.1 人工智能的发展 人工智能的发展 – 孕育期 人工智能的发展 – 摇篮期 人工智能的发展 – 发展期(1970-1979) ...

  6. 操作系统——精髓与设计原理 第一章复习题习题

    操作系统--精髓与设计原理 第一章复习题&习题 复习题 1.1 列出并简要地定义计算机的四个主要组成部分 1.2定义处理器寄存器的两种主要类别 1.3一般而言,一条机器指令能指定的四种不同的操 ...

  7. 计算机术语new一个,微机原理第一章计算机基础知识(new)

    <微机原理第一章计算机基础知识(new)>由会员分享,可在线阅读,更多相关<微机原理第一章计算机基础知识(new)(47页珍藏版)>请在人人文库网上搜索. 1.1.第一章计算机 ...

  8. 计算机网络原理第一章习题3-24 3-25

    计算机网络原理第一章习题 3-24假定站点A和B在同一个10Mb/s以太网网段上.这两个站点之间的传播时延为225比特时间.现假定A开始发送一帧,并且在A发送结束之前B也发送一帧.如果A发送的是以太网 ...

  9. 编译原理-第一章-引论

    编译原理 第一章 引论 1,概念简介 (1) 编译器:一个编译器就是一个程序,它可以阅读以某一种语言(源语言)编写的程序,并把该程序翻译成为一个等价的.用另一种语言(目标语言)编写的程序. 2,一个编 ...

最新文章

  1. 使用angular的好处_在项目中使用Angular的最大好处
  2. 重载和覆盖的区别?(overload vs override)
  3. ie浏览器中 overflow:hidden无作用的解决方案
  4. 迁移svn项目到git
  5. 你了解过Spring支持的常用数据库事务传播属性和隔离级别吗?来一起看看吧!!!
  6. Unity 协程Coroutine综合测试
  7. 学习Docker从小白到入门
  8. codeUp 2031 To fill or not to fill 复杂贪心
  9. Spring Cloud实战小贴士:Zuul统一异常处理(二)
  10. Qt安装Windows调试器
  11. cocos2dx进阶学习之屏幕适配
  12. AutoCAD的卸载后重新安装,删除注册表的详细过程
  13. 使用Python+百度AI把文字转成语音
  14. HTML中怎么将播放器隐藏显示,HTML不显示播放器代码
  15. for循环的经典例题
  16. 2015年计算机大会----顶级盛宴
  17. WIN7 直装版安装教程
  18. c语言入门经典+第5版+习题答案,C语言入门经典(第5版)
  19. 侯捷C++->参数传递与返回值
  20. 【问题解决】win服务器磁盘初始化

热门文章

  1. 数据仓库、OLAP和数据立方体
  2. verilog练习:hdlbits网站上的做题笔记(8)
  3. Java 通过URL获取页面快照十种方式解读
  4. 没解锁的一加手机刷Recovery的方法
  5. 小满 | 清和暑夏,小得盈满
  6. qt+opencv进行七巧板识别应用(三)
  7. play框架2.5.6教程——使用play控制台
  8. Oracle的Connect By用法及理解
  9. 中国卫星互联网产业发展现状调研与投资前景评估报告2021年版
  10. Python:for循环语句