Quando si utilizza `torcia.compile`, possono sorgere diverse insidie comuni:
1. Variabilità delle prestazioni: `Torch.Compile` non migliora sempre le prestazioni e talvolta può comportare un'esecuzione più lenta o un aumento dell'utilizzo della memoria. È fondamentale confrontare le prestazioni del modello compilato con il modello originale [2] [4].
2. Grafico si interrompe: se `Torch.ComPile` incontra un codice non supportato o operazioni complesse, può introdurre" grafici ", dividendo il codice in parti ottimizzate e non ottimizzate. Sebbene non fatali, queste pause possono limitare i benefici di ottimizzazione. La riscrittura di sezioni problematiche può aiutare [2] [4].
3. Messaggi di errore criptico: i guasti di compilazione spesso producono messaggi di errore criptico che sono difficili da eseguire il debug senza assistenza del team Pytorch. Questo può rendere difficile la risoluzione dei problemi [2] [4].
4. Lunghe tempi di compilazione: il processo di compilazione stesso può richiedere molto tempo, a volte richiedendo diversi minuti o anche più a lungo per modelli più grandi. Ciò rende consigliabile valutare `torcia.comple` verso la fine dello sviluppo piuttosto che durante le fasi iniziali [1] [4].
5. Forme dinamiche e ricompilazione: `Torcia.Compile` Inizialmente assume forme di tensore statiche. Se le forme cambiano, può verificarsi una ricompilazione a meno che non siano abilitate le forme dinamiche. Ciò può portare a corse iniziali più lente a causa della ricompilazione [1].
6. Problemi multithreading: Attualmente, multithreading con `torcia.compile` è buggy, che può limitare il suo utilizzo in ambienti simultanei [3].
7. Caratteristiche non supportate: alcune funzionalità numpy o operazioni complesse potrebbero non essere supportate da `Torch.ComPile`, portando a problemi di compilation o pause grafiche [5].
Per mitigare questi problemi, si consiglia di applicare `torcia.compile` a funzioni di alto livello, utilizzare forme dinamiche quando necessario e testare accuratamente le prestazioni del modello compilato rispetto all'originale [1] [2].
Citazioni:[1] https://pytorch.org/docs/stable/torch.compiler_troubleshooting.html
[2] https://lightning.ai/docs/fabric/2.2.3/advanced/compile.html
[3] http://blog.ezyang.com/2024/11/ways-to-use-torch-compile/
[4] https://lightning.ai/docs/pytorch/stable/advanced/compile.html
[5] https://pytorch.org/docs/stable/torch.compiler_faq.html
[6] https://stackoverflow.com/questions/75886125/how-should-i-use-torch-comple-properly
[7] https://www.aionlinecourse.com/blog/how-hould-i-use-torch-comple-properly
[8] https://github.com/patrick-kidger/jaxtyping/issues/196