python-3.x - 测量在 GPU 上运行的 pytorch 函数的总执行时间的正确方法是什么?

标签 python-3.x pytorch

以下是一个示例代码,显示了我要测量的内容。这里我使用 time.perf_counter() 来测量时间。在这种情况下,这是衡量执行时间的正确方法吗?如果不是,正确的方法是什么?我担心的是,GPU 评估是异步的,当 ExecTime 在下面测量时,GPU 执行可能无法完成。

import torch
import torch.nn.functional as F
import time

Device = torch.device("cuda:0")
ProblemSize = 100
NumChannels = 5
NumFilters = 96
ClassType = torch.float32

X = torch.rand(1, NumChannels, ProblemSize, ProblemSize, dtype=ClassType).to(Device)
weights = torch.rand(NumFilters, NumChannels, 10, 10, dtype=ClassType).to(Device)

#warm up
Y = F.conv2d(X, weights)
Y = F.conv2d(X, weights)

#time
t = time.perf_counter()
Y = F.conv2d(X, weights)
ExecTime = time.perf_counter() - t

最佳答案

我认为您正在寻找 pyotrch 的 bottleneck剖析器。

关于python-3.x - 测量在 GPU 上运行的 pytorch 函数的总执行时间的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59596483/

相关文章:

python - 如何在pytorch中打印Adadelta中的 "actual"学习率

python - Tensorboard 中的 HParams、运行 ID 和命名

python - 从 werkzeug 导入安全导入 werkzeug VS

Python 创建一个设定大小的 numpy 数组

python-3.x - Pyqt5:builtins.AttributeError: 'QDialog'对象没有属性 'setCentralWidget'

python - pytorch中的张量幂和乘法

docker - 如何查找 NGC Docker 镜像的内容?

python - 我想将下面的代码(神经网络)从 keras 转换为 pytorch

python-3.x - PySpark:随机化数据框中的行

python-3.x - 如何使用 Selenium 和 Python 引用 HTML 中的文本来定位元素