Desbloqueie o desempenho máximo otimizando o YOLO/ResNet para HiSilicon

Seu objetivo de otimizar yolo/resnet em NPUs HiSilicon requer um workflow de otimização específico. Este workflow aumenta perffor

Desbloquear

Seu objetivo de otimizar yolo/resnet em NPUs HiSilicon requer um workflow de otimização específico. Este workflow aumenta o desempenho e a eficiência. Você usará um conjunto de ferramentas principais para preparar seu modelo para a plataforma Ascend.

Principais ferramentas para eficiência HiSilicon

  • ONNX:O formato intermediário para o seu modelo treinado.
  • Ascend Tensor Compiler (ATC):Converte seu modelo ONNX em um poderoso modelo Ascend.
  • Quantização INT8:Aumenta a eficiência do processamento do modelo.
  • AIPP:Acelera o seu modelo na NPU Ascend para uma melhor eficiência.

O modelo yolov7 é um ótimo exemplo. Você pode alcançar alta eficiência para o seu modelo yolov7 no hardware HiSilicon. Este processo libera todo o poder da plataforma HiSilicon Ascend para o seu modelo Ascend.

Principais Takeaways

  • Converta seu modelo para o formato ONNX primeiro. Isso o torna pronto para a plataforma Ascend.
  • Use o Ascend Tensor Compiler (ATC) para mudar seu modelo ONNX em um arquivo especial '.om'. Este arquivo funciona melhor em chips Ascend.
  • Aplique a quantização INT8 ao seu modelo. Isso faz com que ele corra muito mais rápido e use menos energia.
  • Use AI Pre-Processing (AIPP). Ele ajuda o chip Ascend a realizar tarefas de imagem, tornando seu modelo ainda mais rápido.
  • Verifique o desempenho do seu modelo. Tenha certeza de que todas as peças funcionamNPUPara a melhor velocidade e poder usar.

OTIMIZANDO YOLO/RESNET PARA HISILICONE:

OTIMIZAÇÃO

Seu primeiro passo na otimização do yolo/resnet é uma limpezaMigração do modelo-A. Você deve converter seu modelo treinado PyTorch ou TensorFlow no formato ONNX (Open Neural Network Exchange). Este formato funciona como uma ponte universal para a plataforma Ascend.

Conversão do modelo para ONNX:

Você pode exportar um modelo PyTorch usando um script Python simples. Esse script rastreia as operações do modelo e as salva em um único-A. OnnxArquivo.

# Use torch.onnx.export para converter seu modelo
Torch. onnx. exportação (
Modelo, # seu modelo PyTorch
Sample_input, # uma amostra entrada tensor
"Model. onnx", # nome do ficheiro
Opset_version = 17, # a versão ONNX para usar
Input_names =['input'],
Output_names =['output']
)

Após a exportação, você deve usar uma ferramenta comoOnnx-simplificadorPara limpar o gráfico. Usuários do TensorFlow às vezes enfrentam desafios migratórios. Questões comuns incluem:

  • Nomes inválidos do operador: Erros comoValueError: '/conv_in/Conv_pad/' não é um nome de escopo raiz válidoPode ocorrer. Usar ferramentas alternativas geralmente resolve isso renomeando os operadores.
  • Tamanhos grandes do tensor: Modelos comTensores maiores que 2GBPode causar a conversão falhar. Talvez seja necessário ajustar a arquitetura do modelo para lidar com isso.

Essas etapas garantem uma migração suave para o seu modelo.

Adaptação do modelo YOLOV7:

Modelos modernos de detecção de objetos requerem atenção especial. A arquitetura yolov7 tem camadas únicas. Você deve adaptar o modelo yolov7 para a plataforma HiSilicon. Essa adaptação é crucial para a migração do modelo yolov7. O manuseio correto do modelo yolov7 garante detecção de alta precisão. Este processo prepara o modelo yolov7 para a plataforma Ascend. Seu objetivo é uma migração bem-sucedida do modelo yolov7 para detecção de objetos baseada em aprendizado profundo. O modelo yolov7 é uma poderosa ferramenta de detecção. Esta migração do modelo yolov7 é fundamental para o desempenho. O modelo yolov7 ajuda a encontrar cada objeto. A adaptação do modelo yolov7 faz parte do processo de validação.

Análise do suporte do operador do NPU:

Sua próxima etapa é a validação do operador. A NPU HiSilicon pode não suportar todos os operadores do seu modelo. Você deve verificar quais operadores o hardware do Ascend suporta. Esta análise é vital para otimizar o yolo/resnet no HiSilicon.Kit de ferramentas CANN da HuaweiPara a plataforma Ascend oferece ferramentas para isso.

  • OModelo Usabilidade CheckerPode identificar operadores não suportados no seu modelo.
  • Ele mostra como o modelo será dividido entre o NPU e a CPU. Mais divisões podem prejudicar o desempenho.

