3P by neo 6달전 | favorite | 댓글 1개

ZLUDA, CUDA 애플리케이션을 AMD GPU에서 실행 가능하게 하다

  • Andrzej Janik이 개발한 오픈소스 프로젝트 ZLUDA 3은 NVIDIA GPU용으로 설계된 GPU 기반 애플리케이션을 다른 제조사의 하드웨어에서 실행할 수 있게 해줌.
  • 이 기술은 개발자의 추가 작업 없이 기존 애플리케이션을 새 하드웨어에서 실행할 수 있도록 설계됨.
  • 이전 버전의 ZLUDA는 CUDA 애플리케이션을 인텔 GPU에서 실행할 수 있게 했으나, 버전 3에서는 AMD GPU로 전환됨.

ZLUDA는 인텔 GPU용이 아닌가요?

  • ZLUDA는 2020년 인텔 GPU용 CUDA의 대체제로 처음 출시됨.
  • 2021년 버전 2 출시 후, Janik은 프로젝트 개발을 계속할 수 없다고 발표했으나, 이후 인텔에서 ZLUDA를 공식 기술로 평가하기 시작함.
  • 인텔은 CUDA 애플리케이션을 인텔 GPU에서 실행하는 것에 대한 비즈니스 케이스가 없다고 결정하고, Janik은 회사를 떠나 AMD에 접근함.
  • AMD는 2년간 ZLUDA를 평가했지만 프로젝트를 더 이상 진행하지 않기로 결정하고, Janik은 업데이트된 코드를 오픈소스로 공개함.

CG 아티스트에게 왜 중요한가요?

  • ZLUDA 버전 3은 NVIDIA의 CUDA API를 사용하여 개발된 GPU 기반 애플리케이션을 AMD GPU에서 실행할 수 있게 함.
  • VFX, 모션 그래픽, 시각화와 같은 산업에서 많은 주요 CG 애플리케이션, 특히 렌더러들이 CUDA 기반으로 NVIDIA 전용임.
  • AMD는 자체 기술인 HIP를 가지고 있지만, 소프트웨어 개발자의 작업이 필요함.
  • ZLUDA는 HIP에 기반하여 실제로 구축되었으며, CUDA 애플리케이션을 수정 없이 AMD GPU에서 실행할 수 있도록 설계됨.

CUDA 애플리케이션을 ZLUDA 아래에서 실행하는 속도는 얼마나 빠른가요?

  • Janik은 CUDA 애플리케이션을 AMD GPU에서 "거의 네이티브 성능"으로 실행한다고 설명함.
  • 그러나 ZLUDA GitHub 저장소에 따르면, 3DF Zephyr와 RealityCapture는 ZLUDA 아래에서 "훨씬 느림".
  • 많은 GPU 렌더러 개발자들은 또한 성능에 기여하는 두 번째 NVIDIA API인 OptiX를 사용하며, ZLUDA는 OptiX에 대해 "최소한"의 지원을 제공함.

다른 CG 애플리케이션은 AMD GPU 아래에서 ZLUDA를 통해 실행될 수 있나요?

  • 사용자 테스트 없이는 다른 CUDA 기반 CG 애플리케이션이 ZLUDA 아래에서 얼마나 잘 실행될지 말하기 어려움.
  • 많은 알려진 문제가 있으며, Janik은 다른 GPU 렌더러와 제한된 성공을 거둠.

미래에 더 많은 CUDA 기반 CG 애플리케이션이 ZLUDA 아래에서 실행될 수 있을까요?

  • Janik은 인텔이나 AMD의 지원 없이는 ZLUDA가 "현실적으로 버려진 상태"라고 말함.
  • 그는 프로젝트를 앞으로 나아가게 할 수 있는 제안에 열려있지만, 그렇지 않다면 개인적으로 관심 있는 NVIDIA 기술만 지원할 가능성이 높음.
  • 소스 코드는 공개적으로 이용 가능하며, 현재 상태에서도 ZLUDA는 소프트웨어 개발자들이 CUDA에서 HIP로 "더 점진적인 포팅"의 일부로 사용될 수 있음.

라이선스 및 시스템 요구 사항

  • ZLUDA 3의 컴파일된 버전은 Windows와 Linux에서 이용 가능함. 소스 코드는 Apache 2.0 또는 MIT 라이선스 하에 제공됨.

