首页/文章/ 详情

用GPU剖网格,到底有多爽?

2月前浏览2777

01 GPU的诞生

1999年底,上市不久的英伟达推出了一款开天辟地的新产品——GeForce 256,被称为世界上第一个GPU。

GPU的全称是Graphic Processing Unit,图形处理单元。在发明之初是为了承担计算机在进行图形渲染时的运算任务。

彼时的英伟达或许没有想到,25年后,自己能够登上全球市值第一的宝座,更不一定能想到,GPU给这个世界带来了翻天覆地的变化。

1999年英伟达发布GeForce(图片来源:NVIDIA)

时间倒退回1962年,MIT的校园内,博士生伊万·萨瑟兰带着SketchPad系统和自己的博士论文宣告了计算机图形学的横空出世。

伊万·萨瑟兰和SketchPad

随后的20年间,计算机图形学不断发展,在科研、工程、影视、游戏等行业结下累累硕果,但是随着要渲染的图形日趋复杂,其计算量越来越大,人们逐渐意识到仅靠CPU的计算能力已经难以支撑庞大的运算量。

最初计算机中的一切任务都是由CPU来进行运算的,CPU是一个十项全能选手,但是架不住活太多太杂,于是开始有人专门开发设备来为CPU“减负”,起初并没有GPU的概念,而是以面向专业领域的图形工作站和图形加速卡为主,但是这些产品与GPU相比都有各自的局限性。

真正让GeForce 256与众不同的是他支持硬件T&L引擎,T&L引擎实现了坐标转换和光源处理功能,这两部分以前是由CPU来负责计算的,工作量较大。当T&L引擎加入GPU后,极大地释放了CPU的运算压力,这一优势使得英伟达在当时已是一片红海的显卡市场中脱颖而出。

在后续的产品迭代中,各个显卡厂家在竞争中不断改良,不仅提升了产品性能,还降低了售价,使得昂贵的显卡逐渐走入寻常百姓家。

02 GPU在工业软件中的应用

起初,GPU仅用于图形渲染,此功能是GPU的初衷,这一点从它的名字就可以看出。

作为计算机图形学的衍生品,工业软件厂商们很快嗅到了新技术的芬芳,如AutoCAD、SolidWorks等软件最早开始利用GPU进行图形渲染,提高三维模型的实时可视化效果和渲染速度。

SolidWorks图形渲染(图片来源:SolidWorks官网)

后来,人们发现GPU这么一个强大的器件只用于图形处理太浪费了,它应该用来做更多的工作,例如浮点运算。浮点运算是现代计算技术的一个重要支柱,它在科学计算、工程设计、人工智能等多个领域发挥着关键作用。但是由于GPU的API都是为图形处理设计的,无法用于通用的计算,所以研究者们就把计算任务做一些处理,包装成图形渲染任务交给GPU计算。

这就诞生了通用计算GPGPU(General Purpose GPU)的概念。

不过这样做有一个缺点,就是你必须有一定的图形学知识,否则你不知道如何包装。于是,为了让不懂图形学知识的人也能体验到GPU运算的强大,英伟达公司又提出了CUDA的概念。

CUDA,通用并行计算架构

CUDA(Compute Unified Device Architecture),通用并行计算架构,是一种运算平台。CUDA使开发者可以使用C语言扩展编写并行计算程序,极大地简化了GPU编程。

随着CUDA和OpenCL等通用计算架构的发展,开发者开始利用GPU的并行计算能力来加速数值求解和复杂计算任务,尤其对于CAE软件来说,GPU强大的计算能力就像一块诱人的蛋糕。不过大多数主流CAE软件的年纪都比GPU大,很多经典的CFD、FEA等算法都是基于CPU串行计算而设计的,当GPU的时代到来时,不同的CAE软件厂商采取了不同的应对策略。

很多老牌仿真软件进行技术改造,以适配GPU的并行架构。

如西门子的STAR-CCM+,在2022年初发布了首个支持GPU的版本,专注于车辆外部空气动力学应用。达索的非线性有限元分析软件Abaqus、电磁仿真软件 CST Studio Suite 、Altair的前处理软件Hypermesh、离散元软件EDEM等也都相继面向GPU进行了优化,计算性能均有几十倍的提升。

除了对已有产品进行改造外,还有的厂商直接针对GPU从头设计开发软件。

例如Ansys 面向GPU从头开始设计了其仿真驱动型设计工具Discovery,Discovery基于GPU计算实现了实时仿真,使得设计师可以在早期评估设计概念,并进行设计迭代和分析,让仿真前置成为了可能。

Ansys Discovery(图片来源:Ansys)

Hexagon的生成式设计软件 MSC Apex Generative Design 也在一开始就借助NVIDIA CUDA框架开发,原生支持GPU,启用GPU加速拓扑结构生成。

