NVIDIA cuDLA Python 바인딩, Jetson AGX Orin에서 DLA 추론 지원
NVIDIA는 cuDLA Python 바인딩을 출시하여 Jetson AGX Orin 개발자가 C++ 코드 없이 DLA 하드웨어 가속을 활용할 수 있도록 지원한다. 이는 엣지 AI 애플리케이션의 전력 효율성과 GPU 활용도를 높이는 데 기여한다.
핵심 요약
- NVIDIA cuDLA Python 바인딩이 cuda-bindings 13.3.0에 도입되어 DLA 추론을 Python에서 직접 수행한다.
- Jetson AGX Orin에서 DLA 하드웨어 가속을 활용하여 GPU 부담을 줄이고 전력 효율성을 향상한다.
- 하이브리드 모드를 통해 GPU 전처리, DLA 추론, GPU 후처리 파이프라인을 단일 CUDA 스트림으로 조율한다.
- 모델에 구애받지 않는 워크플로우를 제공하며, RTX Spark를 통해 Windows AI 개발자 노트북에서도 동일한 API를 지원한다.
Python에서 DLA 추론 가능
NVIDIA는 `cuda-bindings 13.3.0` 버전의 `cuda.bindings.cudla` 모듈을 통해 cuDLA Python 바인딩을 도입했다. 이로써 개발자들은 C++ 코드를 작성하지 않고도 NVIDIA Jetson AGX Orin 플랫폼의 DLA(Deep Learning Accelerator) 하드웨어에서 딥러닝 추론을 직접 실행할 수 있게 되었다. 이 바인딩은 cuDLA C++ API 위에 Cython으로 생성된 얇은 Python 계층으로, 하이브리드 모드 워크플로우를 위해 13개의 함수, 9개의 데이터 타입, 8개의 enum을 노출한다.
이 새로운 기능은 Jetson AGX Orin에서 DLA가 지원하는 신경망 연산을 실행하여 애플리케이션이 GPU에서 추론 작업을 오프로드할 수 있도록 한다. 이는 전력 효율성을 개선하고 GPU 용량을 다른 애플리케이션 작업에 활용할 수 있게 한다. 또한, `cuda.bindings.cudla` API는 NVIDIA RTX Spark에서도 동일하게 작동하여, 임베디드 및 로봇 공학 분야를 넘어 Windows AI 개발자 노트북에서도 DLA 추론을 지원한다.
엣지 AI를 위한 DLA의 역할
엣지 환경의 AI 애플리케이션은 제한된 컴퓨팅 및 전력 예산 내에서 여러 신경망을 효율적으로 실행해야 하는 과제를 안고 있다. NVIDIA DLA는 이러한 요구사항을 충족하기 위해 딥러닝 추론을 위한 전용 하드웨어를 제공한다. DLA는 컨볼루션 및 풀링과 같이 최신 신경망 아키텍처에서 흔히 사용되는 고정된 연산을 효율적으로 수행하는 고정 기능 가속기이다.
DLA는 GPU만큼 다양한 레이어를 지원하지는 않지만, 많은 인기 신경망 아키텍처에 사용되는 광범위한 레이어를 지원한다. cuDLA는 이 가속기에서 실행을 관리하는 런타임 API로, 애플리케이션이 DLA 장치를 생성하고, 컴파일된 네트워크를 로드하며, 메모리 버퍼를 등록하고, 추론 작업을 제출하는 데 사용된다. 이번 Python 바인딩 도입으로 기존 C++ 기반의 런타임 관리 및 추론 오케스트레이션이 Python 환경에서도 가능해져 개발 편의성이 크게 향상되었다.
Python 기반 DLA 추론 워크플로우
Python 워크플로우는 크게 9단계로 구성된다. 먼저 `cudla.create_device`를 사용하여 `cudla.Mode.CUDA_DLA` 모드로 DLA 장치를 생성한다. 이 하이브리드 모드는 CUDA 스트림을 통해 DLA 작업을 제출하며, GPU 전처리, DLA 추론, GPU 후처리 파이프라인을 단일 스트림에서 순차적으로 실행할 수 있게 한다. 다음으로 `cudla.module_load_from_memory`를 통해 컴파일된 DLA 로더블을 메모리에서 로드한다. 이 과정에서 파일 경로 대신 Python `bytes` 객체를 직접 전달한다.
모듈 로드 후에는 `cudla.module_get_attributes`를 사용하여 입력 및 출력 텐서의 개수와 디스크립터(`cudla.ModuleTensorDescriptor`)를 조회한다. 각 디스크립터는 버퍼 크기(`size_`), 텐서 형태(`n, c, h, w`), 이름, 데이터 형식, 스트라이드와 같은 중요한 정보를 포함한다. 이 정보를 기반으로 CUDA 드라이버 및 런타임 API를 사용하여 GPU 메모리를 할당하고, `cudla.mem_register`를 통해 할당된 GPU 버퍼를 DLA 장치에 등록하여 DLA 측 핸들을 얻는다.
입력 데이터는 전처리(값 정규화, 텐서 스트라이드 및 데이터 형식 일치) 후 `runtime.cudaMemcpyAsync`를 사용하여 호스트에서 GPU로 비동기적으로 복사된다. 이후 `cudla.Task` 객체를 구성하고 `cudla.submit_task`를 호출하여 추론 작업을 CUDA 스트림에 제출한다. 작업 완료는 `runtime.cudaStreamSynchronize`를 통해 대기하며, 추론 결과는 `runtime.cudaMemcpyAsync`를 사용하여 GPU에서 호스트로 복사된다. 모든 작업이 완료되면 `cudla.mem_unregister`, `cudla.module_unload` 등의 호출을 통해 DLA 장치, 모듈, 등록된 메모리 핸들, GPU 할당 및 스트림을 정리한다.
개발자에게 미치는 영향 및 이점
이번 cuDLA Python 바인딩 도입은 Python 개발자들이 DLA 하드웨어 가속의 이점을 쉽게 활용할 수 있도록 하여 개발 생산성을 크게 향상시킨다. C++ 코드를 직접 작성할 필요 없이 Python 환경에서 DLA 추론 파이프라인을 구축할 수 있게 됨으로써, 엣지 AI 애플리케이션 개발의 복잡성이 줄어든다. 특히, GPU와 DLA 작업을 단일 CUDA 스트림에서 조율하는 하이브리드 모드는 전처리, DLA 추론, 후처리 단계를 유기적으로 연결하여 효율적인 워크플로우를 가능하게 한다.
이 워크플로우는 모델에 구애받지 않는(model-agnostic) 방식으로 설계되어, 동일한 코드 경로로 다양한 신경망 아키텍처의 DLA 로더블을 처리할 수 있다. 이는 개발자가 모델 변경에 따라 코드를 크게 수정할 필요 없이 유연하게 대응할 수 있도록 돕는다. 또한, cuDLA API 호출 실패 시 `cudla.CudlaError` 예외가 발생하여 Python의 표준 예외 처리 메커니즘과 자연스럽게 통합되며, NumPy, PyTorch, OpenCV 등 기존 Python 생태계의 라이브러리와 쉽게 연동하여 후처리 작업을 수행할 수 있다.
적용 조건 및 한계
cuDLA Python 바인딩을 사용하기 위해서는 최소 Python 3.10 버전이 필요하며, JetPack의 기본 Python 버전이 이보다 낮을 수 있으므로 확인 및 업데이트가 필요할 수 있다. DLA는 고정 기능 가속기이므로 GPU만큼 다양한 신경망 레이어를 지원하지 않는다. 따라서 DLA와 호환되지 않는 레이어가 포함된 모델의 경우, TensorRT 컴파일 과정에서 ONNX 그래프의 전처리 및 후처리 레이어를 잘라내는 작업이 필요할 수 있다.
현재 `cudla.Mode.STANDALONE` 모드는 지원되지 않으며, 이 모드를 요청할 경우 `CudlaError(ErrorUnsupportedOperation)` 예외가 발생한다. 스탠드얼론 모드는 `NvSci` 버퍼 및 동기화 프리미티브를 필요로 한다. 또한, DLA 장치 핸들은 불투명한 C 리소스이므로 Python의 가비지 컬렉션에 의해 자동으로 해제되지 않는다. 따라서 `try/finally` 블록을 사용하여 `cudla.mem_unregister`, `cudla.module_unload`와 같은 정리 호출을 명시적으로 수행해야 한다.
데빈은 실제 기자가 아닌 AI 기술 에디터입니다. 출처의 공개 기사 본문 또는 RSS 제공 정보에서 사실을 추려 배경과 기술적 영향을 독립적인 한국어 기사로 재구성합니다. 직접 취재한 기사나 원문 전문의 번역·재게시가 아닙니다.
출처 · 원문 확인
NVIDIA Developer Blog · Nikshay Shrivastava
Run Native DLA Inference in Python on NVIDIA Jetson AGX Orin Using cuDLA
원문 발행: 2026-11-14 03:57:10
원문과 이미지의 권리는 해당 권리자에게 있습니다. 정정·게재 중단 요청은 문의 안내를 이용해 주세요.
관련 소식
- 엔비디아, 정수 텐서 코어로 배정밀도 연산 가속하는 cuBLAS 신규 알고리즘 공개 · NVIDIA Developer Blog · 2026-11-14
- 엔비디아, 블랙홀 전파간섭계 상관 처리를 가속하는 cuPhoton 툴킷 공개 · NVIDIA Developer Blog · 2026-11-14
- 아마존 베드록, AI 개발 도구 대상 사용자별 비용 추적 및 제어 기능 지원 · AWS Machine Learning Blog · 2026-11-14
- llama.cpp와 ggml 1.0.0 출시, 로컬 AI 생태계의 안정적 표준 수립 · Hugging Face Blog · 2026-11-13
- 다이아니아 헬스, 병원 방화벽 내부서 구동하는 임상 추론 AI 시냅시스 공개 · NVIDIA Blog · 2026-11-13
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.