top of page

NVIDIA Jetson Orin 기반 자율 기계의 딥러닝 추론 작업 가속하기

Jetson으로 프로젝트 많이들 하시죠? Jetson은 임베디드 시스템 시장에 AI 열풍을 일으키고 있습니다. Jetson은 스스로 운행하는 자율 기계와 로봇 그리고 AI 기반 예측 및 고급 분석을 엣지 현장에서 수행하는 임베디드 장치 개발에 쓰이고 있습니다. NVIDIA는 다양한 용도에 맞게 선택해 쓸 수 있도록 폭넓은 Jetson 포트폴리오를 제공합니다. 여기에는 Jetson AGX Orin, Jetson Orin NX, Jetson AGX Xavier, Jetson Xavier NX, Jetson TX2, Jetson Nono가 포함됩니다. 이번 포스팅에서는 이중 Jetson AGX Orin에서 DLA(Deep Learning Accelerator)를 이용하는 방법을 준비해봤습니다. 참고로 Jetson Orin은 자율 기계 제작을 위한 제품으로 제조, 물류, 소매, 의료 등의 산업 분야에서 AI 기반 자율 기계 제작에 활용되고 있습니다.


DLA를 사용하는 이유는?

DLA는 딥러닝 추론 워크로드를 위한 가속기입니다. DLA는 컨볼루션, 디컨볼루션, 완전 연결, 활성화, 풀링, 배치 정규화 등과 같은 다양한 계층을 지원하는 컨볼루션 신경망 가속을 수행하도록 설계되었습니다. NVIDIA의 Orin SoC는 최대 2개의 2세대 DLA를 지원합니다.


여기서 한 가지 궁금증이 떠오를 것입니다. Jetson의 장점은 CPU와 GPU를 단일 장치에서 쓸 수 있다는 것이죠. GPU가 있는데 굳이 DLA까지 적용해 딥러닝 추론을 가속하는 이유가 궁금할 것입니다. DLA의 처리량은 GPU와 비교할 수준이 아니죠. 그런데도 DLA를 쓰는 이유는? GPU로 더 많은 작업을 하기 위해서입니다. DLA의 역할은 GPU로 집중되는 작업 처리 부하를 분산하는 것입니다. 네, 딥러닝 워크로드를 DLA가 오프로딩하는 것이라 이해하면 됩니다. 강력한 GPU 성능이 필요하다면? 이 또한 문제없습니다. 애플리케이션에 따라 GPU, DLA를 모두 활용해 모델을 처리할 수도 있습니다.


DLA 시작하기

다음 그림은 Jetson Orin 기반 자율 기계에서 DLA를 통한 딥러닝 가속을 보여줍니다. DLA를 사용하려면 먼저 PyTorch나 TensorFlow 같은 딥러닝 프레임워크로 모델을 훈련해야 합니다. 다음으로 NVIDIA TensorRT로 모델을 가져와 최적화해야 합니다. TensorRT는 DLA 엔진을 생성하며, DLA 실행을 위한 런타임으로도 사용할 수 있습니다. 마지막으로 모드를 프로파일링하고 가능한 경우 DLA 호환성 보장을 위해 최적화 작업을 합니다.

DLA를 이용해 딥러닝 추론 작업 오프로딩을 하고 싶다면 DLA 튜토리얼을 안내하는 깃허브 페이지를 참조 바랍니다. 튜토리얼을 통해 PyTorch에서 모델을 정의하고, TensorRT로 모델을 가져오고, NVIDIA Nsight 시스템 프로파일러를 사용하여 성능을 분석하고, 더 나은 DLA 호환성을 위해 모델을 수정하고, INT8 실행을 보정하는 방법을 배울 수 있습니다.


조회수 123회댓글 0개

Comments


bottom of page