본문 바로가기
AI 빅데이터/AI 동향

[AI가속] TensorRT-LLM

by 마고커 2023. 10. 25.


지난 주(10월 3주차)에 NVidia에서 TensorRT LLM이라는 LLM을 위한 GPU 가속 라이브러리를 Release 하였다. 기존 A100 대비 약 5배, H100 대비해서는 약 2배 약간 못 미치게 성능 향상이 있다고 발표했다. 

 

 

소프트웨어만으로 성능 향상을 볼 수 있는 것이라 안 쓸 이유가 크지 않은데, 주요하게 포함된 기술은 아래와 같다.

 

Tensor Parallelism

 

쉽게 얘기해서 모델의 Tensor들을 나누어 GPU마다 할당하고 연산한 뒤에 다시 합하고 Synchronization하는 것이다. GPU 메모리를 상대적으로 덜 쓸 수 있다는 장점이 있지만, Sync 과정이 복잡할 수 있다.

 

 

Pipeline Parallelism

 

GPU마다 배치를 나누어서 학습하고, 이를 다시 Sync한다. 배치를 나누기 때문에 학습 속도는 빨라지지만, Sync Overhead가 이 장점을 상쇄할 수 있다. 

 

 

Flash Attention

 

메모리마다 속도가 다르다. I/O과정에서 손실을 보지 않도록 Layer 간 연산 설계를 하는 기법이다. 내용은 어려워서 Pass.

 

 

Inflight Batching

 

추론 과정에서 여러개의 요청이 왔을 때, 하나 마치고 하나 처리하는 것이 아니라, 데이터 처리와 추론이 유기적으로 지속 일어날 수 있도록 한다.

 

 

이외에도 양자화(FP8)를 내부적으로 진행하는 경우도 있다. NVidia의 테스트 결과 8비트 양자화에도 그리 큰 성능 저하는 나타나지 않았다고 한다. 

 

참고로, A100, V100, A6000, H100 과 같은 서버 GPU에서 테스트를 진행했는데, RTX 게열의 데스크톱 GPU에서도 동작은 할 것 같다는 NVidia 담당자 얘기가 있었다.

 

참고) Data Parallelism

 

병렬화에는 Model Parallelism외에도 Data Parallelism이 있다. Model Parallelism이 연산 과정을 나누어서 하는 것이라면, Data Parallelism은 GPU마다 다른 데이터로 학습하고 이를 다시 Sync하는 것이다. TensorRT LLM에 Data Parallelism이 사용되었다는 내용은 찾지 못했다.

 



댓글