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만으로 돌리면, 특히 이미지 크기가 커질수록 대기 시간이 매우 상당해집니다.
아주 실감 나는 예가 배치 별 제거입니다. 새로운 방식으로 혜성을 처리할 때는, 선형 상태에서 아직 인테그레이션하지 않은 혜성 이미지를 한 장씩 별 제거해야 합니다. 예를 들어 200장이 넘는 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 버전은 아직 개발 중이었습니다. macOS는 애초에 이런 종류의 설정이 필요하지 않습니다.
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의 최소 10배 이상 시간이 걸린다는 것입니다. 여러분의 CPU가 고급 모델이 아니라면 그 차이는 더 벌어질 뿐입니다. 따라서 워크플로에서 AI 프로세스를 반복해서 써야 한다면, 저는 최소한 중저가 RTX 30 시리즈 그래픽 카드를 한 장 마련하기를 강력히 권합니다.

CUDA 소프트웨어를 업데이트하는 것만으로 다시 두 배 가까이 빨라진다
또 하나 놀라운 발견이 있습니다. 1년 남짓 전에 저는 처음으로 RTX 3060 Laptop 노트북에서 CUDA 가속을 활성화했는데, 1년 남짓 후에 연산 하드웨어를 전혀 바꾸지 않은(애초에 노트북은 바꿀 수도 없습니다) 상태에서 관련 소프트웨어만 업데이트하고 같은 이미지로 다시 측정하니, 속도가 거의 두 배 가까이 빨라져 있었습니다.
1억 2000만 화소 이미지의 별 제거를 예로 들면(PI 1.8.9-1, SXT 2.05 AI 11 lite, RTX 3060 Laptop 6GB):
- CUDA 설정 1(CUDA 11.2.2, TensorFlow 2.6, cuDNN 8.2.1): 약 2분 30초.
- CUDA 설정 2(CUDA 11.8, TensorFlow 2.9, cuDNN 8.7, ZLib DLL x64 1.2.3): 겨우 1분 20초.
그러니 이른 시기에 CUDA를 설치하고 그 뒤로 업데이트하지 않은 분들은, CUDA 소프트웨어를 업데이트하는 것을 잊지 마시기 바랍니다. 위의 “설정 2” 조합을 참고하면, 절반의 성능을 공짜로 줍는 셈입니다.

데스크톱 버전 vs 노트북 버전 그래픽 카드
마침 RTX 3060 12G와 RTX 3060 Laptop 6G 두 장이 있어서, 같은 소프트웨어 버전으로 별 제거 시간을 비교했습니다.
- RTX 3060 12G: 1분 4초;
- RTX 3060 Laptop 6G: 1분 20초.
두 카드는 칩이 같고, 차이는 메모리 용량과 데스크톱 버전/노트북 버전의 소비 전력 설계뿐이라, 별 제거 시간의 차이는 크지 않습니다. 가성비로 말하자면, NVIDIA 그래픽 카드를 장착한 게이밍 노트북(당시 가격으로 약 3만 대만 달러 정도)은 꽤 알뜰한 선택이라 할 수 있습니다.

오래된 마이닝 카드조차 효과가 확실하다
집에 4년쯤 전에 조립한 오래된 컴퓨터(AMD R5-3600)가 한 대 있는데, 원래의 그래픽 카드(R9-270)가 수명의 끝자락에 가까워지고 있었습니다. 저는 인터넷에서 3000 대만 달러가 안 되는 마이닝 카드—NVIDIA GTX 1660s를 구해, 실기로 풀프레임 이미지(약 6000만 화소)의 별 제거를 테스트했습니다.
- CPU만: 5분 40초;
- GPU: 51초;
로, 시간 차는 약 6.6배입니다. 1660s의 CUDA 수는 1400개 남짓밖에 안 되지만, 그래도 아낄 수 있는 시간은 여전히 상당합니다. 별 제거, 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)는 거의 필수입니다.