Cómo encaja la pila de software de la NPU RK3588
La pila de software RKNN de Rockchip separa la preparación del modelo de la ejecución en el dispositivo. RKNN-Toolkit2 proporciona herramientas de conversión y evaluación. RKNN-Toolkit-Lite2 proporciona una interfaz Python en plataformas de destino compatibles, mientras que RKNN Runtime proporciona interfaces C/C++. El controlador del kernel conecta el tiempo de ejecución a la NPU. Verifique la compatibilidad de estos componentes con el paquete de soporte de placa suministrado para su módulo.
Un registro de implementación útil identifica la placa y la revisión de SoM, la imagen de Linux, el controlador, el tiempo de ejecución, la versión de la herramienta de conversión, el modelo original y el modelo convertido. Guarde el script de compilación y la configuración de preprocesamiento junto al artefacto del modelo. Un nombre de archivo como detector.rknn Por sí solo no puede explicar por qué una implementación se comporta de manera diferente a otra.
Paso 1: establezca una referencia antes de la conversión
Ejecute el modelo original en un conjunto de validación representativo. Guarde los resultados sin procesar y la métrica de la aplicación que importa: precisión de clasificación, calidad de detección u otra medida específica de la tarea. Para un detector, conserve el orden de las etiquetas, los umbrales de confianza y la configuración de posprocesamiento. Este se convierte en el punto de comparación para el modelo convertido.
Anota todo el contrato de entrada. Incluya dimensiones, tamaño de lote, ordenamiento RGB o BGR, diseño, rango numérico, normalización, cambio de tamaño y relleno. Un modelo correcto puede producir malos resultados si la aplicación coloca una imagen en formato letterbox de manera diferente al entrenamiento o resta un desplazamiento dos veces. Mantenga documentado el posprocesamiento fuera de la red con el mismo cuidado.
Utilice Rockchip Zoológico modelo RKNN como punto de partida cuando incluye un modelo y un objetivo coincidentes. Sus ejemplos de conversión e inferencia son más útiles que asumir que cualquier red exportada funcionará sin cambios. Seleccione una revisión de repositorio conocida y siga las instrucciones para ese ejemplo específico.
Paso 2: convierta el modelo y verifique la asistencia del operador
- Coincidir con el objetivo. Seleccione el objetivo RK3588 y una cadena de herramientas compatible con la imagen de placa deseada.
- Inspeccione el gráfico. Confirme las formas, el preprocesamiento, los resultados y el soporte para las operaciones reales en el modelo exportado.
- Cree una conversión de referencia. Utilice las opciones de precisión admitidas por ese gráfico y versión de software.
- Lea el registro de compilación completo. Resuelva fallas e investigue advertencias antes de agregar la adquisición de una cámara o una interfaz de usuario.
- Comparar resultados. Ejecute las mismas entradas a través de los modelos originales y convertidos, con el mismo posprocesamiento.
Una operación no compatible puede requerir una exportación diferente, una reescritura de gráficos o una etapa de procesamiento de CPU explícita. No asuma que el tiempo de ejecución ejecutará de forma transparente todas las capas no compatibles. Si parte de la carga de trabajo se traslada a la CPU, incluya las transferencias y la sincronización en la medición del rendimiento.
Paso 3: evalúe INT8 según sus requisitos de precisión
La cuantificación cambia la representación numérica. Cuando el flujo de conversión seleccionado utilice datos de calibración, elija entradas representativas de la implementación: iluminación, tamaño del objeto, fondo y condiciones operativas. Mantenga un conjunto de validación separado para evaluar el resultado. Una conversión que se completa correctamente aún necesita una verificación de precisión.
Compare el resultado de la aplicación, no solo la diferencia entre dos tensores. Por ejemplo, un pequeño cambio numérico puede hacer que una detección supere un umbral de confianza. Inspeccione casos difíciles, clases con pocos ejemplos y condiciones donde el modelo original ya era marginal. Si la precisión cae por debajo del límite de aceptación, revise la cobertura de calibración y el preprocesamiento antes de cambiar el hardware.
Los Documentación de cuantificación de ONNX Runtime Es información útil sobre compensaciones numéricas e investigación de precisión. Las opciones de conversión de RKNN y la precisión admitida aún deben verificarse en la documentación de Rockchip para la versión seleccionada.
Paso 4: mida más que el tiempo de inferencia
Mida la carga de trabajo desplegada después del calentamiento y nuevamente durante una carrera sostenida. Registre la temperatura, el modo de energía, los procesos concurrentes y el gabinete o disposición de enfriamiento. El resultado útil es un entorno de rendimiento reproducible, incluida la precisión y el retraso, en las condiciones en las que funcionará el producto.
| Medición | lo que responde | que grabar |
|---|---|---|
| Duración de la ejecución del modelo | ¿Cuánto tiempo dura esta llamada en tiempo de ejecución? | Forma de entrada, precisión, límites de tiempo y versión de tiempo de ejecución |
| Latencia de extremo a extremo | ¿Qué edad tiene la observación cuando se entrega el resultado? | Tiempo de captura, preprocesamiento, puesta en cola, inferencia y tiempo de salida |
| Rendimiento sostenido | ¿Cuántos resultados completos se entregan a lo largo del tiempo? | Duración de la ejecución, solicitudes completadas y entradas eliminadas u omitidas |
| Precisión de la aplicación | ¿El modelo implementado cumple con los requisitos de la tarea? | Conjunto de validación, métrica de tareas y umbrales de decisión. |
| Comportamiento térmico | ¿El resultado es estable después de que el sistema se calienta? | Condiciones ambientales, refrigeración, temperaturas y relojes cuando estén disponibles |
Como presupuesto ilustrativo, una aplicación que recibe un nuevo fotograma cada 40 ms debe mantener el ritmo de 25 fotogramas por segundo si procesa cada fotograma. Una medición de inferencia de 12 ms dejaría el resto de ese presupuesto para adquisición, preparación y entrega sólo en un diseño adecuadamente programado. No demuestra un retraso de 12 ms entre la cámara y el resultado. Estos números son un ejemplo de planificación, no un rendimiento medido de ForgeEdge.
Utilice un reloj monótono para las duraciones del software. Informe la latencia media y de cola en lugar de una única mejor observación y conserve las mediciones sin procesar. Para varias cámaras, tenga en cuenta la carga de trabajo de todas las transmisiones activas, incluida la decodificación, la conversión de imágenes, el movimiento de la memoria y la grabación. Una cola que crece a lo largo de la prueba indica que la capacidad promedio está por debajo de la carga de trabajo entrante.
Síntomas de implementación comunes
| Síntoma | Primera investigación |
|---|---|
| Modelo correcto, etiquetas o cajas incorrectas. | Orden de color, normalización, cambio de tamaño/relleno, diseño de salida y posprocesamiento |
| El modelo convertido no puede inicializarse | Selección de destino, compatibilidad de tiempo de ejecución/controlador e integridad de artefactos del modelo |
| Buen punto de referencia corto, pobre desempeño sostenido | Temperatura, modo de energía, presión de memoria y trabajo competitivo. |
| Tiempo de inferencia aceptable, resultados visiblemente retrasados | Almacenamiento en búfer de captura, antigüedad de la cola, copias y programación de salida |
| La salida INT8 pierde detecciones útiles | Cobertura de calibración, equivalencia de preprocesamiento y validación a nivel de tarea |
Convierta el prototipo en un producto repetible
Empaquete el modelo, el tiempo de ejecución y la configuración de la aplicación como una versión controlada. Defina comprobaciones de inicio, informes de fallos, recuperación y una ruta de reversión. Realice una pequeña prueba de entrada de referencia que pueda identificar una implementación incorrecta antes de conectar una cámara. Separe esa verificación de software de la prueba del sensor físico, que también analiza el cableado, los controladores y la configuración de exposición.
Cuando la placa necesite diferentes conectores, acondicionamiento de energía o interfaces de sensores, revise el Decisión de SoM versus SBC y el proceso de diseño de placa portadora. Esas decisiones determinan cómo una demostración exitosa de un modelo se convierte en un sistema mantenible.
Preguntas sobre la implementación de NPU RK3588
¿Todos los modelos de ONNX pueden funcionar con la NPU RK3588?
La compatibilidad depende del gráfico real, las formas, las operaciones y la cadena de herramientas seleccionada. Establezca soporte mediante la conversión y validación en el dispositivo del modelo que desea enviar.
¿La calificación de un acelerador anunciada predice el FPS de la aplicación?
No. La red, la precisión, el comportamiento de la memoria, el preprocesamiento y el tiempo de ejecución determinan el rendimiento medido de la aplicación. Utilice la carga de trabajo de destino y su ruta de datos completa al comparar plataformas.
¿Debería optimizar la red neuronal primero?
Perfil primero. Si dominan la adquisición, la conversión de imágenes o las colas, la reducción del tiempo de ejecución del modelo puede tener poco efecto en la antigüedad del resultado experimentado por la aplicación.
Referencias técnicas
Alcance su carga de trabajo de IA perimetral.
Comparta el modelo, la resolución de entrada, las interfaces de la cámara, la tasa de resultados requerida y la envolvente de potencia. Podemos evaluar el trabajo de integración en torno a una plataforma perimetral basada en RK3588.
