首页 > 解决方案 > PyTorch 方法中使用了哪些类型的优化?

问题描述

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

标签: multithreadingoptimizationpytorchspeedus

解决方案


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

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


推荐阅读