Esta análise ajuda a maximizar a eficiência no hardware HiSilicon. Se você encontrar operadores não suportados, talvez seja necessárioReescrever o gráfico do seu modelo-A. Isso garante que cada parte do modelo seja executada no NPU Ascend. Essa migração gráfica melhora o desempenho e a eficiência. O descarregamento completo de NPU na plataforma Ascend é o objeto principal. Esta etapa de migração final libera todo o poder da plataforma HiSilicon Ascend para seus modelos de detecção de objetos. Isso dá a sua aplicação yolov7 melhor eficiência em HiSilicon e Ascend. O modelo yolov7 agora pode realizar a detecção rápida de qualquer objeto. O desempenho do modelo yolov7 no Ascend será excelente. O modelo yolov7 já está pronto. O modelo yolov7 fornece ótima detecção. O modelo yolov7 é otimizado. O modelo yolov7 está completo.

OTIMIZAÇÃO E DESEMPENHO NÚCLEO:

NÚCLEO

Você tem um modelo ONNX limpo. Sua próxima etapa de migração é convertê-lo para a plataforma Ascend. Esta fase centra-se em ganhos do desempenho do núcleo. Você usará o Ascend Tensor Compiler (ATC) e quantização para desbloquear a máxima eficiência e eficiência energética para seus modelos de detecção de objetos no hardware Hisilicon. Este processo é essencial paraOtimizar o desempenho yolo/resnet-A.

Conversão do modelo ATC:

O Ascend Tensor Compiler (ATC) é sua principal ferramenta para essa migração. Ele transforma seu modelo ONNX em um-A. OMArquivo. Este arquivo é altamente otimizado para processadores Ascend. Você executa ATC da linha de comando.

Um comando ATC típico se parece com isso:

Atc -- model = yolov7.onnx \
-- Framework = 5 \
-- Output = yolov7 _ bs1 \
-- Input_format = NCHW \
-- Input_shape = "imagens: 1,3,640,640" \
-- Soc_version = Ascend310 \
-- Log = info

Parâmetros-chave guiam a conversão para processadores Ascend:

  • -- Modelo: Especifica sua entrada-A. OnnxArquivo modelo.
  • -- Quadro: Uso5Para um modelo ONNX.
  • -- Saída: Define o nome da sua saída-A. OMModelo.
  • -- Soc_version: Alvos um SOC Hisilicon específico, comoAscendo310-A. Isso é vital para o desempenho.
  • -- Input_shape: Define um tamanho de entrada fixo do modelo.

Você deve fornecer um fixoInput_shapePara o seu modelo. Modelos para detecção de objetos possuem dimensões variáveis. A ferramenta ATC precisa de formato estático para obter o melhor desempenho nos processadores Ascend. Esta etapa garante uma migração bem-sucedida e evita erros durante a inferência na plataforma Hisilicon.

Quantização INT8:

A quantização reduz a precisão do modelo de ponto flutuante de 32 bits (FP32) para inteiro de 8 bits (INT8). Essa mudança melhora drasticamente a velocidade e a eficiência energética. A migração para a precisão INT8 é um passo fundamental para implantar um modelo YOLOV7 na Hisilicon. Você tem duas opções principais para essa migração.

MétodoDescriçãoMelhor para
Quantização Pós-Treinamento (PTQ)Aplica quantização após o modelo já está treinado. ÉSimples e rápido-A.Implantação rápida onde uma queda pequena precisão é aceitável.
Treinamento Consciente de Quantização (QAT)Simula a quantização durante o treinamento. O modelo aprende a se adaptar à menor precisão.Cenários que requeremMaior precisão possível após a quantização-A.

Para muitos modelos YOLOV7, o PTQ oferece um excelente equilíbrio. Pode serDobrar sua velocidade inferênciaE melhorar a eficiência energética nos processadores Ascend AI. Isso torna seu aplicativo YOLOV7 mais rápido para detecção em tempo real de qualquer objeto. O pequeno trade-off na precisão é muitas vezes aceitável para o grande impulso no desempenho e eficiência de energia em processadores Ascend. Esta migração final do modelo prepara seu modelo YOLOV7 para máxima eficiência nos processadores Hisilicon Ascend, prontos para encontrar cada objeto com velocidade. O desempenho de detecção do modelo YOLOV7 no Ascend será excelente.

TÉCNICAS DE ATUNAMENTO AVANÇADAS:

Você pode aumentar ainda mais o desempenho do seu modelo com ajuste avançado. Essas técnicas ajustam seu modelo YOLOV7 para a plataforma HiSilicon. Eles ajudam você a alcançar a máxima eficiência e alto desempenho para aplicações em tempo real.

AIPP Pré-processamento:

Você pode acelerar seu modelo usando AI Pre-Processing (AIPP). O AIPP descarrega tarefas de pré-processamento de imagem da CPU diretamente para o hardware Ascend. Este é um passo crucial para uma melhor eficiência energética.