Hexagon 使用 GPU 从头开始构建其产品MSC Apex Generative Design (图片来源:Hexagon

除国外商软外,国内的工业软件团队也有人选择了从头设计这条路,比如云境智仿的云端CAE产品Simversus,在软件架构初期时就考虑到对于GPU的适配性,在仿真流程的每个环节都支持GPU计算。

Simversus支持选择GPU或CPU进行计算

除了这些案例外,还已经有国内外上百个CAE软件厂商的CAE应用通过GPU进行加速,根据应用和工作负载不同,结果的交付速度最高可提升100倍

03 GPU在网格剖分上的应用

攻下图形渲染和求解计算两块山头,GPU对于仿真软件的帮助似乎已经功德圆满,但是还有一个重要的阶段不应被遗忘:前处理

前处理包括几何修复、网格剖分、材料属性定义和设置边界条件等环节,其中网格剖分占到仿真前处理时间的30%到70%。对于特别复杂或大规模的模型,甚至达到整个仿真流程时间的一半以上。

在实际工作中,仿真工程师通常先使用CAE软件的自动网格划分功能生成初步网格,同时,使用网格质量检查工具,检查生成的网格是否符合仿真精度和稳定性的要求,然后对关键区域进行手动或半自动的细化和调整,以确保网格质量满足仿真要求。

网格质量检测

随着科技水平的提高,仿真任务日趋复杂,工程人员对于仿真精度和可靠性的要求也越来越高。用一个简单但未必严谨的逻辑来讲,模型的网格密度越高,计算结果越趋近于真实状态。

为了在有限的算力下保障计算精度,仿真工程师们发挥聪明才智,研究出模型简化、分区划分、局部细化等诸多技巧,但是在日趋复杂的模型面前这只是权宜之计。

增加计算能力才是从根本上解决问题的途径,应用GPU便是从算力侧来解决这一问题,和传统求解算法一样,经典的网格剖分算法也是针对CPU的串行计算而设计的,因此要使用GPU,必须对传统网格剖分算法进行适配改造。

04 GPU和CPU差距几何?

如下图,经测试,当使用相同成本的CPU和GPU进行同一模型的网格剖分时,GPU的耗时明显低于CPU,且模型越复杂、网格单元数量越大,这一差距越明显。

CPU和GPU网格剖分对比1

CPU和GPU网格剖分对比2

如下图,3000万级网格模型通过GPU并行剖分只需要几分钟即可完成,而使用同样成本的CPU计算需要1小时左右。

3000万级网格分钟级剖分

除了计算性能外,CPU和GPU的成本和功耗问题也值得考量,GPU处理器通常比CPU处理器更便宜,因此在相同的数据吞吐量下,GPU的成本更低,其所消耗的能源也更低。
随着GPU的普及和性能的提升,越来越多的工作站和高性能计算(HPC)系统开始采用GPU来加速CAE应用,随着CAE软件供应商开始优化他们的应用程序以利用GPU的并行处理能力,GPU的性能优势变得更加明显。

05 GPU并行架构在AI时代的优势

随着GPT、Midjourney等AI产品的问世,AI时代的到来已成为共识。许多CAE厂商正在积极跟进这一趋势,利用AI技术提升仿真性能。例如,通过机器学习来优化设计性能、改进材料模型、加速求解过程和优化网格生成,从而提高仿真精度和效率。
同时,工业大模型和智能求解器的研发也在推进,尽管面临许多挑战,但仍有先行者在勇敢探索。

智能求解器计算案例对比

AI技术的快速发展依赖于高性能计算技术的支持,其中GPU发挥了关键作用。GPU的并行计算能力特别适合深度学习模型的训练和复杂仿真任务。如果CAE软件未来想要充分融入AI技术,改造成适合GPU并行计算的架构是一条关键路径。
因此,能够有效适配GPU的CAE软件在AI时代具备明显的技术优势和市场竞争力。

06 结语

工程仿真领域在不断发展,新技术和新趋势不断涌现。软件的进步离不开硬件的支持,无论是在本地还是在云端,应用 GPU 所带来的效率提升都是显而易见的。

从CPU到GPU的转型不仅是技术的演进,更是工业软件行业思维模式的重大变革。如何在新的技术环境下,重新审视我们的产品,利用新的技术解决用户面临的诸多挑战,为用户创造更多价值,是每一位工业软件从业者应该思考的问题。

你对于新技术在工业软件中的应用有什么疑问或者独特的见解吗?欢迎评论区留言,让我们一起探讨!


相关阅读


来源:云境智仿
HPCHyperMeshMSC ApexAbaqusStar-CCM+非线性动网格通用SolidWorks离散元材料游戏渲染人工智能
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-25
最近编辑:2月前
云境智仿
一家提供云原生CAE仿真技术解决方...
获赞 47粉丝 15文章 47课程 1
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