제4부 데이터센터와 스케일
4.8 Grace I — Grace CPU·NVLink-C2C·메모리 일관성
4.8.1 이 장에서 배우는 것 / 선수 지식
4.6~4.7은 GPU↔GPU를 NVLink로 이었다. 이 장은 CPU↔GPU다. 전통적으로 CPU-GPU는 PCIe로 이어져, 그것이 데이터 공급의 병목이었다(2.5). NVIDIA의 답이 Grace CPU(Arm 기반 서버 CPU)와 NVLink-C2C(chip-to-chip, CPU-GPU 일관성 고대역 링크)다. 둘을 합친 Grace Hopper(GH200)·Grace Blackwell(GB200) 슈퍼칩은 CPU 메모리와 GPU HBM을 하나의 일관(coherent) 메모리 공간으로 묶어, PCIe 병목을 없애고 HBM을 넘는 큰 메모리를 GPU에 고대역으로 붙인다.
배우는 것:
- Grace CPU가 무엇이고(Arm·LPDDR), 왜 GPU와 짝짓도록 설계됐는지.
- NVLink-C2C가 PCIe CPU-GPU 연결(2.5)을 어떻게 대체하는지 — 대역·일관성.
- 메모리 일관성·통합 메모리 — CPU LPDDR + GPU HBM이 하나의 일관 풀이 되어 프로그래밍이 어떻게 바뀌는지.
- HBM을 넘는 큰 모델·데이터를 C2C 고대역으로 CPU 메모리에 확장하는 패턴과 그 한계(C2C < HBM).
선수 지식: 2.5(pinned·async·PCIe H2D — C2C가 대체하는 병목), 2.4(메모리 종류·통합 메모리 — 일관성의 토대), 1.9(HBM 대역폭 — C2C와 비교), 4.6(NVLink — C2C는 그 칩 간 변형), 4.1(데이터센터 GPU 폼팩터 개관). GH200·GB200 슈퍼칩 자체는 이 장에서 처음 상술(GB200은 4.4.5에서도 스치듯 언급). 환경은 0.3. 대역폭·메모리 용량·제품 구성은 세대·시점 의존 → 데이터시트로 확인. GB200 등 최신은 발표 기준.
4.8.2 동기 — PCIe라는 CPU-GPU 병목
전통적 시스템: CPU(DDR 메모리) ── PCIe ── GPU(HBM). 2.5에서 봤듯 PCIe는 H2D/D2H 전송의 병목이고, GPU가 자기 HBM(1.9)을 읽는 것보다 한참 느리다.
문제: ① 데이터·파라미터가 HBM 초과 시 PCIe로 스왑 → 느림(데이터 기아, 3.8), ② CPU-GPU 협업(전처리·옵티마이저 오프로드)이 PCIe에 묶임, ③ 통합 메모리(2.4)의 페이지 마이그레이션이 PCIe라 비쌈.
NVLink-C2C의 답: CPU와 GPU를 PCIe가 아니라 NVLink급 고대역 + 일관성 링크로 직결한다.
CPU-GPU 대역이 PCIe보다 훨씬 크고 메모리가 일관(coherent)하다 → HBM을 넘는 데이터를 CPU LPDDR에 두고 GPU가 고대역으로 직접 접근한다.
요지: 4.5~4.7이 "GPU↔GPU 대역 병목"을 NVLink로 풀었다면, Grace+C2C는 "CPU↔GPU 대역·일관성 병목"을 같은 철학(전용 고대역 링크 + 일관성)으로 푼다.
4.8.3 Grace CPU — Arm 기반·LPDDR
Grace는 NVIDIA가 설계한 Arm(Neoverse 계열) 서버 CPU다(x86이 아님). GPU와 짝지어 데이터센터 AI·HPC에 쓰도록 설계됐다.
특징(세부는 세대 의존, 확인 필요):
- Arm 아키텍처 — x86이 아니라 Arm. 소프트웨어가 Arm64로 빌드돼야(대부분 재컴파일, 일부 x86 가정 코드 주의).
- LPDDR 메모리 — 서버 표준 DDR 대신 LPDDR5X(저전력·고대역). DDR보다 전력당 대역이 좋고 용량·대역 균형이 GPU 짝에 맞춤. (DIMM 교체식이 아니라 패키지 통합인 경우가 많음.)
- GPU와의 결합 전제 — Grace는 단독 CPU로도 쓰지만(Grace 단독 슈퍼칩), 진가는 NVLink-C2C로 GPU와 한 모듈(GH200·GB200)일 때.
왜 Arm·LPDDR: 전력·대역 효율. AI 노드에서 CPU의 역할(데이터 공급·오케스트레이션·일부 연산)에 맞춰, 전력당 메모리 대역을 높이고 GPU와 일관 결합에 최적화했다. (x86 대비 장단은 소프트웨어 생태계·특정 워크로드 의존 — 정직히 워크로드로 평가.)
4.8.4 NVLink-C2C와 메모리 일관성
NVLink-C2C(chip-to-chip) 는 Grace CPU 다이와 GPU 다이를 잇는 일관성(coherent) 고대역 링크다. 두 가지가 핵심:
① 고대역. PCIe보다 훨씬 큰 CPU-GPU 대역(정확한 GB/s는 세대 의존). CPU 메모리를 GPU가 읽는 비용이 PCIe 때와 차원이 다르게 싸진다.
② 일관성(cache coherence). CPU와 GPU가 같은 메모리를 일관되게 본다 — 한쪽이 쓴 값을 다른 쪽이 명시적 복사·동기화 없이 본다(하드웨어가 일관성 유지). 통합 메모리(2.4)가 소프트웨어 페이지 마이그레이션이 아니라 하드웨어 일관성으로 동작.
| 방식 | 동작 |
|---|---|
| 비일관 (전통 통합메모리) | CPU가 쓴 페이지를 GPU가 보려면 페이지를 GPU로 마이그레이션 (PCIe 통해, 페이지 폴트·복사 오버헤드) |
| 일관 (C2C) | CPU LPDDR과 GPU HBM이 하나의 일관 주소공간 — GPU가 CPU 메모리 주소를 직접·일관되게 접근(C2C 대역), 명시 복사 불필요 |
통합·확장 메모리 풀. 결과적으로 시스템 메모리가 CPU LPDDR + GPU HBM = 하나의 큰 일관 풀처럼 보인다:
HBM에 안 들어가는 큰 모델·KV·데이터를 LPDDR에 두고 C2C로 접근하면 PCIe 스왑보다 훨씬 빠르다.
이것이 "GPU 메모리가 HBM 용량에 갇히던" 제약을 완화한다 — 큰 모델·임베딩 테이블·KV 캐시(5.7)를 LPDDR로 확장.
4.8.5 워크스루 — 메모리 용량·대역 산수
용량 확장 산수(개념, 수치는 확인 필요). GPU HBM이 H(예 수십~백 GB), Grace LPDDR이 L(예 수백 GB)이라 하자.
| 구성 | 유효 빠른 메모리 |
|---|---|
| 전통 (PCIe) | HBM H. 넘치면 PCIe 스왑 (매우 느림) |
| Grace+C2C | ≈ H(빠름) + L(C2C로 접근, HBM보단 느리나 PCIe보단 빠름) → 모델·데이터가 H를 넘어 H+L까지 실용적으로 확장 |
대역 위계(중요). C2C가 PCIe보다 빠르지만 여전히 HBM보다는 느리다:
대역 위계는 HBM > C2C > PCIe. 따라서 자주 쓰는 데이터는 HBM에, 크고 덜 빈번한 데이터는 LPDDR에 둔다(지역성 여전히 중요). 'C2C가 있으니 다 LPDDR에' 하면 HBM 대비 느려진다 — 계층적 배치가 핵심이다.
예 — 큰 임베딩/KV. 추천 모델의 거대 임베딩 테이블이나 LLM의 긴 KV 캐시가 HBM을 넘으면, Grace LPDDR에 두고 C2C로 접근 → PCIe 스왑(거의 불가능하게 느림)보다 훨씬 실용적. 단 가장 뜨거운 부분은 HBM에 캐싱하는 계층화가 성능을 좌우.
수계산 결론: Grace+C2C는 "빠른 HBM + 큰 LPDDR을 일관 계층" 으로 줘 메모리 용량 벽을 낮춘다. 하지만 대역 위계는 남아 지역성·계층 배치가 여전히 성능을 가른다 — "용량은 늘었지만 전부가 HBM 속도는 아니다".
4.8.6 워크스루 — 프로그래밍 함의(개략)
Grace 시스템에서 통합·일관 메모리의 효과(개념 코드, 동작은 시스템·드라이버 의존):
// 일관 통합 메모리: 시스템 할당자(malloc)로 잡은 메모리를 GPU가 직접 접근 가능(시스템 의존)
float* data = (float*)malloc(big_bytes); // CPU LPDDR에 할당 (큼)
// ... CPU가 채움 ...
my_kernel<<<grid, block>>>(data, n); // GPU가 같은 포인터를 일관되게 접근(C2C)
// 명시적 cudaMemcpy 불필요(일관성), 자주 쓰면 HBM 캐싱
cudaDeviceSynchronize();
// CPU가 결과를 바로 읽음 — GPU가 쓴 값이 일관되게 보임(복사 없이)
전통(PCIe) 대비 달라지는 점:
- 명시적 복사(
cudaMemcpy) 부담↓. 일관 메모리라 CPU-GPU가 같은 주소를 공유 — 일부 패턴에서 복사 코드가 사라진다(단 성능을 위해 hot 데이터의 배치·prefetch 힌트는 여전히 유용). - 오버서브스크립션 실용화. HBM보다 큰 작업 집합을 LPDDR에 두고 GPU가 C2C로 접근 — PCIe 시절엔 비현실적이던 패턴이 가능.
- CPU-GPU 협업. 전처리(3.8)·옵티마이저 상태 오프로드·CPU 보조 연산이 고대역 일관 메모리로 매끄럽게.
주의: "복사가 사라진다"가 "성능 신경 안 써도 된다"는 아니다. C2C는 HBM보다 느리므로, 뜨거운 데이터는 HBM에 두고 큰·찬 데이터를 LPDDR에 두는 계층적 사고가 여전히 필요. prefetch·메모리 어드바이스(2.4)로 배치를 돕는다.
4.8.7 중간 점검 (체크포인트)
- [ ] PCIe CPU-GPU 병목(2.5)을 NVLink-C2C가 어떻게(고대역+일관성) 푸는지 설명한다.
- [ ] Grace가 Arm·LPDDR이고 GPU와 짝지어 설계됐음을, GH200/GB200이 그 결합임을 안다.
- [ ] 메모리 일관성이 통합 메모리를 "소프트웨어 마이그레이션"에서 "하드웨어 일관 접근"으로 바꿈을 말한다.
- [ ] 대역 위계(HBM > C2C > PCIe)가 남아 계층적 데이터 배치가 여전히 성능을 가름을 안다.
증상→의심: Grace에서 큰 모델이 PCIe 시절보다 빠르나 HBM-only보다 느림 → 작업 집합이 LPDDR에 있음(정상, 계층 배치·hot 데이터 HBM 캐싱). 코드가 x86 가정으로 안 빌드됨 → Arm64 재빌드 필요. 통합 메모리인데 느림 → hot 데이터가 LPDDR에 머묾(prefetch/advise로 HBM 유도). "복사 없앴는데 성능 변동" → 일관 접근이 C2C 대역에 묶임(배치 재검토).
4.8.8 트레이드오프·맥락
| 구성 | 장점 | 유의 |
|---|---|---|
| 전통 x86 + PCIe GPU | 생태계 성숙·범용 | CPU-GPU PCIe 병목, HBM 용량 벽 |
| Grace+GPU(C2C) | 고대역 일관·확장 메모리·전력효율 | Arm 빌드, 대역 위계 여전, 가용성 |
| Grace 단독 | Arm 서버 CPU·고대역 메모리 | GPU 없는 CPU 워크로드 |
견해: Grace+C2C의 실질적 가치는 HBM 용량을 넘는 작업 집합(거대 모델·임베딩·긴 KV·그래프)과 CPU-GPU 협업이 잦은 워크로드에서 크다. 작업이 HBM에 잘 들어가고 CPU-GPU 전송이 드물면 전통 x86+PCIe로도 충분하다. Arm 전환 비용(빌드·일부 x86 가정 코드)도 고려. "C2C가 있으니 무조건 좋다"가 아니라, 메모리 용량 벽·CPU-GPU 대역이 실제 병목인지로 판단. 대부분 클라우드 인스턴스로 시험.
비NVIDIA 정직: CPU-GPU(또는 가속기) 일관 결합은 NVIDIA 단독이 아니다 — AMD는 APU·Infinity Fabric(MI300A에서 CPU+GPU 통합), 업계는 CXL(일관 메모리 확장) 표준을 민다. "CPU-가속기를 일관 고대역으로 잇고 메모리를 통합"은 보편 방향이고, NVLink-C2C·Grace는 그 NVIDIA 구현(+CUDA·Arm 통합)이다. Arm 서버 CPU도 NVIDIA만의 것은 아니다.
4.8.9 흔한 함정
- C2C를 HBM 속도로 가정. C2C는 PCIe보다 빠르지만 HBM보단 느리다. LPDDR에 둔 데이터는 HBM보다 느리게 접근 — hot 데이터는 HBM에 둬야. "용량 늘었으니 다 LPDDR" 금지.
- Arm 빌드 간과. Grace는 Arm64. x86 바이너리·x86 인트린식·일부 휠이 안 맞을 수 있다. Arm64로 재빌드·컨테이너 이미지 확인(0.3).
- 일관성을 "성능 무료"로 오해. 명시적 복사가 줄어도 접근은 C2C 대역에 묶인다. 계층 배치·prefetch·memory advise(2.4)로 hot/cold를 나눠야 성능이 난다.
- PCIe 시절 최적화를 그대로. pinned 버퍼·이중 버퍼 복사(2.5)가 일관 메모리에선 불필요·역효과일 수 있다. Grace에 맞춰 데이터 흐름 재설계.
- 용량을 무한으로 착각. LPDDR도 유한하다(수백 GB급, 확인 필요). HBM+LPDDR을 넘으면 여전히 노드 간(4.11)으로 가야 — Grace가 용량 벽을 낮출 뿐 없애진 않는다.
- 제품 구성·수치 단정. GH200/GB200의 메모리·대역·구성은 세대·시점 의존, 최신은 발표 기준. 데이터시트로 확인.
4.8.10 연습문제
연습 1 (병목 이동). 전통 x86+PCIe 시스템에서 CPU-GPU 데이터 흐름의 병목 두 가지를 들고, Grace+NVLink-C2C가 각각을 어떻게 완화하는지.
정답
병목 ① H2D/D2H 전송 대역(PCIe): 데이터·파라미터를 GPU로 옮기는 PCIe가 느려 GPU를 기아 상태로 만든다(2.5·3.8). C2C는 PCIe보다 훨씬 큰 대역으로 CPU 메모리를 GPU에 공급 → 전송 병목 완화. ② HBM 용량 벽 + 통합메모리 페이지 마이그레이션: HBM 초과 작업 집합을 PCIe로 스왑하면 비현실적으로 느리고, 통합메모리도 PCIe 페이지 폴트·복사가 비쌌다. C2C 일관성은 GPU가 CPU LPDDR을 명시 복사 없이 일관 접근하고, LPDDR을 확장 메모리로 써 용량 벽을 낮춘다(HBM+LPDDR 일관 풀).
연습 2 (계층 배치). Grace 시스템에서 LLM 추론 중 (a) 모델 가중치(자주·전부 접근), (b) 매우 긴 KV 캐시(HBM 초과), (c) 드물게 쓰는 로깅 버퍼를 각각 HBM·LPDDR 중 어디에 두고 왜인지.
정답
(a) 가중치 → HBM: 매 토큰 전부 접근하는 hot 데이터라 최고 대역(HBM)이 필요. (b) 긴 KV 캐시 → 주로 LPDDR(+hot 부분 HBM): HBM을 초과하니 LPDDR에 두되, C2C로 접근. 디코딩이 KV 대역에 민감하므로(3.7) 가능하면 최근·뜨거운 KV는 HBM에 계층 캐싱. (c) 로깅 버퍼 → LPDDR: 드물게 접근하는 cold 데이터, HBM을 차지할 이유 없음. 원칙: hot·고빈도는 HBM, 크고 cold는 LPDDR — 대역 위계(HBM>C2C>PCIe)에 맞춘 계층 배치.
연습 3 (일관성 vs 복사). 전통 PCIe 통합메모리의 "페이지 마이그레이션"과 Grace C2C의 "하드웨어 일관 접근" 차이를, CPU가 쓴 데이터를 GPU가 읽는 시나리오로 설명하라.
정답
전통: CPU가 쓴 통합메모리 페이지를 GPU가 접근하면 페이지 폴트 → 그 페이지를 PCIe 통해 GPU로 마이그레이션(복사) 후 접근. 페이지 단위 이동·폴트 오버헤드가 크고 PCIe 대역에 묶인다. Grace C2C: CPU LPDDR과 GPU HBM이 하나의 일관 주소공간이라, GPU가 CPU가 쓴 주소를 마이그레이션 없이 C2C로 직접·일관되게 읽는다(하드웨어가 일관성 유지). 명시 복사·페이지 폴트 없이, 단 접근은 C2C 대역. 즉 "옮겨서 읽기"에서 "그 자리를 일관 접근"으로 바뀐다.
연습 4 (도입 판단). 다음 중 Grace+C2C가 큰 이득인 워크로드와 전통 x86+PCIe로 충분한 워크로드를 구분하고 근거: (a) HBM에 잘 들어가는 중간 모델 학습, (b) HBM 2배 크기의 임베딩 테이블을 쓰는 추천 모델 추론, (c) CPU 전처리가 GPU와 매 스텝 대량 교환하는 파이프라인, (d) GPU만 쓰는 순수 행렬 연산 배치.
정답
큰 이득: (b) HBM 초과 임베딩 — LPDDR 확장 메모리 + C2C 고대역 접근이 PCIe 스왑을 대체, 용량 벽 해결. (c) CPU-GPU 대량 교환 — C2C 고대역·일관으로 PCIe 전송 병목 제거. 전통으로 충분: (a) HBM에 들어가는 중간 모델 — CPU-GPU 교환·용량 벽이 병목이 아니라 C2C 이득 작음. (d) GPU 전용 연산 — CPU 메모리·교환을 거의 안 써 C2C 무관(GPU·NVLink가 중요). 판단 축: HBM 용량 벽 또는 CPU-GPU 대역이 실제 병목인가.
4.8.11 요약 · 다음 장
- 전통 CPU-GPU는 PCIe 병목이었다. Grace CPU(Arm·LPDDR) + NVLink-C2C는 CPU-GPU를 고대역 + 일관성 링크로 직결해 이를 푼다 — GPU↔GPU를 NVLink로 푼 것과 같은 철학.
- 메모리 일관성으로 CPU LPDDR + GPU HBM이 하나의 일관 풀이 되어, GPU가 CPU 메모리를 명시 복사 없이 접근하고 HBM 용량 벽을 LPDDR로 확장한다(GH200·GB200).
- 단 대역 위계(HBM > C2C > PCIe)는 남는다 — 용량은 늘어도 전부가 HBM 속도는 아니다. hot은 HBM, cold·대용량은 LPDDR로 계층 배치가 성능을 가른다.
- 이득은 HBM 용량 벽·CPU-GPU 대역이 실제 병목일 때 크다. Arm 빌드·가용성·수치(발표 기준)를 확인하고 워크로드로 판단.
다음 장: 4.9 Grace II — GB200 NVL72 랙스케일. Grace+Blackwell 슈퍼칩(GB200)을 4.5의 NVL72 랙으로 묶는다. 칩(C2C)→슈퍼칩(GB200)→랙(NVL72)으로 "고대역·일관 결합"이 어떻게 랙 전체를 하나의 거대 컴퓨터로 만드는지, 그리고 전력·냉각·운영 현실을 본다.