PixInsight 的 GPU 加速:CUDA 设置与性能实测
本文整理自 2021 至 2024 年间的笔记,部分工具、CUDA 版本与设置流程已有更新(尤其后期 PixInsight 已支持一键设置),阅读时请留意时间背景。
自从去星、AI 降噪、AI 锐化这类神经网络进程陆续进入 PixInsight 的工作流程后,“要不要为修图电脑加一张显卡”就成了很实际的问题。这篇整理我这几年在 GPU 加速上的实测与设置经验,包括为什么要用 GPU、怎么启用、能省多少时间,以及各平台的差异。
为什么需要 GPU 加速
现在 PixInsight 里支持 GPU 加速的进程,主要是那些吃神经网络运算的:StarNet++、StarNet 2、StarXTerminator(SXT)、NoiseXTerminator(NXT)、BlurXTerminator(BXT)。这些进程如果只靠 CPU 跑,尤其是图像尺寸一大,等待时间会非常可观。
一个很有感的例子是批量去星:用新式方法处理彗星时,需要在线性状态下,把还没叠加的每一张彗星图像逐张去星。例如两百多张的 900 万像素图像,用 RTX 3060 Laptop 版加速,一张只要 20 秒左右;如果纯靠 CPU,那个总时间会让你怀疑人生。
一旦用过 GPU 加速,大概就回不去了。
我第一次成功启用 CUDA
2021 年底,在花了数小时测试不同版本的 NVIDIA CUDA、cuDNN、TensorFlow 之后,我终于成功用 GPU(NVIDIA RTX 3060)来协助去星:
- StarXTerminator 仅需约 15 秒;
- StarNet++ 不到 10 秒;
就能完成单张去星。跟纯 CPU 相比,差距非常明显。

怎么启用:从手动设置到一键安装
早年的做法:手动放置文件
早期要启用 GPU 加速,得自己下载对应版本的 CUDA、cuDNN、TensorFlow 等文件并放到正确位置。这个过程门槛不低,而且只适用 Windows、且电脑装有 PixInsight 与具备 CUDA 核心的 NVIDIA 显卡的用户。AMD 显卡(含核显)用户请直接略过,Linux 用户则需自行对照参考。设置完成后,就能大幅提升 StarNet、StarNet++、SXT、NXT、BXT 的运行速度。
麻烦的是,每次更新 PixInsight,往往还得重新放置这些文件,很容易忘记。
现行的做法:PI 内置一键设置
到了 2024 年初,情况大幅改善——现在只要在 PixInsight 中加入更新数据库(repository),就能直接使用 GPU 加速,免除额外的安装与设置。这是 XTerminator 系列作者 RC(Russell Croman)在 PixInsight 论坛提供的做法。当时这项功能只适用 Windows,Linux 版本还在开发中;至于 Mac 操作系统,则本来就不需要这类设置。
怎么确认 GPU 真的有在运算
想知道去星或去噪时 GPU 有没有出力,在 Windows 10/11 下:打开任务管理器,切到“GPU”页面,选择“CUDA”子页面,如果看到 CUDA 核心出现使用率,就代表有用到 GPU(例如跑 SXT 时可看到 CUDA 核心冲到 87% 使用率);如果 CUDA 核心完全没动作,那就是没吃到 GPU。

性能实测
高端 CPU vs 中低端 GPU
很多人会问:CPU 够强是不是就不用显卡?我用消费级高端 CPU(AMD R9-7950X)对上消费级中低端显卡(RTX 3060 12G)做了对照,软件为 PI 1.8.9-1、SXT 2.05 AI 11 lite:
- 第一组图像 M1(14.75MP):CPU 去星 1 分 45 秒;GPU 去星 10.2 秒。
- 第二组图像 Webb NGC 3372(123MP):CPU 去星 12 分 31 秒;GPU 去星 1 分 05 秒。
可以看出两个规律:图像尺寸越大,GPU 加速的效果越明显;而且即使拿高端 CPU 对上中低端 GPU,CPU 至少都要花 GPU 十倍以上的时间才能完成相同工作。如果你的 CPU 不是高端型号,差距只会更大。因此,只要工作流程里需要反复使用 AI 进程,我非常建议至少入手一张中低端的 RTX 30 系列显卡。

