
1. 대표적 GPU 가속 기술
GPU 가속 기술은
- CPU가 처리하던 대규모 수치 연산을
- GPU에서 병렬로 실행할 수 있도록 해주는
- API, compiler, runtime, library, driver 를 포함한 software stack임.
API
- 개발자가 GPU 연산을 호출하기 위해 사용하는 interface
- 예: CUDA API, DirectML API, Metal API
compiler
- GPU에서 실행될 code 또는 연산 graph를 target device에 맞게 변환/최적화
- 예: CUDA compiler, XLA compiler, MLIR 기반 compiler
runtime
- 실행 시점에 memory allocation, kernel launch, device synchronization 등을 관리
- 즉, "실행 환경"에 해당
library
- 특정 기능을 재사용 가능하게 묶어둔 구현체이며, 보통 library를 사용하기 위한 API를 함께 제공됨.
- 예: cuBLAS, cuDNN, MPSGraph, rocBLAS, MIOpen
driver
- OS와 GPU hardware 사이에서 실제 device 제어를 담당
API는 사용법이고, library는 그 기능을 실제로 구현해둔 code 묶음임.
software stack 이라고 부르는 이유는
CUDA, MPS, ROCm, DirectML이
단순한 library 하나가 아니라 보통 여러 요소들을 함께 포함하거나 연동하기 때문임.
현재 가장 많이 사용되고 있는 GPU기반의 가속기술은 다음과 같음:
- Compute Unified Device Architecture (CUDA): NVIDIA
- Metal Performance Shaders (MPS): Apple
- Radeon Open Compute (ROCm): AMD
- Direct Machine Learning (DirectML): Microsoft
참고: XLA (Accelerated Linear Algebra)
참고로, GPU의 대안으로는 TPU(Tensor Processing Unit)도 존재함.
TPU에선 XLA(Accelerated Linear Algebra) 가 (사실상 필수) Compiler Layter로 동작함:
- XLA는 일종의 연산그래프를 최적화하는 Compiler 역할로 동작함.
- 사실 XLA는 CUDA, MPS, ROCm, DirectML과 같은 수준의 “GPU vendor backend”는 아님.
- XLA는 TensorFlow/JAX 등에서 계산 graph를 최적화하고 backend에 맞는 실행 code를 생성해주는 compiler stack 에 속함.
XLA는
- TPU, GPU, CPU 모두에서 사용가능한 기술이나
- 보통 Nvidia GPU에선 하부에 CUDA를 필요로 함.
- 즉, target device 의 software stack에 동작하는 코드를 생성하여 사용자의 계산그래프가 해당 device에서 동작하는 것임.
2024.03.21 - [Python] - [DL] PyTorch: TPU사용하기 - XLA
[DL] PyTorch: TPU사용하기 - XLA
https://github.com/pytorch/xla GitHub - pytorch/xla: Enabling PyTorch on XLA Devices (e.g. Google TPU)Enabling PyTorch on XLA Devices (e.g. Google TPU). Contribute to pytorch/xla development by creating an account on GitHub.github.com 다음 문서도 참
ds31x.tistory.com
Deep Learning에서 가장 많이 애용되고 있는 Framework는
바로 PyTorch와 TensorFlow임.
이들에서 위의 가속기술의 지원과 이들 기술 비교는 다음과 같음.
2. 주요 GPU 가속기술 개요
| 기술 | 제조사 | 등장 연도 |
현재 버전 |
PyTorch 지원 |
TensorFlow 지원 |
지원 환경 | 선호도 활용도 |
| CUDA | NVIDIA | 2007년 | 12.8 (2025년) |
2016년부터 완벽 지원 |
2015년부터 완벽 지원 |
Win, Linux, macOS (~2020) |
1위 |
| ROCm | AMD | 2016년 | 6.3 (2025년) |
2020년부터 제한적 |
2020년부터 제한적 |
Linux 중심, Win (5.5+, 2023년~) |
2위 |
| MPS | Apple | 2016년 | Metal 3.1 (2025년) |
2022년(1.12+) 거의 완벽 |
제한적 | Apple Silicon, macOS |
3위 |
| DirectML | MS | 2019년 | 1.15.2 (2025년) |
비공식 (플러그인) |
비공식 (플러그인) |
Win | 4위 |
3. GPU 가속기술별 상세 특징 및 발전 과정
3-1. CUDA (Compute Unified Device Architecture)
- 강점:
- 가장 성숙한 생태계와 최적화된 성능 제공
- 방대한 라이브러리와 완벽한 문서화
- 대규모 커뮤니티 지원
- 딥러닝 프레임워크의 사실상 표준 기술로 자리매김
- 한계:
- NVIDIA GPU에서만 작동
- 비공개 소프트웨어
- 발전 과정:
- 2007년 최초 등장으로 GPU 컴퓨팅의 선구자 역할
- 딥러닝 프레임워크 초기부터 기본 가속 기술로 채택
- 공식 사이트: https://developer.nvidia.com/cuda-toolkit
3-2. ROCm (Radeon Open Compute)
- 강점:
- 오픈소스 플랫폼
- 비용 효율성
- HPC 환경 최적화
- CUDA의 주요 대안으로 성장 중
- 한계:
- 제한적인 지원 기능
- AMD GPU만 지원 (Open Source이므로 확대가 기대되나 아직 다른 GPU에서 지원되는 경우 없음)
- 생태계가 CUDA보다 덜 성숙함 (솔직히 현재 어떤 기술도 CUDA보다 성숙한 생태계를 가지고 있지 않음)
- 발전 과정:
- 2016년 오픈소스 GPU 컴퓨팅 플랫폼으로 등장
- 2020년 주요 딥러닝 프레임워크 지원 시작
- 2023년(ROCm 5.5)부터 Windows 환경 제한적 지원 추가
- 공식 사이트: https://www.amd.com/en/graphics/servers-solutions-rocm
3-3. MPS (Metal Performance Shaders)
- 강점:
- Apple 하드웨어에 최적화
- 높은 전력 효율성
- Apple Silicon에 한정되나 매우 뛰어난 성능과 지원을 보임.
- 한계:
- Apple 기기에서만 사용 가능
- 일부 고급 기능 제한 (하지만, CUDA를 제외하면 가장 많은 기능을 지원)
- 발전 과정:
- 2016년 Metal Performance Shaders 기술 도입
- 2022년 PyTorch 1.12부터 MPS 백엔드 공식 지원
- Apple Silicon 환경에서 빠르게 발전 중 - 개인용과 같은 소규모 장비 위주
- 공식 사이트: https://developer.apple.com/metal/
3-4. DirectML (Direct Machine Learning)
- 강점:
- 다양한 GPU 하드웨어(NVIDIA, AMD, Intel) 지원
- Windows 환경과의 통합
- 한계:
- 공식 프레임워크에 통합 부족. (공식 지원이 아닌 MS가 단독으로 제공 중)
- 최적화 수준이 상대적으로 낮음.
- 지원되는 하드웨어의 다양성과 달리, MS만 밀고 있는 제한된 생태계가 단점.
- 발전 과정:
- 2019년 다양한 GPU 지원을 위해 등장
- 2020년 별도 플러그인을 통해 딥러닝 프레임워크 비공식 지원
- Windows 환경에서 제한적으로 사용
- 공식 사이트: https://github.com/microsoft/DirectML
4. 업계 현황 및 전망
- CUDA는 여전히 업계 표준으로 연구, 기업, 클라우드 환경에서 가장 널리 사용됨
- ROCm은 오픈소스 대안으로 부상 중이며, 특히 HPC 및 비용 효율적인 솔루션을 찾는 조직에서 관심 증가
- MPS는 Apple 생태계 내에서 빠르게 발전하며 개인 개발자와 소규모 팀에서 활용 증가
- DirectML은 Windows 기반 소규모 머신러닝 프로젝트에서 제한적으로 사용
- 위의 GPU 가속 기술은 병렬 컴퓨팅 능력을 활용한 고성능 계산에 초점을 맞추고 있음
같이 보면 좋은 자료들
https://dsaint31.me/mkdocs_site/CE/colab/gpu/
BME
Colab: GPU 사용하기 런타임 → 런타임 유형 변경 → 하드웨어 가속기를 GPU로 변경 유의사항 – GPU는 최대 12시간 실행을 지원 12시간 실행 이후에는 런타임 재시작으로 VM을 교체해야 함 GPU가속을
dsaint31.me
https://dsaint31.me/mkdocs_site/CE/ch04/ce04_51_gpu_tpu/?h=tpu
BME
Graphics Processing Units 다음 URL을 확인할 것. 아래 그림은 CPU와 GPU의 차이점을 모식도로 표현함. 병렬처리에 최적화된 GPU의 특징인 다수의 core 를 볼 수 있음. GPGPU의 경우 병렬화를 DLP(Data Level Parallel
dsaint31.me
https://dsaint31.tistory.com/416
[CE] GPU (Graphics Processing Unit)
1. 개요 PC의 그래픽 성능을 좌우하는 그래픽 카드의 핵심 칩 1990년대 초기까지만 해도 그래픽 카드는 CPU의 연산 결과를 그림이나 글자 신호로 변환하여 모니터로 화면을 출력하는 어댑터로 인식
dsaint31.tistory.com
'CE' 카테고리의 다른 글
| [CE] ABC - Atanasoff Berry Computer (0) | 2025.03.03 |
|---|---|
| [CE] 기계식, 전기식, 전자식 의 차이 - Computer에서 (0) | 2025.03.02 |
| [CE] Hardware Threading, Scalar / Vector Processor (0) | 2024.12.08 |
| Tree Traversal (트리 순회): BFS and DFS (3) | 2024.12.02 |
| [CE] Heap and Complete Binary Tree (0) | 2024.11.16 |