AMD ROCm, 빌드 환경 구축에 개발자들의 인내심이 요구된다
ROCm 7.1.1 패키지 빌드 시 과도한 CPU/RAM 자원 소모 및 디스크 공간 부족 문제 발생
hipBLASlt의 템플릿 기반 코드 생성 과정에서 빌드 시간 지연 및 대용량 임시 파일 생성 문제 발생
종속성 문제(Dependency Issues)로 인해 특정 GPU 아키텍처 지원에 어려움 겪음
커뮤니티에서는 패키징 시스템(Packaging System) 개선 및 빌드 시스템(Build System) 최적화 필요성을 제기
ROCm 빌드 환경의 자원 요구사항
ROCm 패키지 빌드 과정에서 CPU 코어(CPU Cores), RAM(Random Access Memory), 디스크 공간(Disk Space) 부족 문제가 심각하게 제기되었다. 특히, 256개의 CPU 스레드(Threads)를 가진 EPYC 프로세서(Processor) 환경에서도 빌드 속도가 느리고, 96GB 이상의 RAM을 사용해도 충분하지 않다는 보고가 있었다. 이러한 자원 부족 문제는 빌드 실패의 주요 원인으로 작용하며, 개발 생산성을 저해하는 요인으로 작용한다.
hipBLASlt의 복잡한 템플릿 코드와 빌드 시간
hipBLASlt는 텐서(Tensor) 커널 생성을 위해 템플릿 기반 코드를 사용하는데, 이로 인해 컴파일 시간(Compile Time)이 매우 길어진다는 문제가 발생한다. 특히, 단일 CXX 파일 컴파일에 15분 이상 소요되고, 모든 ISA(Instruction Set Architecture)에 대해 빌드하는 데에는 더 많은 시간이 소요된다. 이러한 문제는 빌드 시스템을 여러 하위 빌드로 분할하는 임시방편적인 해결책을 사용하게 만들며, 궁극적으로 빌드 과정의 복잡성을 증가시킨다.
hipBLASlt의 디스크 공간 사용량 문제
hipBLASlt의 텐서 커널 생성 과정에서 임시 파일(Temporary Files)의 과도한 디스크 공간 사용 문제가 발생한다. 특히, 어셈블리 파일(Assembly Files)에 매우 긴 주석이 포함되어 최대 240GB의 디스크 공간을 사용하며, 이는 빌드 실패의 원인이 되기도 한다. 다행히, 주석 제거 및 텐서(Tensor) 생성 방식 개선을 통해 디스크 공간 사용량을 줄이는 패치가 진행되었지만, 여전히 상당한 공간이 필요하다는 지적이 있다.
종속성 문제와 GPU 아키텍처 지원의 어려움
ROCm 패키지는 다양한 종속성을 가지고 있으며, 이로 인해 특정 GPU 아키텍처(GPU Architecture) 지원에 어려움을 겪고 있다. 특히, hipBLASlt는 특정 GPU 아키텍처에 대한 빌드를 지원하지 않아, 다른 패키지와의 호환성 문제(Compatibility Issues)를 야기한다. 이러한 문제는 개발자들이 패키지를 수정하거나, 임시 방편적인 해결책을 사용하도록 강요하며, ROCm 생태계의 발전을 저해하는 요인으로 작용한다.