Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 如何优化Pytorch和Pytorch/XLA的构建速度


如何优化Pytorch和Pytorch/XLA的构建速度


优化Pytorch和Pytorch/XLA的构建速度涉及几种策略:

###优化Pytorch构建速度

1。使用预构建的二进制文件:而不是从源头构建,而是使用Pytorch官方网站可用的预制二进制文件。这些二进制文件通过MKL和Magma等文库进行了优化,这对于性能至关重要[5]。

2。优化构建过程:如果您必须从源构建,请使用``CCACHE')等工具来缓存编译文件。对代码进行了少量更改后,这大大减少了重建时间[7]。

3。并行化汇编:通过设置构建作业数以匹配可用CPU内核的数量来利用多核处理器。这可以在构建系统中使用``Make'或类似选项''之类的标志来完成。

###优化Pytorch/XLA性能

1。使用懒惰执行:Pytorch/XLA使用懒张量执行,该执行在执行之前记录在图中的操作。这可以通过将多个操作融合到单个优化的操作[4] [6]中来优化。

2。预加载数据:使用`mpdeviceloader`将数据预加载到XLA设备上,从而减少主机CPU和设备之间的通信开销[8]。

3。最小化CPU设备通信:减少或删除需要在CPU和XLA设备之间同步的操作,例如打印语句或记录回调[8]。

4。使用障碍进行优化:插入诸如`xm.mark_step()`将大型计算图分解为较小的屏障,从而使XLA编译器可以更有效地优化它们[8]。

5。利用云TPU:对于大规模训练,使用Pytorch/XLA使用云TPU来实现高性能和具有成本效益的培训[2] [9]。

引用:
[1] https://www.reddit.com/r/machinelearning/comments/kvs1ex/d_here_are_are_17_ways_ways_of_making_making_pytorch_training/
[2] https://www.youtube.com/watch?v=pspmrtwums8
[3] https://sebastianraschka.com/blog/2023/pytorch-faster.html
[4] https://pytorch.org/xla/release/r2.4/index.html
[5] https://discuss.pytorch.org/t/is-building-from-source-really-sourly-s------------------------s-s-speed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-for-speeding-peed--the-source-build-process/184558
[8] https://pytorch.org/xla/master/learn/xla-overview.html
[9] https://cloud.google.com/blog/topics/developers-practitioners/scaling-deep-learning-workloads-pytorch-xla-xla-xla-and-cloud-tpu-vm