Cách ngăn xếp phần mềm RK3588 NPU khớp với nhau
Ngăn xếp phần mềm RKNN của Rockchip tách biệt việc chuẩn bị mô hình khỏi việc thực thi trên thiết bị. RKNN-Toolkit2 cung cấp các công cụ chuyển đổi và đánh giá. RKNN-Toolkit-Lite2 cung cấp giao diện Python trên các nền tảng đích được hỗ trợ, trong khi RKNN Runtime cung cấp giao diện C/C++. Trình điều khiển hạt nhân kết nối thời gian chạy với NPU. Kiểm tra tính tương thích của các thành phần này với gói hỗ trợ bo mạch được cung cấp cho mô-đun của bạn.
Bản ghi triển khai hữu ích xác định bảng mạch và bản sửa đổi SoM, hình ảnh Linux, trình điều khiển, thời gian chạy, phiên bản công cụ chuyển đổi, mô hình gốc và mô hình được chuyển đổi. Lưu tập lệnh xây dựng và cài đặt tiền xử lý bên cạnh tạo phẩm mô hình. Một tên tập tin như detector.rknn không thể giải thích tại sao một triển khai lại hoạt động khác với triển khai khác.
Bước 1: thiết lập tham chiếu trước khi chuyển đổi
Chạy mô hình ban đầu trên bộ xác thực đại diện. Lưu kết quả đầu ra thô và số liệu ứng dụng quan trọng: độ chính xác phân loại, chất lượng phát hiện hoặc biện pháp cụ thể khác cho nhiệm vụ. Đối với trình phát hiện, hãy giữ nguyên thứ tự nhãn, ngưỡng tin cậy và cài đặt xử lý hậu kỳ. Điều này trở thành điểm so sánh cho mô hình được chuyển đổi.
Ghi lại toàn bộ hợp đồng đầu vào. Bao gồm kích thước, kích thước lô, thứ tự RGB hoặc BGR, bố cục, phạm vi số, chuẩn hóa, thay đổi kích thước và phần đệm. Một mô hình đúng có thể tạo ra kết quả kém nếu ứng dụng tạo hộp thư cho một hình ảnh khác với hình ảnh huấn luyện hoặc trừ đi phần bù hai lần. Giữ quá trình xử lý hậu kỳ bên ngoài mạng được ghi lại một cách cẩn thận.
Sử dụng Rockchip Vườn thú mẫu RKNN làm điểm khởi đầu khi nó bao gồm mô hình và mục tiêu phù hợp. Các ví dụ về chuyển đổi và suy luận của nó hữu ích hơn so với việc giả định rằng bất kỳ mạng xuất nào sẽ hoạt động không thay đổi. Chọn một bản sửa đổi kho lưu trữ đã biết và làm theo hướng dẫn cho ví dụ cụ thể đó.
Bước 2: chuyển đổi mô hình và kiểm tra hỗ trợ của nhà điều hành
- Phù hợp với mục tiêu. Chọn mục tiêu RK3588 và chuỗi công cụ tương thích với hình ảnh bảng dự định.
- Kiểm tra biểu đồ. Xác nhận hình dạng, tiền xử lý, đầu ra và hỗ trợ cho các hoạt động thực tế trong mô hình được xuất.
- Xây dựng một chuyển đổi tham khảo. Sử dụng các tùy chọn độ chính xác được hỗ trợ bởi biểu đồ và phiên bản phần mềm đó.
- Đọc nhật ký xây dựng hoàn chỉnh. Giải quyết các lỗi và điều tra các cảnh báo trước khi thêm tính năng thu thập camera hoặc giao diện người dùng.
- So sánh kết quả đầu ra. Chạy các đầu vào giống nhau thông qua các mô hình gốc và mô hình đã chuyển đổi, với cùng một quá trình xử lý hậu kỳ.
Một hoạt động không được hỗ trợ có thể yêu cầu xuất khác, ghi lại biểu đồ hoặc giai đoạn xử lý CPU rõ ràng. Đừng cho rằng thời gian chạy sẽ thực thi một cách minh bạch mọi lớp không được hỗ trợ. Nếu một phần khối lượng công việc chuyển sang CPU, hãy đưa quá trình truyền và đồng bộ hóa vào phép đo hiệu suất.
Bước 3: đánh giá INT8 theo yêu cầu về độ chính xác của bạn
Lượng tử hóa thay đổi biểu diễn số. Khi luồng chuyển đổi đã chọn sử dụng dữ liệu hiệu chuẩn, hãy chọn đầu vào đại diện cho việc triển khai: ánh sáng, kích thước đối tượng, nền và điều kiện vận hành. Giữ một bộ xác nhận riêng để đánh giá kết quả. Chuyển đổi hoàn tất thành công vẫn cần kiểm tra độ chính xác.
So sánh đầu ra của ứng dụng, không chỉ sự khác biệt giữa hai tensor. Ví dụ: một thay đổi nhỏ về mặt số học có thể đưa kết quả phát hiện vượt qua ngưỡng tin cậy. Kiểm tra các trường hợp khó, các lớp có ít ví dụ và điều kiện mà mô hình ban đầu đã ở mức cận biên. Nếu độ chính xác giảm xuống dưới giới hạn chấp nhận, hãy xem lại phạm vi hiệu chuẩn và tiền xử lý trước khi thay đổi phần cứng.
các Tài liệu lượng tử hóa thời gian chạy ONNX là nền tảng hữu ích về sự đánh đổi số lượng và điều tra độ chính xác. Các tùy chọn chuyển đổi RKNN và độ chính xác được hỗ trợ vẫn phải được kiểm tra trong tài liệu riêng của Rockchip cho bản phát hành đã chọn.
Bước 4: đo nhiều hơn thời gian suy luận
Đo lường khối lượng công việc đã triển khai sau khi khởi động và đo lại trong quá trình chạy liên tục. Ghi lại nhiệt độ, chế độ nguồn, các quá trình đồng thời và cách bố trí vỏ bọc hoặc làm mát. Kết quả hữu ích là một phạm vi hiệu suất có thể tái tạo, bao gồm độ chính xác và độ trễ, trong các điều kiện mà sản phẩm sẽ hoạt động.
| Đo lường | Nó trả lời cái gì | Ghi lại những gì |
|---|---|---|
| Thời gian thực hiện mô hình | Cuộc gọi thời gian chạy này mất bao lâu? | Hình dạng đầu vào, độ chính xác, ranh giới thời gian và phiên bản thời gian chạy |
| Độ trễ từ đầu đến cuối | Quan sát bao lâu thì có kết quả? | Thời gian nắm bắt, tiền xử lý, xếp hàng, thời gian suy luận và đầu ra |
| Thông lượng duy trì | Có bao nhiêu kết quả hoàn thành được chuyển giao theo thời gian? | Thời lượng chạy, yêu cầu đã hoàn thành và đầu vào bị bỏ hoặc bỏ qua |
| Độ chính xác của ứng dụng | Mô hình triển khai có đáp ứng được yêu cầu nhiệm vụ không? | Bộ xác thực, số liệu nhiệm vụ và ngưỡng quyết định |
| Hành vi nhiệt | Kết quả có ổn định sau khi hệ thống ấm lên không? | Điều kiện môi trường xung quanh, làm mát, nhiệt độ và đồng hồ nếu có |
Như một ngân sách minh họa, một ứng dụng nhận được khung hình mới mỗi mili giây 40 phải theo kịp các khung hình 25 mỗi giây nếu nó xử lý mọi khung hình. Phép đo suy luận ms 12 sẽ chỉ dành phần còn lại của ngân sách đó cho việc thu thập, chuẩn bị và phân phối trong một thiết kế được lên lịch phù hợp. Nó không chứng minh được độ trễ từ máy ảnh đến kết quả 12 ms. Những con số này là một ví dụ về lập kế hoạch, không đo được hiệu suất của ForgeEdge.
Sử dụng đồng hồ đơn điệu cho thời lượng phần mềm. Báo cáo độ trễ trung bình và độ trễ cuối thay vì một quan sát tốt nhất và duy trì các phép đo thô. Đối với một số máy ảnh, hãy tính đến khối lượng công việc của tất cả các luồng đang hoạt động, bao gồm giải mã, chuyển đổi hình ảnh, chuyển động bộ nhớ và ghi. Hàng đợi tăng lên trong suốt quá trình kiểm tra cho thấy dung lượng trung bình thấp hơn khối lượng công việc đến.
Các triệu chứng triển khai thường gặp
| Triệu chứng | Cuộc điều tra đầu tiên |
|---|---|
| Đúng mẫu mã, nhãn hoặc hộp không đúng | Thứ tự màu, chuẩn hóa, thay đổi kích thước/đệm, bố cục đầu ra và xử lý hậu kỳ |
| Mô hình đã chuyển đổi không thể khởi tạo | Lựa chọn mục tiêu, khả năng tương thích thời gian chạy/trình điều khiển và tính toàn vẹn của tạo phẩm mô hình |
| Điểm chuẩn ngắn tốt, hiệu suất duy trì kém | Nhiệt độ, chế độ năng lượng, áp suất bộ nhớ và công việc cạnh tranh |
| Thời gian suy luận chấp nhận được, kết quả bị trì hoãn rõ ràng | Ghi lại tình trạng đệm, tuổi hàng đợi, bản sao và lập kế hoạch đầu ra |
| Đầu ra INT8 mất các phát hiện hữu ích | Phạm vi hiệu chuẩn, tương đương tiền xử lý và xác thực cấp độ nhiệm vụ |
Biến nguyên mẫu thành sản phẩm có thể lặp lại
Đóng gói mô hình, thời gian chạy và cấu hình ứng dụng dưới dạng bản phát hành được kiểm soát. Xác định các bước kiểm tra khởi động, báo cáo lỗi, khôi phục và đường dẫn khôi phục. Thực hiện kiểm tra đầu vào tham chiếu nhỏ có thể xác định việc triển khai không chính xác trước khi kết nối camera. Tách việc kiểm tra phần mềm đó khỏi kiểm tra cảm biến vật lý, cũng như kiểm tra hệ thống cáp, trình điều khiển và cài đặt phơi sáng.
Khi bo mạch cần các đầu nối, giao diện điều chỉnh nguồn hoặc cảm biến khác nhau, hãy xem lại Quyết định SoM so với SBC và Quy trình thiết kế bo mạch mang. Những quyết định đó xác định cách trình diễn mô hình thành công trở thành một hệ thống có thể bảo trì được.
Câu hỏi triển khai RK3588 NPU
Mọi mẫu ONNX có thể chạy trên RK3588 NPU không?
Khả năng tương thích phụ thuộc vào biểu đồ, hình dạng, thao tác thực tế và chuỗi công cụ được chọn. Thiết lập hỗ trợ thông qua chuyển đổi và xác thực trên thiết bị của kiểu máy bạn định gửi.
Xếp hạng máy gia tốc được quảng cáo có dự đoán FPS của ứng dụng không?
Không. Mạng, độ chính xác, hoạt động của bộ nhớ, tiền xử lý và thời gian chạy xác định thông lượng đo được của ứng dụng. Sử dụng khối lượng công việc mục tiêu và đường dẫn dữ liệu hoàn chỉnh của nó khi so sánh các nền tảng.
Tôi có nên tối ưu hóa mạng lưới thần kinh trước không?
Hồ sơ đầu tiên. Nếu việc thu thập, chuyển đổi hình ảnh hoặc xếp hàng chiếm ưu thế, việc giảm thời gian thực hiện mô hình có thể ít ảnh hưởng đến tuổi kết quả mà ứng dụng gặp phải.
Điểm chuẩn nhiệm vụ thị giác máy tính hoàn chỉnh
Đối với ứng dụng phát hiện đối tượng, đo khả năng chụp, thay đổi kích thước và chuẩn hóa của camera, suy luận NPU, giải mã đầu ra và đưa ra quyết định. Báo cáo phiên bản mô hình, độ phân giải đầu vào, độ chính xác, ngưỡng tin cậy và tập dữ liệu đánh giá cùng với kết quả thời gian. Mặt khác, hai điểm chuẩn Edge AI có vẻ giống nhau có thể mô tả các tác vụ khác nhau.
Kiểm tra biểu đồ đã xuất và các toán tử cần thiết thông qua chuỗi công cụ RKNN đã chọn trước khi chuyển sang kiến trúc mô hình. Kiểm tra độ chính xác sau khi lượng tử hóa và hoạt động trong quá trình thực thi được duy trì, không chỉ việc chuyển đổi có thành công hay không. Việc phát hiện, phân đoạn và phân loại đối tượng có chi phí xử lý đầu ra khác nhau; xác nhận khối lượng công việc thực tế đã chọn cho dự án.
So sánh vai trò thiết kế FPGA, NPU và MPU
Tài liệu tham khảo kỹ thuật
Phạm vi khối lượng công việc Edge AI của bạn.
Chia sẻ mô hình, độ phân giải đầu vào, giao diện camera, tốc độ kết quả được yêu cầu và đường bao công suất. Chúng tôi có thể đánh giá công việc tích hợp xung quanh nền tảng dựa trên RK3588 để xử lý cục bộ.
