1 年

白金会员

已认证

技术干货丨如何选用显卡 (GPU) 开展EDEM的计算?

由于离散单元法的特性,EDEM软件计算量大,对计算设备要求较高。一个计算能力强的计算设备可在更短的时间完成计算任务,加速业务进程,提高业务效率。


过去以来,中央处理器 (CPU) 一直被用作计算设备。然而,随着计算机图形处理器 (俗称显示卡或者显卡,GPU) 的技术更新,GPU也可用于计算,且在特定的计算场景中发挥出 (远) 优于CPU的计算性能。这包括EDEM离散单元法计算场景。


本文将简单讨论GPU计算在EDEM中的应用,以及用于EDEM计算的GPU选取。


用于EDEM计算的GPU选取


为什么要用GPU开展EDEM计算?

GPU与CPU的显著区别在于,前者可同时并行计算的核心数高 (多达数千),但单个核心时钟频率 (与计算速度正相关) 较低;后者核心数少 (几十个),但单个核心始终频率高。一个比喻是,GPU仿佛是一个小学数千名小学生,而CPU是这所小学的数十名老师。对于单一流程的任务而言,一个老师的处理速度胜过一个小学生;但对于诸如完成1000000道口算题这类可分割的计算任务而言,数千小学生并行开动,将胜过数十名老师。


离散单元法就是可分割的计算任务,每一时间步对1000000个颗粒单元的处理,就好比完成1000000道口算题。此时GPU相比CPU将具有显著优势。鉴于上述原因,自EDEM 2019开始,支持GPU运算。当然,实际计算机系统中,GPU由CPU统筹和管辖,如同老师们需要准确分配不同的口算题给具体的小学生。


EDEM GPU计算架构

目前EDEM GPU求解器使用Nvidia CUDA实现,已支持多球团簇 (multi-sphere)、胶囊体 (sphero-cylinder) 和多面体 (polyhedral) 全部三种颗粒形态,并已全面支持API自定义模型,计算效率与内置模型无异。Nvidia CUDA是全球主流GPU高性能计算 (HPC) 架构,历史最为悠久,在国际上具有广泛的用户基础,迭代更新快。


然而,Nvidia CUDA仅支持Nvidia品牌的显卡,诸如AMD等品牌的显卡无法使用Nvidia CUDA进行计算,也无法使用EDEM GPU计算。(先前EDEM GPU求解器使用OpenCL架构实现,OpenCL支持Nvidia和AMD等全品类显卡。但OpenCL已停止更新,鉴于此,EDEM最新版GPU运算已不再支持OpenCL求解器。)


EDEM 对显卡的最低配置要求如下:

1.支持CUDA,且计算能力支持版本3.5以上 (详见CUDA GPUs - Compute Capability | NVIDIA Developer)。除个别极为古老的显卡 (如Nvidia GTX系列),基本都满足该条件。

2.驱动程序中,CUDA版本11.0以上。


对EDEM计算而言,几万到十几万颗粒的计算规模,选择普通家用显卡 (如游戏显卡) 足以。后文会详述显卡的选取。


EDEM GPU计算架构

EDEM GPU的计算精度有三种模式:

1.双精度 (double precision);

2.单精度 (single precision);

3.混合精度 (hybrid precision)。


这是与GPU的精度模式相匹配的。


在计算机中,小数多由浮点数 (floating point number) 表示。浮点数以科学计数法表示小数,包含若干位有效数字 (可正可负) 和一个整数指数 (可正可负),如 -1.2E-2 表示小数 -0.012。在计算机中,有效数字和指数整合在一起,以二进制形式存储,为一个浮点数。


单精度和双精度浮点数的区别在于有效数字位数不同。这也直接决定了二者所占存储空间不同。


单精度 (FP32):使用32位二进制 (4字节) 表示,有效数字7位,适用于大多数科学计算和通用计算任务。


双精度 (FP64):使用64位二进制 (8字节) 表示,有效数字15位,适用于需要更高精度计算的科学和工程应用。


对于离散单元法来说,尽可能使用双精度FP64计算,可最大程度保证工程计算精度。曾有文献指出,有学者使用侠盗猎车手5的三维引擎——R星 (Rockstar) 进行离散元计算,但由于引擎只支持单精度FP32,计算误差发散严重,计算结果失真较大。


目前计算机的CPU均支持64位双精度计算。但对于消费级GPU显卡,64位双精度运算由于使用场景较少 (大多数为一般通用计算任务),厂商为了降低售价提高销量,削弱了消费级GPU的FP64能力 (但Nvidia RTX 30系以上消费级显卡基本保留部分FP64能力),导致这些显卡双精度计算能力受限。


对于这些显卡,在使用时需要考虑更换精度模式保证计算速度。对于Nvidia顶尖显卡,如A100 (800)、H100 (800) 等,这些显卡专供HPC科学计算,FP64能力不会削减,因此直接采用双精度模式计算即可。而对于桌面级显卡例如 Nvidia RTX 30/40 系显卡 (如4090等),双精度模式受限,需适当降低精度保证计算效率。尤其是在试算或者粗略计算大概结果的场景,快速计算十分必要。此时,降低精度快速出结果,对于业务而言至关重要。


