Despliegue de operadores de visión en PYNQ
El objetivo es hacer que los arreglos de software, las interfaces de hardware y los resultados de verificación se correspondan entre sí. Primero determine si el usuario debe desplegar un nuevo operador, localizar una falla existente u optimizar el rendimiento, y utilice las licencias y estados de ingeniería ya establecidos; no convierta cada tarea en un reentrenamiento o refactorización completo.
Entrada mínima
Se necesita el algoritmo/preprocesamiento, al menos un conjunto de datos de entrada/salida de referencia oro, el bit/HWH o el toplevel HLS, y una placa real con entorno PYNQ. Si falta algún elemento, realice primero las comprobaciones fuera de línea que los datos disponibles permitan y señale qué conclusiones dependen del material faltante.
Lea la guía de migración y complete el contrato de tensor. El ejemplo es un tensor genérico de escala de grises, no una configuración de hardware que se pueda cargar directamente en cualquier placa. Para un modelo nuevo se deben determinar nuevamente: shape, dtype, layout, color, escalado/relleno, escalas de cuantización, redondeo, saturación, decodificación de salida y cantidad de bytes a transmitir. Los formatos a nivel de bits como INT4 empaquetado requieren reglas de empaquetado adicionales; el comprobador de contratos actual solo acepta arreglos numéricos desempaquetados.
Seleccionar ruta de validación
- Primera conexión: Revisión del contrato → referencia entera fija de entrada → salida PL cruda de un solo cuadro → cuadros continuos → precisión de aplicación → temporización segmentada.
- Resultados inconsistentes: Guarde paso a paso las salidas de preprocesamiento, nodos de cuantización y el tensor PL crudo, y localice la primera diferencia; no modifique umbrales de posprocesamiento para ocultar errores de etapas anteriores.
- Rendimiento o latencia anormales: Fije condiciones de entrada, registre los números de cuadro y marcas de tiempo en el mismo dominio de reloj; use el script de temporización para distinguir colas, PL/DMA y posprocesamiento.
- Cambio de placa: Reidentifique DMA, ancho de dirección, coherencia de caché, reloj, reinicio e interrupciones; conserve la referencia de oro y el método de comparación.
El prompt completo y reutilizable se encuentra en flujos de trabajo; lea solo el correspondiente a la tarea actual.
Hardware y buffers
Primero distinga entre AXI DMA estándar y el IODMA HLS personalizado. Para el modo simple estándar puede consultar la plantilla de adaptación; las interfaces personalizadas deben implementarse según los registros y el contrato de longitud fija/TLAST. No confunda los nombres de la API de Python con protocolos de hardware.
Los buffers continuos requieren una propiedad clara: la CPU escribe y luego sincroniza al dispositivo; una vez que el hardware termina y no se accederá más, sincronice de vuelta a la CPU. En caso de excepción, conserve los buffers en tránsito y no los libere incondicionalmente en finally. Los detalles se encuentran en ciclo de vida DMA.
HWH es una descripción de interfaz, no demuestra que el bit en disco ya se haya cargado. Al enlazar hardware ya cargado, verifique la identidad de carga, dirección y referencia de salida. Si la LCD y la inferencia comparten el PL, no se puede obtener hardware combinado cargando secuencialmente dos Overlays completos.
Validación y optimización
En principio, la salida cruda del hardware para enteros debe coincidir elemento a elemento de manera exacta; para algoritmos de punto flotante use una tolerancia absoluta predefinida y registre el dtype y los valores no finitos. Use el script de comparación y no reemplace las correcciones de interfaz ampliando la tolerancia. La precisión del modelo cuantizado y la consistencia de implementación se evalúan por separado.
Verifique simultáneamente LUT, Slice, FF, BRAM, DSP, temporización y contrapresión de flujo. Compare FIFOs contra pesos fijos, entrada, frecuencia y paralelismo; liste los resultados después de cambios en el modelo por separado. El rendimiento se calcula dividiendo los cuadros completados efectivamente por la ventana de medición real; la latencia se calcula por el tiempo entre los dos extremos del mismo cuadro, sin sumar medianas de etapas.
Entregue el contrato, salida cruda, identidad de fuente/bit/HWH, resultados de revisión y rango de medición. Los errores comunes y condiciones de fallo de métodos se encuentran en la lista de depuración. El efecto del proyecto y los límites de portabilidad están en la guía de validación.