中科大:基于单GPU的大规模微结构设计框架(含开源代码)

以下文章来源于:复合材料力学

block背景

微结构材料是由三维空间中周期性重复排列的单胞组成的材料,通过改变单胞的形状和拓扑,可以获得具有丰富物理性质的材料,因此在航空,生物医疗等领域都有广泛应用(如下图)。求解逆均匀化问题是设计微结构材料的一种强有力的方法,这其中包括基于密度的,基于等几何分析的,基于双向结构演化的以及水平集方法。

micro construction图1 微结构的广泛应用。航空航天(左)和仿生骨植入支架(右)

为了得到性能更加优异的材料,需要高分辨率的网格以扩大设计空间,由此带来巨大的算力和存储消耗。目前有求解2D逆均匀化问题的MATLAB开源框架供学术研究,但是当问题规模变大或者应用到3D问题中时,求解速度会大大降低或者由于内存不足无法进行优化。另外还有基于PetSc的开源拓扑优化框架可以应用到求解3D逆均匀化问题中,但是他们需要在高性能计算中心(HPC)的算力支持下达到高效并行以减小运行时间,单机运行效率仍然不高。

block思路与挑战

目前家用电脑的CPU并不足以高效求解3D逆均匀化问题,为了使得研究人员和设计者能在家用电脑上就能快速地完成微结构设计,需要利用GPU的算力。但为了使算法在GPU上高效并行需要解决以下几个问题:

  • 设计一个高效内存的布局,GPU的运行效率非常依赖数据在内存上的布局和线程对数据的访问模式。
  • GPU的显存容量不足以处理高分辨率问题(比如网格精度为512^3)。
  • 微结构设计需要考虑各种需求,比如优化体积模量,剪切模量,或者优化泊松比等等,同时研究者们也提出各种材料插值方法供选择。
  • 框架的接口需要足够友好以方便用户扩展。

block解决方案

为了解决上述问题,作者提出一套在GPU上求解大规模逆均匀化问题的框架。该框架使用C++和CUDA编程语言编写,通过利用统一内存和混合精度策略,减小了对GPU显存容量的需求。由于混合精度带来的精度损失,求解过程会出现数值问题,作者通过对矩阵零空间的处理来避免。同时也设计了合理内存布局以及核函数来提高并行效率。为了满足用户多样化的设计需求,作者在该框架基础上设计了一套自动微分功能的接口,用户只需定义自己的插值函数和目标函数而不用再去编写繁琐的灵敏度分析代码,提高了框架扩展性并减少用户出错的可能。

block实验结果

作者对设计区域进行了512^3分辨率的离散,并进行了三种不同目标函数的优化,结果如下图所示。在三个实验中,该框架的运行在NVIDIA GeForce GTX 1080Ti显卡上,平均每步迭代需要不到40s。

GPU_2图2 高分辨率微结构优化结果

在分辨率128^3下,该框架可以在不到3分钟内完成各种目标函数的优化,而显存峰值用量不到500MB。下图展示了部分结果,从上到下分别为体积模量,剪切模量,泊松比的优化结果。

GPU_3图3 微结构的优化结果

目前,该工作已被Structural and Multidisciplinary Optimization期刊接收。论文作者为中国科学技术大学 张迪,翟晓雅,刘利刚,傅孝明

原始文献:
Di Zhang, Xiaoya Zhai*, Ligang Liu, Xiao-Ming Fu. An Optimized, Easy-to-use, Open-source GPU Solver for Large-scale Inverse Homogenization Problems. Structural and Multidisciplinary Optimization 2023.
原文链接:
https://ustc-gcl-f.github.io/
论文开源代码地址:

https://github.com/lavenklau/homo3d

知之既深,行之则远。基于全球范围内精湛的制造业专家智囊网络, 为业界提供全球视角的增材与智能制造深度观察。有关增材制造领域的更多分析,请关注 发布的白皮书系列。


白皮书下载 l 加入 QQ群:106477771
网站投稿 l 发送至2509957133@qq.com
欢迎转载 l 转载请注明来源 l 链接到 网站原文

分享:

你可能也喜欢...

Baidu
map