我正在使用PyTorch
诸如torch.mm
or之类的方法来实现一系列密集的矩阵运算torch.dot
。我想知道 PyTorch 是否使用多线程或其他优化机制来加快进程。我没有使用 GPU。如果您能告诉我这些方法有多快,以及我是否需要采取任何行动来帮助这个过程,我将不胜感激。
问问题
153 次
1 回答
2
PyTorch 使用高效的 BLAS 实现和多线程(openMP,如果我没记错的话)将此类操作与多核并行化。一些性能损失来自 Python 本身——因为这是一种解释语言,所以无法进行类似编译器的重大优化。您可以使用该jit
模块来加速矩阵乘法周围的“包装器”代码,但对于非常小的矩阵之外的任何东西,这个成本可能可以忽略不计。
您可能可以手动获得一项重大改进,但 PyTorch 不会自动应用,那就是正确排序矩阵乘法。您可能知道,根据矩阵形状,乘法ABCD
计算的性能可能与计算的性能不同A(B(CD))
,(AB)(CD)
等等。
于 2019-01-26T17:12:11.643 回答