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.

Prepare-seModelo de referência, entradas e resultados esperados
ConverterConfiguração de destino e verificações de precisão
ImplantarTempo de execução, aplicação e testes sustentados

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

  1. Combine o alvo. Selecione o alvo RK3588 e um conjunto de ferramentas compatível com a imagem da placa pretendida.
  2. Inspecione o gráfico. Confirme formas, pré-processamento, saídas e suporte para as operações reais no modelo exportado.
  3. Crie uma conversão de referência. Use as opções de precisão suportadas por esse gráfico e versão de software.
  4. 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.
  5. 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çãoO que isso respondeO que gravar
Duração da execução do modeloQuanto 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 pontaQuantos 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 sustentadaQuantos 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çãoO modelo implantado atende aos requisitos da tarefa?Conjunto de validação, métrica de tarefa e limites de decisão
Comportamento térmicoO 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

SintomaPrimeira investigação
Modelo correto, etiquetas ou caixas incorretasOrdem de cores, normalização, redimensionamento/preenchimento, layout de saída e pós-processamento
O modelo convertido não pode inicializarSeleção de alvo, compatibilidade de tempo de execução/driver e integridade de artefato de modelo
Bom benchmark curto, fraco desempenho sustentadoTemperatura, modo de energia, pressão de memória e trabalho concorrente
Tempo de inferência aceitável, resultados visivelmente atrasadosBuffer de captura, idade da fila, cópias e agendamento de saída
A saída INT8 perde detecções úteisCobertura 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.