Path: blob/master/site/pt-br/lite/android/delegates/gpu_native.md
25118 views
Delegado de aceleração de GPU com a API C/C++
O uso de unidades de processamento gráfico (GPUs) para executar seus modelos de aprendizado de máquina (ML) pode melhorar drasticamente o desempenho e a experiência do usuário dos seus aplicativos com tecnologia de ML. Nos dispositivos Android, você pode ativar a execução dos seus modelos com a aceleração de GPU usando um delegado e uma das seguintes APIs:
Este guia aborda os usos avançados do delegado de GPU para a API C e C++, além do uso de modelos quantizados. Para mais informações sobre como usar o delegado de GPU para o TensorFlow Lite, incluindo práticas recomendadas e técnicas avançadas, confira a página delegados de GPU.
Ative a aceleração de GPU
Use o delegado de GPU do TensorFlow Lite para Android em C ou C++ ao criar o delegado com TfLiteGpuDelegateV2Create()
e o destruir com TfLiteGpuDelegateV2Delete()
, conforme mostrado no código de exemplo a seguir:
Revise o código do objeto TfLiteGpuDelegateOptionsV2
para criar uma instância de delegado com opções personalizadas. Você pode inicializar as opções padrão com TfLiteGpuDelegateOptionsV2Default()
e, em seguida, modificá-las conforme necessário.
O delegado de GPU do TensorFlow Lite para Android em C ou C++ usa o sistema de build Bazel. Você pode compilar o delegado usando o comando a seguir:
Ao chamar Interpreter::ModifyGraphWithDelegate()
ou Interpreter::Invoke()
, o autor da chamada precisa ter um EGLContext
no thread atual, e Interpreter::Invoke()
precisa ser chamado do mesmo EGLContext
. Se não houver um EGLContext
, o delegado cria um internamente, mas, depois, você precisará garantir que Interpreter::Invoke()
seja sempre chamado do mesmo thread em que Interpreter::ModifyGraphWithDelegate()
foi chamado.
Modelos quantizados {:#quantized-models}
As bibliotecas de delegados GPU do Android são compatíveis com os modelos quantizados por padrão. Você não precisa fazer nenhuma alteração no código para usar modelos quantizados com o delegado de GPU. A seção a seguir explica como desativar o suporte quantizado para testes ou fins experimentais.
Desative o suporte ao modelo quantizado
O código a seguir mostra como desativar o suporte a modelos quantizados.
C++
TfLiteGpuDelegateOptionsV2 options = TfLiteGpuDelegateOptionsV2Default(); options.experimental_flags = TFLITE_GPU_EXPERIMENTAL_FLAGS_NONE;
auto* delegate = TfLiteGpuDelegateV2Create(options); if (interpreter->ModifyGraphWithDelegate(delegate) != kTfLiteOk) return false;
Para mais informações sobre como executar modelos quantizados com a aceleração de GPU, confira a visão geral do delegado de GPU.