首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【技术创作101训练营】TensorFlow Lite的 GPU 委托(Delegate)加速模型推理

委托代理的优点:综合移动设备的算力和功耗,在CPU上做高算力计算不划算,但其他设备如 GPU 或 DSP 等硬件加速器或者如华为NPU,联发科APU、三星VPU之类的却可以获取更佳的性能与功耗表现。...在完成和 CPU 一样的任务时可以消耗更少的电力和产生更少的热量。...TFLite在端侧 GPU 推理的支持方面,最早便支持了 OpenGL 的推理,在2020年5月中旬,基于委托代理方式也支持了 OpenCL 。 4....Android C++ API 使用 GPU 代理 关于如何在TF提供的演示应用的APP里使用安卓和 iOS (metal) 的 GPU 委托代理,参考安卓使用 GPU 的委托代理和 iOS 如何使用...例如,包含相机传输的GPU纹理),那么可以直接保留在GPU内存中而无需进入到CPU内存,。TFLite有提供这样的接口。

5.4K220191

深度神经网络移动终端GPU加速实践

MobileNet在第一层普通卷积层后,后面进行了多次深度可分离卷积,这么做的好处是在保留了图像特征的同时大幅度降低了模型的参数量和计算量。这是如何做到的呢?...GPU加速模型 虽然借助Tensorflow平台和Tensorflow Lite,模型已经可以在终端工作起来做图像识别分类了,但是Tensorflow Lite是基于CPU去做推断预测的,推断预测的速度不够理想...对于习惯CPU编程的我们来说,GPU编程是一项不小的挑战,这要求要能稍微理解GPU的工作原理,才能写出性能高效的GPU代码。 工作组 一个GPU中存在着多个工作组,如下图所示: ?...这好比一个工厂有多个车间,一个车间有多部机器的概念。因此,每段GPU代码同时有多个线程在访问,这种并行的工作形式非常适合神经网络的运行。...加速效果 整套GPU实现的逻辑打通后,iOS平台在iPhone X上实际测试到GPU相比CPU的速度提升了4倍;Android平台在华为P9上实际测试到GPU相比CPU的速度提升了3倍。