AIPP lida com tarefas como:

  • Imagem redimensionamento
  • Conversão do espaço de cor (por exemplo, BGR para RGB)
  • Subtração média e normalização

Este processo libera sua CPU. Ele permite que os processadores Ascend manipulem todo o pipeline de inferência. Seu modelo YOLOV7 alcança inferência em tempo real mais rápida com melhor gerenciamento de energia. Isso dá ao seu modelo eficiência superior no HiSilicon.

Memória e Batching:

AdequadaMemóriaGestão é essencial para o alto desempenho. Você deve configurar seu modelo YOLOV7 para usar a memória eficientemente na plataforma Ascend. Batching é uma técnica poderosa para isso. Envolve processar várias imagens em uma única passagem de inferência.

Tamanho do loteRendimentoLatência
Pequeno (p. ex., 1)InferiorMais rápido por imagem
Grande (p. ex., 8, 16)SuperiorMais lentamente por imagem

Aumentar o tamanho do lote melhora o rendimento geral do seu modelo nos processadores Ascend. Isso leva a uma melhor gestão e eficiência energética. Você deve encontrar o equilíbrio certo para o seu modelo YOLOV7 para obter o melhor desempenho de detecção em tempo real. Essa otimização é fundamental paraModelos AI de alto desempenhoEm HiSilicon.

Inferência Profiling:

Você precisa traçar o perfil do modelo para encontrar gargalos no desempenho. As ferramentas de perfil mostram como seu modelo é executado nos processadores AI Ascend. Eles ajudam você a garantir que todas as camadas funcionem na NPU para a melhor eficiência e gerenciamento de energia.

Às vezes,Certas camadas em um modelo voltam para a CPU-A. Isso acontece quando os processadores Ascend não conseguem lidar com operações específicas, como uma camada SoftMax ou oPós-processamento NMS em um modelo YOLOV7-A. Esse recurso cria um gargalo significativo, diminuindo a inferência em tempo real e prejudicando a eficiência energética. Profiling ajuda você a identificar esses problemas. Ele mostra se uma grande carga de trabalho está sobrecarregando a CPU em vez de usar o poderoso hardware Ascend. Analisando benchmarks de desempenho, você pode modificar seu modelo para usar operações suportadas por NPU. Isso garante que a detecção do seu modelo YOLOV7 seja executada com máxima precisão e eficiência no HiSilicon, desbloqueando o verdadeiro alto desempenho e excelente gerenciamento de energia para inferência em tempo real.


Seu modelo pode alcançar o desempenho máximo no HiSilicon. Este workflow de otimização permite a máxima eficiência da plataforma Ascend.

  1. Exporte seu modelo para um gráfico ONNX limpo.
  2. Converter o modelo em um-A. OMArquivo para a plataforma Ascend.
  3. Aplicar quantização INT8 para melhor eficiência.
  4. Use o AIPP para descarregar o pré-processamento no hardware Ascend.

Validação Final Checklist📝

  • Validação: Confirme seuSoc_versionCorresponde ao hardware HiSilicon alvo.
  • Validação do aplicativoVerifique se a forma de entrada do modelo está correta para a plataforma Ascend.
  • Validação do aplicativo: Verifique se todos os operadores do modelo são suportados pela NPU Ascend.

Seguir esse processo para otimizar o yolo/resnet é o caminho mais confiável para o alto desempenho e eficiência no HiSilicon. Esta validação desbloqueia todo o poder da plataforma Ascend para o seu hardware HiSilicon.

FAQ

Como escolher entre PTQ e QAT?

Você deve usar a quantização pós-treinamento (PTQ) para implantação rápida. Oferece um grande impulso velocidade. Você pode usar o Quantization-Aware Training (QAT) quando precisar da maior precisão possível. O QAT requer reciclagem do modelo, mas oferece melhores resultados e boa eficiência energética.

E se o meu modelo tiver operadores não suportados?

Você deve primeiro identificar operadores não suportados usando o toolkit CANN. Você pode então tentar substituí-los por alternativas suportadas por NPU. Isso garante que todo o seu modelo é executado no Ascend hardware, que é fundamental para o desempenho e alcançar a melhor eficiência de energia.

Por que o AIPP é importante para o meu modelo?

O AIPP descarrega o pré-processamento de imagem da CPU para a NPU. Isso libera recursos da CPU. Todo o pipeline é executado no hardware do Ascend, reduzindo a latência e melhorando a eficiência geral de energia do seu aplicativo.

Faz oSoc_versionParâmetro realmente importa?

Sim, é muito importante. Você deve definir oSoc_versionPara corresponder a sua específicaChip HiSilicon(P. ex.,Ascendo310). A ferramenta ATC usa essas informações para criar um arquivo de modelo altamente otimizado para essa arquitetura de hardware exata.

Related Articles