AMD์ Hugging Face๊ฐ Transformers ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ AMD Instinct GPU ๋ค์ดํฐ๋ธ ์ง์์ ์ถ๊ฐํด ์ฝ๋ ๋ณ๊ฒฝ ์์ด MI250์์ A100 ๋๋น 2.33๋ฐฐ ๋์ ๋์ฝ๋ฉ ์ฒ๋ฆฌ๋ ๋ฌ์ฑ
AMD + ๐ค: Large Language Models Out-of-the-Box Acceleration with AMD GPU
AI ์์ฝ
Context
Hugging Face Transformers ๋ชจ๋ธ๋ค์ด NVIDIA GPU์ ์ต์ ํ๋์ด ์์ด AMD Instinct GPU์์ ์คํํ๋ ค๋ฉด ๋ณ๋์ ์ฝ๋ ์์ ์ด ํ์ํ๋ค. AI ๋ชจ๋ธ ์ถ๋ก ๋ฐ ํ์ต ์ฑ๋ฅ์ AMD ํ๋์จ์ด์์๋ NVIDIA ์์ค์ผ๋ก ์ ๊ณตํ๊ธฐ ์ํ ํ์คํ๋ ์ง์์ด ๋ถ์ฌํ๋ค.
Technical Solution
- Hugging Face Transformers ๋ชจ๋ธ์ ์ฝ๋ ๋ณ๊ฒฝ ์์ด AMD Instinct GPU์์ ์คํ: torch.device("cuda") ํธ์ถ ์ ์๋์ผ๋ก AMD GPU ๊ฐ์ง ๋ฐ ํ์ฉ
- Flash Attention 2, Tensor Parallelism, Distributed Data Parallel ๋ฑ AMD Instinct GPU ์ต์ ํ ๊ธฐ๋ฒ ํตํฉ: PyTorch ๋ฐฑ์๋์์ ROCm ์ง์์ผ๋ก ๊ตฌํ
- MI250์ ๋ ๊ฐ ROCm ๋๋ฐ์ด์ค(๊ฐ 64GB HBM) ํ์ฉ: ๋จ์ผ GPU ์นด๋์์ tensor parallelism๊ณผ data parallelism ๋์ ์ ์ฉ ๊ฐ๋ฅ
- Text Generation Inference(TGI) ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋ฐฐํฌ: ghcr.io/huggingface/text-generation-inference:1.2-rocm์ ํตํด ํ๋ก๋์ ์ถ๋ก ํ๊ฒฝ ์ ๊ณต
- AMD Instinct ๋ฐ์ดํฐ์ผํฐ์์ ์ง์์ ํตํฉ ํ ์คํธ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ: ํ์ ์ํฅ ์ต์ํ๋ฅผ ์ํด ์์ด์ฌ๋๋์ Verne Global ์ธํ๋ผ ํ์ฉ
Impact
- ๋์ฝ๋ฉ ์ฒ๋ฆฌ๋(Decode Throughput): MI250์ด A100 ๋๋น 2.33๋ฐฐ ๋์
- Prefill ๋ ์ดํด์(Time To First Token): MI250์ด A100์ ์ ๋ฐ ์์ค
- ํ์ต ๋ฐฐ์น ํฌ๊ธฐ: MI250์ด ๊ฐ์ ํฌ๊ธฐ A100 ์นด๋๋ณด๋ค ๋ ํฐ ๋ฐฐ์น ์์ฉ ๊ฐ๋ฅ
- ๋ฉ๋ชจ๋ฆฌ ์ฉ๋: MI250 128GB vs A100 80GB
Key Takeaway
ํ๋กํ๋ผ์ด์ดํฐ๋ฆฌ GPU ํ๋ซํผ์ ์ข ์๋์ง ์์ผ๋ ค๋ฉด ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Transformers, Diffusers)์์ ํ๋์จ์ด ์ถ์ํ๋ฅผ ์ฒ ์ ํ ํด์ผ ํ๋ฉฐ, ์ด๋ฅผ ํตํด ์ต์ข ์ฌ์ฉ์ ์ฝ๋๋ ๋ณ๊ฒฝ ์์ด ๋ค์ํ ๊ฐ์๊ธฐ ์ง์์ด ๊ฐ๋ฅํด์ง๋ค. ๋ํ ํ๋ก๋์ ์๋ฃจ์ (TGI)์ ํจ๊ป ์ ๊ณตํจ์ผ๋ก์จ ๊ฐ๋ฐ๋ถํฐ ๋ฐฐํฌ๊น์ง ์ผ๊ด๋ ๊ฒฝํ์ ๋ณด์ฅํ๋ ๊ฒ์ด ํ๋ซํผ ์ฑํ์ ๊ฒฐ์ ์์๊ฐ ๋๋ค.
์ค์ฒ ํฌ์ธํธ
๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ์ ๋ฐฐํฌํ๋ ์กฐ์ง์์ NVIDIA GPU ๋ ์ ์ํฉ์ ๋ฒ์ด๋๋ ค๋ฉด, Hugging Face Transformers + Text Generation Inference + AMD Instinct MI250 ์กฐํฉ์ ๋์ ํ๋ฉด ๋์ผํ ๋ชจ๋ธ ์ฝ๋๋ก
2.33๋ฐฐ ๋์ ์ฒ๋ฆฌ๋๊ณผ 50% ๋ฎ์ ์ฒซ ํ ํฐ ๋ ์ดํด์๋ฅผ ์ป์ ์ ์์ผ๋ฉฐ, 128GB ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํด ๋ ํฐ ๋ฐฐ์น์ ์ํ์ค ๊ธธ์ด๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.