1.9K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    精通 TensorFlow 1.x:16~19

    要将 TensorFlow 集成到您的应用中,首先,使用我们在整本书中提到的技术训练模型,然后保存模型。现在可以使用保存的模型在移动应用中进行推理和预测。...=mymodel_nodes --input_shapes=n,h,w,c 现在,在步骤 4 中保存的.tflite模型可以在使用 TFLite 二进制文件进行推理的 Android 或 iOS 应用中使用...在您的应用中包含 TFLite 二进制文件的过程不断发展,因此我们建议读者按照此链接中的信息在您的 Android 或 iOS 应用中包含 TFLite 二进制文件。...您还可以使用 Bazel 从源代码构建整个演示应用,其中包含此链接中的说明。 iOS 上的 TFLite 演示 要在 iOS 上构建演示,您需要 Xcode 7.3 或更高版本。...要安装 GPU 版本,请使用版本参数: gpu 安装tensorflow-gpu nightly 安装每晚 CPU 的版本 nightly-gpu 安装每晚 GPU 构建 n.n.n 安装特定版本,

    4.9K10

    首次在手机端不牺牲准确率实现BERT实时推理,比TensorFlow-Lite快近8倍,每帧只需45ms

    因此,在这个边缘计算越来越重要的今天,如何有效的压缩这些大模型成为了一个重要的研究课题。 在过去的一年中,为了减少BERT模型的大小,同时保持多个下游NLP任务的准确性,很多小模型被相继提出。...可以看出,三个CANAO模型的延迟都小于对比的三种模型。相比于BERT-base,他们的模型在CPU和GPU上分别快了5.2倍和4.1倍,准确率仅降了0.5-2%。...相比于MobileBERT, 他们的模型在CPU和GPU上分别快了1.49倍和1.53倍,准确率仅降了0.4-1%。 ?...CANAO框架可以分别在CPU和GPU上提升2倍和2.4倍的速度。...虽然使用网络延迟来优化网络结构的硬件感知神经结构搜索(hardware-aware NAS) 已经被提出,但是在NAS和编译器优化之间仍然缺少一些联系。

    1.7K10

    TensorFlow在移动设备与嵌入式设备上的轻量级跨平台解决方案 | Google 开发者大会 2018

    在终端 / 设备上运行机器学习日益重要 今天,机器学习的发展日新月异,机器学习不仅部署在服务器端,运行在个人电脑上,也存在于我们生活中许许多多的小设备上,比如移动设备和智能手机。...考虑到不同模型可能用到不同的ops,还可以继续优化,比如可以只注册你需要的Ops,这样其余的Ops就不会编译到runtime library中,体积还可以进一步缩减。...使用Demo App 下载:从https://www.tensorflow.org/mobile/tflite下载一个demo app(iOS/Android) 编译:在您的机器上简单的编译demo apps...训练时Quantization 一年前发布的工具,理论上可以比训练后Quantization更好的精确度,但使用上比较复杂,只在CNN模型中比较有效果,对于RNN模型,效果有限。 ?...团队同时在研究两者,希望两者都有所提升。 Demo ? 一个Raspberry PI实现的物件检测模型,可以进行目标检测,转动摄影机始终跟随目标 ?

    2.2K30

    高效终端设备视觉系统开发与优化

    在iosiOS系统中,用户可以通过C ++ 直接调用解释器。 TFLite的推理速度更快 TFLite通过以下功能在终端设备机器学习中脱颖而出。...这张幻灯片中的图显示了在ARM GPU和FPGA上运行基本滤波操作和图像分析操作的功耗基准与在CPU上运行相比通过在GPU和FPGA上进行优化来降低能源成本具有显著优势。...对于Filter2D(这是深度学习中最常用的操作之一)在GPU上运行可以将GPU的功耗降低一半。在FPGA上运行可以将功耗进一步降低到CPU的四分之一。...作为广泛采用的终端设备推理平台,TFLite还支持原生硬件加速。在这里,我们显示在CPU, GPU 和边缘TPU上运行MobileNet V1TFLite模型的示例。...在CPU上运行量化的MobileNet Vv1比浮点模型快1.9倍,在GPU上运行浮点模型的速度比CPU快7.7倍,每帧仅使用16毫秒左右。 最后,在Edge TPU上运行量化模型仅需2毫秒。

    66420

    高效终端设备视觉系统开发与优化

    在iosiOS系统中,用户可以通过C ++ 直接调用解释器。 TFLite的推理速度更快 TFLite通过以下功能在终端设备机器学习中脱颖而出。...这张幻灯片中的图显示了在ARM GPU和FPGA上运行基本滤波操作和图像分析操作的功耗基准与在CPU上运行相比通过在GPU和FPGA上进行优化来降低能源成本具有显著优势。...对于Filter2D(这是深度学习中最常用的操作之一)在GPU上运行可以将GPU的功耗降低一半。在FPGA上运行可以将功耗进一步降低到CPU的四分之一。...作为广泛采用的终端设备推理平台,TFLite还支持原生硬件加速。在这里,我们显示在CPU, GPU 和边缘TPU上运行MobileNet V1TFLite模型的示例。...在CPU上运行量化的MobileNet Vv1比浮点模型快1.9倍,在GPU上运行浮点模型的速度比CPU快7.7倍,每帧仅使用16毫秒左右。 最后,在Edge TPU上运行量化模型仅需2毫秒。

    70120

    模型压缩一半,精度几乎无损,TensorFlow推出半精度浮点量化工具包,还有在线Demo

    有了它,就能在几乎不损失模型精度的情况下,将模型压缩至一半大小,还能改善CPU和硬件加速器延迟。 这一套工具囊括混合量化,全整数量化和修剪。 ? 如何量化模型,尽可任君挑选。...体积压缩了,精确度难道不会损失吗? 降低浮点数精度,当然会带来精确度的损失,但是不必担心,这样的损失小到可以忽略不计。...在ILSVRC 2012图像分类任务上分别测试标准的MobileNet float32模型和float16模型变体,可以看到,无论是MobileNet v1还是MobileNet v2,无论是top1还是...默认情况下,模型是这样在CPU上运行的:把16位参数“上采样”为32位,并在标准32位浮点运算中执行操作。 这样做的原因是目前很多硬件还不支持加速fp16计算。...在未来,有更多硬件支持的情况下,这些半精度值就不再需要“上采样”,而是可以直接进行计算。 在GPU上运行fp16模型更简单。

    1.4K20

    模型压缩一半,精度几乎无损,TensorFlow推出半精度浮点量化工具包,还有在线Demo

    有了它,就能在几乎不损失模型精度的情况下,将模型压缩至一半大小,还能改善CPU和硬件加速器延迟。 这一套工具囊括混合量化,全整数量化和修剪。 ? 如何量化模型,尽可任君挑选。...体积压缩了,精确度难道不会损失吗? 降低浮点数精度,当然会带来精确度的损失,但是不必担心,这样的损失小到可以忽略不计。...在ILSVRC 2012图像分类任务上分别测试标准的MobileNet float32模型和float16模型变体,可以看到,无论是MobileNet v1还是MobileNet v2,无论是top1还是...默认情况下,模型是这样在CPU上运行的:把16位参数“上采样”为32位,并在标准32位浮点运算中执行操作。 这样做的原因是目前很多硬件还不支持加速fp16计算。...在未来,有更多硬件支持的情况下,这些半精度值就不再需要“上采样”,而是可以直接进行计算。 在GPU上运行fp16模型更简单。

    2.1K50

    移动端 GPU 推理性能提升 2 倍!TensorFlow 推出新 OpenCL 后端

    文 / 软件工程师 Juhyun Lee 和 Raman Sarokin TensorFlow Lite (TFLite) GPU 团队在不断改进现有基于 OpenGL 的移动 GPU 推理引擎,同时我们也在不断研究其他技术...上的 TFLite GPU 性能易受工作组大小影响;采用合适的工作组大小可以提高性能,而选择不当的工作组大小则会相应地降低性能。...性能评估 我们会在下方展示 TFLite 在 CPU(大核单线程)、使用现有 OpenGL 后端的 GPU 和使用新 OpenCL 后端的 GPU 上的性能水平。...图 2 和图 3 分别说明推理引擎在搭载 OpenCL 的所选 Android 设备上,使用数个广为人知的神经网络(如 MNASNet 1.3 和 SSD MobileNet v3(大))时所发挥出的性能水平...事实上,OpenCL 后端自 2019 年年中以来便一直存在于 TensorFlow 代码库中,并已通过 TFLite GPU Delegate v2 版与代码库无缝集成,因此,您可能已在使用代理的回退机制时

    1.7K10

    TensorFlow Lite 2019 年发展蓝图

    易用性 支持更多 op 根据用户反馈优先处理更多 op op 版本控制和签名 op 内核将获得版本号 op 内核将可以通过签名识别 新转换器 实现新的 TensorFlow Lite 转换器,该转换器将能更好地处理图形转换...针对推理的预处理和后处理提供更多支持 控制流和设备端训练 增加对控制流相关 op 的支持 增加对设备端训练的支持 新 API 将新的 C API 作为语言绑定和大多数客户端的核心 iOS 版 Objective-C...API iOS 版 SWIFT API 更新后的 Android 版 Java API C# Unity 语言绑定 添加更多模型 向网站的支持部分添加更多模型 性能 更多硬件委派 增加对更多硬件委派的支持...支持 NN API 持续支持并改进对 NN API 的支持 框架可扩展性 通过自定义优化版本支持简便的 CPU 内核重写 GPU 委派 继续扩展对 OpenGL 和 Metal op 的总支持 op...开源 提升 TFLite CPU 的性能 优化浮动和量化模型 优化 模型优化工具组 训练后量化 + 混合内核 训练后量化 + 定点内核 训练时量化 为更多技术提供更多支持 RNN 支持 稀疏性 / 精简

    69030

    业界 | TensorFlow Lite 2019 年发展蓝图

    TensorFlow Lite 2019 年发展蓝图分为四个关键部分:易用性、性能、优化和可移植性。非常欢迎您在 TensorFlow Lite 论坛中评论我们的发展蓝图,并向我们提供反馈。...易用性 支持更多 op 根据用户反馈优先处理更多 op op 版本控制和签名 op 内核将获得版本号 op 内核将可以通过签名识别 新转换器 实现新的 TensorFlow Lite 转换器,该转换器将能更好地处理图形转换...(即控制流、条件语句等)并取代 TOCO 继续改进 TF Select Op 支持更多使用 TF Select(例如哈希表、字符串等)的转换类型 在通过 op 剥离使用 TF Select Op 时支持更小的二进制文件大小...控制流和设备端训练 增加对控制流相关 op 的支持 增加对设备端训练的支持 新 API 将新的 C API 作为语言绑定和大多数客户端的核心 iOS 版 Objective-C API iOS 版 SWIFT...NN API 的支持 框架可扩展性 通过自定义优化版本支持简便的 CPU 内核重写 GPU 委派 继续扩展对 OpenGL 和 Metal op 的总支持 op 开源 提升 TFLite CPU 的性能

    80720

    【玩转腾讯云】万物皆可Serverless之Kaggle+SCF端到端验证码识别从训练到部署

    Snipaste_2020-04-22_10-49-41.png 你可能会问在本地训练不可以吗,为啥非得折腾着上云?...跑了三天,果断放弃,汗~ 然后我们再来看一下kaggle上的kernel环境的配置 CPU 4核心,16 GB 运行内存,GPU 2核心 13 GB 运行内存 每个 kernel 有9 小时的运行时长...训练结束后你可以根据仓库里的readme文件,把模型、日志文件打包下载到本地, 然后再在本地将模型转成tflite格式(方便在移动端使用,本地识别验证码), 如果模型文件过大你也可以在本地运行tflite.py...程序把tflite模型量化,大概可以把模型文件缩小到原来的1/4 Snipaste_2020-04-22_12-16-16.png 最终你应该得到一个 .tflite 格式的模型文件 第五步:使用云函数快速部署验证码识别模型...base64Image=base64编码后的验证码数据 就可以返回验证码识别结果了 三、文章最后 以上, 本文带大家从头训练并部署了一个通用验证码识别模型 我们再一次看到基于Serverless的云函数在开发线上应用的过程中是多么方便和迅速

    1K187

    兼容并蓄——MNN异构计算设计与实践

    CPU和GPU是手机的标配,由于图像处理和视频处理的需求,有些手机上有DSP,由于端上推理的需求,近年来手机也渐渐地开始搭载了NPU。...异构计算的使用需要标准,也就是一组API,这个标准在IOS和Android上面不一样,比如IOS上GPU的使用标准是Metal,而Android上面,由于历史原因,是OpenCL、OpenGL、Vulkan...,而小米6可以用OpenCL,我们就加载MNN-OpenCL,这样可以使MNN在保持轻量性的同时,支持更多的硬件。...三 GPU计算实现与性能优化 由于GPU是泛用性,仅次于CPU,且有软件标准使用的硬件,MNN在异构计算的实践上着重做好GPU的利用。...像 TFlite、Mace、NCNN之类只能支持额外的一两个后端,不能像MNN那样方便扩展。由于我们GPU计算上的一系列优化,从右边延时图可以看出,MNN相比于其他框架延时最低,性能是业界领先的。

    1.2K30

    【云+社区年度征文】TinyML实践-2:How TinyML Works?

    对于Tensorflow最大需求是能够在桌面系统中训练并运行模型,这种需求影响了很多设计决策,例如为了更低的延迟和更多的功能而增加可执行文件的大小。...它还不支持TF主线中可用的全部数据类型(例如double)。此外,TFLite也不支持一些使用次数比较少的算子。...作为这些折中的回报,TFLite可以只用几百字节,从而使其更适合大小受到限制的应用程序。它还为Arm Cortex-A 系列CPU提供了高度优化的库。...该过程用于将相同的知识存储在较小的网络中,提供了一种压缩知识表示的方法,从而压缩了神经网络的大小,从而可以将其用于更多内存受限的设备上。...5)C++ 11 为了模块化代码方便维护,另外和TFLite 移动设备方面更轻松的共享代码 编译系统 Tensorflow Lite 在linux环境中开发的,许多工具基于传统的UNIX工具(shell

    1.8K52
    领券