AEGLOSLAB 엔비디아 기술 스택

제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)을 읽는 것보다 한참 느리다.

PCIe 저대역 DDR 메모리 CPU GPU HBM

문제: ① 데이터·파라미터가 HBM 초과 시 PCIe로 스왑 → 느림(데이터 기아, 3.8), ② CPU-GPU 협업(전처리·옵티마이저 오프로드)이 PCIe에 묶임, ③ 통합 메모리(2.4)의 페이지 마이그레이션이 PCIe라 비쌈.

NVLink-C2C의 답: CPU와 GPU를 PCIe가 아니라 NVLink급 고대역 + 일관성 링크로 직결한다.

NVLink-C2C 고대역·일관 LPDDR Grace CPU GPU HBM

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 = 하나의 큰 일관 풀처럼 보인다:

일관 메모리 공간 우선 넘치면 C2C 고대역 GPU GPU HBM (빠름· 작음) Grace LPDDR (느리지만 큼)

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보다는 느리다:

GPU 자기 HBM (1.9) 가장 빠름 NVLink-C2C (CPU LPDDR 접근) 중간 PCIe 가장 느림

대역 위계는 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)으로 "고대역·일관 결합"이 어떻게 랙 전체를 하나의 거대 컴퓨터로 만드는지, 그리고 전력·냉각·운영 현실을 본다.