H100 GPU - PCIe vs SXM_[Performance Profile of Transformer Fine-Tuning in Multi-GPU Cloud Environments]
·
Computer Science/하드웨어
이번엔 논문 리뷰입니다. 논문제목은 아래와 같습니다. 「Performance Profile of Transformer Fine-Tuning in Multi-GPU Cloud Environments 」 이 논문은 NVIDIA V100 GPU를 최적조건으로 사용하는 방법을 연구한 결과를 포함하고 있다. 총 2가지 환경에서 비교한다. 1)Single vs multi-GPU 2) NV Link vs PCIe VI. 요약 연구를 통해 얻은 주요 인사이트는 다음과 같다. Single GPU일때, 연산에서 가장 로드가 많은 부분 : Train 데이터 로드, 역전파 연산 GPU수를 늘릴수록 연산 소요시간이 단축됨. Train 데이터 로드에는 시스템 메모리 용량이 가용한대로 2~4개의 데이터로더를 사용하는 것이 좋다. ..
GPU H100 - Transformer Engine - 03.성능최적화
·
Computer Science/하드웨어
Performance Optimizations TE엔진 사용법에 이어서 최적화하는 방법이다. GPT encoder Layer를 기준으로 소개한다. quickstart_utils.py 의 함수를 사용해서 적용해보자. import torch import transformer_engine.pytorch as te from transformer_engine.common.recipe import Format, DelayedScaling import quickstart_utils as utils # Layer configuration hidden_size = 4096 sequence_length = 2048 batch_size = 4 ffn_hidden_size = 16384 num_attention_heads =..
GPU H100 - Transformer Engine - 02.적용하는법/ Docs review(Getting Started)
·
Computer Science/하드웨어
Getting Started Overview Transformer Engine (TE)을 사용하는 이유 FP8 지원 → 더 낮은 메모리 사용량 Transformer 아키텍처 지원 정밀도(Precision)를 유지하는 솔루션을 자동으로 적용되도록 구현 기존 DL 프레임워크와의 호환성 독립적인 C++ API도 지원함 Let's build a Transformer Layer! 우리는 일반 PyTorch 모듈을 사용하여 기본 트랜스포머 계층을 구축한다. 이는 추후 트랜스포머 엔진과의 비교를 위한 기준이 될 것입니다. 먼저 일반 PyTorch를 사용하여 GPT 인코더 계층을 생성합니다. 그림 1은 전체적인 구조를 보여준다. 모델 구성 요소별 사용한 Pytorch 라이브러리: LayerNorm : torch.nn...
GPU H100 Transformer engine - 01. 작동원리
·
Computer Science/하드웨어
※본포스팅은 Nvidia Transformer Engine Docs를 참고했습니다. Transformer Engine으로 FP8 사용하기 H100에서는 FP8(8-bit floating point) 형식을 지원한다 Introduction to FP8 H100에서 두 가지 FP8 형식을 지원한다. 1) E4M3 - +/- 448 2) E5M2 - +/- 57344 Dynamic Range가 넓지만 정확도가 떨어짐. Forward pass - E4M3 방식 사용 , weight 값을 계산 → 정확도 중요 Backward pass - E5M2 방식 사용, Gradient 값 계산 → 넓은 Dynamic Range 필요 Mixed Precision Training FP16 작동방법을 통해서 FP8 작동 방식 이..