Como a pilha de software NPU RK3588 se encaixa
A pilha de software RKNN da Rockchip separa a preparação do modelo da execução no dispositivo. RKNN-Toolkit2 fornece ferramentas de conversão e avaliação. RKNN-Toolkit-Lite2 fornece uma interface Python em plataformas de destino suportadas, enquanto RKNN Runtime fornece interfaces C/C++. O driver do kernel conecta o tempo de execução ao NPU. Verifique a compatibilidade destes componentes com o pacote de suporte da placa fornecido para o seu módulo.
Um registro de implantação útil identifica a placa e a revisão do SoM, a imagem do Linux, o driver, o tempo de execução, a versão da ferramenta de conversão, o modelo original e o modelo convertido. Salve o script de construção e as configurações de pré-processamento ao lado do artefato do modelo. Um nome de arquivo como detector.rknn por si só não pode explicar por que uma implantação se comporta de maneira diferente de outra.
Passo 1: estabeleça uma referência antes da conversão
Execute o modelo original em um conjunto de validação representativo. Salve os resultados brutos e a métrica do aplicativo que importa: precisão da classificação, qualidade da detecção ou outra medida específica da tarefa. Para um detector, preserve a ordem dos rótulos, os limites de confiança e as configurações de pós-processamento. Este se torna o ponto de comparação para o modelo convertido.
Anote todo o contrato de insumos. Inclua dimensões, tamanho do lote, ordem RGB ou BGR, layout, intervalo numérico, normalização, redimensionamento e preenchimento. Um modelo correto pode produzir resultados ruins se o aplicativo colocar uma imagem em uma caixa de correio diferente do treinamento ou subtrair um deslocamento duas vezes. Mantenha o pós-processamento fora da rede documentado com o mesmo cuidado.
Utilize o Rockchip Zoológico Modelo RKNN como ponto de partida quando inclui um modelo e um alvo correspondentes. Seus exemplos de conversão e inferência são mais úteis do que assumir que qualquer rede exportada funcionará inalterada. Selecione uma revisão de repositório conhecida e siga as instruções desse exemplo específico.
Passo 2: converta o modelo e verifique o suporte do operador
- Combine o alvo. Selecione o alvo RK3588 e um conjunto de ferramentas compatível com a imagem da placa pretendida.
- Inspecione o gráfico. Confirme formas, pré-processamento, saídas e suporte para as operações reais no modelo exportado.
- Crie uma conversão de referência. Use as opções de precisão suportadas por esse gráfico e versão de software.
- Leia o log de construção completo. Resolva falhas e investigue avisos antes de adicionar aquisição de câmera ou interface de usuário.
- Compare os resultados. Execute as mesmas entradas nos modelos original e convertido, com o mesmo pós-processamento.
Uma operação não suportada pode exigir uma exportação diferente, reescrita de gráfico ou um estágio explícito de processamento de CPU. Não presuma que o tempo de execução executará de forma transparente todas as camadas não suportadas. Se parte da carga de trabalho for transferida para a CPU, inclua transferências e sincronização na medição de desempenho.
Etapa 3: avalie o INT8 em relação ao seu requisito de precisão
A quantização altera a representação numérica. Quando o fluxo de conversão selecionado utiliza dados de calibração, escolha entradas representativas da implantação: iluminação, tamanho do objeto, plano de fundo e condições operacionais. Mantenha um conjunto de validação separado para avaliar o resultado. Uma conversão concluída com êxito ainda precisa de uma verificação de precisão.
Compare a saída do aplicativo, não apenas a diferença entre dois tensores. Por exemplo, uma pequena alteração numérica pode mover uma detecção através de um limite de confiança. Inspecione casos difíceis, classes com poucos exemplos e condições onde o modelo original já era marginal. Se a precisão cair abaixo do limite de aceitação, revise a cobertura de calibração e o pré-processamento antes de alterar o hardware.
Os Documentação de quantização do ONNX Runtime é um histórico útil sobre compensações numéricas e investigação de precisão. As opções de conversão RKNN e a precisão suportada ainda devem ser verificadas na própria documentação da Rockchip para o lançamento selecionado.
Etapa 4: medir mais do que o tempo de inferência
Meça a carga de trabalho implantada após o aquecimento e novamente durante uma corrida sustentada. Registre a temperatura, o modo de energia, os processos simultâneos e o gabinete ou arranjo de resfriamento. O resultado útil é um envelope de desempenho reproduzível, incluindo precisão e atraso, sob as condições em que o produto irá operar.
| Medição | O que isso responde | O que gravar |
|---|---|---|
| Duração da execução do modelo | Quanto tempo leva essa chamada de tempo de execução? | Formato de entrada, precisão, limites de tempo e versão de tempo de execução |
| Latência ponta a ponta | Quantos anos tem a observação quando o resultado é entregue? | Tempo de captura, pré-processamento, enfileiramento, inferência e tempo de saída |
| Taxa de transferência sustentada | Quantos resultados concluídos são entregues ao longo do tempo? | Duração da execução, solicitações concluídas e entradas descartadas ou ignoradas |
| Precisão da aplicação | O modelo implantado atende aos requisitos da tarefa? | Conjunto de validação, métrica de tarefa e limites de decisão |
| Comportamento térmico | O resultado é estável após o aquecimento do sistema? | Condições ambientais, resfriamento, temperaturas e relógios, quando disponíveis |
Como orçamento ilustrativo, um aplicativo que recebe um novo quadro a cada 40 ms deve acompanhar 25 quadros por segundo se processar cada quadro. Uma medição de inferência de 12 ms deixaria o restante desse orçamento para aquisição, preparação e entrega apenas em um projeto adequadamente programado. Isso não prova um atraso de 12 ms entre a câmera e o resultado. Esses números são um exemplo de planejamento, não um desempenho medido do ForgeEdge.
Use um relógio monotônico para durações de software. Relate a mediana e a latência da cauda em vez de uma única melhor observação e preserve as medições brutas. Para diversas câmeras, considere a carga de trabalho de todos os fluxos ativos, incluindo decodificação, conversão de imagem, movimentação de memória e gravação. Uma fila que cresce durante o teste indica que a capacidade média está abaixo da carga de trabalho recebida.
Sintomas comuns de implantação
| Sintoma | Primeira investigação |
|---|---|
| Modelo correto, etiquetas ou caixas incorretas | Ordem de cores, normalização, redimensionamento/preenchimento, layout de saída e pós-processamento |
| O modelo convertido não pode inicializar | Seleção de alvo, compatibilidade de tempo de execução/driver e integridade de artefato de modelo |
| Bom benchmark curto, fraco desempenho sustentado | Temperatura, modo de energia, pressão de memória e trabalho concorrente |
| Tempo de inferência aceitável, resultados visivelmente atrasados | Buffer de captura, idade da fila, cópias e agendamento de saída |
| A saída INT8 perde detecções úteis | Cobertura de calibração, equivalência de pré-processamento e validação em nível de tarefa |
Transforme o protótipo em um produto repetível
Empacote o modelo, o tempo de execução e a configuração do aplicativo como uma versão controlada. Defina verificações de inicialização, relatórios de falhas, recuperação e um caminho de reversão. Mantenha um pequeno teste de entrada de referência que possa identificar uma implantação incorreta antes que uma câmera seja conectada. Separe a verificação do software do teste do sensor físico, que também exercita cabeamento, drivers e configurações de exposição.
Quando a placa precisar de diferentes conectores, condicionamento de energia ou interfaces de sensores, revise o Decisão SoM versus SBC e o processo de design da placa transportadora. Essas decisões determinam como uma demonstração de modelo bem-sucedida se torna um sistema sustentável.
Perguntas sobre implantação de NPU RK3588
Todos os modelos ONNX podem ser executados no NPU RK3588?
A compatibilidade depende do gráfico real, das formas, das operações e do conjunto de ferramentas selecionado. Estabeleça suporte por meio de conversão e validação no dispositivo do modelo que você pretende enviar.
Uma classificação de acelerador anunciada prevê o FPS do aplicativo?
Não. A rede, a precisão, o comportamento da memória, o pré-processamento e o tempo de execução determinam o rendimento medido da aplicação. Use a carga de trabalho de destino e seu caminho de dados completo ao comparar plataformas.
Devo otimizar a rede neural primeiro?
Perfil primeiro. Se a aquisição, a conversão de imagens ou o enfileiramento predominarem, a redução do tempo de execução do modelo poderá ter pouco efeito na idade do resultado experimentado pelo aplicativo.
Referências técnicas
Defina o escopo da sua carga de trabalho de IA na borda.
Compartilhe o modelo, resolução de entrada, interfaces de câmera, taxa de resultados necessária e envelope de energia. Podemos avaliar o trabalho de integração em torno de uma plataforma edge baseada em RK3588.
