1

我正在使用PyTorch诸如torch.mmor之类的方法来实现一系列密集的矩阵运算torch.dot。我想知道 PyTorch 是否使用多线程或其他优化机制来加快进程。我没有使用 GPU。如果您能告诉我这些方法有多快,以及我是否需要采取任何行动来帮助这个过程,我将不胜感激。

4

1 回答 1

2

PyTorch 使用高效的 BLAS 实现和多线程(openMP,如果我没记错的话)将此类操作与多核并行化。一些性能损失来自 Python 本身——因为这是一种解释语言,所以无法进行类似编译器的重大优化。您可以使用该jit模块来加速矩阵乘法周围的“包装器”代码,但对于非常小的矩阵之外的任何东西,这个成本可能可以忽略不计。

您可能可以手动获得一项重大改进,但 PyTorch 不会自动应用,那就是正确排序矩阵乘法。您可能知道,根据矩阵形状,乘法ABCD计算的性能可能与计算的性能不同A(B(CD))(AB)(CD)等等。

于 2019-01-26T17:12:11.643 回答