NVIDIA (NVDA) ngày 13 công bố ví dụ dành cho nhà phát triển, hướng dẫn thiết lập suy luận DLA bằng Python trên Jetson AGX Orin. Ví dụ trình bày cách giao các phép toán mạng nơ-ron được hỗ trợ cho DLA, đồng thời kết nối với các bước tiền xử lý và hậu xử lý trên GPU.
Trọng tâm của ví dụ là cuda.bindings.cudla. Lớp Python này được đưa vào cuda-bindings 13.3.0, cho phép chương trình Python gọi API cuDLA vốn có cho C++.
Python quản lý thiết bị và tác vụ suy luận. Phép tính mạng nơ-ron thực sự diễn ra trên phần cứng DLA của Jetson AGX Orin, chứ mã Python không chạy trực tiếp trên DLA.
Ví dụ sắp xếp lần lượt bước tiền xử lý trên GPU, suy luận DLA và hậu xử lý trên GPU trong cùng một luồng CUDA. Luồng CUDA điều phối thứ tự thực thi các tác vụ này.
Nhà phát triển dùng trtexec của TensorRT để biên dịch trước mô hình đã huấn luyện, tạo ra tệp loadable mà DLA có thể đọc. Ứng dụng Python sẽ nạp tệp này khi chạy suy luận.
Chương trình đưa tệp vào bộ nhớ, kiểm tra kích thước và định dạng của tensor đầu vào, đầu ra, sau đó đăng ký bộ nhớ GPU với cuDLA để gửi tác vụ suy luận. Khi tác vụ hoàn tất, chương trình đọc kết quả.
TensorRT được dùng để tạo tệp dành cho DLA, còn giai đoạn thực thi cần môi trường runtime libcudla.so có trong JetPack. Hai thành phần riêng biệt phụ trách biên dịch mô hình và chạy suy luận.
Ví dụ sử dụng chế độ kết hợp CUDA_DLA, trong đó luồng CUDA điều phối GPU và DLA. NVIDIA cho biết bản phát hành này không hỗ trợ chế độ chạy độc lập cuDLA, vốn cần bộ đệm NvSci và các primitive đồng bộ riêng.
DLA là bộ tăng tốc chức năng cố định, xử lý một tập hợp phép toán xác định. DLA không hỗ trợ mọi lớp mạng nơ-ron mà GPU có thể xử lý.
NVIDIA cho biết đồ thị của mô hình ONNX có thể cần được chỉnh sửa nếu chứa lớp không tương thích. Khi triển khai mô hình, nhà phát triển cần kiểm tra các lớp được DLA hỗ trợ và yêu cầu về định dạng tensor.
Tài liệu TensorRT cũng nêu khả năng chuyển các lớp không thể chạy trên DLA sang GPU. Khi bật tính năng này, một số lớp có thể chạy trên GPU, vì vậy cần xác định phạm vi xử lý thực tế của DLA.
Trong bài viết trên blog kỹ thuật ngày 13, NVIDIA cho biết giao các phép toán được hỗ trợ cho DLA có thể cải thiện hiệu quả năng lượng và dành tài nguyên GPU cho tác vụ khác. Tuy nhiên, bài viết không đưa ra số liệu đo mức tiêu thụ điện của Jetson AGX Orin hoặc tốc độ xử lý so với GPU.
NVIDIA nêu AI biên, robot và thị giác máy tính là các lĩnh vực ứng dụng. Trước đó, TokenPost từng đề cập mức sử dụng bộ nhớ khi chạy Nemotron 3.5 Bolt E4B trên Jetson Orin Nano, kèm số liệu đo do NVIDIA công bố.
Môi trường biên dịch mô hình trong ví dụ yêu cầu TensorRT 11.4.1, CUDA 13.4 Update 1 và JetPack 7.2.2 trở lên. Tài liệu TensorRT cũng nêu JetPack 7.2.2 trở lên là điều kiện hỗ trợ DLA trên Jetson AGX Orin.
Hướng dẫn cài đặt trên blog kỹ thuật ghi Python 3.10 là phiên bản tối thiểu. Tuy nhiên, ghi chú phát hành cuda-bindings 13.5.0 cho biết phiên bản này đã ngừng hỗ trợ Python 3.10. Khi cài đặt, nhà phát triển cần đối chiếu phạm vi hỗ trợ theo từng phiên bản gói.
Comment 0