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 秒。
兩者晶片相同,差別只在記憶體容量與桌機/筆電版的功耗設計,因此去星時間相差不大。若論 CP 值,一台配備 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)幾乎是必備。