AMD Developer Cloud 사용 후기 (LLM inference / SFT / RL)

파이토치 한국 사용자 모임에서 진행한 AMD Instinct™ MI300X GPU 무료 체험 이벤트 를 통해 AMD GPU를 사용할 수 있는 좋은 기회를 얻게 되었습니다. 이를 기반으로 LLM inference (vllm & sglang), LLM SFT (huggingface trl library), 그리고 LLM RL (Bytedance verl library)를 돌려보았습니다. 아래에 사용 후기를 남깁니다.

<TL;DR>

  • 스펙 만큼 H100보다 빠르지 않지만, 압도적인 VRAM (192G)는 매우 큰 장점으로 다가옴.
  • 오픈소스 라이브러리들이 최근 AMD 지원을 많이 해주고 있기에 개발에 용이
  • 제공해주신 한정적 시간으로 인해 아쉬움 :joy:
  1. AMD MI300X vs. Nvidia H100/H200

AMD GPU와 Nvidia GPU를 비교하여 report한 좋은 글이 있습니다.

이 Report에 따르면, 스펙 상으로는 MI300X가 H200보다 훨씬 앞서지만, 실제로 사용자가 활용할 때 Training 속도는 H100보다 조금 느린 수준입니다. 실제로도 사용해본 결과 H100보다 조금 더 느린 정도의 속도로 체감되었습니다.

물론, 압도적인 VRAM 크기는 MI300X 사용에 조금 더 손이 가게끔 하는 것 같습니다.

  1. LLM Inference
    제공되는 docker image를 바탕으로 vllm (v0.9.2) 와 sglang (v0.4.6.post5)를 활용하여 LLM inference를 돌려보았습니다.

단일 MI300X (192G) GPU에서 30~40B 급 모델은 안정적으로 inference 할 수 있고, 100B 급 모델도 8bit으로 inference를 할 수 있다는 점은 아주 큰 장점이 되는 것 같습니다. 가령 단일 H100의 경우 30~40B 급 모델은 kv-cache로 인해 VRAM이 아슬아슬한 상황까지 오게 되는 반면, AMD MI300X의 경우에는 192G VRAM으로 리소스가 충분히 여유가 있습니다.

속도 측면에서는 H100보다 살짝 느린 정도였습니다. 그리고 sglang의 경우 Nvidia GPU에서는 vllm보다 꽤 빠른 속도를 자랑했었는데, MI300X 에서도 마찬가지로 sglang이 vllm보다 조금 더 빠른 걸 보아 AMD support를 잘 해준다고 생각하게 된 것 같습니다.

  1. LLM SFT
    자체적으로 수집한 SFT dataset에 대해서, 다양한 크기의 LLM 모델들을 SFT 해보았습니다.

단일 MI300X GPU에서 안정적으로 ~30B 크기의 모델을 SFT 할 수 있고, LoRA를 쓰면 ~70B 도 단일 GPU에서 학습을 할 수 있다는 점이 장점이 되는 것 같습니다만, 사실 80G H100에서도 이는 할 수 있는 정도라서 큰 장점으로 다가오지는 않았습니다. 물론 per_gpu_batch_size를 키울 수 있다는 점에서 장점이라고 볼 수 있겠습니다.

아쉬웠던 점은, pytorch에서 제공하는 SDPBackend 커널 구현 관련 최적화 issue가 있었는데 파악하는데 시간이 꽤 걸렸다는 점입니다. (물론 구글링하면 나오는 정도의 오류라서 수정하는 것 자체는 오래 걸리지 않았습니다.)

  1. LLM RL (GRPO)
    최근에 자주 활용되고 있는 verl 라이브러리로 LLM RL을 해보았습니다.

GRPO RL training의 경우 VRAM requirement가 아주 큰 것으로 잘 알려져있는데요, 8 MI300X의 경우 VRAM이 1536G, 8 H100 node 약 2.4개 급의 VRAM으로 특히나 큰 장점으로 다가옵니다.

14B 모델도 response length를 충분히 세팅했는데 한 node에서 training이 진행되는 것을 보고 개인적으로는 충격적이었습니다.

특히나 verl은 거의 매일 업데이트가 되는 매우 활발한 라이브러리이고, AMD 지원을 적극적으로 해주기에 도커 image를 받아와서 바로 container 열고, 큰 에러없이 진행할 수 있었습니다.

  1. 종합하자면
  • 초기 환경 세팅 시간이 거의 들지 않고, 세팅 이후 코드 구현 상에서도 큰 수정 없이 AMD 환경에서 돌아갈 수 있었다.
  • 속도가 엄청 빠르다는 체감은 하지 못했지만, 192GB 라는 아주 큰 VRAM은 너무나도 큰 장점이다.
  • 오픈소스 라이브러리들이 AMD를 지원하지만, 여전히 version mismatch나 ROCm 커널 관련 이슈 등 몇 가지 번거로운 사항들이 존재한다.

이번 AMD MI300X 무료 체험 이벤트를 통해 고성능 GPU, 대규모 LLM 실험을 진행할 수 있었습니다. 아주 좋은 플랫폼을 직접 사용할 수 있어 좋은 기회였고, 앞으로도 이런 기회가 있다면 적극적으로 참여해보고 싶은 마음이 들게 된 것 같습니다!

4개의 좋아요