Path: blob/master/site/zh-cn/lite/android/delegates/gpu_native.md
25118 views
使用 C/C++ API 进行 GPU 加速委托
使用图形处理单元 (GPU) 运行机器学习 (ML) 模型可以显著提高支持机器学习的应用的性能和用户体验。在 Android 设备上,您可以使用委托和以下 API 之一启用模型的 GPU 加速执行:
本指南涵盖 C API、C++ API 的 GPU 委托的高级使用以及量化模型的使用。有关将 GPU 委托用于 TensorFlow Lite 的更多信息,包括最佳做法和高级技术,请参阅 GPU 委托页面。
启用 GPU 加速
通过使用 TfLiteGpuDelegateV2Create()
创建委托并使用 TfLiteGpuDelegateV2Delete()
销毁委托,在 C 或 C++ 中使用 Android 的 TensorFlow Lite GPU 委托,如以下示例代码所示:
查看 TfLiteGpuDelegateOptionsV2
对象代码以使用自定义选项构建一个委托实例。您可以使用 TfLiteGpuDelegateOptionsV2Default()
初始化默认选项,然后根据需要对其进行修改。
C 或 C++ 中 Android 的 TensorFlow Lite GPU 委托使用 Bazel 构建系统。可以使用以下命令构建委托:
调用 Interpreter::ModifyGraphWithDelegate()
或 Interpreter::Invoke()
时,调用者在当前线程中必须具有 EGLContext
,并且 Interpreter::Invoke()
必须从相同的 EGLContext
调用。如果 EGLContext
不存在,则委托将在内部创建一个,但您随后必须确保该 Interpreter::Invoke()
始终从调用 Interpreter::ModifyGraphWithDelegate()
的同一个线程调用。
量化模型 {:#quantized-models}
Android GPU 委托库默认支持量化模型。您无需更改任何代码即可将量化模型与 GPU 委托一起使用。以下部分说明了如何停用量化支持以用于测试或实验目的。
停用量化模型支持
以下代码显示了如何停用对量化模型的支持。
C++
TfLiteGpuDelegateOptionsV2 options = TfLiteGpuDelegateOptionsV2Default(); options.experimental_flags = TFLITE_GPU_EXPERIMENTAL_FLAGS_NONE;
auto* delegate = TfLiteGpuDelegateV2Create(options); if (interpreter->ModifyGraphWithDelegate(delegate) != kTfLiteOk) return false;
有关使用 GPU 加速运行量化模型的更多信息,请参阅 GPU 委托概述。