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 '또는 유사한 옵션과 함께`-j`와 같은 플래그를 사용하여 수행 할 수 있습니다.

pytorch/xla 성능 최적화

1. 게으른 실행 사용 : Pytorch/XLA는 게으른 텐서 실행을 사용하여 실행 전에 그래프에서 작업을 기록합니다. 이를 통해 여러 작업을 단일 최적화 작업에 융합하여 최적화를 허용합니다 [4] [6].

2. 예압 데이터 :`mpdeviceloader`를 사용하여 XLA 장치에 데이터를 예압하여 호스트 CPU와 장치 간의 통신 간접비를 줄입니다 [8].

3. CPU-DEVICE 통신 최소화 : 인쇄 문 또는 로깅 콜백과 같은 CPU와 XLA 장치 간의 동기화가 필요한 작업을 줄이거 나 제거합니다 [8].

4. 최적화를 위해 장벽 사용 :`xm.mark_step ()와 같은 장벽을 삽입하여 큰 계산 그래프를 작은 계산 그래프로 나누어 XLA 컴파일러가보다 효과적으로 최적화 할 수 있도록합니다 [8].

5. 클라우드 TPU 레버리지 : 대규모 교육의 경우 클라우드 TPU를 Pytorch/XLA와 함께 사용하여 고성능 및 비용 효율적인 교육을 달성합니다 [2] [9].

인용 :
[1] https://www.reddit.com/r/machinelearning/comments/kvs1ex/d_here_are_17_ways_of_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-peed-uped-inference/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-for-peeding-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-and-cloud-tpu-vm