-
-
-

FLOW-3D | 多相流多物理仿真
FLOW‑3D 是高精度多相流 CFD 仿真软件,依托**Tru‑VOF 自由液面追踪**与**FAVOR 几何表征**两大核心算法,擅长求解复杂三维瞬态自由液面流动问题,助力工程人员完成产品仿真验证与方案迭代,优化设计方案,有效压缩研发周期、降低实物试验成本。
-

HYDRO | 水利土木环境分析软件
FLOW-3D HYDRO 是专为土木、水利、环境、海洋工程打造的专业 CFD 建模解决方案,结合尾矿、多相流及浅水模型的最新技术发展,聚焦多相流相关工程问题的高效精准仿真。
-

M-Star CFD | 生物化工行业搅拌混合分析软件
M-Star 是一款现代计算流体动力学 (CFD) 软件,为科学家和工程师提供第一原理建模工具,可生成与测量数据在功能上无差别的预测结果。
-

Fine Marine | 船舶CFD计算软件
面向船舶设计师和工程师的CFD 软件
-

CharLES | 高保真仿真软件
Fidelity CharLES 是高保真计算流体动力学 (CFD) 求解器,可将大涡模拟 (LES) 的实际应用扩展到航空航天、汽车和涡轮机械的广泛工程应用。它旨在应对最棘手的流体动力学挑战,可准确预测气动声学、空气动力学、燃烧、传热和多相方面 CFD 的传统复杂问题。
-

Fidelity CFD | 旋转机械CFD软件
全面适用于轴流压缩机/涡轮、离心压缩机、向心涡轮、水泵、通风机的CFD软件
-
-
-

ISED | 综合能源规划仿真软件
ISED(Integrated System Energy Designer)是对综合能源系统和微电网进行能源规划和技术经济分析的专业仿真工具。软件覆盖电、热、冷、蒸汽、氢能等能源场景。
-

HOMER | “源网荷储一体化”系统分析软件
HOMER 是美国可再生能源实验室开发出来的产品,有Pro、Grid、Front三个版本,可用于独立微电网到分布式发电和大型公共事业电站,优化混合电力系统的价值,拥有精确、灵活、稳健的技术经济模拟。
-

HOMER Pro | 风光储系统设计与优化软件
HOMER Pro是一款方便易用的微电网软件。从大型地面电站和分布式发电到独立微电网,优化混合电力系统的价值,拥有精确、灵活、稳健的技术经济模拟.
-
-
-

gPROMS | 新一代工艺过程、仿真、设计、优化平台
一款工艺设备及流程进行仿真建模及设计优化的新一代通用过程模拟平台。在gPROMS产品系列中涵盖了化工行业流程模拟、反应器分离器详细设计、生命科学、食品制药、能源电力、油气行业、污水处理、燃料电池等相关专业模块工具,同时外部接口的存在使用户在调用其他软件特征功能时起到事半功倍的效果。
-

MGMS | 数字化综合能源管控软件
西门子数字化综合能源管控平台MGMS是西门子基于数字孪生技术打造的用户侧能源生产与使用相结合的多能流综合能源管控系统。依托于机理模型和数据模型,对系统内的分布式能源设备,能源转换设备(公用动力系统),各类负荷,以及储能设备建立起数学模型,通过人工智能(机器学习)的手段,实现对系统的能源预测(负荷预测 / 发电预测),通过数据处理、模型训练、动态预测和策略优化等一系列步骤,完成对系统内各设备的优化调度,参数优化等高级功能,实现优化运行目标。
-

