“반도체”… 소프트웨어에 대한 기술적 이슈
CUDA(컴퓨팅 유니파이드 디바이스 아키텍처) 수준의 사용성 반도체에 최적화된 컴파일러 데이터 센터 스케일로 확장 가능한 소프트웨어 계층 지원 프로그래머들이 쉽게 활용할 수 있도록 프로그래머 빌리티가 필수
[디지털비즈온 김맹근 기자] CUDA(Compute Unified Device Architectur, 컴퓨팅 유니파이드 디바이스 아키텍처) 준의 사용성은 하드웨어 스펙이 뛰어난 AI 반도체가 GPU와 경쟁하는데 필수적이지만, 널리 사용되기 위한 충 분조건은 아니다.
실제로 많은 AI 반도체 업체들이 GPU에 비해 높은 성능, 우수한 에너지 효율, 인상적인 벤치마크 결과를 보여주었고, 대규모 데이터센터도 AI 반도체 업체들의 제품들을 도 입하기 위해 노력하였으나 여전히 널리 사용되고 있지 않다. 이러한 현상의 주요 원인 중 하나 로 소프트웨어 스택의 사용성 부족이 지적된다.
많은 사람들이 NVIDIA GPU의 CUDA를 사용성 문제의 핵심으로 지목한다. 실제로 딥러닝의 급격한 발전에는 GPU와 CUDA의 기여가 크며, 초기 연구자들과 프레임워크들은 CUDA에 밀접하게 통합되어 있었다.
반도체에 최적화된 컴파일러
AI 반도체가 딥러닝 모델의 연산을 수행하고 결과를 반환하기 위해선 디바이스 드라이버, 컴파 일러, 런타임 소프트웨어 등 여러 소프트웨어 스택들이 필요하다. 이 중에서 사용자의 모델이 실행 가능하거나 경쟁력 있는 성능으로 실행될 수 있는지를 결정하는 핵심 소프트웨어는 컴파 일러이다.
컴파일러는 다양한 프레임워크에서 기술된 사용자의 모델을 입력으로 받아, AI 반도 체가 실행할 수 있는 바이너리로 변환하는 역할을 담당한다. 이 과정에서 AI 반도체의 연산 유닛들과 메모리에 사용자의 모델이 포함한 연산, 파라미터, 텐서들을 스케줄링하고 자원을 할당 하는 최적화 작업을 수행한다.
AI 반도체에 대한 컴파일러 문제를 해결하기 위해 MLIR과 TVM과 같은 범용 컴파일러 연구가 진행되고 있다. MLIR은 구글에서 개발되어 LLVM과 같이 다양한 계층의 중간표현(IR)을 지원하고, AI 반도체를 포함한 다양한 프로세서에 대한 백엔드를 지원할 수 있는 프레임워크를 제공한다. 이는 프로세서에 독립적인 공통 모델 최적화를 공유하며, 각 프로세서에 적합한 최적 화를 IR에 추가하거나 확장할 수 있도록 설계되었다.
TVM은 다양한 AI 반도체에 대한 스케줄링 및 최적화를 수행할 수 있는 범용 컴파일러를 제공한다. TVM은 상당히 넓은 범위의 AI 반도체 최적화를 지원하며, 실제로 다양한 AI 반도체에 대한 컴파일러로 사용될 수 있다.
그러나 AI 반 도체 내부 연산뿐만 아니라 메모리 계층 구조, 온칩 네트워크의 구조와 특성 등이 모두 다르므로 모든 AI 반도체에 대한 최적화 문제를 해결하는 것은 어렵다. 실제로 일부 연구 논문에서는 GPU에서의 TVM 컴파일 결과가 CUDA에서 제공하는 라이브러리에 비해 상당히 낮은 성능을 보여주는 것으로 나타났다.
따라서 AI 반도체 개발에서는 하드웨어의 성능과 에너지 효율뿐만 아니라, 컴파일러의 복잡도를 고려한 프로그래밍 모델을 제공하는 것도 필요하다. AI 반도체는 딥러닝 알고리즘에 대한 깊은 이해를 바탕으로 하드웨어와 소프트웨어가 통합 설계되어야 하며, 이는 딥러닝 연산이라는 특정 도메인에 특화된 프로그래밍 모델을 형성하는데 중요하다.
데이터센터 스케일로 확장 가능한 소프트웨어 계층지원
데이터센터와 클라우드는 기업이나 개인이 자신의 컴퓨팅 작업을 처리하기 위해 필요한 자원을 공급하는 중요한 인프라스트럭처 이다. 가장 큰 장점은 사용자들이 동일한 자원을 공유함으로써 자원 효율성을 높이고 가용성을 높일 수 있다는 점이다.
가상머신은 물리적 하드웨어를 여러 가상의 컴퓨터로 나누는 기술로, 하나의 서버에서 여러 개의 독립된 가상 서버를 운영할 수 있게 해준다. 따라서 AI 반도체가 데이터센터에서 사용될 경우 가상머신을 지원하여 다수의 사용 자가 이를 공유할 수 있도록 해야 한다.
AI 반도체가 쿠버네티스에 쉽게 통합되려면 쿠버네티스 플러그인 및 모니터링 도구를 지원해야 한다. 이렇게 함으로써 AI 반도체는 데이터센터의 기존 인프라스트럭처에 매끄럽게 통합되어 최적 성능을 발휘하고 사용자에게 더 나은 서비스를 제공할 수 있게 된다.
결과적으로 AI 반도체는 다양한 시장에서 활용될 수 있어야 하고 빠르게 발전하고 있는 미래의 딥러닝 모델들도 지원해야 하므로, 프로그래머들이 쉽게 활용할 수 있도록 프로그래머 빌리티가 필수적이다. 이러한 하드웨어를 최적화하고 사용성을 제공할 컴파일러를 비롯한 소프트웨어 스택도 AI 반도체가 데이터센터에서 사용되기 위한 중요한 필요조건이다.