混合精度模式 (hybrid precision) 为Nvidia特色技术,可根据GPU状况,智能对浮点数据指定单双精度策略。可以在效率和精度之间取得最佳平衡。


多GPU使用策略

最新的EDEM版本已支持调度多个显卡 (GPU) 进行并行计算。依旧以小学作比喻,这就仿佛将一个口算任务分配给两个小学完成。


一般而言,多GPU仅在问题规模特别大时使用。因为计算过程中,GPU之间会通信,通信成本较大。因此,尽可能使用单个GPU进行计算。


但是如果问题规模特别大,例如数百万颗粒的时候,单GPU可能面临存储空间不足的情况 (离散单元法不仅计算量大,存储空间占用也很大)。目前主流计算机内存条 (RAM) 高达32-64GB,但是一张 30 或者 40 系的Nvidia显卡,其显存 (VRAM) 只有几个GB。EDEM GPU计算时,颗粒和接触信息被存入显存进行计算,如果问题规模足够大,显存可能会不足,从而导致无法计算。此时就可以考虑多GPU并行策略,通过多张显卡并行,来分担计算任务,确保每张卡显存容量足够完成对应分块的计算。


但需要考虑多张显卡采购的成本,是否优于单张高显存容量的显卡 (如A100,单张80GB)。还是那句话,显卡间通信速度有限,尽可能使用单张卡进行计算。


EDEM GPU计算表现

以下是不同工况的仿真、分别使用12线程CPU与GPU计算时,EDEM的计算速度。为Altair自测得到。可以发现,使用CUDA GPU计算可以最大程度提升EDEM的计算效率,相比CPU计算提速数十倍。


094030_276097_jswz.jpg

表1 计算工况


094048_779942_jswz.png

图1 EDEM CPU与GPU计算速度对比 (CPU为12线程)


选择GPU显卡用于EDEM计算,对于提升工程效率至关重要;而我们要如何选择GPU显卡呢?

用于EDEM计算的GPU显卡,主要关注以下几个指标:

  • 时钟频率 (MHz) 与内核数,二者均与计算速度正相关;

  • FP32 与 FP64 性能 (单位: TFLOPS),直接决定显卡计算浮点小数多快;

  • 显存带宽 (GB/s),决定GPU与CPU通信速度,通信速度太慢可能会成为瓶颈;

  • 显存大小 (GB),将决定单卡可承担的最大计算规模。


Altair 也做了一些计算测试供参考:

搅拌器模型,生成1,000,000颗粒,生成速度100,000/s,颗粒初始下落速度3m/s (图2)。以12线程CPU为基准计算速度,在颗粒生成计算过程中,单卡V100和单卡RTX ada 6000的加速比分别为4.5和7.2。而在颗粒搅拌计算过程中,使用双卡V100和双卡RTX ada 6000仿真,加速比相比单卡近乎加倍。双卡并行计算的效率几乎成倍增加。


微信图片_20250226094004.png

(1) 仿真工况


094147_216953_jswz.png

(2) 颗粒生成加速比


094158_455537_jswz.png

(3) 颗粒搅拌加速比


而关于Nvidia RTX 30-40系显卡的计算效率对比详见图3和表2。图3可用于选购显卡时参考。


094215_337846_jswz.jpg

表2 GPU显卡计算用时对比


094231_000605_jswz.png

图3 不同显卡 (包含多卡) 加速比对比 (以WS4075为基准)


需要说明的是,GPU计算受到CPU、内存等电脑配置因素影响,实际计算用时可能与上述结果有出入。如对显卡采购以及显卡和EDEM适配有疑问,请联系Altair 技术工程师,我们竭诚为您服务。


A

申请免费试用

如您对 Altair EDEM 感兴趣

欢迎扫描二维码申请免费试用:


094317_524018_jswz.png


相关阅读:

1. How to select a GPU (Graphics Processing Unit) for EDEM - Altair Unlimited, EDEM - Altair Products - Altair Community

2. 10 Common Questions about EDEM GPU Answered - EDEM - Altair Products - Altair Community


关于 Altair 澳汰尔

Altair(纳斯达克股票代码:ALTR)是计算科学和智能领域的全球领导者之一,在仿真、高性能计算 (HPC) 和人工智能等领域提供软件和云解决方案。Altair 能使跨越广泛行业的企业们在连接的世界中更高效地竞争,并创造更可持续的未来。


公司总部位于美国密歇根州,服务于16000多家全球企业,应用行业包括汽车、消费电子、航空航天、能源、机车车辆、造船、国防军工、金融、零售等。

澳汰尔  2025-02-26  |  阅读:42
最新文章
更多  
推荐产品 供应产品

分类

留言咨询

留言类型

需求简述

联系信息

联系人

单位名称

电子邮箱

手机号

图形验证码

点击提交代表您同意《用户服务协议》《隐私协议》