소식

Nvidia를 강화한 스타트업 회사: AMD 카드에서 CUDA를 시뮬레이션하고 원본 프로그램을 직접 컴파일하고 실행할 수 있습니다.

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • 크레시는 아오페이 사원(Aofei Temple)에서 왔습니다.
    큐빗(Qubits) 공개 계정 QbitAI

어떠한 수정이나 변환 없이도 AMD 그래픽 카드는 원래의 CUDA 프로그램을 실행할 수 있습니다!

영국의 한 스타트업 회사는 상업용으로 무료로 제공되는 AMD용 CUDA 프로그램 컴파일 도구를 출시했습니다.

도구가 출시되자 네티즌들 사이에서 광범위한 열띤 토론이 벌어졌습니다.HackerNews 핫리스트 1위에 올랐습니다.



이 도구는 SCALE이라고 하며 개발자는 이를 GPGPU(범용 GPU) 프로그래밍 도구 키트로 지정합니다.



현재 대형 모델 프레임워크인 llama-cpp를 포함해 9개 프로그램이 테스트를 통과해 정상적으로 실행되고 있다.

다른 구현과 달리 SCALECUDA 툴킷 설치를 직접 시뮬레이션, 소스에서 컴파일을 완료하기 위해 다른 언어로 변환할 필요가 없습니다.

따라서 SCALE은 인라인 PTX와 같은 NVIDIA 특정 중간 언어에 대한 지원도 제공할 수 있습니다.

변환할 필요 없이 AMD가 CUDA를 실행하게 하세요

공식 웹사이트 소개에 따르면 SCALE에는 주로 세 가지 구성 요소 호환 nvcc 컴파일러, CUDA 런타임 및 드라이버 API의 AMD 구현, ROCm 라이브러리가 있음이 나와 있습니다.

컴파일러는 nvcc, inline PTX 등 CUDA 전용 언어로 작성된 프로그램을 AMD GPU에서 실행할 수 있는 바이너리 코드로 직접 컴파일할 수 있습니다.

ROCm 라이브러리는 "CUDA-X" API를 제공하는 데 사용되며 SCALE은 cuBLAS 및 cuSOLVER와 같은 라이브러리를 처리할 때 이 방법을 사용합니다.



SCALE의 핵심 혁신은CUDA 프로그램을 있는 그대로 받아들입니다., 다른 언어로 포팅할 필요 없이nvcc 및 clang과 호환 가능및 기타 컴파일 방법은 기존 빌드 도구 및 스크립트(예: cmake)가 정상적으로 작동할 수 있습니다.

공식 성명에 따르면 SCALE은 CUDA와 완벽하게 호환됩니다.개발자는 다양한 GPU 플랫폼에 대해 별도의 코드를 작성할 필요가 없습니다.

이는 AMD가 출시한 HIP와는 매우 다릅니다. HIP는 CUDA 코드를 특정 방식으로 다시 작성하고 복잡한 매크로를 올바르게 이해하지 못할 수 있으며 인라인 PTX와 같은 독점 언어를 지원하지 않기 때문입니다.

SCALE 작성자조차도 HIP가 CUDA 호환성 문제를 해결할 수 없다고 생각합니다.

또한 SCALE의 언어는 CUDA의 상위 집합으로 다음과 같은 기능을 제공합니다.선택적 언어 확장, 이는 nvcc를 제거하여 GPU 코드를 작성하려는 개발자가 더 쉽고 효율적으로 만들 수 있습니다.

저자는 미래의 개발자가 코드를 한 번 작성하고 다른 하드웨어 플랫폼에서 실행할 수 있기를 바라며 널리 사용되는 CUDA 프로그래밍 언어와 다른 하드웨어 공급업체 간의 호환성 격차를 해소하기 위해 노력하고 있습니다.

현재 다양한 AMD GPU 시리즈에 대한 SCALE의 지원은 다음과 같습니다.

  • 이미 지원됨: gfx1030(RX6000 시리즈) 및 gfx1100(RX7000 시리즈)
  • "작동하는 것 같습니다": gfx1010(RX5000 시리즈) 및 gfx1101
  • 적응: gfx900(RX Vega 시리즈)

