P6-B200 인스턴스 도입과 블랙웰 GPU 스펙

대규모 언어 모델을 학습시키다 보면 GPU 메모리가 부족해 작업이 갑자기 중단되는 Out-of-Memory 오류를 한 번쯤 겪는다. 이 문제를 피하기 위해 배치 크기를 강제로 줄이거나 시퀀스 길이를 짧게 조정해야 하며, 모델을 여러 장치에 쪼개어 배치하는 샤딩 과정에서 발생하는 통신 오버헤드를 감수해야 한다. 아마존 세이지메이커 AI는 이러한 물리적 제약을 직접적으로 해결하기 위해 8개의 블랙웰 GPU를 탑재한 P6-B200 인스턴스를 도입했다.

물리적 제약을 낮추는 핵심은 확장된 HBM(고대역폭 메모리, GPU 내부에서 데이터를 빠르게 주고받는 전용 메모리) 용량에 있다. B200 모델은 180GB, B300 모델은 268GB의 HBM을 탑재하여 이전 세대보다 훨씬 넓은 메모리 공간을 제공한다. 메모리 용량이 늘어나면 대규모 배치와 긴 시퀀스 처리 시 발생하는 메모리 압박을 줄일 수 있으며, 모델 샤딩 과정을 단순화할 수 있다. 이는 데이터 이동 시 발생하는 불필요한 통신 시간을 줄여 전체적인 학습 처리량을 높이는 결과로 이어진다.

블랙웰의 듀얼 칩 아키텍처와 5세대 텐서 코어(Tensor Cores, AI 연산을 가속하는 전용 하드웨어)는 다중 GPU 학습에서 즉각적인 성능 향상을 제공한다. 특히 GPU 간의 데이터 전송 통로인 NVLink 5 상호연결 기술은 최대 1.8 TB/s의 양방향 GPU 간 대역폭을 제공한다. 대역폭은 단위 시간당 전송 가능한 데이터의 양을 의미하며, 이 수치가 높을수록 8개의 GPU가 마치 하나의 거대한 연산 장치처럼 긴밀하게 작동한다. 덕분에 기존에 다중 노드 설정이 필수적이었던 대규모 모델을 단일 8-GPU 노드에서 실행할 수 있어 네트워크 오버헤드가 감소하고 학습 반복 주기가 단축된다.

P6-B200 인스턴스는 아마존 세이지메이커 AI 학습 작업(Training jobs) 내에서 활용 가능하다. 학습 작업은 하위 컴퓨팅 인프라와 자원을 자동으로 프로비저닝하고 관리하므로, 사용자는 인프라 운영 대신 데이터와 알고리즘 최적화에만 집중할 수 있다. 특히 유연한 학습 계획(Flexible Training Plan)을 통해 예약하면 예측 가능한 접근 권한을 확보하고 비용 관리와 자원 자동 관리를 동시에 수행할 수 있다. 하드웨어의 물리적 한계가 낮아짐에 따라 대규모 모델 학습의 인프라 비용 절감과 효율적인 자원 운용이 가능해졌다.

활성화 체크포인팅을 통한 처리량 8배 증폭

GPU 자원은 시간당 비용이 발생하는 유료 자산이다. 연산 장치가 최대 성능을 내지 못하고 메모리 부족으로 인해 배치 크기를 낮게 유지한다면, 지불하는 비용 대비 얻는 토큰 수는 줄어든다. 특히 대규모 모델 학습 시 발생하는 GPU 메모리 부족(Out-of-Memory) 오류는 학습 효율을 떨어뜨리는 주된 원인이 된다. 이를 해결하기 위해 연산 시간을 일부 희생하고 메모리 공간을 확보하는 전략이 필요하다.

활성화 체크포인팅(Activation Checkpointing)은 신경망의 순전파 과정에서 발생하는 중간 활성화 값, 즉 각 층의 연산 결과물을 모두 메모리에 저장하지 않는 방식이다. 일반적으로는 역전파 시 가중치를 업데이트하기 위해 이 값들이 필요하므로 모두 저장하지만, 이 기술은 특정 지점의 값만 저장하고 나머지는 역전파 시점에 다시 계산한다. 이 과정에서 GPU 메모리 사용량은 획기적으로 줄어든다. 다만 동일한 연산을 두 번 수행해야 하므로 모델 구조에 따라 통상 10%에서 30% 정도의 계산 시간이 추가로 소요되는 연산 오버헤드가 발생한다. 이는 메모리라는 물리적 공간의 한계를 연산 시간이라는 시간적 비용으로 전환하여 해결하는 방식이다.

