Introduction

Chris Fregly의 AI Systems Performance Engineering $_[$$_{1}$$_]$ Chapter 4는 GPU와 GPU, node와 node 사이에서 data를 옮기는 통신 계층을 다룬다.

vLLM으로 multi-node serving 환경을 구성하면서 NCCL_SOCKET_IFNAME과 GLOO_SOCKET_IFNAME을 맞추고 NCCL_DEBUG=TRACE로 all-reduce 결과를 하나씩 확인했던 적이 있고 (vLLM Discussion #11353), 그 뒤에 NCCL과 RDMA, RoCE를 정리한 글도 썼다.
이 장은 같은 주제를 성능 관점에서 다시 다루는데, 통신과 연산을 overlap하는 방법부터 NCCL 환경 변수의 함정, 그리고 추론용 point-to-point library인 NIXL까지 이어진다.

이번 글에서는 Chapter 4 (Tuning Distributed Networking Communication)를 다룬다.

Read more »

Introduction

Chris Fregly의 AI Systems Performance Engineering $_[$$_{1}$$_]$ Chapter 3은 OS와 container runtime, Kubernetes를 GPU에 맞춰 조정하는 방법을 다루는데, GPU를 얹은 Kubernetes를 굴리면서 한 번씩 건드려본 설정들이 대부분 여기 모여 있다.

NUMA pinning이나 hugepage, MIG 같은 것들은 필요할 때 찾아서 적용하고 넘어갔던 것들인데, CPU부터 driver, container, orchestrator까지 한 장 안에 순서대로 놓고 보니 각 설정이 어느 층의 어떤 병목을 겨냥한 것인지가 정리됐다.

이번 글에서는 Chapter 3 (OS, Docker, and Kubernetes Tuning for GPU-Based Environments)을 다룬다.

Read more »

Introduction

vLLM이나 SGLang으로 서빙을 해보면서 그 아래 hardware가 계속 궁금했다.
필요할 때마다 조금씩 찾아보긴 했어도 막힌 부분만 해결하고 넘어갔지, 작정하고 전체를 들여다본 적은 없었다.

그래서 이번에는 순서를 뒤집어 hardware부터 올라오는 책을 골랐다.
Chris Fregly의 AI Systems Performance Engineering (O’Reilly) $_[$$_{1}$$_]$인데, hardware와 software, LLM 이 세 가지가 한 권 안에서 맞물려 있는 게 마음에 들었다.
Grace Blackwell 같은 최신 chip에서 출발해 OS와 CUDA kernel, PyTorch를 지나 LLM 추론 최적화까지 올라가는 20장 1,000여 page 짜리 책이다.

이번 글에서는 Chapter 1 (Introduction and AI System Overview)과 Chapter 2 (AI System Hardware Overview)를 다룬다.

Read more »

Introduction

CKAD: Kubernetes 환경에서 cloud-native application을 효과적으로 설계, 구축, 배포 및 구성할 수 있는 역량을 검증하는 CNCF의 공식 자격증

certificate

CKAD curriculum에서 CKAD가 포함하는 내용들을 아래와 같이 확인할 수 있다.

v1.34 기준
Domain Weight Key Points
Application Design and Build 20% ✅ Define, build and modify container images
✅ Choose and use the right workload resource (Deployment, DaemonSet, CronJob, etc.)
✅ Understand multi-container Pod design patterns (e.g. sidecar, init and others)
✅ Utilize persistent and ephemeral volumes
Application Deployment 20% ✅ Use Kubernetes primitives to implement common deployment strategies (e.g. blue/green or canary)
✅ Understand Deployments and how to perform rolling updates
✅ Use the Helm package manager to deploy existing packages
✅ Kustomize
Application Observability
and Maintenance
15% ✅ Understand API depreciations
✅ Implement probes and health checks
✅ Use built-in CLI tools to monitor Kubernetes applications
✅ Utilize container logs
✅ Debugging in Kubernetes
Application Environment,
Configuration and Security
25% ✅ Discover and use resources that extend Kubernetes (CRD, Operators)
✅ Understand authentication, authorization and admission control
✅ Understand requests, limits, quotas
✅ Define resource requirements
✅ Understand ConfigMaps
✅ Create & consume Secrets
✅ Understand ServiceAccounts
✅ Understand Application Security (SecurityContexts, Capabilities, etc.)
Services and Networking 20% ✅ Demonstrate basic understanding of NetworkPolicies
✅ Provide and troubleshoot access to applications via services
✅ Use Ingress rules to expose applications
Read more »