DLA на Jetson Orin теперь из Python: cuDLA без C++ для runtime

В пакете cuda-bindings 13.3.0 модуль cuda.bindings.cudla выносит runtime cuDLA в Python: на Jetson AGX Orin свёрточный инференс можно отправить на DLA, а GPU оставить под препроцессинг и постобработку. NVIDIA показала, как связать оба этапа одним CUDA stream в режиме cudla.Mode.CUDA_DLA — без отдельной C++-прослойки между скриптом и железом.
На edge часто крутятся сразу несколько сетей при жёстком лимите по питанию. DLA на Orin заточен под поддерживаемые свёртки и пулинг: не каждый слой туда ляжет, но разгрузка GPU обычно даёт выигрыш по энергии. Скомпилированная под DLA сеть лежит в бинарном loadable; собрать его помогает TensorRT, а на самом устройстве для прогона хватает libcudla.so из JetPack.
Старт из venv
Биндинги ставятся командой pip install "cuda-bindings>=13.3.0" — минимум Python 3.10. В гайде для loadable через trtexec фигурируют TensorRT 11.4.1, CUDA 13.4 Update 1 и JetPack 7.2.2+; флаг --buildDLAStandalone собирает DLA loadable, который на инференсе не тянет TensorRT за собой.
Цикл на Python сводится к знакомой схеме: поднять CUDA и DLA device, загрузить loadable из памяти, выделить буферы по дескрипторам тензоров, зарегистрировать GPU-память в cuDLA, скопировать вход, поставить задачу в stream и дождаться синхронизации. Ошибки приходят как cudla.CudlaError; в конце снимают регистрацию и выгружают модуль.
Тот же API работает на RTX Spark — для ноутбуков с DLA это тот же Python-слой, что на embedded. Юнит-тесты поверхности лежат в репозитории NVIDIA/cuda-python и гоняются без реального DLA на плате.
Источник: Run Native DLA Inference in Python on NVIDIA Jetson AGX Orin Using cuDLA.