Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kokios yra įprastos spąstai, kai naudojami „Torch.compile“


Kokios yra įprastos spąstai, kai naudojami „Torch.compile“


Naudojant „Torch.compile“, gali atsirasti kelios įprastos spąstai:

1. Našumo kintamumas: „Torch.compile“ ne visada pagerina našumą ir kartais gali sukelti lėtesnį vykdymą ar padidinti atminties naudojimą. Labai svarbu palyginti sudaryto modelio našumą su pradiniu modeliu [2] [4].

2. Diagramos pertraukos: Jei „torch.compile“ susiduria nepalaikomas kodas ar sudėtingos operacijos, jis gali įvesti „grafiko pertraukas“, kodo padalijimą į optimizuotas ir neoptimizuotas dalis. Nors šios pertraukos nėra mirtinos, jie gali apriboti optimizavimo naudą. Gali padėti perrašyti probleminius skyrius [2] [4].

3. Šlapimo klaidų pranešimai: Kompiliacijos gedimai dažnai sukelia kriptų klaidų pranešimus, kuriuos sunku derinti be „Pytorch“ komandos pagalbos. Tai gali padaryti sudėtingą trikčių šalinimą [2] [4].

4. Ilgas kompiliavimo laikas: Pats kompiliavimo procesas gali būti reikalaujantis daug laiko, kartais trunkantis keletą minučių ar net ilgiau didesniems modeliams. Dėl to patartina įvertinti „torch.compile“ vystymosi pabaigoje, o ne pradiniais etapais [1] [4].

5. Dinaminės formos ir pakartotinis kompiliacija: „Torch.compile“ iš pradžių prisiima statines tenzorines formas. Jei formų pasikeitimas pasikeis, gali įvykti pakartotinis kompiliacija, nebent įjungtos dinaminės formos. Dėl pakartotinio kompiliavimo tai gali sukelti lėtesnius pradinius važiavimus [1].

6. Daugialypės terpės problemos: Šiuo metu daugialypės terpės su „Torch.compile“ yra klaidinga, kuri gali apriboti jo naudojimą lygiagrečioje aplinkoje [3].

7. Nepalaikomos savybės: Kai kurios „Numpy“ funkcijos ar sudėtingos operacijos negali būti palaikomos „torch.compile“, dėl kurių sudaromos kompiliacijos problemos ar grafiko pertraukos [5].

Norint sušvelninti šias problemas, rekomenduojama pritaikyti „torch.compile“ aukšto lygio funkcijoms, prireikus naudokite dinamines formas ir kruopščiai išbandykite sudaryto modelio našumą, palyginti su originaliu [1] [2].

Citatos:
[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/stabled/advanced/compile.html
[5] https://pytorch.org/docs/stable/torch.compiler_faq.html
[6] https://stackoverflow.com/questions/75886125/how-hould-i-use-torch-compile-properly
[7] https://www.aionlinecourse.com/blog/how-hould-i-use-torch-compile-properly
[8] https://github.com/patrick-kidger/jaxtyping/issues/196