GN⁺의 의견

  • ZLUDA는 NVIDIA의 독점적인 CUDA 생태계를 AMD 사용자들에게 개방함으로써, GPU 시장에서의 경쟁을 촉진할 수 있는 잠재력을 가짐.
  • 이 프로젝트는 특히 CUDA에 의존하는 렌더링 소프트웨어나 과학 연산 애플리케이션 사용자들에게 다양한 하드웨어 옵션을 제공함으로써 혜택을 줄 수 있음.
  • 그러나 ZLUDA가 아직 초기 단계이고 완전한 성능과 호환성을 제공하지 않는다는 점에서, 실제 프로덕션 환경에서의 채택은 신중해야 함.
  • AMD와 NVIDIA 간의 기술 격차를 줄이는 것은 소비자에게 더 나은 가격과 선택을 제공할 수 있으며, 이는 시장의 건강한 경쟁을 촉진할 수 있음.
  • 오픈소스 커뮤니티의 지속적인 관심과 기여가 이 프로젝트의 성공에 중요할 것이며, 관련 분야의 전문가들이 기여할 수 있는 좋은 기회를 제공함.
Hacker News 의견
  • 이전 토론 22일 전: AMD가 ROCm 기반으로 CUDA 구현체를 개발하여 오픈소스로 공개함 [0], 400개의 댓글이 있었음.

    • 그 스레드에서 주목할 만한 최상위 댓글:

      AMD가 2년간의 개발 후 CUDA 애플리케이션을 AMD GPU에서 실행하는 것에 대한 비즈니스 케이스가 없다고 결정함. 계약 조건 중 하나는 AMD가 더 이상 개발을 적합하다고 판단하지 않을 경우, 공개할 수 있다는 것이었음. 그래서 오늘에 이르렀음. - ZLUDA FAQ 참조

    • 관련 링크: 해커뉴스 토론
  • AMD가 이 프로젝트의 자금 지원을 중단한 것은 매우 불합리함. 오픈소스로 공개되자마자 AMD 사용자들에게 가치를 제공하기 시작했는데, 이것이 AMD의 최우선 과제가 되어야 할 것 같음에도 불구하고, AMD는 지금까지 지원이 거의 없는 두 개(혹은 세 개인가?)의 대체 API를 가지고 몇 년 동안 시간을 낭비함.

  • 논의에 관련된 내용: Nvidia가 다른 칩에서 실행하기 위한 CUDA 소프트웨어의 번역 레이어 사용을 금지함 [1]

  • 인텔도 결국 "인텔 GPU에서 CUDA 애플리케이션을 실행하는 것에 대한 비즈니스 케이스가 없다"고 결정함. 이는 AMD GPGPU를 다룬 사람이라면 누구나 알고 있는 사실을 확인시켜줌.

  • AMD의 소프트웨어가 매우 형편없다는 것은 잘 알려진 사실이며, 이것이 AMD가 2조 달러 회사가 되는 것을 막는 유일한 요소임. AMD의 OpenCL 컴파일러에 버그가 있었고, segfault를 통해 쉽게 컴파일러를 크래시시킬 수 있었음(결국 포기하고 보고하지 않음). AMD가 CUDA에 대항할 경쟁자를 개발하지 않은 것은 매우 단기적인 시각이었음. AMD의 이사회가 왜 교체되지 않았는지 이해할 수 없음. 최고의 하드웨어를 만들 수 있어도, 그것을 사용할 소프트웨어가 형편없다면 아무도 구매하거나 사용하지 않을 것임. 고객으로서는 AMD 이사회가 테이블 위에 남겨진 수조 달러의 가치에 대해 신경 쓰지 않는 것처럼 보여, 과대평가된 Nvidia 카드를 구매할 수밖에 없음. AMD 주식을 소유한 사람들은 질문을 해야 하며, 그 이사회는 가장 가까운 배수구로 내려가야 함.

  • Metal, CUDA, AMD가 가진 것 등 다양한 커널 언어로 컴파일할 수 있는 프로그래밍 언어가 있는지 궁금함. 만약 없다면, 왜 없을까? 다양한 CPU 아키텍처로 컴파일하는 C 컴파일러가 있는 것처럼, GPU 아키텍처로 컴파일하는 컴파일러도 있어야 하지 않을까? 아마도 아직 아무도 만들지 않았을 수도 있음.

  • 누군가 이것을 Meshroom 같은 OSS 포토그래메트리 도구에서 실행해 본 적이 있는지 궁금함. 기사에서는 몇 가지 독점적인 것들을 언급하지만, 필요한 것은 그리 많지 않음.

  • AMD GPU의 문제는 개별 커널이 아니라 라이브러리임. 릴리스 노트에서 'cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL, NVML의 최소 지원 추가'라고 언급한 것으로 보아, 이 프로젝트가 이 방향으로 나아가고 있었음. AMD가 자금 지원을 중단한 후에도 이 프로젝트가 모멘템을 유지할 수 있을지는 누구도 모름.

  • 이것은 Oracle 대 Google과 관련하여 JVM 바이트코드를 사용하는 것과 거의 동일한 문제임.

  • geohot의 지속적인 AMD GPU와의 (비싼) 투쟁도 관련이 있음: Twitter 링크