光靠更新 CUDA 软件,就能再快一倍
还有一个惊人的发现。大约一年多前我第一次在 RTX 3060 Laptop 笔记本电脑上启用 CUDA 加速,一年多后在完全没换任何运算硬件(笔记本电脑也没法换)的情况下,只把相关软件更新,用相同图像重测,速度竟然快了将近一倍。
以将 1.2 亿像素图像去星为例(PI 1.8.9-1、SXT 2.05 AI 11 lite、RTX 3060 Laptop 6GB):
- CUDA 设置一(CUDA 11.2.2、TensorFlow 2.6、cuDNN 8.2.1):约 2 分半钟。
- CUDA 设置二(CUDA 11.8、TensorFlow 2.9、cuDNN 8.7、ZLib DLL x64 1.2.3):仅 1 分 20 秒。
所以,早期安装 CUDA 之后就没再更新的朋友,记得更新一下 CUDA 软件,可以参考上面的“设置二”组合,等于免费捡到一半的性能。

台式机版 vs 笔记本电脑版显卡
手上刚好有 RTX 3060 12G 与 RTX 3060 Laptop 6G 两张卡,同样软件版本下去星时间:
- RTX 3060 12G:1 分 4 秒;
- RTX 3060 Laptop 6G:1 分 20 秒。
两者芯片相同,差别只在显存容量与台式机/笔记本电脑版的功耗设计,因此去星时间相差不大。若论 性价比,一台配备 NVIDIA 显卡的游戏本(当时价格约新台币三万元左右)算是相当划算的选择。

连老矿卡都有感
家里一台约四年前组的旧电脑(AMD R5-3600),原本的显卡(R9-270)已接近寿命尾声。我在网络上收了张不到 3000 元的矿卡——NVIDIA GTX 1660s,上机测试全幅图像(约 6000 万像素)去星:
- 纯 CPU:5 分 40 秒;
- GPU:51 秒;
时间相差约 6.6 倍。即使 1660s 的 CUDA 数只有一千四百多,节省的时间依然很显著。只要你会反复运行去星、AI 降噪、AI 锐化这类操作,用 GPU 加速就是很值得的投资。

各平台的差异
不同操作系统与硬件,对 AI 进程能否使用 GPU 加速的支持并不一致。我整理过 Windows、Mac、Linux 三个平台的情形(部分 Mac 测试结果由一位同好提供):
- Windows + NVIDIA:只要设置好,就能调用 CUDA 对 SXT、BXT、NXT、StarNet 全部进行 GPU 加速。
- Apple Silicon 的 Mac(如 M1/M1 Ultra):BXT 与 NXT 不需任何设置就会自动调用 Metal 使用 GPU 加速;SXT 运行时只占用部分 CPU 资源、没吃到 GPU;至于 StarNet 2,必须改用官方网站上的实验版(仅有命令行 CLI 模式),才能成功用 GPU 加速。
- Intel 版的 Mac:StarNet 只能用 CPU;SXT、BXT、NXT 则可使用 GPU 加速,即使是 AMD 的 GPU 也一样可行。
在 Apple Silicon 平台上,SXT 这类进程因为原生支持 GPU 加速,性能与“Windows + NVIDIA CUDA 加速”大致不相上下。至于 PC 上的 Linux 系统,一样可以调用 GPU 来加速运算。

小结
回头看这几年的变化:GPU 加速从“要花数小时凑 CUDA 版本”的硬核设置,走到“PI 内置一键搞定”;能加速的进程越来越多,连几百块的老矿卡都能带来数倍提速。如果你的工作流程重度依赖 AI 进程,一张中低端的 NVIDIA 显卡(或一台 Apple Silicon 的 Mac)几乎是必备。