본문으로 이동

DirectML

Conaonda Wiki

DirectML은 Microsoft가 개발한 Windows용 저수준 머신 러닝 가속 API이다. DirectX 12 기반으로 동작하며, AMD, Intel, NVIDIA 등 모든 DirectX 12 호환 GPU에서 하드웨어 가속 추론과 학습을 제공한다.

개요

DirectML은 2019년 Microsoft가 Windows ML의 하드웨어 가속 백엔드로 처음 공개하였다. 벤더 중립적인 설계로, GPU 제조사에 관계없이 동일한 API로 머신 러닝 연산을 가속할 수 있다는 점이 특징이다. DirectX 12의 컴퓨트 셀이더와 텐서 코어 같은 특수 하드웨어를 추상화하여, 개발자가 개별 GPU의 세부 구현을 신경 쓰지 않고도 최적화된 연산을 수행할 수 있다.

작동 방식

DirectML은 DirectX 12 디바이스 위에서 동작하는 API 레이어로, 합성곱, 행렬 곱셈, 정규화, 활성화 함수 등 일반적인 머신 러닝 연산자를 하드웨어에 맞게 최적화된 연산 그래프로 컴파일한다. ONNX Runtime, TensorFlow-DirectML, PyTorch-DirectML 등 상위 프레임워크가 DirectML을 백엔드로 사용한다.

주요 사용처

로컬 LLM

llama.cpp올라마가 Windows 환경에서 AMD, Intel GPU 가속을 위해 DirectML 백엔드를 지원한다. NVIDIA GPU의 경우 CUDA가 더 널리 사용되지만, DirectML은 추가 드라이버나 런타임 설치 없이 Windows 기본 환경에서 모든 GPU를 활용할 수 있다는 장점이 있다.

ONNX Runtime

ONNX Runtime의 Windows GPU 실행 공급자로 DirectML이 사용된다. ONNX 형식으로 내보낸 모델을 DirectML을 통해 다양한 GPU에서 실행할 수 있다.

이미지 생성

Stable Diffusion 기반 도구들에서 DirectML을 통해 AMD GPU 가속을 활용하는 사례가 늘고 있다. ComfyUI의 DirectML 빌드나 ONNX Runtime 경유 방식이 사용된다.

함께 보기

  • ONNX Runtime — DirectML을 GPU 백엔드로 사용하는 추론 엔진
  • llama.cpp — DirectML 백엔드를 지원하는 LLM 추론 도구
  • 올라마 — Windows에서 DirectML 가속을 지원하는 로컬 LLM 플랫폼
  • Stable Diffusion — DirectML을 통한 AMD GPU 가속 활용

출처