TL;DR

  • GPU 용어집인 GPU Glossary가 GPU 하드웨어, 소프트웨어, 성능 관련 개념을 망라함.
  • 하드웨어 항목은 CUDA 장치 아키텍처의 실행 유닛, 메모리, 프로세서 계층을 다룸.
  • 장치 소프트웨어 항목은 CUDA 프로그래밍 모델의 코드 형식, 실행 구조, 메모리 계층을 다룸.
  • 호스트 소프트웨어 항목은 CUDA 소프트웨어 플랫폼의 언어, 드라이버, API, 도구, 라이브러리를 다룸.
  • 성능 항목은 병목, 대역폭, 지연 시간, 점유율, 워프 실행 관련 개념을 다룸.

홈

  • README

장치 하드웨어 — CUDA 장치 아키텍처

  • 스트리밍 멀티프로세서(Streaming Multiprocessor, SM)
  • SM 코어
  • 특수 함수 유닛(Special Function Unit, SFU)
  • 로드/스토어 유닛(Load/Store Unit, LSU)
  • 워프 스케줄러
  • CUDA 코어
  • 텐서 코어
  • 텐서 메모리 가속기(Tensor Memory Accelerator, TMA)
  • 스트리밍 멀티프로세서 아키텍처
  • 텍스처 처리 클러스터(Texture Processing Cluster, TPC)
  • 그래픽/GPU 처리 클러스터(Graphics/GPU Processing Cluster, GPC)
  • 레지스터 파일
  • L1 데이터 캐시
  • 텐서 메모리
  • GPU RAM

장치 소프트웨어 — CUDA 프로그래밍 모델

  • 스트리밍 어셈블러(Streaming ASSembler, SASS)
  • 병렬 스레드 실행(Parallel Thread eXecution, PTX)
  • 컴퓨트 기능(Compute Capability)
  • 스레드
  • 워프
  • 워프그룹
  • 협력 스레드 배열(Cooperative Thread Array)
  • 커널
  • 스레드 블록
  • 스레드 블록 그리드
  • 스레드 계층
  • 메모리 계층
  • 레지스터
  • 공유 메모리
  • 전역 메모리
  • CUDA 타일 프로그래밍 모델

호스트 소프트웨어 — CUDA 소프트웨어 플랫폼

  • CUDA C++ 프로그래밍 언어
  • NVIDIA GPU 드라이버
  • nvidia.ko
  • CUDA 드라이버 API
  • libcuda.so
  • NVIDIA 관리 라이브러리(NVIDIA Management Library, NVML)
  • libnvml.so
  • nvidia-smi
  • CUDA 런타임 API
  • libcudart.so
  • CUDA 그래프
  • NVIDIA CUDA 컴파일러 드라이버 nvcc
  • NVIDIA 런타임 컴파일러
  • NVIDIA CUDA 프로파일링 도구 인터페이스(NVIDIA CUDA Profiling Tools Interface, CUPTI)
  • NVIDIA Nsight Systems
  • NVIDIA CUDA 바이너리 유틸리티
  • cuBLAS
  • cuDNN
  • CUTLASS
  • CuTe
  • CuTe DSL

성능

  • 성능 병목
  • 루프라인 모델(Roofline Model)
  • 연산 제한(Compute-bound)
  • 메모리 제한(Memory-bound)
  • 산술 집약도(Arithmetic Intensity)
  • 오버헤드
  • 리틀의 법칙(Little's Law)
  • 메모리 대역폭
  • 산술 대역폭
  • 지연 시간
  • 지연 시간 숨기기
  • 워프 실행 상태
  • 활성 사이클
  • 점유율
  • 파이프 활용률
  • 최고 처리율
  • 명령 발행 효율
  • 스트리밍 멀티프로세서 활용률
  • 워프 분기
  • 스코어보드 정지
  • 분기 효율
  • 메모리 병합(Memory Coalescing)
  • 뱅크 충돌
  • 레지스터 압박

기여자

  • README