GPU在ANSYS高性能仿真计算中的应用
1、什么是GPU
GPU即图形处理器,是为了完成计算任务而设计的处理器,有总线和外界联系,有自己的缓存体系,以及数字和逻辑运算单元。
GPU和我们所熟知的CPU的区别在于存在于片内的缓存体系和数字逻辑运算单元的结构差异:CPU虽然有多核,但总数没有超过两位数,每个核都有足够大的缓存和足够多的数字和逻辑运算单元,并辅助有很多加速分支判断甚至更复杂的逻辑判断的硬件;GPU的核数远超CPU,被称为众核(NVIDIA Fermi有512个核)。每个核拥有的缓存大小相对小,数字逻辑运算单元也少而简单(GPU初始时在浮点计算上一直弱于CPU)。
CPU擅长处理具有复杂计算步骤和复杂数据依赖的计算任务,如分布式计算,数据压缩,人工智能,物理模拟,以及其他很多计算任务等。GPU最初是为了视频游戏而产生的(至今其主要驱动力还是不断增长的视频游戏市场),在三维游戏中常常出现的一类操作是对海量数据进行相同的操作,如:对每一个顶点进行同样的坐标变换,对每一个顶点按照同样的光照模型计算颜色值。因此,GPU的众核架构非常适合把同样的指令流并行发送到众核上,采用不同的输入数据执行。在2003-2004年左右,图形学之外的领域专家开始注意到GPU与众不同的计算能力,开始尝试把GPU用于通用计算(即GPGPU)。
GPU 加速计算是指同时采用图形处理单元(GPU) 和 CPU,以加快科学、分析、设计、消费者和企业应用程序的速度。GPU 加速器于 2007 年由 NVIDIA 率先推出,现已在世界各地为政府实验室、大学、公司以及中小型企业的高能效数据中心提供支持。GPU 能够为从汽车、手机和平板电脑到无人机和机器人等平台的应用程序加快速度。
2、GPU在ANSYS高性能仿真模拟中的应用
ANSYS与 NVIDIA密切合作,以确保在 ANSYS 并行软件上运行的模拟能够达到性能。NVIDIA GPU 支持下列产品:
- 结构:ANSYS Mechanical 17.0支持全套特性,其中包括在多颗 GPU上运行;
- 流体:ANSYS Fluent 17.0能够为基于压力的耦合解算器和辐射传热模型提供GPU支持;
- 电磁:ANSYS HFSS 17.0支持瞬态流动仿真计算瞬时求解器。
现在利用 NVIDIA GPU 加速 ANSYS 模拟比以往任何时候都更加容易。在 17.0 版本中,所有的 HPC 许可产品(HPC、HPC Pack、HPC Workgroup)均支持 GPU。具体而言,在许可证要求这方面,每一路 GPU 被视为一个 CPU 核心。如此一来,利用现有 HPC 许可证再加上 NVIDIA GPU,即可大幅提升模拟效率,从而能够完成更多模拟工作。
3、GPU在ANSYS高性能仿真模拟中的成功应用案例
案例1
当使用 NVIDIA Tesla K20 或的 Tesla K40 GPU 时,ANSYS Mechanical 17.0 可实现大幅性能提升。 利用工作站中的 NVIDIA Tesla K40,ANSYS Mechanical 用户在大型模型上可实现更高的吞吐量。单块 K40 计算卡可加速 12M 自由度的大型模型,与单纯使用CPU相比可实现2倍性能提升。
案例2
ANSYS Fluent 17.0 现已支持多 GPU,能够在 CFD 模拟中实现更高的效率。 这种性能增强归功于创新的 GPU 加速求解器和 ANSYS 17.0 中全新的许可方案,该求解器(叫做 AmgX)由 NVIDIA 和 ANSYS 合作开发。Fluent 17.0 中的当前软件能够加速基于压力的耦合流体求解器,从而可加快 CFD 模拟的流体部分。 只要为现有的 HPC 基础架构添加 Tesla K20、Tesla K20X 或 Tesla K40 GPU,即可享受到这些好处。它经专门设计,可在集群配置中具备多颗 GPU 的多个节点上运行,就像在 CPU 系统上运行一样。
下列图表对比了Tesla K40 GPU与CPU在ANSYS Fluent 15.0中的性能,软件是在集群上运行的,所模拟的是一种大型空气动力学情形。
4、总结
高性能计算(HPC&GPU)是未来仿真计算的发展趋势,GPU 作为推动高性能计算的驱动力,是高性能、低功耗的完美结合。
参考文献
【1】《GPU在ANSYS高性能仿真计算中的应用》,微信公众号:ANSYS学习与应用,2017-01-07