1B 파라미터 규모의 모델을 MXFP8(마이크로스케일 8비트 부동소수점) 정밀도와 8K 시퀀스 길이로 설정해 테스트한 결과는 이 전략의 실효성을 보여준다. 활성화 체크포인팅을 적용하지 않고 배치 크기를 1로 설정했을 때의 처리량은 초당 약 6K 토큰이었으며, 이때 피크 메모리(최대 메모리 점유율)는 15.5GB에 달했다. 반면 동일한 배치 크기에서 활성화 체크포인팅을 활성화하자 피크 메모리는 2.3GB로 급격히 감소했다. 재계산 과정에서 발생하는 오버헤드로 인해 처리량은 소폭 감소했으나, 이는 더 큰 배치를 수용하기 위한 필수적인 준비 단계가 된다.

이렇게 확보된 메모리 여유분을 활용해 배치 크기를 16까지 확대했을 때 비로소 처리량의 폭발적 증가가 나타난다. 활성화 체크포인팅을 적용하고 배치 크기를 16으로 키운 구성에서 처리량은 초당 약 51K 토큰을 달성했다. 이는 활성화 체크포인팅 미사용 시의 기준 처리량과 비교해 약 8배 증가한 수치다. 이때 피크 메모리는 22.8GB까지 상승하지만, 블랙웰 GPU의 전체 메모리 용량 범위 내에서 충분히 수용 가능하다. 결과적으로 개별 연산 속도는 조금 느려지더라도, 한 번에 처리하는 데이터 양을 늘림으로써 전체적인 학습 효율과 처리량을 극대화하는 구조다.

FP8에서 NVFP4까지, 워크로드별 정밀도 선택 기준

보통 정밀도를 낮추면 메모리 공간이 확보되어 더 큰 모델을 올릴 수 있다고 생각한다. 하지만 블랙웰의 5세대 텐서 코어(행렬 연산을 가속하는 전용 하드웨어)가 지원하는 FP8, MXFP8, NVFP4 형식은 메모리 절약보다 처리량(단위 시간당 처리하는 데이터 양) 최적화에 집중한다. 저정밀도 형식을 사용하면 GPU가 한 사이클에 수행하는 연산 횟수가 늘어나고 메모리 대역폭 요구량이 줄어든다. 다만 트랜스포머 엔진(정밀도 변환을 관리하는 라이브러리)이 가중치 업데이트를 위해 고정밀도 원본 가중치와 양자화된 복사본을 메모리에 동시에 유지한다. 이 때문에 저정밀도 형식으로 전환해도 메모리 사용량이 직접적으로 줄어들지 않는 메모리 중립적 상태가 기본적으로 유지된다.

모델의 크기에 따라 저정밀도 전환의 실질적인 이득은 다르게 나타난다. 소형 모델은 주로 연산 제한(Compute-bound, 계산 속도가 전체 성능을 결정하는 상태) 워크로드에 해당한다. 이 환경에서는 정밀도를 낮추는 과정에서 발생하는 양자화 오버헤드, 즉 데이터 형식을 변환하고 여러 복사본을 관리하는 비용이 처리량 상승분을 일부 상쇄한다. 반면 대형 모델은 메모리 제한(Memory-bound, 데이터 이동 속도가 병목이 되는 상태) 워크로드 특성을 가진다. 대형 모델은 연산 자체보다 데이터를 메모리에서 연산 유닛으로 옮기는 시간이 더 오래 걸리는데, 저정밀도 형식은 이 데이터 풋프린트를 줄여 병목 지점을 직접 해결하므로 성능 향상 폭이 훨씬 크다.

가장 낮은 정밀도인 NVFP4는 지원 형식 중 가장 높은 처리량을 제공한다. NVFP4는 특히 대형 모델이나 추론 워크로드에서 효과적이다. 학습과 달리 추론 단계에서는 가중치를 업데이트할 필요가 없어 고정밀도 원본 가중치를 유지할 필요가 없으며, 저정밀도 형식이 제공하는 연산 속도를 온전히 활용할 수 있기 때문이다. 엔비디아의 TransformerEngine은 자동 혼합 정밀도 전환과 퓨즈드 커널(여러 연산을 하나로 묶어 실행하여 메모리 접근을 줄이는 기술) 및 동적 손실 스케일링을 통해 구현 복잡성을 처리한다. 만약 모델이 FP16 정밀도에서도 메모리 제한 없이 충분한 처리량을 낸다면, 저정밀도 형식 도입으로 발생하는 엔지니어링 복잡성을 감수할 필요는 없다. 사용자는 선택한 정밀도가 정확도를 유지하는지 확인하기 위해 손실 곡선을 추적하며 수렴 여부를 검증해야 한다.

