首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TFLite解释器:定义最佳线程数

TFLite解释器:定义最佳线程数
EN

Stack Overflow用户
提问于 2021-07-07 02:17:39
回答 1查看 231关注 0票数 0

我正在运行一个量化的TFLite模型(在Linux中),用于使用XNNPack后端进行推理。我意识到TFLite模型可能会遭受预测的高延迟,我正在尝试通过定义TFLite.Interpreter(num_threads=X)的线程数量来优化它的性能。

我使用X=4,6,8,None进行了一些试验,最好的方案是使用X=4,但这对我来说没有意义。如何定义最优线程数?更重要的是,定义num_threads自动与多个CPU一起工作,或者我必须使用另一个库/包吗?

(我们非常欢迎其他可以加快推理速度的优化!)我使用的模型是一个量化的google BERT。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-07-08 14:37:42

这取决于您的目标环境。如果目标是单核或双核机器,并且不允许您的应用程序使用多核,则应使用num_threads=1。否则,您可能会使用更多线程来利用多核。

如果您的目标只有4个内核,那么使用大于4的内核不会带来性能提升,而只会带来内存和上下文切换开销。(输入的形状也取决于op内核的实现)

在性能改进方面,整数运算通常比浮点数更快。所以你可以优化你的模型来使用整数运算。https://www.tensorflow.org/lite/performance/model_optimization

另外,如果你的目标有GPU,你可以尝试GPU委派。https://www.tensorflow.org/lite/performance/gpu

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68275576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档