Aceleração de hardware com LiteRT

A aceleração de hardware é o uso de hardware de computador especializado para melhorar a velocidade de execução e a eficiência de um modelo de IA. Para o LiteRT, isso envolve principalmente o uso de unidades de processamento gráfico (GPUs) ou unidades de processamento neural (NPUs) para inferência de IA, bem como instruções vetoriais de unidades de processamento central (CPUs) de uso geral.

A API Compiled Model do LiteRT processa a aceleração em duas etapas:

  1. Compilação:prepare um modelo para ser executado com um hardware específico.
  2. Dispatch:execute as operações selecionadas no hardware relevante.

A fase de compilação modifica um modelo LiteRT com uma nova interface que oferece mais flexibilidade por meio de plug-ins do compilador. A compilação do modelo ocorre antecipadamente (AOT, na sigla em inglês), antes da execução do gráfico, e adapta um gráfico específico para ser executado no dispositivo.

Tipos de aceleradores

O LiteRT oferece três tipos de aceleradores: NPU, GPU e CPU.

  • NPU:interface unificada para Qualcomm AI Engine Direct e MediaTek NeuroPilot hoje.
  • GPU:back-end OpenCL mais back-ends WebGPU e Metal usando a API Compiled Model.
  • CPU:a execução otimizada para XNNPACK é o padrão e está sempre disponível.

Esses aceleradores podem ser combinados para oferecer o melhor desempenho possível quando algumas operações complexas não estão disponíveis em um determinado hardware. Quando os aceleradores competem por uma operação, o LiteRT usa a seguinte ordem de precedência: NPU, GPU, CPU.

Aceleração de GPU

Com a aceleração de GPU do LiteRT, é possível criar buffers de entrada e saída compatíveis com GPU, alcançar cópia zero com seus dados na memória da GPU e executar tarefas de forma assíncrona para maximizar o paralelismo. Não é necessário encanamento de delegação. Basta especificar o acelerador no momento da compilação:

// Create a compiled model targeting GPU
LITERT_ASSIGN_OR_RETURN(auto compiled_model,
    CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu));

Para mais informações sobre aceleração de GPU, consulte Aceleração de GPU com LiteRT.

Aceleração de NPU

O LiteRT oferece uma interface unificada para aproveitar as NPUs sem forçar você a navegar individualmente por compiladores, ambientes de execução ou dependências de biblioteca específicos do fornecedor. Ele oferece suporte a NPUs da Qualcomm e da MediaTek para caminhos de compilação AOT e no dispositivo.

O uso de NPUs com o LiteRT geralmente envolve a conversão e a compilação de um modelo com o Play para IA no dispositivo (PODAI) e a implantação do modelo com o Play AI Pack e o módulo de recursos.