AMD HIP
1. 개요
1. 개요
AMD HIP은 AMD가 개발한 이종 컴퓨팅 플랫폼이다. 이 플랫폼은 GPU를 이용한 병렬 프로그래밍을 위한 런타임 API 및 커널 언어로 구성되어 있으며, 2016년에 최초로 등장했다. 주요 목적은 AMD GPU 및 기타 이종 프로세서에서 고성능 병렬 컴퓨팅 애플리케이션을 개발할 수 있는 환경을 제공하는 것이다.
이 기술은 이종 컴퓨팅과 GPU 컴퓨팅 분야에서 중요한 역할을 하며, 병렬 프로그래밍 모델을 제공한다. HIP의 핵심 가치는 개발자가 AMD의 GPU 하드웨어에서 최적의 성능을 발휘하는 코드를 작성할 수 있도록 하는 동시에, 코드의 이식성을 높이는 데 있다.
HIP은 NVIDIA CUDA에 대응하는 AMD의 공식 솔루션으로 자리 잡았다. 이를 통해 개발자는 CUDA와 유사한 프로그래밍 모델을 익히고, HIP을 사용하여 AMD 인스팅트 시리즈 같은 가속기를 대상으로 하는 애플리케이션을 구축할 수 있다. HIP은 광범위한 ROCm 소프트웨어 생태계의 중심에 위치해 있다.
2. 역사와 배경
2. 역사와 배경
AMD HIP의 개발은 AMD가 GPU 컴퓨팅 시장에서 NVIDIA CUDA의 지배적 위치에 대응하기 위한 전략적 움직임에서 비롯되었다. 2016년 최초로 등장한 HIP는 AMD가 자사의 GPU 아키텍처에 최적화된 프로그래밍 모델을 제공하면서도, 기존에 널리 퍼져 있던 CUDA 생태계와의 호환성을 유지하려는 목표를 가지고 탄생했다. 이는 개발자들이 CUDA로 작성된 코드를 상대적으로 쉽게 AMD GPU로 포팅할 수 있도록 하여 진입 장벽을 낮추고자 한 의도였다.
HIP의 배경에는 AMD의 통합 이종 컴퓨팅 플랫폼인 ROCm의 출시가 자리 잡고 있다. HIP는 ROCm의 핵심 소프트웨어 구성 요소로 설계되어, AMD GPU 하드웨어와 ROCm 스택 사이의 중요한 연결 고리 역할을 한다. 이를 통해 AMD는 인공지능, 고성능 컴퓨팅, 과학기술계산 등 다양한 분야에서 자사 GPU의 활용도를 높이고 경쟁력을 강화하고자 했다.
3. 아키텍처 및 핵심 구성 요소
3. 아키텍처 및 핵심 구성 요소
3.1. HIP 런타임 API
3.1. HIP 런타임 API
HIP 런타임 API는 HIP 프로그래밍 모델의 핵심 구성 요소로, 호스트 CPU가 GPU와 같은 가속기 장치를 관리하고 제어하기 위한 함수 집합을 제공한다. 이 API는 애플리케이션 프로그래밍 인터페이스 수준에서 메모리 할당 및 복사, 커널 실행, 다중 장치 관리, 이벤트 및 스트림 동기화와 같은 기본적인 작업들을 처리한다. 개발자는 이 런타임 API를 사용하여 호스트 코드를 작성하고, HIP 커널 언어로 작성된 장치 코드를 실행시킨다.
이 API는 설계상 NVIDIA CUDA의 런타임 API와 매우 유사한 형태를 띠고 있어, 개발자들이 기존의 CUDA 프로그래밍 지식과 경험을 쉽게 HIP으로 전환할 수 있도록 한다. 함수명과 매개변수 구조가 직관적으로 대응되도록 구성되어 있다. 예를 들어, 메모리 할당은 hipMalloc을, 호스트와 장치 간 데이터 복사는 hipMemcpy 계열 함수를 사용한다. 이러한 호환성 중심 설계는 HIP의 주요 목표 중 하나인 코드 이식성을 실현하는 데 기여한다.
HIP 런타임 API는 단일 GPU 뿐만 아니라 다중 GPU 시스템을 효율적으로 활용할 수 있는 기능도 포함하고 있다. hipSetDevice 함수를 통해 특정 장치를 컨텍스트로 설정할 수 있으며, 비동기 연산과 동기화를 위한 스트림과 이벤트 메커니즘을 제공한다. 이를 통해 복잡한 파이프라이닝 작업이나 다중 장치 간 작업 분배를 구현할 수 있어, 고성능 컴퓨팅 및 데이터센터 환경에서의 활용성을 높인다.
이 API는 ROCm 소프트웨어 스택의 기반 위에서 동작하며, 리눅스 및 윈도우 운영체제를 지원한다. HIP 런타임의 함수들은 최종적으로 AMD GPU의 하드웨어 명령어로 변환되어 실행되며, 이 과정에서 ROCm의 저수준 드라이버와 상호작용한다. 결과적으로 HIP 런타임 API는 개발자에게 AMD 하드웨어를 직접 제어하는 복잡함을 숨기면서도, CUDA에 준하는 높은 수준의 프로그래밍 편의성과 성능을 제공하는 추상화 계층의 역할을 수행한다.
3.2. HIP 컴파일러 툴체인
3.2. HIP 컴파일러 툴체인
HIP 컴파일러 툴체인은 HIP 커널 코드를 AMD GPU 또는 기타 대상 아키텍처에서 실행 가능한 바이너리로 변환하는 핵심 도구 모음이다. 이 툴체인의 중심에는 LLVM 컴파일러 인프라를 기반으로 한 HIPCC 컴파일러 드라이버가 있다. HIPCC는 개발자가 작성한 HIP 코드(보통 .hip 또는 .cu 확장자)를 처리하여, 대상 플랫폼에 맞는 중간 코드와 최종 기계어 코드를 생성하는 역할을 한다. 이 과정에서 HIP 헤더 파일과 런타임 라이브러리가 링크된다.
툴체인의 주요 구성 요소로는 Clang 프론트엔드와 AMD의 백엔드 컴파일러가 포함된다. Clang은 C++ 문법을 확장한 HIP 커널 언어를 파싱하고 중간 표현(IR)으로 변환한다. 이후 AMD의 백엔드 컴파일러(예: AMDGPU 백엔드)가 이 중간 표현을 특정 GPU 아키텍처(예: GCN, RDNA)에 최적화된 명령어로 컴파일한다. 이 툴체인은 ROCm 플랫폼에 통합되어 제공되며, Linux 운영체제 환경에서 주로 사용된다.
HIP 컴파일러 툴체인의 중요한 특징은 이식성을 위한 이중 경로 컴파일을 지원한다는 점이다. 동일한 HIP 소스 코드를 NVIDIA GPU용 NVCC 컴파일러를 통해 CUDA 바이너리로 컴파일하거나, HIPCC를 통해 AMD GPU용 바이너리로 컴파일할 수 있다. 이는 HIPIFY 도구와 결합되어 기존 CUDA 코드의 포팅 과정을 크게 단순화한다. 또한, 툴체인은 표준 Makefile이나 CMake 빌드 시스템과의 통합을 지원하여 개발 워크플로우에 쉽게 적용할 수 있다.
3.3. 포트란 지원 (HIP-Fortran)
3.3. 포트란 지원 (HIP-Fortran)
HIP은 주로 C++ 프로그래밍 언어를 대상으로 설계되었으나, 과학기술계산 분야에서 널리 사용되는 포트란 언어에 대한 지원도 제공한다. 이를 HIP-Fortran이라고 부르며, 포트란으로 작성된 애플리케이션 코드가 AMD GPU에서 효율적으로 실행될 수 있도록 하는 것이 목표이다.
HIP-Fortran의 핵심은 포트란 코드 내에서 HIP 커널을 직접 작성하고 호출할 수 있도록 하는 일련의 모듈과 인터페이스를 제공하는 데 있다. 이를 통해 개발자는 기존의 대규모 포트란 과학 코드를 HIP 생태계로 점진적으로 이식하거나, 포트란을 주 언어로 사용하면서도 GPU 가속을 활용한 새로운 애플리케이션을 개발할 수 있다. 이 지원은 ROCm 플랫폼의 일부로 제공되며, HIP의 C++ API와 유사한 기능을 포트란 언어 규약에 맞게 구현한다.
주요 기능으로는 포트란 서브루틴을 GPU 커널로 표시하는 지시어 지원, GPU 메모리 할당 및 관리 API 호출, 그리고 호스트와 디바이스 간 데이터 전송 관리 등이 포함된다. 이는 CUDA 포트란이나 OpenACC와 같은 다른 GPU 프로그래밍 모델과 유사한 접근 방식을 취하지만, AMD GPU 및 ROCm 스택에 최적화되어 있다.
HIP-Fortran의 지원은 고성능 컴퓨팅과 과학 시뮬레이션 분야의 기존 포트란 코드베이스를 이종 컴퓨팅 환경으로 확장하는 데 중요한 역할을 한다. 이를 통해 기상학, 유체 역학, 계산 화학 등 전통적으로 포트란이 강세를 보이는 분야의 연구자와 개발자도 AMD GPU의 성능을 활용할 수 있는 길이 열렸다.
4. 주요 기능 및 특징
4. 주요 기능 및 특징
4.1. 이식성 (Portability)
4.1. 이식성 (Portability)
AMD HIP의 가장 큰 장점 중 하나는 뛰어난 이식성이다. HIP는 개발자가 하나의 소스 코드 베이스로 AMD GPU와 NVIDIA GPU 양쪽에서 실행 가능한 애플리케이션을 작성할 수 있도록 설계되었다. 이는 HIP가 두 벤더의 하드웨어 아키텍처 차이를 추상화하는 런타임 라이브러리와 컴파일러 도구 체인을 제공하기 때문에 가능하다.
이식성을 실현하는 핵심 메커니즘은 HIP의 이중 경로 컴파일 모델이다. 개발자는 HIP C++로 작성된 동일한 소스 코드를 HIPCC 컴파일러를 사용하여 컴파일한다. 컴파일 시, 대상 하드웨어가 AMD GPU(GCN/CDNA/RDNA 아키텍처)인지 NVIDIA GPU(쿠다 코어)인지에 따라 컴파일러는 서로 다른 백엔드로 코드를 변환한다. AMD GPU를 대상으로 할 경우 코드는 ROCm 플랫폼의 HC C++ 또는 최근에는 AMDGPU 기계어로 컴파일되고, NVIDIA GPU를 대상으로 할 경우에는 NVIDIA CUDA와 호환되는 PTX 코드로 변환된다.
이러한 접근 방식은 개발자에게 상당한 유연성을 제공한다. 특정 벤더의 하드웨어에 종속되지 않고 애플리케이션을 개발할 수 있으며, 이는 데이터센터나 HPC 클러스터와 같이 다양한 하드웨어가 혼재된 환경에서 특히 유용하다. 또한, 기존에 NVIDIA CUDA로 작성된 코드를 HIP로 포팅하는 과정도 비교적 수월하여, 광범위한 CUDA 생태계의 자산을 활용하면서도 AMD 하드웨어로의 이식 경로를 열어준다. 결과적으로 HIP는 이종 컴퓨팅 환경에서의 소프트웨어 투자 보호와 개발 효율성 향상에 기여한다.
4.2. CUDA 코드 호환성
4.2. CUDA 코드 호환성
HIP의 주요 설계 목표 중 하나는 NVIDIA CUDA로 작성된 기존 코드를 최대한 쉽게 AMD GPU 플랫폼으로 이식할 수 있도록 하는 것이다. 이를 위해 HIP은 CUDA API와 매우 유사한 프로그래밍 인터페이스를 제공하며, 핵심적인 런타임 API 함수명과 커널 실행 구문을 거의 동일하게 유지한다. 이는 개발자가 익숙한 CUDA 프로그래밍 모델을 그대로 활용하면서도 AMD의 ROCm 플랫폼을 대상으로 코드를 컴파일하고 실행할 수 있게 해준다.
이식 과정을 지원하기 위해 AMD는 hipify-perl 및 hipify-clang과 같은 자동 변환 도구를 제공한다. 이 도구들은 CUDA 소스 코드(.cu 파일)를 분석하여 대부분의 CUDA 특정 함수 호출과 구문을 HIP의 동등한 요소로 변환해 준다. 예를 들어, cudaMalloc은 hipMalloc으로, __global__ 함수 선언은 __global__ 그대로 유지되거나 HIP의 규칙에 맞게 처리된다. 이를 통해 개발자는 수작업으로 코드를 다시 작성하는 부담을 크게 줄일 수 있다.
그러나 완벽한 호환성을 의미하지는 않는다. 변환 후에도 일부 아키텍처 특화 코드나 CUDA의 고급 기능(예: 특정 텐서 코어 연산, 동적 병렬 처리의 세부 구현 등)은 수동 조정이 필요할 수 있다. 또한, HIP은 CUDA의 모든 라이브러리(cuBLAS, cuDNN 등)를 직접 대체하지 않으며, 이에 상응하는 ROCm 라이브러리(rocBLAS, MIOpen 등)를 사용하도록 코드를 변경해야 한다.
결과적으로, HIP의 CUDA 코드 호환성은 학습 곡선을 낮추고 광범위한 CUDA 생태계의 코드 자산을 AMD 하드웨어로 가져오는 실용적인 경로를 제공한다. 이는 이종 컴퓨팅 시장에서 개발자 접근성을 높이고 AMD GPU의 채택을 촉진하는 데 중요한 역할을 한다.
4.3. 성능
4.3. 성능
HIP의 성능은 AMD GPU의 하드웨어 아키텍처와 ROCm 소프트웨어 스택에 최적화되어 설계되었다. HIP 커널은 AMD GPU의 GCN 아키텍처 및 후속 RDNA 아키텍처에서 네이티브 코드로 컴파일되어 실행되므로, 하드웨어의 컴퓨트 유닛, 메모리 계층, 명령어 세트를 효율적으로 활용할 수 있다. 이는 HIP이 AMD GPU에서 CUDA 대비 경쟁력 있는 성능을 제공할 수 있는 근본적인 이유이다.
성능 비교는 주로 동일한 알고리즘을 HIP C++과 CUDA C++로 각각 구현하여, 동급의 AMD와 NVIDIA GPU에서 실행 시간을 측정하는 방식으로 이루어진다. 공식 벤치마크 및 여러 연구 결과에 따르면, 행렬 곱셈이나 합성곱 신경망 커널과 같은 컴퓨트 집약적 작업에서 HIP은 종종 CUDA와 유사한 성능을 보인다. 특히 ROCm 플랫폼의 고성능 라이브러리들, 예를 들어 rocBLAS나 rocFFT는 AMD GPU의 성능을 극대화하도록 튜닝되어 있어, 이러한 라이브러리를 활용할 때 HIP 애플리케이션의 성능 이점이 두드러진다.
성능 최적화를 위해서는 HIP의 메모리 관리 API(hipMalloc, hipMemcpy)와 커널 실행 구성을 이해하고, AMD GPU의 메모리 대역폭 및 L1/L2 캐시 특성에 맞게 코드를 조정하는 것이 중요하다. 또한 ROC 프로파일러나 Omniperf와 같은 도구를 사용하여 커널의 실행 시간, 메모리 접근 패턴, 산술 논리 장치 사용률 등을 분석함으로써 병목 현상을 찾고 성능을 개선할 수 있다.
5. 응용 분야 및 활용 사례
5. 응용 분야 및 활용 사례
AMD HIP은 AMD GPU를 활용한 고성능 컴퓨팅 분야에서 널리 사용된다. 특히 과학기술계산과 수치해석 분야에서 복잡한 시뮬레이션과 모델링을 가속화하는 데 핵심적인 역할을 한다. 기상 예측, 유체 역학, 분자 동역학 시뮬레이션과 같은 대규모 병렬 계산 작업은 HIP을 통해 AMD의 인스팅트 시리즈 가속기에서 효율적으로 실행될 수 있다.
인공지능과 머신러닝 분야에서도 HIP은 중요한 기반 기술이다. ROCm 플랫폼의 일부로 제공되는 rocBLAS, rocFFT와 같은 고성능 라이브러리들은 HIP 위에서 구축되어, 딥러닝 프레임워크의 학습 및 추론 과정을 AMD GPU에서 수행할 수 있게 한다. 이는 데이터 센터와 연구 개발 환경에서 NVIDIA CUDA에 대한 대안적 생태계를 제공한다.
또한 미디어 및 엔터테인먼트 산업에서의 영상 처리, 렌더링 작업, 그리고 금융 공학 분야의 리스크 분석 및 알고리즘 트레이딩과 같은 실시간 고속 계산이 필요한 응용 프로그램들도 HIP의 이점을 활용할 수 있다. HIP의 이식성 덕분에, 개발자는 코드를 크게 수정하지 않고도 AMD Radeon 및 인스팅트 계열의 다양한 GPU 하드웨어를 대상으로 애플리케이션을 개발하고 배포할 수 있다.
6. 주요 도구 및 생태계
6. 주요 도구 및 생태계
6.1. ROCm 플랫폼
6.1. ROCm 플랫폼
ROCm 플랫폼은 AMD가 GPU 및 기타 이종 컴퓨팅 프로세서를 활용한 고성능 병렬 프로그래밍을 지원하기 위해 개발한 오픈 소스 소프트웨어 스택이다. 이 플랫폼은 HIP을 핵심 프로그래밍 인터페이스로 포함하며, 컴파일러, 디버거, 프로파일러, 그리고 다양한 가속 라이브러리를 통합된 생태계로 제공한다. ROCm의 목표는 데이터 센터와 슈퍼컴퓨터를 포함한 다양한 컴퓨팅 환경에서 AMD GPU의 성능과 프로그래밍 접근성을 극대화하는 것이다.
ROCm 플랫폼은 리눅스 운영 체제를 주요 지원 대상으로 하며, 서버와 워크스테이션 환경에 최적화되어 있다. 플랫폼의 구성 요소는 크게 시스템 런타임(ROCk 커널 드라이버), 사용자 공간 런타임(HIP 런타임), 개발 도구(HIP 컴파일러, ROCgdb, rocProfiler), 그리고 고성능 라이브러리(rocBLAS, rocFFT, rocRAND 등)로 나뉜다. 이러한 모듈식 설계는 개발자가 필요한 구성 요소만 선택적으로 사용할 수 있도록 한다.
구성 요소 카테고리 | 주요 예시 | 설명 |
|---|---|---|
프로그래밍 모델 | GPU 커널을 작성하기 위한 언어 및 API | |
컴파일러 및 도구 | 코드 변환, 디버깅, 성능 분석 도구 | |
가속 라이브러리 | 선형대수, 푸리에 변환 등 특화 연산 라이브러리 | |
시스템 소프트웨어 | 하드웨어 리소스 관리 및 메모리 통합 지원 |
ROCm은 머신 러닝과 과학기술계산 분야에 특히 중점을 두고 지속적으로 발전하고 있다. TensorFlow 및 PyTorch와 같은 주요 딥 러닝 프레임워크에 대한 지원을 통해 인공지능 연구 및 개발 생태계에서의 입지를 강화하고 있다. 또한, 프론티어 (슈퍼컴퓨터)와 같은 세계 최고 수준의 엑사스케일 슈퍼컴퓨터에 채택되며, 고성능 컴퓨팅 분야에서의 경쟁력을 입증하였다.
6.2. 프로파일링 및 디버깅 도구
6.2. 프로파일링 및 디버깅 도구
HIP 기반 애플리케이션의 성능 최적화와 오류 해결을 위해 AMD는 ROCm 플랫폼 내에 다양한 프로파일링 및 디버깅 도구를 제공한다. 이 도구들은 개발자가 GPU의 하드웨어 성능 카운터를 분석하고, 커널 실행 시간을 측정하며, 메모리 접근 패턴을 진단하는 데 필수적이다.
주요 프로파일링 도구로는 rocprof와 rocprofiler가 있다. rocprof는 명령줄 기반의 성능 프로파일러로, HIP 커널의 실행 시간, 메모리 사용량, 캐시 적중률 등 다양한 하드웨어 성능 지표를 수집한다. rocprofiler는 이와 유사한 기능을 제공하는 라이브러리 형태의 API로, 애플리케이션 코드 내에 직접 프로파일링 코드를 삽입할 수 있어 더 세밀한 분석이 가능하다. 또한 Omniperf는 하드웨어 성능 카운터를 기반으로 한 상세한 성능 분석을 제공하는 도구이다.
디버깅을 위해서는 ROCgdb가 핵심 도구이다. 이는 GNU 디버거를 기반으로 하여 HIP 커널 코드를 포함한 호스트 및 디바이스 코드에 대한 소스 수준 디버깅을 지원한다. 개발자는 중단점 설정, 변수 검사, 단계별 실행 등을 통해 복잡한 병렬 코드의 논리적 오류를 찾아낼 수 있다. 또한 Radeon GPU Detective는 성능 병목 현상을 시각적으로 분석하는 데 도움을 주는 GUI 기반의 성능 분석기이다.
6.3. 라이브러리 (rocBLAS, rocFFT 등)
6.3. 라이브러리 (rocBLAS, rocFFT 등)
AMD HIP 생태계의 핵심적인 부분은 AMD가 개발한 고성능 GPU 가속 라이브러리들이다. 이 라이브러리들은 ROCm 플랫폼에 통합되어 제공되며, 과학 계산, 머신러닝, 데이터 분석 등 다양한 고성능 컴퓨팅 분야에서 개발자들이 GPU의 병렬 처리 능력을 쉽게 활용할 수 있도록 한다. 이들은 BLAS나 FFT와 같은 표준화된 컴퓨팅 커널의 고도로 최적화된 구현체를 제공함으로써, 개발자가 직접 커널을 작성하는 수고를 덜고 성능을 보장받을 수 있게 한다.
주요 라이브러리로는 선형 대수 연산을 위한 rocBLAS, 고속 푸리에 변환을 위한 rocFFT, 희소 행렬 연산을 위한 rocSPARSE, 랜덤 넘버 생성을 위한 rocRAND, 그리고 기본적인 수학 함수 라이브러리인 rocPRIM과 rocThrust 등이 있다. 이 라이브러리들은 HIP의 이식성 철학을 따르며, 동일한 소스 코드로 AMD GPU와 NVIDIA GPU 양쪽에서 실행 가능한 바이너리를 생성할 수 있도록 설계되었다. 또한, NVIDIA의 CUDA 라이브러리인 cuBLAS, cuFFT 등과 API 수준에서 호환성을 제공하는 경우가 많아, 기존 CUDA 애플리케이션의 포팅을 용이하게 한다.
이 라이브러리들은 단독으로 사용되기도 하지만, 상위 레벨의 프레임워크와 소프트웨어의 기반을 이룬다. 예를 들어, 머신러닝 프레임워크인 TensorFlow와 PyTorch의 ROCm 버전은 내부적으로 이러한 라이브러리들을 활용하여 AMD GPU에서의 연산을 가속한다. 또한, OpenMP나 OpenCL과 같은 다른 병렬 프로그래밍 모델과도 연동되어 폭넓은 활용을 가능하게 한다.
AMD는 지속적으로 이 라이브러리 생태계를 확장하고 최적화하고 있다. 새로운 GPU 아키텍처가 출시될 때마다 해당 하드웨어에 맞는 최신의 최적화가 적용되며, 지원되는 연산의 범위도 점차 넓어지고 있다. 이를 통해 HIP과 ROCm은 고성능 컴퓨팅 및 인공지능 분야에서 강력한 오픈 소스 대안 플랫폼으로 자리매김하고 있다.
7. 장단점
7. 장단점
AMD HIP의 주요 장점은 높은 이식성과 개방성에 있다. HIP는 AMD GPU와 NVIDIA GPU 양쪽에서 동일한 소스 코드를 실행할 수 있도록 설계되어, 개발자가 특정 하드웨어 벤더에 종속되지 않고 애플리케이션을 작성할 수 있다. 이는 특히 클라우드 컴퓨팅이나 하이브리드 컴퓨팅 환경에서 다양한 GPU를 유연하게 활용할 수 있게 해준다. 또한 HIP는 오픈 소스로 공개되어 있어 커뮤니티의 기여를 통한 지속적인 발전이 가능하며, ROCm 플랫폼과의 긴밀한 통합을 통해 AMD 하드웨어에서의 성능 최적화를 제공한다.
반면, 단점으로는 생태계의 상대적 성숙도와 시장 점유율을 꼽을 수 있다. 경쟁 기술인 NVIDIA CUDA에 비해 HIP와 ROCm의 역사가 짧아, 지원되는 소프트웨어 라이브러리나 프레임워크, 그리고 개발 도구의 다양성과 완성도 측면에서 아직 격차가 존재한다. 또한, HIP를 통한 NVIDIA GPU 호환성은 주로 CUDA 코드를 변환하는 수준에 머물러 있으며, 모든 CUDA 기능을 완벽하게 지원하거나 최신 NVIDIA 아키텍처에서의 최적화된 성능을 보장하지는 않는다. 이는 기존 대규모 CUDA 생태계에 깊이 의존하는 개발자들에게 진입 장벽으로 작용할 수 있다.
