Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako Pytea obravnava kompleksne poti izvajanja v Pytorchovi kodi


Kako Pytea obravnava kompleksne poti izvajanja v Pytorchovi kodi


Pytea, statični analizator za odkrivanje napak v obliki tenzorja v kodi Pytorch, obravnava zapletene izvedbene poti z uporabo več strategij:

1. konzervativno obrezovanje: Pytea uporablja konzervativno tehniko obrezovanja za zmanjšanje števila izvršnih poti. Ta metoda pomaga preprečiti eksplozijo poti, ki se lahko pojavi pri analizi kode s številnimi pogojnimi vejami. Z obrezovanjem manj ustreznih poti se Pytea osredotoča na najbolj kritične poti izvajanja, ki bodo verjetno vsebovale napake v obliki tenzorja [1] [2].

2. Simbolična abstrakcija: Pytea se za poenostavitev analize zank in pogojnih izjav opira na simbolično abstrakcijo. Ta abstrakcija omogoča PYTEA, da analizira kodo, ne da bi jo moral izvesti, kar je učinkovitejše za ravnanje s kompleksnimi potmi [1] [2].

3. Ravnanje z zanko: Za zanke Pytea odvije stalno vezane zanke in analizira njihovo naravno linijsko različico kode. Za zanke z neznanimi mejami, kot so tiste, ki ponavljajo nabora podatkov, PYTEA analizira telo zanke za dva primera: minibatch s fiksno velikostjo in manjši preostali minibatch. Ta pristop poenostavlja analizo zank, ki bi sicer lahko zapletle analizo izvedbene poti [1] [2].

4. Mehanizem časovne omejitve: Če število izvedbenih poti še vedno postane preveliko kljub obrezovanju, Pytea uporablja mehanizem za časovno omejitev. To zagotavlja, da analiza ne traja pretirano dolgo, tudi če ne pomeni popolnoma raziskovanja vseh možnih poti [1] [2].

S kombiniranjem teh strategij PYTEA učinkovito obravnava zapletene poti izvajanja v kodi Pytorch, kar mu omogoča hitro in natančno zaznavanje napak v obliki tenzorja.

Navedbe:
[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_SHAPE_IN_DEEP_NEUral_NETWORD_TRAING_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/proeding-article/icse-companion/2022/959800A337/1APBPBOU12
[8] https://stackoverflow.com/questions/57410835/define-a-relativa-path-folder-inside-a-function-that-run-code-on-both-cmd-and-id