DeepMind lotseguka code S6, malaibulale okhala ndi JIT compiler kukhazikitsa kwa CPython

DeepMind, yomwe imadziwika ndi chitukuko chake pazanzeru zopanga, yatsegula magwero a pulojekiti ya S6, yomwe idapanga JIT compiler ya chilankhulo cha Python. Pulojekitiyi ndi yosangalatsa chifukwa idapangidwa ngati laibulale yowonjezera yomwe imagwirizanitsa ndi CPython yokhazikika, kuonetsetsa kuti ikugwirizana kwathunthu ndi CPython komanso osafuna kusinthidwa kwa code yomasulira. Ntchitoyi yakhala ikukula kuyambira 2019, koma mwatsoka idayimitsidwa ndipo sikukulanso. Popeza zomwe zidapangidwa zitha kukhala zothandiza pakuwongolera Python, adaganiza zotsegula gwero. Khodi ya compiler ya JIT imalembedwa mu C++ ndipo idakhazikitsidwa pa CPython 3.7. ndipo imatsegulidwa pansi pa layisensi ya Apache 2.0.

Pankhani ya ntchito zomwe zimatha, S6 ya Python ikufanizira ndi injini ya V8 ya JavaScript. Laibulaleyi ilowa m'malo mwa omasulira a bytecode omwe alipo ceval.c ndikukhazikitsa kwake komwe kumagwiritsa ntchito kuphatikiza kwa JIT kufulumizitsa kuphedwa. S6 imayang'ana ngati ntchito yomwe ilipo tsopano yapangidwa kale ndipo, ngati ndi choncho, imagwiritsa ntchito code yopangidwa, ndipo ngati sichoncho, imagwira ntchitoyo mu njira yotanthauzira bytecode, mofanana ndi womasulira wa CPython. Pakutanthauzira, chiwerengero cha malangizo ochitidwa ndi mafoni okhudzana ndi ntchito yomwe ikukonzedwa amawerengedwa. Mukafika pachimake china, njira yophatikizira imayambika kuti ifulumizitse ma code omwe amachitidwa pafupipafupi. Kuphatikizika kumachitika mu chiwonetsero chapakati cha strongjit, chomwe, pambuyo pa kukhathamiritsa, chimasinthidwa kukhala malangizo a makina a chandamale pogwiritsa ntchito laibulale ya asmjit.

Kutengera mtundu wa ntchitoyo, S6 pansi pamikhalidwe yabwino ikuwonetsa kuwonjezeka kwa liwiro la mayeso mpaka nthawi za 9.5 poyerekeza ndi CPython wamba. Mukathamanga maulendo 100 a mayeso a Richards, kuthamanga kwa 7x kumawonedwa, ndipo poyesa mayeso a Raytrace, omwe amaphatikizapo masamu ambiri, kufulumira kwa 3-4.5x kumawonedwa.

Zina mwa ntchito zomwe zimakhala zovuta kukhathamiritsa pogwiritsa ntchito S6 ndi ntchito zomwe zimagwiritsa ntchito C API, monga NumPy, komanso ntchito zokhudzana ndi kufunikira koyang'ana mitundu ya chiwerengero chachikulu cha makhalidwe. Kuchita kotsika kumawonedwanso pamayitanidwe amodzi a ntchito zogwiritsa ntchito kwambiri chifukwa chogwiritsa ntchito S6 yokhayo yosasinthika yomasulira Python (chitukukocho sichinafike pamlingo wokhathamiritsa kutanthauzira). Mwachitsanzo, mu mayeso a Unpack Sequence, omwe amatsegula magulu akuluakulu / ma tuples, ndi kuyimba kamodzi kumakhala kocheperako mpaka nthawi za 5, ndipo ndi kuyimba kwa cyclic ntchitoyo ndi 0.97 kuchokera ku CPython.

Source: opennet.ru

Kuwonjezera ndemanga