2024年3月14日发(作者:琴凡儿)
一、GPGPU的定义与原理
GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。GPU计算或GPGPU
就是利用图形处理器(GPU)来进行通用科学与工程计算。GPU专用于解决可表示为数据并
行计算的问题——在许多数据元素上并行执行的程序,具有极高的计算密度(数学运算与存
储器运算的比率)。GPU计算的模式是,在异构协同处理计算模型中将CPU与GPU结合起来
加以利用。 应用程序的串行部分在CPU上运行,而计算任务繁重的部分则由GPU来加速。 从
用户的角度来看,应用程序只是运行得更快了。因为应用程序利用了GPU的高性能来提升性
能。
在过去几年里,GPU的浮点性能已经上升到Teraflop级的水平。GPGPU的成功使CUDA
并行编程模型相关的编程工作变得十分轻松。 在这种编程模型中,应用程序开发者可修改
他们的应用程序以找出计算量繁重的程序内核,将其映射到GPU上,让GPU来处理它们。 应
用程序的剩余部分仍然交由CPU处理。 想要将某些功能映射到GPU上,需要开发者重新编
写该功能,在编程中采用并行机制,加入“C”语言关键字以便与GPU之间交换数据。 开发
者的任务是同时启动数以万计的线程。 GPU硬件可以管理线程和进行线程调度。英伟达™
Tesla(NVIDIA® Tesla)20系列GPU基于“Fermi”架构,这是最新的英伟达™ CUDA(NVIDIA®
CUDA)架构。 Fermi专为科学应用程序而进行了优化、具备诸多重要特性,其中包括:支
持500 gigaflop以上的IEEE标准双精度浮点硬件、一级和二级高速缓存、ECC存储器错误
保护、本地用户管理的数据高速缓存(其形式为分布于整个GPU中的共享存储器)以及合并
存储器访问等等。
"GPU(图形处理器)已经发展到了颇为成熟的阶段,可轻松执行实际应用程序并且其运行速
度已远远超过了使用多核系统时的速度。 未来计算架构将是并行核心GPU与多核CPU串联
运行的混合型系统。"
中科院基因组研究所将在当今生物信息学领域得到广泛应用的BLAST算法向GPU进行了
移植。这是一套针对DNA、蛋白序列数据库的序列查询算法和软件包。尽管BLAST处理少量
序列的速度不慢,但随着DNA侧序技术的飞速发展,研究人员可以在短短几天内得到海量序
列数据,这样,对这些数据的分析就成了瓶颈。通过从串行到并行的转变,BLAST算法成功
在GPU上得以实现,大大提升了效率。根据中科院的实践结果,基于NVIDIA Tesla平台的
BLAST软件中的一个关键模块运行速度比单个CPU快35倍。
基于GPU,中科院过程所建立了一台自己的超级计算系统。与通用系统比较,运营系统
成本从约2亿元降到不到2000万元,峰值能耗从约1.5兆瓦降至不到0.3兆瓦,占地面积
也明显减少,然而其效率却很高。在对中石化清洁汽油工艺的放大和优化模拟程序中,进行
内部结构优化时,单CPU的处理效率为每天计算可以模拟4~5秒现实时间,而单GPU在一
个小时内就可模拟3~5秒现实时间。
国内最快的超级计算机天河一号也采用了GPU处理器,其三分之二的计算能力由GPU
处理器提供。
三、成功案例
1、粒子碰撞模拟——中科院过程所
• 基于分子动力学的粒子运动模拟软件
• GPGPU——ATI HD4870x2
• 加速比:~17x
2、蛋白质分析(MS-Alignment)——中科院网络中心
• 62346条质谱数据/107962条蛋白质数据
• GPGPU——Nvidia Tesla C2050
• 加速比:~100x
.
3、生物电镜——生物物理所
• 移植EMAN CPU程序
• GPGPU——Nvidia Tesla C2050
• 加速比:~5x
4、基于合成波地震成像中波场延拓——BGP
• 通过对计算任务进行分割,动态负载均衡
• GPGPU——Nvidia Tesla C2050
• 性能提升30%~50%
5、基于时域有限差分方法(FDTD) 的电磁辐射数值模拟
• 通过MPI/OpenMP/CUDA实现多GPU并行
• GPGPU——Nvidia Tesla C2050
• 加速比: 小算例~25x/大算例~50x
6、实时业务处理系统——电科院
• 实现GPU平台FFT
• GPGPU——Nvidia Tesla C2050
• 加速比: ~10x
6、稠密矩阵求解(DGEMM)
• GPGPU——C2050
• 加速比: ~8x
• 应用领域
• 流体力学
• 结构力学
7、稀疏矩阵与矢量的乘积运算(SpMV)
• 1MB矩阵规模
• GPGPU——C2050
• 加速比: ~10x
• 应用领域
• 数值天气预报
• 生物分子建模
四、计算流体力学的GPGPU
目前正在进行的针对纳维—斯托克斯(Navier-Stokes)模型以及Lattice Boltzman方法
的几个项目已经表明,利用支持CUDA的GPU能够实现大幅的速度提升。这一工作在下面
内容中进行了说明,开始部分为图表,接下来是技术报告的链接。利用GPU进行的天气建
模以及海洋建模工作也在进行之中。
不可压缩的Navier-Stokes
Thibault 以及 Senocak
Lattice Boltzman Methods
Tolke 以及 Krafczyk
采用英伟达™ CUDA(NVIDIA® CUDA)技术的CFD独立软件供应商以及应用程序(统计于
2010年)
独立软件供应商(ISV) 描述
ACUSIM
GPU优势
2倍速度提升: 更快得出更精确的结果以
便进行工程分析
2倍速度提升: 在更短时间内即可得出更
通用CFD流量解算器
优化塑料零件与注塑模具的设计 Autodesk Moldflow
多的设计可能,以便改善最终产品
Prometech Software
Particleworks
对海啸或泥流等自由表面流的流体模可将模拟时间从一周缩短至一天
拟
包含各种CFD方法,例如统一网格、
物理效果以及计算方法
计算固体内或固体周围的物理流动效
果
免费、开源的CFD软件,具有各种特
性
Metacomp CFD++
FluiDyna LBultra
OpenFOAM (多家开发
商)
CUDA GPU可用的计算流体动力学(CFD)软件
OpenCurrent:由CUDA加速的基于规则网格区域的PDE(偏微分方程)解决方案
开源数据库
Sailfish:基于Lattice Boltzman方法的 CFD Solver
ANDSolver:处理多面体非结构化网络(Unstrcutred Mesh)中的欧拉方程(Euler
Equation)
与OpenFOAM关联的PCG 和BIGSTAB Linear Iterative Solver数据库
Elegant Mathematics: Boltzmann Solver, Conjugate Gradient, GMRES
从VSG MeshViz XLM以及Avizo Wind非结构化的模拟数据中进行字段与特性抽取
(PDF)
五、小规模GPGPU测试
为验证GPGPU技术的真实能力,我自己购买了一块支持GPU计算
的显卡(约600元),使用MATLAB的GPU跑分程序测试了GPU与CPU
在计算相同规模矩阵时的计算能力。以单精度为例,测试中CPU为
Intel core i5 650 核处理器,主频为3.2Ghz,该处理器包含4个
核。用于测试的GPU显卡为NVIDIA GTS450显卡,含192个流处理器。
Matlab通过计算处理器用于求解矩阵(4096*4096)求逆的时间来估
算计算速度。结果如图所示。
以教研室的单节点为例,估算其峰值计算速度为约(4cpu*单cpu
峰值计算速度):
4*30Gflop=120Gflop(1e12次/秒)
与GTS450的峰值速度相当,考虑到GTS450的价格与服务器的价格,
可较其优劣。而一块专门用于GPGPU计算的显卡(Nvidia Tesla
C2050)其单精度计算峰值速度可以达到1.0Tflops,其价格月为1.3
万元。因此个人认为在5年内基于GPU的工作站将成为主流。
可参考网站:
/docpage/c54/201108/cuxiao/
/object/tesla_computing_solutions_
2024年3月14日发(作者:琴凡儿)
一、GPGPU的定义与原理
GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。GPU计算或GPGPU
就是利用图形处理器(GPU)来进行通用科学与工程计算。GPU专用于解决可表示为数据并
行计算的问题——在许多数据元素上并行执行的程序,具有极高的计算密度(数学运算与存
储器运算的比率)。GPU计算的模式是,在异构协同处理计算模型中将CPU与GPU结合起来
加以利用。 应用程序的串行部分在CPU上运行,而计算任务繁重的部分则由GPU来加速。 从
用户的角度来看,应用程序只是运行得更快了。因为应用程序利用了GPU的高性能来提升性
能。
在过去几年里,GPU的浮点性能已经上升到Teraflop级的水平。GPGPU的成功使CUDA
并行编程模型相关的编程工作变得十分轻松。 在这种编程模型中,应用程序开发者可修改
他们的应用程序以找出计算量繁重的程序内核,将其映射到GPU上,让GPU来处理它们。 应
用程序的剩余部分仍然交由CPU处理。 想要将某些功能映射到GPU上,需要开发者重新编
写该功能,在编程中采用并行机制,加入“C”语言关键字以便与GPU之间交换数据。 开发
者的任务是同时启动数以万计的线程。 GPU硬件可以管理线程和进行线程调度。英伟达™
Tesla(NVIDIA® Tesla)20系列GPU基于“Fermi”架构,这是最新的英伟达™ CUDA(NVIDIA®
CUDA)架构。 Fermi专为科学应用程序而进行了优化、具备诸多重要特性,其中包括:支
持500 gigaflop以上的IEEE标准双精度浮点硬件、一级和二级高速缓存、ECC存储器错误
保护、本地用户管理的数据高速缓存(其形式为分布于整个GPU中的共享存储器)以及合并
存储器访问等等。
"GPU(图形处理器)已经发展到了颇为成熟的阶段,可轻松执行实际应用程序并且其运行速
度已远远超过了使用多核系统时的速度。 未来计算架构将是并行核心GPU与多核CPU串联
运行的混合型系统。"
中科院基因组研究所将在当今生物信息学领域得到广泛应用的BLAST算法向GPU进行了
移植。这是一套针对DNA、蛋白序列数据库的序列查询算法和软件包。尽管BLAST处理少量
序列的速度不慢,但随着DNA侧序技术的飞速发展,研究人员可以在短短几天内得到海量序
列数据,这样,对这些数据的分析就成了瓶颈。通过从串行到并行的转变,BLAST算法成功
在GPU上得以实现,大大提升了效率。根据中科院的实践结果,基于NVIDIA Tesla平台的
BLAST软件中的一个关键模块运行速度比单个CPU快35倍。
基于GPU,中科院过程所建立了一台自己的超级计算系统。与通用系统比较,运营系统
成本从约2亿元降到不到2000万元,峰值能耗从约1.5兆瓦降至不到0.3兆瓦,占地面积
也明显减少,然而其效率却很高。在对中石化清洁汽油工艺的放大和优化模拟程序中,进行
内部结构优化时,单CPU的处理效率为每天计算可以模拟4~5秒现实时间,而单GPU在一
个小时内就可模拟3~5秒现实时间。
国内最快的超级计算机天河一号也采用了GPU处理器,其三分之二的计算能力由GPU
处理器提供。
三、成功案例
1、粒子碰撞模拟——中科院过程所
• 基于分子动力学的粒子运动模拟软件
• GPGPU——ATI HD4870x2
• 加速比:~17x
2、蛋白质分析(MS-Alignment)——中科院网络中心
• 62346条质谱数据/107962条蛋白质数据
• GPGPU——Nvidia Tesla C2050
• 加速比:~100x
.
3、生物电镜——生物物理所
• 移植EMAN CPU程序
• GPGPU——Nvidia Tesla C2050
• 加速比:~5x
4、基于合成波地震成像中波场延拓——BGP
• 通过对计算任务进行分割,动态负载均衡
• GPGPU——Nvidia Tesla C2050
• 性能提升30%~50%
5、基于时域有限差分方法(FDTD) 的电磁辐射数值模拟
• 通过MPI/OpenMP/CUDA实现多GPU并行
• GPGPU——Nvidia Tesla C2050
• 加速比: 小算例~25x/大算例~50x
6、实时业务处理系统——电科院
• 实现GPU平台FFT
• GPGPU——Nvidia Tesla C2050
• 加速比: ~10x
6、稠密矩阵求解(DGEMM)
• GPGPU——C2050
• 加速比: ~8x
• 应用领域
• 流体力学
• 结构力学
7、稀疏矩阵与矢量的乘积运算(SpMV)
• 1MB矩阵规模
• GPGPU——C2050
• 加速比: ~10x
• 应用领域
• 数值天气预报
• 生物分子建模
四、计算流体力学的GPGPU
目前正在进行的针对纳维—斯托克斯(Navier-Stokes)模型以及Lattice Boltzman方法
的几个项目已经表明,利用支持CUDA的GPU能够实现大幅的速度提升。这一工作在下面
内容中进行了说明,开始部分为图表,接下来是技术报告的链接。利用GPU进行的天气建
模以及海洋建模工作也在进行之中。
不可压缩的Navier-Stokes
Thibault 以及 Senocak
Lattice Boltzman Methods
Tolke 以及 Krafczyk
采用英伟达™ CUDA(NVIDIA® CUDA)技术的CFD独立软件供应商以及应用程序(统计于
2010年)
独立软件供应商(ISV) 描述
ACUSIM
GPU优势
2倍速度提升: 更快得出更精确的结果以
便进行工程分析
2倍速度提升: 在更短时间内即可得出更
通用CFD流量解算器
优化塑料零件与注塑模具的设计 Autodesk Moldflow
多的设计可能,以便改善最终产品
Prometech Software
Particleworks
对海啸或泥流等自由表面流的流体模可将模拟时间从一周缩短至一天
拟
包含各种CFD方法,例如统一网格、
物理效果以及计算方法
计算固体内或固体周围的物理流动效
果
免费、开源的CFD软件,具有各种特
性
Metacomp CFD++
FluiDyna LBultra
OpenFOAM (多家开发
商)
CUDA GPU可用的计算流体动力学(CFD)软件
OpenCurrent:由CUDA加速的基于规则网格区域的PDE(偏微分方程)解决方案
开源数据库
Sailfish:基于Lattice Boltzman方法的 CFD Solver
ANDSolver:处理多面体非结构化网络(Unstrcutred Mesh)中的欧拉方程(Euler
Equation)
与OpenFOAM关联的PCG 和BIGSTAB Linear Iterative Solver数据库
Elegant Mathematics: Boltzmann Solver, Conjugate Gradient, GMRES
从VSG MeshViz XLM以及Avizo Wind非结构化的模拟数据中进行字段与特性抽取
(PDF)
五、小规模GPGPU测试
为验证GPGPU技术的真实能力,我自己购买了一块支持GPU计算
的显卡(约600元),使用MATLAB的GPU跑分程序测试了GPU与CPU
在计算相同规模矩阵时的计算能力。以单精度为例,测试中CPU为
Intel core i5 650 核处理器,主频为3.2Ghz,该处理器包含4个
核。用于测试的GPU显卡为NVIDIA GTS450显卡,含192个流处理器。
Matlab通过计算处理器用于求解矩阵(4096*4096)求逆的时间来估
算计算速度。结果如图所示。
以教研室的单节点为例,估算其峰值计算速度为约(4cpu*单cpu
峰值计算速度):
4*30Gflop=120Gflop(1e12次/秒)
与GTS450的峰值速度相当,考虑到GTS450的价格与服务器的价格,
可较其优劣。而一块专门用于GPGPU计算的显卡(Nvidia Tesla
C2050)其单精度计算峰值速度可以达到1.0Tflops,其价格月为1.3
万元。因此个人认为在5年内基于GPU的工作站将成为主流。
可参考网站:
/docpage/c54/201108/cuxiao/
/object/tesla_computing_solutions_