또한 저자는 일부 CUDA 오픈 소스 프로젝트를 테스트하고 SCALE을 사용하여 9개의 CUDA 애플리케이션을 성공적으로 실행했습니다.



그러나 SCALE은 결국 새로운 프로젝트이기 때문에 저자는 설치부터 컴파일까지 다양한 유형의 샘플 프로그램을 제공하는 일련의 튜토리얼도 준비했습니다.

튜토리얼의 주요 단계에는 관련 코드가 함께 제공되며, 자신의 GPU 모델을 결정하는 방법도 포함되어 있어 매우 상세하다고 할 수 있습니다.



사용 중 문제가 발생하면 저자가 일반적인 문제 해결 방법도 소개하고, Discord 포럼을 열어 개발팀과 직접 소통하기도 합니다.



SCALE을 만든 스타트업의 이름은 다음과 같습니다.스펙트럼 컴퓨팅2018년 영국에서 설립된 는 CPU와 GPU의 아키텍처에 대한 깊은 이해를 가지고 있으며 개발자가 컴퓨팅 리소스를 효율적으로 활용할 수 있도록 돕는 것이 목표라고 주장합니다.



네티즌: 엔비디아의 해자에 도전한다고요?

일부 네티즌들은 SCALE이 실제로 (광고된 대로) 효과를 발휘할 수 있다면 NVIDIA의 해자에 도전하고 AMD가 직접 경쟁할 수 있을 것이라고 믿습니다.



하지만 아직 결론을 내리기는 이르다. 결국 SCALE 관계자도 원본 CUDA에 비해 아직 일부 결함이 있다는 점을 인정하고 있다.

그리고 개발자는 일부 CUDA API 및 기능이 지원되지 않는다는 점을 분명히 했지만 구체적인 목록을 제공하지는 않았습니다.



"AMD 솔루션"의 또 다른 단점에 대해 SCALE 팀과 소통했다고 주장한 한 네티즌은 현재 SCALE이 TensorCore를 작동할 수 없으며 이는 FlashAttention 가속 프레임워크가 AMD에서 실행될 수 없음을 의미한다고 말했습니다.

또한 N 카드에는 강력한 행렬 곱셈 장치가 있기 때문에 컴파일하고 실행할 수 있다고 해도 AMD 카드의 성능이 N 카드만큼 좋지 않을 수 있습니다.



일부 네티즌들은 Nvidia가 지배적인 이유는 AMD가 (CUDA의 장점뿐만 아니라) GPU의 머신러닝 성능을 높이는 데 투자할 의지가 없기 때문이라고 생각합니다.



효율적으로 실행되더라도 AMD 카드가 실제로 저렴하고 접근 가능한지에 대한 의문도 있습니다.



또 다른 네티즌들은 기술적으로 실행 가능한지 여부가 아니라 법적 문제가 가장 큰 문제라고 생각한다.

이 문제 역시 광범위한 논의를 불러일으켰지만 아직 결론은 나지 않았습니다.

일부 사람들은 SCALE이 ZLUDA(AMD에서 CUDA 프로그램을 실행하는 또 다른 방법)만큼 법적으로 의심스럽고 NVIDIA로부터 소송을 당할 수 있다고 생각합니다.



특히 NVIDIA의 EULA 약관에 따르면 CUDA SDK는 N 카드에서 실행되는 애플리케이션 개발만 허용하므로 SCALE과 같은 호환 구현이 금지될 수 있습니다.



하지만 즉시 일부 네티즌들은 SCALE이 NVIDIA의 "SDK"를 사용하지 않았는데 왜 SDK 사용 계약에 대해 이야기합니까?



요컨대, 기술적인 문제이든 법적인 문제이든 이 새로운 도구에 대한 논의는 여전히 진행 중입니다.

그것이 유용한지 아닌지는 개발자가 직접 투표하는 것입니다.

참조 링크:
[1]https://docs.scale-lang.com/
[2]https://news.ycombinator.com/item?id=40970560