Otimizar a velocidade de construção para Pytorch e Pytorch/XLA envolve várias estratégias:
otimizando a velocidade de construção pytorch
1. Use binários pré-construídos: em vez de construir da fonte, use binários pré-construídos disponíveis no site oficial de Pytorch. Esses binários são otimizados com bibliotecas como MKL e Magma, que são cruciais para o desempenho [5].
2. Otimize o processo de construção: se você precisar construir a partir da fonte, use ferramentas como `ccache` para cache compilados. Isso reduz significativamente os tempos de reconstrução após fazer pequenas alterações no código [7].
3. Compilação paralela: Utilize processadores de vários núcleos, definindo o número de trabalhos de construção para corresponder ao número de núcleos da CPU disponíveis. Isso pode ser feito usando sinalizadores como `-j` com` make` ou opções semelhantes no seu sistema de construção.
otimizando o desempenho pytorch/xla
1. Use a execução preguiçosa: Pytorch/XLA utiliza execução preguiçosa do tensor, que registra operações em um gráfico antes da execução. Isso permite a otimização fundindo várias operações em uma única operação otimizada [4] [6].
2. Dados de pré -carga: use `mpdeviceloader` para pré -carregar dados nos dispositivos XLA, reduzindo a sobrecarga de comunicação entre a CPU do host e o dispositivo [8].
3. Minimize a comunicação de dispositivos de CPU: reduza ou remova as operações que requerem sincronização entre o dispositivo CPU e XLA, como instruções de impressão ou retornos de chamada de registro [8].
4. Use barreiras para otimização: insira barreiras como `xm.mark_step ()` para dividir grandes gráficos de computação em menores, permitindo que o compilador XLA otimize -os com mais eficiência [8].
5. ALAVAGEM NOUG TPUS: Para treinamento em larga escala, utilize TPUs em nuvem com Pytorch/XLA para obter treinamento de alto desempenho e custo-benefício [2] [9].
Citações:[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-speed-up-speceed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-for-seeding-up-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