FESTA 에서 진행한 세션으로 학습 및 추론 시간 감소를 위한 기능 소개 목적으로 nvidia에서 발표 (22년 7월 12일)
NVIDIA 세션에서 소개한 기능
AMP (Automatic Mixed Precision)
- Training 가속화를 기대
- [’O0’, ‘O1’, ‘O2’, ‘O3’]
APEX 분산 학습
- DDP for model: model이 크면 gpu device에 model을 n 등분하여 올린 뒤 학습
ASP (Automatic SParsity)
- inference 가속화를 기대하기 위한 pruning 을 적용하는 기법
https://github.com/NVIDIA/apex/tree/master/apex/contrib/sparsity
Quantization
- PTQ (Post Training Quantization) 추론 기능
- QAT (Quantization Aware Training) 학습 기능
TensorRT
- trtexec 사용한 engine 생성 및 사용 방법
- 코드 구성(general한 방법)하여 engine 생성 및 사용 방법
DALI
- gpu를 사용한 데이터 전처리
- 큰 데이터를 전처리할 때 효과적
- 작은 데이터를 전처리할 때는 효과적이지 않다고함
NVIDIA에서 제공 예정인 자료
세션 영상 & 샘플 코드 세션 발표할 때 공개한다고 했으니 이미 공개 되어 있을 것 같음
질의 응답 내용
굉장히 많은 QA가 있었음.
가치 있는 질문도 많았지만 전부 기록하지는 못함.
일부 기록한 QA 리스트 모음
- Q: trtexec를 했을 경우, 초반 설정에서 gpu, cpu 셋팅하는 인자가 있는 걸로 아는데 그렇게 만들어진 trt 엔진은 초반 설정된 device만 사용 가능한 건가요? gpu로 설정해두고 cpu로 사용할 순 없는지요?
- A: trtexec는 수행된 GPU device에서 최적화된 TensorRT 엔진을 만들어내는 툴입니다. CPU에서는 동작되지 않습니다.^^
- Q: 아하 감사합니다 :) 하나 더 질문이 있는데 trtexec 초반 설정 시 int8 or float16 설정해두면 만들어진 엔진을 사용할 때 계산 방식을 변경하는 기능도 있을까요?
- A: precision 설정에 따라서 호출되는 커널 (함수)가 날라지게 됩니다. 따라서 계산방식이 어떤걸 의미하는지는 모르겠지만 정확도와 속도차이가 발생할 수 있습니다.
- Q: 계산 방식은 1. trtexec 사용 engine 만들 때 int8 설정해서 만든 engine을 A_engine 이라고 명명 2. A_enginge을 사용해서 float16 으로 inference (계산) 이렇게 사용이 가능한지 궁금해서 질문드렸습니다. !
- A: 말씀해주신 방식은 지원되지 않습니다. int8과 fp16모두 TensorRT로 변환해서 사용하는걸 권장드립니다.
- Q: tensorrt는 onnx말고 scripting된 torchscript도 conversion 가능한가요?
- A: TensorRT는 기본적으로 ONNX 포맷을 통해서 변환하는 기능을 제공합니다. Torchscript도 마찬가지로 ONNX 포맷을 통해 변환 가능한 걸로 알고 있습니다.
- Q: HF에서 data에 대해 tokenization 과정이 시간이 오래걸리고 CPU에서 주로 이뤄지고 있는걸로 아는데요.. 해당 부분을 GPU로 학습시키는 예시는 없을까요?
- A: https://developer.nvidia.com/blog/run-state-of-the-art-nlp-workloads-at-scale-with-rapids-huggingface-and-dask/ 다음 RAPIDS 프레임워크를 참고해보시면 좋을 듯합니다.
- 추가 답변 사항
- ASP는 infernece 가속화를 기대하고 AMP는 Training 가속화를 기대하는 거라고 봐주시면 됩니다. 다만 ASP는 inference 가속화를 기대하기 위한 pruning 을 적용하는 기법입니다.
- nccl을 통한 multi-node ddp...? 환경 변수 셋팅, 토콜로지? 셋팅 이슈가 자주 생긴다고 함 (셋팅의 차이지 코드의 차이가 아님)
개발자 커뮤니티 홍보
개발자 커뮤니티 : https://join.slack.com/t/nv-ai-developer-kr/shared_invite/zt-1c4pix3vr-v2UxB22gvXzAvMzCGvlxMw
반응형
댓글