Part.1
EDEM GPU
更完善的内存管理及更高效的数据传输
EDEM2019.1版本中针对接触模型链中传输的数据量进行优化,降低传输的数据量,提高仿真性能。同时,降低内存使用以使GPU硬件可以运行更大规模的仿真。
Part.2
EDEM API on GPU
在原有功能基础上,EDEM2019.1版本进一步提升GPU运行API程序的性能,主要包括:
mGPU运行API
EDEM mGPU求解器支持运行API程序,用户可用较少的时间运行较大规模的仿真。
EDEM耦合接口兼容性
EDEM2019.1支持通过耦合接口以API方式采用GPU求解EDEM与多体动力学(MBD)及计算流体力学(CFD)耦合仿真。
添加“Particles of Interest”属性
对于一些较为复杂的仿真模型,颗粒体积力模型与颗粒工厂间需要进行数据交换。在EDEM2019.1版本中,通过在颗粒体积力模型中给需要进行后续仿真的颗粒添加“Particles of Interest”属性,并将被添加了属性的颗粒列表传递回CPU,使得GPU与颗粒工厂API和用户自定义属性间的信息传递更简单、方便。该功能可应用于重新定义颗粒大小、改变颗粒属性或完全删除颗粒等。
优化API版本的更新
为保证在后续新的版本发布后不影响当前API版本的使用,EDEM2019.1中对GPU上使用的API版本进行了重新梳理,赋予不同版本API独立性。当前GPU API最新版本为3_1_0。
Part.3
其他性能优化
动态计算域颗粒“冻结”
由于在此前版本中,冻结颗粒和未冻结颗粒之间的接触存在不稳定性,因此在EDEM2019.1版本中,当颗粒被冻结后,颗粒的速度值将会被设置为0,而不再为冻结前最后一次计算得到的速度值。这一改变会使得被冻结颗粒重新恢复运动后力学行为有微小差异。
能量损失计算
EDEM2019.1版本对系统内外能量损失的计算进行了优化以提高能量损失仿真精度。
数据压缩设置
EDEM安装后数据压缩设置默认为关闭状态。虽然这一改变将导致仿真结果文件存储空间变大,但由于无需暂停仿真来进行数据压缩工作,因而在一定程度上能够提高仿真速度。
取消CPUPrime模式
在此前版本中当用户选择使用GPU求解器时,由于并不是所有功能支持GPU求解,因而会触发CPUPrime模式。在这种情况下,EDEM将会使用GPU求解器进行接触检索,采用CPU求解器完成剩下的计算。不同求解器间的数据传递降低了计算性能,影响用户的使用体验。
在EDEM2019.1版本中,随着GPU全面支持API程序运行,需要触发CPUPrime模式的可能性大大降低,因此CPUPrime模式被取消,当出现GPU兼容性问题时,用户会直接得到信息提示。
Tips
关于GPU的十个常见问题
1.什么是EDEM GPU?为什么要使用GPU?
EDEM GPU求解器允许用户在运行EDEM仿真时使用计算机上的图形处理单元(GPU)。与传统CPU不同的是,GPU包含成千上万个求解核心,而离散元方法尤为适合采用这么多数量的核心进行计算。这也就意味着EDEM GPU求解器运行速度更快,用户可以计算CPU上无法完成的较大规模的仿真模型。
2.EDEM GPU采用什么样的架构?
EDEM GPU采用OpenCL语言以获得Windows和Linux操作系统的支持,同时也能够保证用户可以使用各类GPU硬件。换句话说,EDEM GPU支持种类丰富的GPU显卡,如AMD和NVIDIA两大品牌,用户可以根据性价比自行选择。
3.EDEM GPU采用单精度还是双精度?
EDEM GPU采用完全的双精度计算。在EDEM仿真中,浮点运算的最小误差将提高整个的仿真精度,因此,采用双精度计算对提高EDEM仿真精度具有重要意义。
4.推荐的GPU卡有哪些?
最低配置显卡:
NVIDIA GeForce GTX 1080 Ti
NVIDIA GeForce RTX 2080 Ti
NVIDIA TITAN series
NVIDIA Quadro P6000
AMD Radeon Pro WX7100
重点推荐的显卡:
NVIDIA Quadro GV100
NVIDIA Tesla V100
NVIDIA Quadro GP100
AMD Radeon Pro WX9100
GPU显卡的品牌数量以及GPU求解技术一直在发展变化中,在上述推荐的显卡中,最低规格的一般零售价在1000美元,最高配置最高零售价在11000美元。用户在购买和配置GPU显卡时,可以参考GPU Benchmarking docement,该文档中列出了最新GPU求解器的测试情况。一般来说,具有较大的物理存储空间以及较高的FP64性能的显卡在运行EDEM仿真时加速效果都不错。
5.怎样让GPU发挥最大求解效率?
在大多数的仿真中,当颗粒数量超过1W时,GPU的求解效率就会高于CPU,而当颗粒数量超过10W时,用户可以获得更为显著的加速效果。在我们一个包含100W颗粒量的测试案例中,相较于12核CPU求解,采用Nvidia Quatro GV100可以获得12倍的加速效果。对于较大规模的仿真,采用传统的CPU求解可能需要耗费一周的时间,而采用GPU求解,可能只需用不到24小时。
6.有没有案例证明GPU的加速效果?
下面是3个测试案例,分别为物料堆积、料斗卸料以及粉末混合,每个案例中均包含了100W左右的颗粒量。下图展示了不同GPU卡相较于12核和24核CPU的加速效果。
7.什么时候使用多GPU加速求解?
用户在进行EDEM大规模仿真的时候,会选择使用多GPU进行求解。已经有案例表明,相较于单GPU求解,当颗粒数量在500W-1000W之间时,采用2*GPU可以提升30%-40%的求解速度。但对多GPU求解,它最大的优势在于仿真颗粒量达到上亿的工况,因为这种情况下即使配备当前最好的硬件,单GPU计算的物理内存根本无法满足需求。
8.GPU是否支持用户通过API接口自定义物理模型?
EDEM2019 GPU支持API,用户可以使用OpenCL语言在GPU上进行API程序的编写和运行。
9.如何获取EDEM GPU功能的许可?
EDEM GPU求解器直接嵌入在EDEM的仿真环境中 ,添加GPU 许可后即可激活使用。用户可以联系他们的代理商获取GPU许可相关资讯。
10.GPU求解的操作流程是怎样的?
设置并运行GPU求解器流程非常简单,在求解器设置中选择加速求解类型,并按照CPU方式运行EDEM仿真。更多使用方法可参考官网教学视频:eLearning course:Introduction to EDEM2019-lesson14.5和14.6,视频中详细解释了如果使用单GPU及多GPU求解器。