CUDA란 무엇인가
CUDA는 NVIDIA GPU를 범용 병렬 컴퓨팅 장치로 사용할 수 있게 해주는 플랫폼이자 프로그래밍 모델입니다. 단순한 드라이버나 AI 프레임워크가 아니라 GPU 계산 생태계의 기반 계층에 가깝습니다.
3줄 요약
CUDA의 역할, 커널·스레드 개념, AI 소프트웨어 스택에서의 위치를 설명합니다.
이 글은 개념뿐 아니라 실제 인프라에서 어디에 쓰이는지까지 연결해 설명합니다.
CUDA의 역할, 커널·스레드 개념, AI 소프트웨어 스택에서의 위치를 설명합니다.
이 글은 개념뿐 아니라 실제 인프라에서 어디에 쓰이는지까지 연결해 설명합니다.
CUDA가 해결한 문제
GPU를 그래픽 전용 장치가 아니라 수치 계산 장치로 사용할 수 있게 하면서 과학 계산, 영상 처리, 딥러닝 같은 워크로드가 GPU의 병렬성을 활용할 수 있게 됐습니다.
Host와 Device
CPU (Host)
├─ 프로그램 제어
├─ 메모리 관리
└─ GPU kernel 실행 요청
↓
GPU (Device)
└─ 수많은 thread가 병렬 계산
AI 프레임워크와 CUDA
PyTorch나 TensorFlow 사용자가 직접 CUDA 코드를 쓰지 않더라도, 내부에서는 CUDA 런타임과 CUDA 라이브러리가 사용됩니다. cuBLAS, cuDNN, NCCL 같은 라이브러리도 CUDA 생태계에 속합니다.
CUDA를 알아야 하는 이유
인프라 담당자는 코드를 직접 작성하지 않더라도 드라이버, CUDA 버전, 프레임워크 호환성, GPU 사용률 문제를 이해하는 데 CUDA 개념이 필요합니다.
자주 묻는 질문
CUDA는 프로그래밍 언어인가요?
정확히는 플랫폼과 프로그래밍 모델입니다. C/C++ 확장과 다양한 라이브러리, 런타임을 포함합니다.
AMD GPU에서도 CUDA를 쓰나요?
CUDA는 NVIDIA GPU용입니다. 다른 GPU 생태계는 다른 소프트웨어 스택을 사용합니다.