Merge pull request #436 from Supnuts/patch-1

Update 第十五章_异构运算、GPU及框架选型.md
This commit is contained in:
scutan90 2019-08-29 21:29:35 +08:00 committed by GitHub
commit fdb6921033
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 3 deletions

View File

@ -4,14 +4,14 @@
# 第十五章 异构计算, GPU和框架选型指南 # 第十五章 异构计算, GPU和框架选型指南
深度学习训练和推理的过程中,会涉及到大量的向量(vector),矩阵(matrix)和张量(tensor)操作通常需要大量的浮点计算包括高精度在训练的时候和低精度在推理和部署的时候。GPU 作为一种通用可编程的加速器最初设计是用来进行图形处理和渲染功能但是从2007年开始英伟达(NVIDIA)公司提出了第一个可编程通用计算平台GPGPU同时提出了CUDA框架从此开启了GPU用于通用计算的新纪元。此后不计其数的科研人员和开发者对各种不同类型的算法用CUDA进行部分改写从而达到几倍到数百倍的加速效果。尤其是在机器学习特别是深度学习的浪潮来临后GPU加速已经是各类工具实现的基本底层构架之一。本章里会简单介绍GPU的基本架构性能指标框架选择等等和深度学习相关的内容。 深度学习训练和推理的过程中,会涉及到大量的向量(vector),矩阵(matrix)和张量(tensor)操作通常需要大量的浮点计算包括高精度在训练的时候和低精度在推理和部署的时候。GPU 作为一种通用可编程的加速器最初设计是用来进行图形处理和渲染功能但是从2007年开始英伟达(NVIDIA)公司提出了第一个可编程通用计算平台GPU同时提出了CUDA框架从此开启了GPU用于通用计算的新纪元。此后不计其数的科研人员和开发者对各种不同类型的算法用CUDA进行部分改写从而达到几倍到数百倍的加速效果。尤其是在机器学习特别是深度学习的浪潮来临后GPU加速已经是各类工具实现的基本底层构架之一。本章里会简单介绍GPU的基本架构性能指标框架选择等等和深度学习相关的内容。
## 15.1 什么是异构计算? ## 15.1 什么是异构计算?
异构计算是基于一个更加朴素的概念”异构现象“也就是不同计算平台之间由于硬件结构包括计算核心和内存指令集和底层软件实现等方面的不同而有着不同的特性。异构计算就是使用结合了两个或者多个不同的计算平台并进行协同运算。比如比较常见的在深度学习和机器学习中已经比较成熟的架构CPU和GPU的异构计算;此外还有比较新的Google推出的协处理器TPU根据目的而定制的ASIC可编程的FPGA等也都是现在在异构计算中使用比较多的协处理器。而本章中会着重介绍和深度学习共同繁荣的图形加算器也就是常说的GPU。 异构计算是基于一个更加朴素的概念”异构现象“也就是不同计算平台之间由于硬件结构包括计算核心和内存指令集和底层软件实现等方面的不同而有着不同的特性。异构计算就是使用结合了两个或者多个不同的计算平台并进行协同运算。比如比较常见的在深度学习和机器学习中已经比较成熟的架构CPU和GPU的异构计算;此外还有比较新的Google推出的协处理器TPU根据目的而定制的ASIC可编程的FPGA等也都是现在在异构计算中使用比较多的协处理器。而本章中会着重介绍和深度学习共同繁荣的图形加算器也就是常说的GPU。
## 15.2 什么是GPGPU ## 15.2 什么是GPU
GPU,就如名字所包含的内容原本开发的目的是为了进行计算机图形渲染而减少对于CPU的负载。由于图像的原始特性也就是像素间的独立性所以GPU在设计的时候就遵从了“单指令流多数据流SIMD”架构使得同一个指令比如图像的某种变换可以同时在多一个像素点上进行计算从而得到比较大的吞吐量才能使得计算机可以实时渲染比较复杂的2D/3D场景。在最初的应用场景里GPU并不是作为一种通用计算平台出现的直到2007年左右一家伟大的公司将GPU带到通用计算的世界里使得其可以在相对比较友好的编程环境CUDA/OpenCL里加速通用程序成了可能。从此之后GPU通用计算也就是GPGPU就成了学界和工业界都频繁使用的技术在深度学习爆发的年代里GPGPU成了推动这股浪潮非常重要的力量。 GPU,就如名字所包含的内容原本开发的目的是为了进行计算机图形渲染而减少对于CPU的负载。由于图像的原始特性也就是像素间的独立性所以GPU在设计的时候就遵从了“单指令流多数据流SIMD”架构使得同一个指令比如图像的某种变换可以同时在多一个像素点上进行计算从而得到比较大的吞吐量才能使得计算机可以实时渲染比较复杂的2D/3D场景。在最初的应用场景里GPU并不是作为一种通用计算平台出现的直到2007年左右一家伟大的公司将GPU带到通用计算的世界里使得其可以在相对比较友好的编程环境CUDA/OpenCL里加速通用程序成了可能。从此之后GPU通用计算也就是GPU就成了学界和工业界都频繁使用的技术在深度学习爆发的年代里GPU成了推动这股浪潮非常重要的力量。
## 15.3 GPU架构简介 ## 15.3 GPU架构简介