Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā Pytea rīkojas ar sarežģītiem izpildes ceļiem Pytorch kodā


Kā Pytea rīkojas ar sarežģītiem izpildes ceļiem Pytorch kodā


Pytea, statisks analizators, lai noteiktu tensora formas kļūdas Pytorch koda, apstrādā sarežģītus izpildes ceļus, izmantojot vairākas stratēģijas:

1. Konservatīvā atzarošana: Pytea izmanto konservatīvu atzarošanas paņēmienu, lai samazinātu izpildes ceļu skaitu. Šī metode palīdz novērst ceļa eksploziju, kas var notikt, analizējot kodu ar daudzām nosacītām zarām. Atzarojot mazāk nozīmīgus ceļus, Pytea koncentrējas uz viskritiskākajiem izpildes ceļiem, kas, iespējams, satur tensora formas kļūdas [1] [2].

2. Simboliskā abstrakcija: Pytea balstās uz simbolisku abstrakciju, lai vienkāršotu cilpu un nosacīto paziņojumu analīzi. Šī abstrakcija ļauj PyTea analizēt kodu, neprasot to izpildīt, padarot to efektīvāku sarežģītu ceļu vadīšanai [1] [2].

3. cilpas apstrāde: cilpām Pytea atvieno pastāvīgi piesaistītas cilpas un analizē to tiešās līnijas koda versiju. Lokiem ar nezināmām robežām, piemēram, tām, kas atkārtojas pār datu kopām, Pytea analizē cilpas korpusu diviem gadījumiem: fiksēta izmēra minibatch un mazāks atlikušais minibatnis. Šī pieeja vienkāršo cilpu analīzi, kas citādi varētu sarežģīt izpildes ceļa analīzi [1] [2].

4. Timeout mehānisms: ja izpildes ceļu skaits joprojām kļūst pārāk liels, neskatoties uz atzarošanu, PyTea izmanto taimauta mehānismu. Tas nodrošina, ka analīzei nav nepieciešams pārāk ilgs laiks, pat ja tas nozīmē pilnībā neizpētīt visus iespējamos ceļus [1] [2].

Apvienojot šīs stratēģijas, PyTea efektīvi apstrādā sarežģītus izpildes ceļus Pytorch kodā, ļaujot tai ātri un precīzi atklāt tensora formas kļūdas.

Atsauces:
[1] https://sf.snu.ac.kr/publications/pytea.pdf
[2] https://arxiv.org/pdf/2112.09037.pdf
[3] https://sf.snu.ac.kr/pytea/
[4] https://www.researchgate.net/publication/357114953_a_static_analyzer_for_detecting_tensor_shape_errors_in_deep_neural_network_training_code
[5] https://dl.acm.org/doi/10.1145/3510454.3528638
[6] https://discuss.pytorch.org/t/pytorch-coding-conventions/42548
[7] https://www.computer.org/csdl/progresedings-article/icse-companion/2022/959800a337/1eapbpbou12
[8] https://stackoverflow.com/questions/57410835/define-a-relative-path-folder-inside-function-that-run-code-on-both--and-id