python - 一张图像的神经网络推理:为什么 GPU 利用率不是 100%?
问题描述
首先:这个问题与神经网络推理有关,而不是训练。
我发现,当在 GPU(例如 P100)上一遍又一遍地用一张图像对训练有素的神经网络进行推理时,Tensorflow 的计算能力利用率并没有达到 100%,而是大约 70%。如果图像不必传输到 GPU,情况也是如此。因此,该问题必须与计算并行化中的约束有关。我的最佳猜测是:
TensorFlow只能在一定程度上利用GPU 的并行化能力。(此外,与 TensorRT 模型相同模型的更高利用率表明了这一点)。在这种情况下,问题是:这是什么原因?
具有多个后续层的固有神经网络结构避免了更高的使用率。因此,问题不在于框架的开销,而在于神经网络的一般设计。在这种情况下,问题是:有什么限制?
以上两者结合。
感谢您对这个问题的想法!
解决方案
当您对一张图像运行神经网络预测时,为什么您期望 GPU 利用率达到 100%?
GPU 利用率是每个时间单位(例如 1 秒)。这意味着,当神经网络算法在这个时间单位过去之前完成时(例如,在 0.5 秒内),那么 GPU 可能会被其他程序使用或根本不被使用。如果 GPU 没有被任何其他程序使用,那么您将不会达到 100%。
推荐阅读
- amazon-web-services - AWS 日志按请求分组
- visual-studio-code - 当我已经在 VSCode 上为 Salesforce 开发授权开发中心时,“未设置默认开发中心”
- r - 如何在 Linux 终端中将 ctrl-shift-m 映射到 %>%?
- vba - VBA使用映射表根据标题将值从一张表复制到另一张表
- python - 如何在我的系统位置检查日期时间是真的
- sql-server - 从 SQL Server 中的 nvarchar(max) 列中选择返回截断的值
- c# - 使用带有动态参数的 Kubernetes Ingress 到 Web API
- docker - 无法在 Docker-Linux 代理上运行 Azure DevOps shell 脚本任务
- sql - 用于优化的 Oracle 查询修改
- javascript - 将 json 导入反应应用程序,但在访问嵌套字段时未定义