단일 노드 8-GPU 학습으로의 전환과 비용 효율

대규모 모델을 학습시키다 보면 GPU 메모리가 부족해 프로그램이 갑자기 멈추는 OOM(Out-of-Memory, 메모리 부족) 오류를 자주 마주한다. 이를 피하기 위해 배치 크기를 줄이면 학습 속도가 현저히 떨어지고, 모델을 여러 서버에 쪼개어 배치하는 다중 노드 설정을 해야 하는 운영상의 번거로움이 생긴다. 하지만 8개의 블랙웰 GPU를 탑재한 P6-B200 인스턴스를 사용하면 1B(10억 개)에서 64B(640억 개) 파라미터 규모의 트랜스포머 모델을 단일 노드에서 실행할 수 있다. 서버 한 대의 GPU 8개만으로 학습이 가능해지면서 기존에 필수적이었던 복잡한 다중 노드 구성 단계가 생략된다.

다중 노드 환경에서 필연적으로 발생하는 네트워크 오버헤드(데이터 전송 시 발생하는 지연 시간 및 부하)가 획기적으로 줄어든다. 여러 대의 서버가 데이터를 주고받는 통신 시간이 사라지므로 모델을 수정하고 다시 학습시켜 결과를 확인하는 반복 주기(Iteration cycle)가 단축된다. 이는 엔지니어가 가설을 세우고 검증하는 시간을 줄여 모델 최적화 속도를 높이는 실질적인 이득을 준다. 물리적인 인프라 관리 포인트가 줄어드는 것뿐만 아니라, 서버 간 통신을 위한 추가 설정 비용을 줄여 전체적인 인프라 비용 절감으로 이어진다.

학습 목표에 따라 최적화 우선순위를 다르게 설정하여 단일 노드 자원을 배분해야 한다. 처리량(Throughput, 단위 시간당 처리하는 데이터 양)을 높이는 것이 최우선이라면 배치 크기 튜닝에 집중하여 GPU 활용도를 높인다. 서버 간 통신 오버헤드가 병목 구간이라면 모델 파라미터를 나누어 저장하는 샤딩(Sharding, 모델을 여러 GPU에 분산 저장하는 기술) 구조를 단순화하여 효율을 높인다. 단일 노드 내에서는 고속 상호연결 덕분에 복잡한 분산 전략 없이도 빠른 데이터 교환이 가능하기 때문이다. 긴 문맥을 처리해야 하는 작업이라면 시퀀스 길이(Sequence length, 한 번에 입력하는 토큰의 길이)에 메모리 우선순위를 배정하여 모델의 문맥 이해 능력을 확보한다. 배치 크기와 시퀀스 길이는 모두 메모리 소비를 증가시키므로 두 수치 사이의 적절한 균형점을 찾는 것이 핵심이다.

최종적인 정밀도 형식의 선택은 모델이 연산 제한(Compute-bound) 상태인지 메모리 제한(Memory-bound) 상태인지에 따라 결정한다. 소형 모델처럼 연산 속도가 한계인 연산 제한 워크로드에서는 저정밀도 전환 시 양자화 오버헤드(데이터 형식을 변환하며 발생하는 추가 연산)로 인해 처리량 이득이 일부 상쇄될 수 있다. 반면 대형 모델처럼 데이터 이동이 병목인 메모리 제한 워크로드에서는 FP8, MXFP8, NVFP4 같은 저정밀도 형식이 메모리 대역폭 요구량을 낮춰 더 직접적인 성능 향상을 제공한다. 모델 규모와 병목 지점을 정확히 파악해 정밀도를 선택하는 것이 단일 노드 학습의 효율을 극대화하는 판단 기준이 된다.

한국 AI 현장에서 볼 지점

