PyTorch方法中使用了哪些优化?

时间:2019-01-26 14:18:38

标签: multithreading optimization pytorch speedus

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

1 个答案:

答案 0 :(得分:1)

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

您可能可以手动获得一个很大的改进,但是PyTorch不能自动应用,这是对矩阵乘法进行正确排序。如您所知,根据矩阵形状的不同,以ABCD计算的乘法A(B(CD))与以(AB)(CD)计算的乘法可能具有不同的性能,等等。