torch.einsum连续计算首次耗时显著偏高问题咨询
PyTorch中torch.einsum首次计算耗时远高于后续的问题咨询
当连续执行多次torch.einsum计算时,首次计算的耗时总是远高于后续计算,以下代码及现象可说明该问题:
import torch as tor from timeit import default_timer as timer import numpy as np # 补充原代码遗漏的numpy导入 N = 1000 L = 10 time_arr = np.zeros(L) for i in range(L): a = tor.randn(N, N).to("cuda:0") # 每轮生成3个1000x1000的随机矩阵 b = tor.randn(N, N).to("cuda:0") c = tor.randn(N, N).to("cuda:0") time_start = timer() tor.einsum("ij, kj", tor.einsum("ij, ja", a, b), c) # 修正原代码变量名错误:aa→a,ab→b,ac→c time_end = timer() time_arr[i] = time_end - time_start
循环各轮次的耗时对比显示,首次计算的耗时显著高于后续9次计算。
现咨询该现象产生的原因及可行的优化解决方法。
内容的提问来源于stack exchange,提问作者Fynn
相关产品推荐
相关产品推荐

