Karma XPU OptiX 지연과 빠진 GPU: 커널 미리 컴파일하기와 모든 디바이스 확인하기
Karma XPU가 첫 픽셀 전에 멈추는 이유와 모든 GPU가 렌더링하는지 확인하는 방법:
- 멈춤의 정체는 컴파일입니다: Karma XPU는 OptiX 디바이스용으로 렌더 커널과 셰이더를 컴파일합니다. SideFX에 따르면 커널 하나에 몇 초에서 몇 분까지 걸릴 수 있고, 결과는 캐시됩니다.
- 미리 컴파일은 도움이 될 때만: Render > Pre-compile Karma XPU Render Kernels는 인터랙티브 작업을 위해 캐시를 채웁니다. 전체 실행은 몇 시간이 걸릴 수 있으며, SideFX는 렌더팜 머신에는 필요 없다고 설명합니다. 필요한 커널을 그때그때 컴파일하기 때문입니다.
- 렌더 통계에서 모든 GPU를 확인하세요: GPU마다 상태와 이미지 기여 비율을 가진 별도의 OptiX 디바이스로 표시됩니다. Karma XPU는 기본적으로 호환되는 GPU를 모두 사용합니다. fail로 표시된 디바이스는 대개 메모리 부족, 오래된 드라이버, 또는 환경 변수로 꺼진 경우입니다.
- iRender에서는: RTX 5090 4장 서버에서 Karma XPU를 렌더링합니다. 서버 이미지가 세션 사이에 저장되므로 Houdini 설치와 커널 캐시가 다음에도 그대로 남아 있습니다.
아티스트가 Houdini 씬을 멀티 GPU 머신으로 옮길 때 같은 문제 두 가지가 반복됩니다. 첫째는 Karma XPU OptiX 지연입니다. OptiX가 컴파일하는 동안 렌더링이 시작 단계에서 멈춰 있고, 때로는 몇 분씩 걸립니다. 둘째는 렌더링에 끝내 참여하지 않는 GPU입니다. 그래서 GPU 4장 머신이 2장짜리처럼 돌아갑니다.
이 글은 Karma XPU가 무엇을 컴파일하는지, 미리 컴파일할 가치가 있는 경우, 어떤 디바이스가 렌더링하는지 보는 방법, 그리고 GPU가 빠지는 이유를 설명합니다. 설정 이름, 메뉴 경로, 환경 변수는 SideFX Houdini 문서를 따릅니다. 예전 가이드(이 글의 이전 버전 포함)에 있던, SideFX 문서에 없는 명령은 뺐습니다.
Karma XPU가 첫 픽셀 전에 멈추는 이유
시작할 때 Karma XPU는 셰이더를 각 디바이스가 실행할 수 있는 형식으로 컴파일해야 합니다. SideFX는 이를 새 씬을 불러오거나 기능을 처음 켤 때 생기는 멈춤이나 끊김이라고 설명합니다. 컴파일되는 코드는 두 가지입니다:
- 렌더 커널: XPU의 핵심 렌더링 코드입니다. 씬에 필요한 커널은 쓰는 기능에 따라 다르며, SideFX에 따르면 커널 하나를 컴파일하는 데 몇 초에서 몇 분까지 걸립니다.
- 사용자 셰이더: 머티리얼과 라이트 필터입니다. 네트워크가 어떻게 구성될지 Houdini가 미리 알 수 없으므로 미리 컴파일할 수는 없지만, 보통 커널보다 훨씬 빨리 컴파일됩니다.
컴파일된 커널은 디스크에 캐시되므로 긴 대기는 보통 한 번만 생깁니다. OptiX가 컴파일하는 동안에는 뷰포트의 렌더 통계에 표시되며, Compiled Render Kernel Cache out of Date 메시지는 미리 컴파일하면 대기를 줄일 수 있다는 뜻입니다.
| 발생한 일 | Karma XPU가 다시 컴파일하나요? | 예상되는 결과 |
|---|---|---|
| Houdini 설치 후 첫 Karma XPU 렌더링 | 예, 씬에 필요한 모든 커널 | 가장 긴 대기. 이후 렌더링은 캐시를 재사용 |
| NVIDIA 드라이버를 업데이트함 | 예, 캐시가 더 이상 유효하지 않음 | 캐시를 다시 만들 때까지 새로 설치했을 때와 같은 대기 |
| 새 Houdini 릴리스를 설치함 | 예, 캐시는 메이저 릴리스별로 보관됨 | 그 버전용 새 캐시 폴더가 채워짐 |
| 씬에서 쓰지 않던 기능을 켬 | 새 커널만 | 그 기능을 처음 렌더링할 때 짧은 멈춤 |
| 머티리얼을 수정함 | 그 셰이더만 | 보통 짧은 멈춤. 셰이더는 커널보다 빨리 컴파일됨 |
SideFX의 Karma XPU 및 Karma XPU pre-compiling 페이지를 바탕으로 했습니다. 오래된 캐시는 이미지 품질을 바꾸지 않으며, Karma XPU가 빠진 커널을 그때그때 컴파일합니다.
렌더 커널 미리 컴파일하기 (그리고 필요 없는 경우)
Houdini는 커널 캐시를 미리 채울 수 있습니다. 메인 메뉴에서 Render > Pre-compile Karma XPU Render Kernels를 선택하세요. 새로 설치한 경우 Solaris LOP 노드를 처음 만들 때도 이 작업을 제안합니다. SideFX의 조언:
- 먼저 작업을 저장하고 시스템 리소스를 최대한 비우세요.
- 전체 실행은 시스템에 따라 몇 시간이 걸릴 수 있습니다. 멈췄다가 나중에 다시 시작하면 멈춘 곳부터 이어집니다.
- 혜택은 OptiX GPU 디바이스만 받습니다. Embree CPU 디바이스와 Karma CPU에는 필요 없습니다.
- 캐시는 사용자별, Houdini 메이저 릴리스별로 저장됩니다. 예: Windows는
C:\Users\USERNAME\AppData\Local\NVIDIA\OptixCache\Houdini21.0, Linux는/var/tmp/OptixCache_USERNAME/Houdini21.0입니다. 몇 기가바이트를 차지할 수 있으며, 폴더를 지우면 Karma XPU가 렌더링하면서 다시 컴파일합니다. - 커널은 특정 시스템과 GPU 구성에 맞게 만들어지므로, SideFX는 캐시 하나를 네트워크 드라이브로 공유하는 것을 권장하지 않습니다.
굳이 할 필요가 없는 경우: SideFX는 렌더팜 머신에는 미리 컴파일이 필요 없다고 설명합니다. 씬에 필요한 커널을 그때그때 컴파일하며, 미리 컴파일은 주로 인터랙티브 작업을 부드럽게 하기 위한 것입니다. 시퀀스만 렌더링한다면 몇 시간이 걸릴 수 있는 전체 미리 컴파일보다 첫 프레임이 필요한 것을 컴파일하게 두는 편이 보통 더 저렴합니다.
Karma XPU가 모든 GPU를 쓰는지 확인하기
Karma XPU는 따로 설정하지 않아도 여러 GPU를 포함해 찾은 호환 디바이스를 모두 사용합니다. NVIDIA GPU는 각각 하나의 OptiX 디바이스가 되고, CPU는 EmbreeCPU 디바이스가 됩니다. 디바이스는 뷰포트 오른쪽 위 렌더 진행 표시 아래에 나열되며, 각각 상태(idle, init, disabled or fail)와 현재 이미지 중 그 디바이스가 렌더링한 비율을 보여줍니다. 더 자세히 보려면 뷰포트 Display Options의 Guides 탭에서 Render Stats를 켜세요.
“GPU가 빠졌다”는 문제 대부분은 SideFX 문서의 두 가지 사실로 설명됩니다. GPU 메모리는 합쳐지지 않으므로 GPU마다 씬 전체를 담아야 합니다. 그리고 디바이스가 실패하면(예: GPU 메모리 부족) CPU를 포함한 나머지 디바이스가 그 작업을 이어받아 프레임을 끝냅니다. 렌더링은 멈추지 않고 느려질 뿐이므로, 가장 먼저 디바이스 목록을 확인해야 합니다.
정상적인 GPU 4장 머신이라면 OptiX 디바이스 4개가 비슷한 비율로 렌더링하고 EmbreeCPU는 훨씬 작은 비율을 보입니다. SideFX는 XPU가 GPU용으로 작성되었기 때문에 GPU 디바이스가 CPU 디바이스보다 훨씬 많이 기여한다고 설명합니다.
Karma XPU 렌더링에서 GPU가 빠지는 이유
| 보이는 현상 | 가능한 원인 | 해결 방법 |
|---|---|---|
| OptiX 디바이스가 하나도 없고 EmbreeCPU만 있음 | 570보다 오래된 NVIDIA 드라이버, 또는 Compute Capability 5.0 미만 GPU | 드라이버를 업데이트하세요. SideFX는 Windows에서 575 이상을 강력히 권장합니다 |
| OptiX 디바이스가 다음으로 표시됨: disabled | 환경, 패키지 파일 또는 houdini.env에 있는 KARMA_XPU_DISABLE_OPTIX_DEVICE 같은 환경 변수, 또는 optix가 빠진 KARMA_XPU_DEVICES 목록 | 변수를 지우거나 고친 뒤 Houdini를 다시 시작하세요 |
| GPU 하나 이상이 렌더링 도중 fail 로 표시됨 | GPU 메모리가 부족해짐. GPU 간 메모리는 합쳐지지 않음 | 씬이 GPU에 올리는 데이터를 줄이거나 메모리가 더 큰 GPU를 쓰세요. 커브가 많다면 KARMA_XPU_OPTIX_CURVE_OPT_LEVEL=1이 메모리를 덜 씁니다 |
| 모든 GPU가 렌더링하지만 프레임 후반에 느려짐 | GPU 메모리가 차서 Karma XPU가 텍스처 타일을 내보내기(eviction) 시작함 | 렌더 통계에서 eviction을 확인하세요. SideFX는 이 상태에서 GPU가 크게 느려진다고 설명합니다 |
| 매 프레임이 긴 멈춤으로 시작함 | 커널 컴파일 중 (첫 렌더링, 새 드라이버 또는 새 Houdini 릴리스) | 한 번 끝나게 두거나, 인터랙티브 작업용으로 미리 컴파일하세요 |
디바이스 상태, 드라이버 버전, 변수는 SideFX Karma XPU 문서를 따릅니다.
원인을 고친 뒤 렌더링을 다시 시작하고 디바이스 목록을 다시 확인하세요. 다른 GPU에는 들어가는 씬에서 특정 GPU 하나만 계속 실패한다면 그 GPU만 따로 테스트하세요. 아래 SideFX 디바이스 변수로 디바이스를 켜고 끌 수 있습니다.
Karma XPU 디바이스 변수와 실제 동작
시스템 환경, JSON 패키지 또는 houdini.env에 설정할 수 있습니다. 디바이스를 켜고 끌 뿐이며, Karma XPU가 쓸 수 없는 GPU를 찾게 해 주지는 않습니다.
| 변수 | 효과 (SideFX) | 용도 |
|---|---|---|
| KARMA_XPU_DEVICES | 사용할 디바이스를 쉼표로 구분한 목록. KARMA_XPU_DEVICES=optix는 OptiX GPU 엔진만 사용 | GPU 전용으로 렌더링해 실패한 GPU가 CPU에 가려지지 않게 함 |
| KARMA_XPU_DISABLE_EMBREE_DEVICE | 설정하면 Karma XPU가 Embree CPU 디바이스를 만들지 않음 | 같은 GPU 전용 테스트 |
| KARMA_XPU_DISABLE_OPTIX_DEVICE | 설정하면 Karma XPU가 OptiX GPU 디바이스를 만들지 않음 | CPU 디바이스만으로 렌더링해 결과 비교 |
| KARMA_XPU_OPTIX_CURVE_OPT_LEVEL | 커브의 메모리와 속도를 맞바꿈: 1 = 저메모리, 2 = 중간(기본), 3 = 고메모리 | 헤어·퍼 씬을 GPU 메모리에 맞춤 |
| KARMA_XPU_OPTIX_SPARSE_TEXTURES | 스파스(타일) 텍스처 로딩을 끌 때 사용 | 텍스처 스트리밍 문제 해결 |
SideFX Karma XPU 문서(Houdini 21.0) 기준.
흔한 실수는 “모든 GPU를 강제로 쓰려고” KARMA_XPU_DEVICES=optix를 설정하는 것입니다. Karma XPU는 이미 지원되는 GPU를 모두 사용합니다. 이 설정은 CPU 디바이스를 빼는 것이며, 테스트에 유용합니다. GPU가 실패해도 조용히 대신 맡는 디바이스가 없어 실패가 바로 드러나기 때문입니다. CPU의 도움이 필요하다면 테스트 후 지우세요.
여러 GPU의 Karma XPU에는 SaaS와 IaaS 렌더팜 중 무엇이 맞을까?
두 렌더팜 모델은 같은 프레임을 만들며, 둘 다 머신에서 처음 렌더링할 때 씬에 필요한 것을 컴파일해야 합니다. 차이는 머신을 얼마나 볼 수 있느냐입니다. 렌더 통계를 열고, 디바이스를 하나씩 확인하고, 세션 사이에 커널 캐시를 유지할 수 있는지입니다.
| 상황 | SaaS 렌더팜 | IaaS 렌더팜(iRender) |
|---|---|---|
| 씬이 승인되었고 GPU 메모리에 들어가는 경우 | 잘 맞습니다. 프로젝트를 업로드하면 렌더팜이 프레임을 렌더링하며, 보통 여러 머신에 나누어 처리하므로 서버를 관리할 필요가 없습니다. | 이 방식도 가능하지만 서버를 직접 시작하고 사용하고 종료해야 합니다. |
| 마감이 있어 렌더링 시작과 종료 시점을 알아야 할 때 | 작업이 렌더팜 대기열에 들어가므로 시작 시점은 렌더팜이 얼마나 바쁜지에 달려 있습니다. 많은 렌더팜이 더 빨리 시작하려면 우선순위가 높은 요금제를 판매합니다 | 서버가 부팅되는 순간부터 내 작업만 실행하므로, 렌더링 시작 시점을 직접 정하고 전체 작업 시간을 가늠할 수 있습니다 |
| 모든 GPU가 렌더링하는지 직접 봐야 하는 경우 | 렌더팜의 로그와 완성된 프레임을 봅니다. | 서버에서 뷰포트 렌더 통계를 열고 OptiX 디바이스와 기여 비율을 실시간으로 봅니다. |
| 무거운 프레임에서 GPU 하나가 계속 실패하는 경우 | 테스트마다 작업 하나입니다. 씬을 바꾸고, 제출하고, 기다리고, 로그를 읽습니다. | 서버에서 KARMA_XPU_DEVICES=optix로 테스트하고, 씬을 바꿔 바로 다시 렌더링합니다. |
| 첫 렌더링의 컴파일 시간 | 렌더팜 머신은 작업마다 필요한 커널을 컴파일하며, SideFX는 이것이 렌더팜에서 정상이라고 설명합니다. | 커널 캐시는 저장된 이미지의 사용자 폴더에 있으므로, 드라이버나 Houdini 릴리스가 바뀌기 전까지 다음 세션에서도 재사용됩니다. |
이 작업에서 두 렌더팜 모델이 어떻게 동작하는지 비교한 것이며, 속도 테스트가 아닙니다.
간단한 기준: 씬이 승인되었고 GPU 메모리에 들어가며 프레임만 필요하다면 SaaS 렌더팜이 잘 맞습니다. 모든 GPU가 렌더링하는지 보거나, GPU 하나가 실패하는 이유를 찾거나, 렌더링 하드웨어에서 Solaris로 인터랙티브하게 작업해야 한다면 IaaS 서버를 쓰세요.
iRender 서버에서 Karma XPU 점검하기
- 프로젝트와 캐시를 업로드합니다 . 서버를 시작하기 전에 iRender Drive에 올리세요. 업로드는 무료이며 임대 시간에 포함되지 않습니다.
- RTX 5090 4장 서버를 시작합니다. 저희 경험상 Karma XPU는 GPU 4장에서 가장 잘 돌아갑니다. 요금은 분 단위입니다.
- Houdini를 설치하고 여러분의 SideFX 라이선스로 로그인합니다. Houdini는 사전 설치되어 있지 않습니다. 서버 이미지가 세션 사이에 저장되므로 한 번만 설치하면 됩니다.
- 씬을 열고 프레임 하나를 렌더링합니다 . Render Stats를 켜고 첫 컴파일이 끝나기를 기다린 뒤, OptiX 디바이스 4개가 렌더링하는지 확인합니다.
- 시퀀스를 렌더링합니다 . 평소처럼 husk나 Render Product로 렌더링합니다. 마감이 촉박하면 서버를 더 시작해 각 서버에 프레임 범위를 나누세요. 총비용은 거의 같습니다.
다른 머신에서 시퀀스를 렌더링하기 전에
- 같은 Houdini 릴리스를 쓰세요. 커널 캐시와 USD 동작이 릴리스에 묶여 있습니다.
- NVIDIA 드라이버가 570 이상인지 확인하세요 (Windows는 575 이상 권장).
- 문제 해결 중 설정한 KARMA_XPU 테스트 변수는 일부러 남길 게 아니라면 지우세요.
- 가장 무거운 프레임이 GPU 하나의 메모리에 들어가는지 확인하세요. RTX 5090은 32 GB입니다. GPU 간 메모리는 합산되지 않습니다.
- Render Stats를 켜고 가장 무거운 프레임부터 렌더링해, 전체 범위를 시작하기 전에 모든 GPU가 기여하는지 확인하세요.
자주 묻는 질문
1. Karma XPU가 렌더링을 시작하기까지 왜 이렇게 오래 걸리나요?
Karma XPU는 렌더링하기 전에 OptiX GPU 디바이스용으로 렌더 커널과 셰이더를 컴파일합니다. SideFX에 따르면 커널 하나에 몇 초에서 몇 분까지 걸릴 수 있습니다. 컴파일된 커널은 캐시되므로 긴 대기는 보통 처음, 드라이버를 업데이트한 뒤, 또는 새 Houdini 릴리스를 설치한 뒤에만 생깁니다.
2. Karma XPU 렌더 커널은 어떻게 미리 컴파일하나요?
Houdini 메인 메뉴에서 Render를 열고 Pre-compile Karma XPU Render Kernels를 선택하세요. 먼저 작업을 저장하세요. 전체 실행은 몇 시간이 걸릴 수 있으며, 중간에 멈췄다가 나중에 이어서 할 수 있습니다. SideFX는 렌더팜 머신은 씬마다 필요한 커널을 그때그때 컴파일하므로 미리 컴파일할 필요가 없다고 설명합니다.
3. Karma XPU 커널 캐시는 어디에 저장되나요?
Windows에서는 C:\Users\USERNAME\AppData\Local\NVIDIA\OptixCache\ 아래 Houdini21.0처럼 Houdini 릴리스별 폴더에 저장됩니다. Linux에서는 /var/tmp/OptixCache_USERNAME/에 저장됩니다. 이 폴더를 지우면 Karma XPU가 렌더링하면서 커널을 다시 컴파일합니다.
4. Karma XPU는 모든 GPU를 자동으로 사용하나요?
네. Karma XPU는 감지한 호환 NVIDIA GPU를 모두 각각의 OptiX 디바이스로 사용하고, CPU도 EmbreeCPU 디바이스로 사용합니다. 뷰포트 렌더 통계의 디바이스 목록을 확인하세요. 디바이스마다 상태와 이미지 기여 비율이 표시됩니다.
5. KARMA_XPU_DEVICES=optix를 설정하면 Karma가 GPU를 더 많이 쓰나요?
아닙니다. 이 설정은 Karma XPU가 CPU 디바이스 없이 OptiX GPU 엔진만 쓰게 합니다. 실패한 GPU의 작업을 CPU가 대신 맡아 문제를 가리지 않으므로 문제 해결에는 유용하지만, Karma가 원래 쓸 수 없던 GPU를 추가해 주지는 않습니다.
6. Karma XPU에서 GPU 하나가 fail로 표시되는 이유는 무엇인가요?
대부분 그 GPU의 메모리가 부족해진 경우입니다. GPU 간 메모리는 합쳐지지 않으므로 카드마다 씬 전체를 담아야 합니다. 나머지 디바이스가 프레임을 끝내므로 렌더링은 계속되지만 느려집니다. 그 밖에 570보다 오래된 NVIDIA 드라이버나 디바이스를 끄는 환경 변수가 원인일 수 있습니다.
iRender에서 Houdini Karma XPU 씬 렌더링하기
iRender는 IaaS GPU 렌더팜입니다. NVIDIA RTX 5090(32 GB) GPU 4장과 AMD Ryzen™ Threadripper™ PRO CPU, 256 GB ECC RAM, 2 TB NVMe SSD를 갖춘 베어메탈 서버를 임대해 원격 데스크톱으로 접속하고, 전체 관리자 권한으로 내 워크스테이션처럼 작업합니다. Houdini는 직접 설치하고 여러분의 SideFX 라이선스를 사용합니다. 서버 이미지가 세션 사이에 저장되므로 Houdini, 패키지, Karma XPU 커널 캐시가 그대로 남아 있습니다. Karma XPU에는 GPU 4장 서버를 권장합니다.
멀티 GPU 서버는 분 단위로 과금되며(1 GPU 서버는 최소 1시간), 3시간 이상 세션은 10% 할인됩니다. 4 GPU 서버는 수랭식이며, 자체 측정 결과 장시간 렌더링 중에도 GPU 온도가 60–70°C로 유지됩니다. 엘리트 지원팀이 주 7일 핫라인, 라이브 채팅, Skype, WhatsApp, 이메일로 도와드립니다.
이 영상은 iRender 서버에서 Houdini Karma XPU 씬을 다섯 단계로 렌더링하는 과정을 보여줍니다:
신규 사용자는 첫 충전 시 100% 보너스(최소 $50)를 받습니다. 서버 옵션은 Karma XPU 렌더팜 페이지에서 확인하거나 iRender GPU 앱.


