写点什么

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

  • 2025-02-26
    上海
  • 本文字数:3183 字

    阅读完需:约 10 分钟

技术干货丨如何选用显卡 (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 对显卡的最低配置要求如下:

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

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


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


EDEM GPU 计算架构


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

双精度 (double precision);

单精度 (single precision);

混合精度 (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 计算提速数十倍。


表 1 计算工况


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 仿真,加速比相比单卡近乎加倍。双卡并行计算的效率几乎成倍增加。


(1) 仿真工况


(2) 颗粒生成加速比


(3) 颗粒搅拌加速比


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


表 2 GPU 显卡计算用时对比


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


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


相关阅读:

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 是计算智能领域的全球领导者之一,在仿真、高性能计算 (HPC) 和人工智能等领域提供软件和云解决方案。Altair 能使跨越广泛行业的企业们在连接的世界中更高效地竞争,并创造更可持续的未来。Altair 服务于 16000 多家全球企业,应用行业包括汽车、消费电子、航空航天、能源、机车车辆、造船、国防军工、金融、零售等。


更多内容欢迎关注 AltairChina 公众号


如您对 Altair EDEM 感兴趣,欢迎关注公众号免费申请部分软件试用

用户头像

Altair 带您走进数据分析的世界-RapidMiner 2024-05-27 加入

Altair 是计算科学和人工智能领域的全球领导者之一, Altair RapidMiner在数据分析和人工智能 (AI) 领域提供软件和云解决方案,致力于帮助企业快速提升数据分析效率,创造数据价值。

评论

发布
暂无评论
技术干货丨如何选用显卡 (GPU) 开展EDEM的计算?_gpu_Altair RapidMiner_InfoQ写作社区