中国教育和科研计算机网
EDU首页 |  中国教育 |   教育资源 |   科研发展 |   教育信息化 |   教育在线 |   CERNET  |   校园之窗
教育信息化

资讯 | 专题 会议 解读 专栏 访谈 项目 数据 招标 企业 产品 CIO 技术 校园信息化 教育装备 下一代互联网

中国教育网 > 教育信息化 技术论坛入口    用户名
密 码 搜 索 
您现在的位置: EDU首页 > 教育信息化 > 集成应用 > 科研应用 > 高性能计算
利用CUDA加速流体计算
http://www.edu.cn   2012-10-08 中国教育网络 作者:田园1 齐记 刘斌杰 周庆国

字体选择:【大】 【中】 【小】

  计算流体力学(Computational FluidDynamics, CFD)是利用计算机和离散化的数值方法对流体力学问题进行数值模拟和分析。CFD是进行传热、传质、动量传递及燃烧、多相流和化学反应研究的核心和重要技术,并已广泛应用于海洋、航天、航空、石油、水利、环境等研究领域。目前,CFD比较常用的数值求解方法都是采用网格计算的方式,比如有限差分法(FiniteDifference Method, FDM)和有限体积法(Fini te Volume Method, FVM)。如果要得到非常精细的流场结构,那么必须使用非常精密的网格。即在计算尺寸固定的情况下,网格数量越多,计算得到的结果就越好。然而,大规模的网格计算又是一个非常耗时的过程,通常都是采用并行计算的方式。图形处理器(Graphic ProcessingUnit,GPU)作为通用计算设备的出现,改变了以往使用多CPU进行并行计算的方式,并且计算的速度更快、成本更低、功耗更小。本文将主要介绍使用GPU加速CFD的可行性及优势。

  什么是CUDA

  CUDA的全称是Compute Unified DeviceArchitecture,即计算统一设备架构,是由著名的半导体生产商nVidia公司推出的一种能以nVidia公司生产的GPU作为通用并行计算设备的平台。GPU为什么能够进行并行计算?首先看一下GPU的架构,如图1所示。

图1 GPU内部SMX架构

  图1是Nvidia公司最新的产品,代号为Kepler的GPU内部SMX的架构。在一个Kepler 核心的GPU内部,总共有15个SMX,每个SMX里面有192个CUDA Core,这个CUDA Core就相当于CPU的运算器。因此,在一个GPU内部总共有2880 个可运算的核心,其单GPU的运算核心数目已经远远超过了一个多核的单CPU。而在CUDA程序执行时,一个SMX上最大可容纳2048个CUDA线程,那么整个GPU便可容纳30720个活动线程。每个SMX 上总共有4 个Wa r pScheduler,每个Warp Scheduler都可以独立将Warp(CUDA每32个线程组成一个Warp,是线程执行的最基本单位)调度到SMX上执行,以保证高并行度。除此以外,每个SMX还拥有65536个寄存器、48KB的Shared Memory用于最大限度提高线程的执行效率。因此,GPU的架构决定了它将拥有非常强劲的计算能力和数据吞吐量。

  图2是GPU单精、双精计算能力与CPU的对比。从中可以看出,Kepler的上一代产品,以Fermi为核心的GeForceGTX 580的单精计算能力已经超过了1.5TFLOPS,基于Kepler核心的CUDA计算设备K10的单精度计算能力已经达到了4.3TFLOPS的理论峰值,而Intel的多核CPU的单精度计算能力甚至不到0.25TFLOPS。虽然GPU在进行双精计算时性能会下降,但是以Fermi为核心的CUDA计算卡双精计算能力仍然远超CPU,而最新的Kepler产品K20的双精计算能力理论峰值已经达到了1.3TFLOPS。因此,从GPU的架构和其计算能力上可以看出,GPU作为通用计算设备,必将带来多倍于CPU的计算速度。

页面功能 【打印】 【关闭】 【我有话说

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备05078770,文网文[2008]228号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com