Celsius EC | 电子产品热仿真软件
Celsius EC Solver (原名 6SigmaET)旨在帮助电子系统设计师快速准确地解决电子产品散热管理问题。Celsius EC Solver 利用强大的计算引擎和网格划分技术,助力设计人员对复杂的设计进行建模和分析,不仅可以降低产品失效风险,还可以优化热管理解决方案,最大程度地提升性能
-
-
-
-
-
GPU 计算到底有什么了不起的?
M‑Star 首席算法开发工程师 Brian DeVincentis 做客节目,与 John 一同探讨:「GPU 计算到底厉害在哪?」
「这是一个非常令人兴奋的发展方向。很期待看到硬件最终会如何反过来影响算法设计 —— 反之亦然。」
在本期节目中,John 和 Brian 讨论了:
- CPU 与 GPU 计算的区别
- 哪些算法适合在 GPU 上运行(哪些不适合)
- 硬件与软件层面的限制
你对 GPU 计算有什么看法?欢迎收听下方播客,并联系我们加入讨论!
访谈正文
John Thomas:今天我们来聊聊 GPU 计算,以及它在计算物理和计算物理建模中的优势。我们今天真正要讨论的核心问题是:GPU 计算到底能带来哪些实实在在的收益?
为了解答这些问题,我们请到了 Brian DeVincentis——M-Star CFD 的首席算法开发工程师,来和我们聊 GPU 计算。过去几年里,Brian 一直负责把我们的代码迁移到 GPU 上,也亲眼见证了因此带来的非常可观的速度提升。
Brian,感谢你的到来。要不要简单介绍一下自己?
Brian DeVincentis:你好 John,谢谢邀请。我叫 Brian DeVincentis,在 M‑Star 工作,主要负责物理仿真软件的开发与 GPU 计算相关工作。
John Thomas:Brian,和我们说说你是怎么成为 GPU 计算领域专家的吧。讲讲你的起点、教育经历,以及你是如何掌握现在这些技能的。
Brian DeVincentis:我从高中就开始接触计算机编程和物理,那时候就产生了兴趣。上大学后,我在卡内基梅隆大学主修机械工程。本科期间,我一边学习物理、工程和输运物理,一边持续学习、提升编程能力。临近毕业时,我把这两个兴趣结合起来,走向了物理、工程与编程结合的方向,也就是数值方法和物理过程数值仿真领域。
那段时间我开始积累 CPU 编程经验,也很幸运 —— 正好赶上 GPU 开始崛起,性能逐渐超越传统 CPU 计算。
John Thomas:嗯,大概是 2010 年代初?
Brian DeVincentis:对,差不多 2010 年代中期。
John Thomas:了解。我记得你后来在德州的一个高性能计算(HPC)中心工作过,对吧?
Brian DeVincentis:是的。那算是我第一份正式工作和研究经历,做的是分子动力学数值模拟。当时还不是 GPU 计算,但我在学习分子动力学背后的数值方法、运行仿真等内容。
John Thomas:我还记得你跟我说过,你做过一个毕业设计项目,用格子玻尔兹曼(lattice‑Boltzmann)算法模拟游动的生物或者鱼之类的?
Brian DeVincentis:没错。那是我第一个格子玻尔兹曼项目。我们用格子玻尔兹曼方法做了不同游动方式的二维仿真,也是我第一次自己编写流体仿真程序。
John Thomas:那时候还是用 CPU 做的,对吧?
Brian DeVincentis:对。
John Thomas:你刚才提到,GPU 大概是八到十年前开始兴起的。先给大家科普一下:** 到底什么是 GPU?** 我知道 CPU 是什么,电脑里都有,英特尔买得到。那 GPU 是什么,又有什么不同?
Brian DeVincentis:GPU 和 CPU 是结构完全不同的硬件。你可以把 CPU 看作串行处理器:它一条指令一条指令地执行,一次只做一件事。
而 GPU 是把同一条指令,同时用在一整批大数据上。也就是说,GPU 是并行计算。这是 CPU 和 GPU 在结构上的核心区别。
John Thomas:所以 CPU 一次做一件事,GPU 是并行做很多事—— 几十、几百、几千件事同时做?
Brian DeVincentis:对,就是这样。CPU 可能有一些向量计算能力,大概十几个、几十个并行通道;而 GPU 可以同时在几千个计算核心上执行运算。
John Thomas:明白了。这和多 CPU 环境类似吗?还是说 GPU 更有优势?
Brian DeVincentis:思路有点像,但芯片设计目标不一样。GPU 芯片专门为大量、简单、重复的计算做了极致优化;而 CPU 设计目标是一次少算点,但更擅长高效处理复杂计算。
John Thomas:所以 GPU 特别擅长对一整批数据,重复做同样的简单计算。
Brian DeVincentis:完全正确。
John Thomas:咱们说点实在的。GPU 比 CPU 到底快多少?假如我桌面上有一块顶尖的科学计算 GPU,相比同价位 CPU,能获得多大的性能提升?
Brian DeVincentis:这个对比不太好一概而论,最好从成本角度看。当然也像我们前面说的,取决于具体算法和是否适配 GPU。但如果你的问题很适合 GPU,在差不多成本下,性能提升可以达到:1~2 个数量级甚至更高。
John Thomas:你是说10~100 倍这种量级?
Brian DeVincentis:对,是数量级。抱歉刚才没说清。
John Thomas:那提升非常大了。就我们软件的实际体验,一块大概 5000~8000 美元的专业科学计算 GPU,速度能比得上256 核甚至 512 核的 CPU 高性能集群。一块好 GPU 只要几千美元,而那样规模的 HPC 要几十万美元。
我觉得这种成本与性能的不对称性非常值得关注,这也是 GPU 在科学计算圈备受关注的原因。
Brian DeVincentis:对。我再补充一点,这种性能提升可以拆成两部分:
第一,每一块钱能买到的算力更高。不管是内存带宽,还是每美元能提供的浮点运算次数,GPU 都远高于 CPU。
第二,所有计算都在同一块芯片上完成。核心之间的通信、数据同步、内存搬运都快得多,因为都在同一块硅片上,不需要在复杂的服务器、交换机系统之间来回传输。
John Thomas:对,通信延迟几乎可以忽略不计,跟 512 核 CPU 集群那种延迟完全不是一个级别。
Brian DeVincentis:没错。
John Thomas:那顺着这个思路,哪些算法适合跑在 GPU 上?因为 GPU 更擅长相对简单的操作,这会不会限制它能高效支持的应用范围?
Brian DeVincentis:是的,算法必须匹配硬件。
如果是高度串行的算法,每一步都依赖上一步结果,那更适合 CPU。如果有大量可以同时完成的计算任务,同一套算法要套用到每一份数据上 ——这就是 GPU 的主场。
John Thomas:明白。我们用的格子玻尔兹曼方法求解非定常纳维‑斯托克斯方程,就很典型。GPU 擅长一次性处理海量信息。除了科学计算,我知道它还被用在机器学习、人工智能等领域。
你觉得这种走向大规模并行、简单计算核心的硬件路线,是一个大趋势,还是只是一时的技术?未来十年我们会更多用这类计算吗?还是说 CPU 会改进,取代这种特殊的 GPU 架构?
Brian DeVincentis:我的判断是:不同硬件会找到各自的擅长场景。到目前为止,CPU 几乎是唯一的通用计算方案,要么用 CPU,要么基本没得选。
现在 GPU 切走了一大块市场,在特定应用领域会成为主流。随着时间推移,还会出现其他计算架构,找到自己的生态位,再从 CPU 或 GPU 那里分走一部分场景。
John Thomas:这个视角很合理。话说回来,你刚才说串行计算更适合 CPU。GPU 计算还有没有其他硬限制?哪些事情我们知道就是不适合在 GPU 上跑?
Brian DeVincentis:我想说一点:有些算法虽然能移植到 GPU,但开发难度会高很多。
CPU 算法通常更好写;而在 GPU 环境下,你要考虑的东西多得多:
- 并行性
- 大量计算同时进行时的同步问题
- 远比 CPU 更精细的内存管理
所以,不只是硬件限制,软件层面也有门槛。这些问题未来可以通过更好的库、更好的开发规范逐步解决。
John Thomas:所以在我听来,GPU 很强、功能很多,但不是所有软件都能跑得好。把 CPU 代码直接搬到 GPU,不会自动带来 100 倍提速。必须让算法和框架本身就适配这种架构,才能发挥出 GPU 承诺的性能。
Brian DeVincentis:完全正确。而且改造工作量可能非常大,有时候要花数年时间重写软件的大部分模块,才能在 GPU 上跑得好。
过去几年,GPU 硬件进步巨大,但软件生态其实没完全跟上。软件要想充分发挥当前芯片的性能,可能还需要很多年。
举个很现实的例子:磁盘读写。比如在 M‑Star 中,仿真会产生大量输出并写入磁盘。后处理时的瓶颈,往往是磁盘读写以及后续操作。
NVIDIA 现在正在做的一件事,就是让数据直接在磁盘和 GPU 之间搬运,不再需要经过内存和 CPU 中转。
John Thomas:有意思。这对我们的数据管理和数据流转会是很重要的转变。
假设我是一个 GPU 计算新手,该从哪里入门?你有没有推荐的书籍或资料,用来熟悉原理和适合 GPU 的算法?
Brian DeVincentis:现在有好几种编程平台可以入门。GPU 对 Python 的支持已经很完善,可能是最简单的起点,很多人都熟悉 Python。
有不少库可以用,比如:
- Numba
- CuPy
这些库能让你很容易上手基础的 GPU 编程。
John Thomas:非常值得去了解一下。
Brian,今天聊得非常好,感谢你花时间和我们探讨这些内容。就像我刚才说的,这些新架构、新硬件是非常令人兴奋的发展方向。很期待看到硬件如何反过来塑造算法,算法又如何驱动硬件进化。再次感谢你过来和我们把这些要点讲清楚。
Brian DeVincentis:不客气,谢谢大家。































