이런 독자에게 맞습니다

GPU가 실제로 어떻게 계산을 수행하는지 이해하고, 나중에는 직접 커널을 작성하고 최적화하고 싶은 엔지니어.

선수 지식

파이썬 사용 경험, 기본적인 선형대수, 그리고 저수준 성능 주제를 읽을 수 있을 정도의 시스템 감각.

이 시리즈에서 얻을 수 있는 것

  • warp, block, 메모리 계층, occupancy에 대한 구체적인 감을 잡게 됩니다
  • GPU를 블랙박스로 쓰는 대신 CUDA와 Triton 커널을 직접 작성할 수 있게 됩니다
  • 실제 워크로드에서 커널 성능이 어디서 갈리는지 이해하게 됩니다

전체 글

  1. 1

    GPU 시스템 00 - 이 시리즈를 보기 전에 필요한 것들

    GPU 시스템 시리즈를 제대로 따라가기 전에 어떤 배경지식이 필요한지 정리하기

  2. 2

    GPU 시스템 01 - GPU Kernel Engineer 로드맵

    GPU 아키텍처부터 CUDA, Triton, 커널 최적화까지 어떤 순서로 공부하면 되는지

  3. 3

    GPU 시스템 02 - Thread, Warp, Block 실행 모델

    GPU의 thread, warp, block, grid가 실제 실행에서 어떤 의미를 가지는지

  4. 4

    GPU 시스템 03 - Memory Hierarchy와 Bandwidth

    GPU 성능을 좌우하는 메모리 계층과 bandwidth 병목을 어떻게 봐야 하는지

  5. 5

    GPU 시스템 04 - CUDA Kernel 작성과 Launch Configuration

    CUDA kernel을 직접 작성할 때 indexing과 launch configuration을 어떤 기준으로 잡아야 하는지

  6. 6

    GPU 시스템 05 - Coalescing, Shared Memory, Reduction 패턴

    CUDA kernel 최적화에서 가장 자주 마주치는 memory coalescing과 reduction 패턴

  7. 7

    GPU 시스템 06 - Triton과 Kernel Optimization 실전 감각

    Triton과 실제 커널 최적화를 연결해서 GPU kernel engineer 관점의 감각을 잡기

  8. 8

    GPU 시스템 07 - Occupancy와 Latency Hiding

    occupancy를 숫자로만 외우지 않고 latency hiding과 연결해서 이해하기

  9. 9

    GPU 시스템 08 - 프로파일링과 Roofline 관점

    Nsight와 roofline 관점으로 커널 병목을 읽는 기본 프레임

  10. 10

    GPU 시스템 09 - Naive Matrix Multiply가 느린 이유

    naive matrix multiply를 통해 GPU 메모리 병목과 재사용 문제를 읽는 법

  11. 11

    GPU 시스템 10 - Tiled Matrix Multiply와 Shared Memory

    tiled matmul에서 shared memory와 block 협업이 왜 큰 성능 차이를 만드는지

  12. 12

    GPU 시스템 11 - Shared Memory Bank Conflict

    shared memory가 빠르다고 끝이 아닌 이유와 bank conflict를 피하는 기본 원리

  13. 13

    GPU 시스템 12 - Warp Shuffle과 Warp-Level Primitive

    warp 내부 데이터 교환을 shared memory 없이 처리하는 warp-level primitive의 의미

  14. 14

    GPU 시스템 13 - Reduction Kernel Deep Dive

    reduction kernel을 통해 shared memory, warp primitive, synchronization을 한 번에 이해하기

  15. 15

    GPU 시스템 14 - Softmax Kernel이 좋은 연습 문제인 이유

    softmax kernel 안에 reduction, memory traffic, numerical stability가 어떻게 함께 들어가는지

  16. 16

    GPU 시스템 15 - LayerNorm과 RMSNorm Kernel 구조

    layernorm과 RMSNorm을 통해 normalization kernel이 왜 memory-bound가 되기 쉬운지 이해하기

  17. 17

    GPU 시스템 16 - Vectorized Load/Store와 Alignment

    vectorized memory access와 alignment가 bandwidth 활용에 어떤 차이를 만드는지

  18. 18

    GPU 시스템 17 - Register Pressure와 Spill

    register를 많이 쓰는 최적화가 왜 오히려 전체 성능을 떨어뜨릴 수 있는지

  19. 19

    GPU 시스템 18 - Tensor Core와 Mixed Precision

    tensor core가 어떤 종류의 연산에서 큰 성능 차이를 만들고 mixed precision과 어떻게 연결되는지

  20. 20

    GPU 시스템 19 - Asynchronous Copy와 Pipelining

    memory load와 compute를 더 겹치게 만드는 asynchronous copy와 double buffering의 감각

  21. 21

    GPU 시스템 20 - Nsight, Triton, FlashAttention까지 이어지는 실전 흐름

    GPU 시스템 시리즈를 마무리하며 profiling, Triton, FlashAttention 관점까지 연결하기