학습 효율을 높이려는 시도는 한쪽에서는 하드웨어 한계를 밀어붙이는 방식으로, 다른 한쪽에서는 메모리 사용량을 정밀하게 쪼개는 방식으로 나뉜다. 대규모 모델 학습 시 빈번하게 발생하는 GPU 메모리 부족 오류는 배치 크기를 강제로 줄이게 만들어 학습 시간을 늘리는 원인이 된다. 이를 해결하기 위해 PyTorch FSDP(Fully Sharded Data Parallel, 모델 파라미터와 그레이디언트 및 옵티마이저 상태를 여러 GPU에 분산 저장해 메모리 한계를 극복하는 기술)를 활용한다. 이 기술은 단일 GPU 메모리에 담을 수 없는 거대 모델을 여러 장치에 나누어 배치함으로써 물리적 한계를 넘어선 모델 크기를 학습 가능하게 만든다. 관리형 환경인 아마존 세이지메이커 AI 학습 작업에서 이를 구현하면 인프라 설정에 드는 공수를 줄이고 모델 최적화에만 집중할 수 있다.

구현 단계에서는 NVIDIA TransformerEngine을 결합해 연산 효율을 극대화한다. 이 도구는 혼합 정밀도 스위칭과 퓨즈드 커널(여러 연산을 하나로 묶어 메모리 접근 횟수를 줄이는 기술), 동적 손실 스케일링(학습 중 수치적 불안정성을 막기 위해 손실 값의 크기를 자동으로 조절하는 기술)을 자동으로 처리한다. 개발자가 정밀도 변환 코드를 직접 작성하지 않아도 하드웨어 가속을 최대로 활용할 수 있는 환경을 제공한다. 특히 블랙웰 아키텍처의 텐서 코어 성능을 끌어내기 위해 정밀도 형식을 유연하게 변경하며 처리량을 최적화하는 구조를 가진다. 이는 연산 제한 워크로드와 메모리 제한 워크로드 사이에서 최적의 정밀도를 선택하는 기준이 된다.

실제 학습은 NVIDIA TransformerEngine 리포지토리의 fsdp.py 예제 파일을 기반으로 수행한다. 학습 스크립트인 `fsdp.py`와 `torchrun` 설정을 담은 `train.sh` 파일을 준비해 실행 환경을 구성한다. 8개의 GPU를 사용하는 노드에서 1B 파라미터 모델을 MXFP8 정밀도로 학습시키려면 다음과 같은 명령어를 사용한다.

bash
torchrun --nproc_per_node=8 fsdp.py --model-size 1B --batch-size 16 --seq-length 8192 --precision mxfp8

이 설정은 배치 크기를 16으로 확대해 처리량을 높이면서도 피크 메모리를 제어하는 구성이다. 모델 크기와 시퀀스 길이에 따라 정밀도 형식을 조정하며 최적의 처리량을 찾는 과정이 수반된다.

전체 파이프라인은 AWS 인프라 서비스와 연동되어 자동화된 워크플로우를 형성한다. 학습 데이터는 Amazon S3(단순 저장 서비스)에서 직접 불러오고, 학습 과정에서 발생하는 로그와 지표는 Amazon CloudWatch(모니터링 서비스)로 전송해 실시간으로 수렴 여부를 확인한다. 실행 환경은 Amazon ECR(컨테이너 이미지 저장소)에 저장된 커스텀 도커 이미지를 통해 배포하며, 모든 리소스 접근 권한은 AWS IAM(권한 관리 서비스)으로 제어한다. 인프라 운영 부담을 덜고 분산 학습의 복잡도를 낮춘 환경에서 모델의 수렴 속도와 처리량을 검증하는 것이 실무적인 핵심이다.

결국 대규모 모델 학습의 효율은 하드웨어의 절대 성능보다 연산 병목 지점을 정확히 짚어내는 정밀도 선택에 달려 있다. 모델 규모에 따라 연산 제한인지 메모리 제한인지 판단하여 FP8, MXFP8, NVFP4 중 최적의 형식을 선택하는 것이 단일 노드 학습의 실질적인 성패를 결정한다.

사용자는 현재 자신의 워크로드가 어느 지점에서 병목이 발생하는지 분석하고, 본문에서 제시한 정밀도 선택 기준에 맞춰 설정을 변경함으로써 처리량의 변화를 직접 검증할 수 있다. 정밀도 선택과 손실 곡선 추적이라는 두 가지 기준이 인프라 비용을 낮추는 가장 확실한 방법이다.