gau-nernst/learn-cuda
Learn CUDA with PyTorch
해결하는 문제
이 저장소는 PyTorch 사용자를 위한 고성능 CUDA 커널을 작성하기 위한 체계적인 학습 경로를 제공합니다. 고수준의 PyTorch 코드와 저수준의 GPU 하드웨어 가속 사이의 격차를 메우기 위해 AI 관련 일반적인 연산에 대한 실용적인 예제를 제공합니다.
작동 방식
이 프로젝트는 01부터 09까지의 점진적인 예제로 구성되어 있으며, 기본적인 GPU 연산을 구현합니다. 단순한 벡터 덧셈부터 특정 GPU 아키텍처(SM80, SM100, SM120)에 최적화된 복잡한 연산인 Flash Attention과 행렬 곱셈에 이르기까지 다양한 예제를 포함합니다. 또한 Nsight Compute, PyTorch 프로파일러, Perfetto와 같은 프로파일링 도구를 사용하여 커널 성능을 최적화하는 방법에 대한 안내도 포함되어 있습니다.
대상 사용자
PyTorch 모델을 최적화하기 위해 사용자 정의 CUDA 커널을 작성하는 방법을 배우고 싶은 개발자 및 연구자, 그리고 NVIDIA GPU의 하드웨어 아키텍처에 관심이 있는 사람들을 대상으로 합니다.
주요 특징
- 아키텍처별 최적화: 다양한 SM 버전 및 CDNA3용 행렬 곱셈 예제.
- AI 중심의 기본 연산: Softmax, Flash Attention, 행/블록 스케일링 행렬 곱셈의 구현.
- 하드웨어 심층 분석: GPU 메모리 계층(GPU 메모리, L2, 공유 메모리, 레지스터)과 SIMT 실행 방식에 대한 자세한 설명.
- 프로파일링 툴킷:
ncu와compute-sanitizer를 사용한 디버깅 및 성능 튜닝 실용 가이드.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트