DeepMind yakavhurika kodhi S6, maraibhurari ane JIT compiler kuita kweCPython

DeepMind, inozivikanwa nekuvandudza kwayo mumunda wehungwaru hwekugadzira, yakavhura kodhi kodhi yeprojekti yeS6, iyo yakagadzira JIT compiler yemutauro wePython. Iyo purojekiti inonakidza nekuti yakagadzirwa seraibhurari yekuwedzera iyo inobatanidza neyakajairwa CPython, kuve nechokwadi kuenderana kuzere neCPython uye isingade kugadziridzwa kwekodhi yemuturikiri. Iyo purojekiti yanga ichikura kubva 2019, asi zvinosuruvarisa kuti yakamiswa uye haisisiri kusimukira. Sezvo magadzirirwo akagadzirwa angave anobatsira pakuvandudza Python, zvakasarudzwa kuvhura sosi kodhi. Iyo JIT compiler kodhi yakanyorwa muC ++ uye yakavakirwa paCPython 3.7. uye yakavhurika yakavhurika pasi peiyo Apache 2.0 rezinesi.

Panyaya yemabasa aanogona kugadzirisa, S6 yePython inofananidzwa neV8 injini yeJavaScript. Raibhurari inotsiva iripo bytecode muturikiri anobata ceval.c nekushandisa kwayo inoshandisa JIT kuunganidza kuti ikurumidze kuurayiwa. S6 inotarisa kana basa razvino rave rakagadzirwa uye, kana zvakadaro, rinoita kodhi yakabatanidzwa, uye kana zvisiri, inomhanyisa basa iri mu bytecode kududzira modhi, yakafanana neiyo CPython muturikiri. Panguva yekududzira, nhamba yemirairo yakaitwa uye mafoni ane chekuita nebasa riri kugadziriswa inoverengwa. Mushure mekusvika pane chimwe chiitiko chakakosha, nzira yekubatanidza inotangwa kuti ikurumidze kodhi inowanzoitwa. Kuunganidzwa kunoitwa mune yepakati strongjit inomiririra, iyo, mushure mekugadzirisa, inoshandurwa kuita mirairo yemuchina yechinangwa chehurongwa uchishandisa asmjit library.

Zvichienderana nemhando yebasa rekushanda, S6 pasi pemamiriro ezvinhu akakodzera inoratidza kuwedzera kwekumhanya kwekuedza kusvika ku9.5 nguva kana ichienzaniswa neCPython yenguva dzose. Paunenge uchimhanya 100 iterations yeRichards test suite, 7x speedup inoonekwa, uye kana uchimhanya bvunzo yeRaytrace, iyo inosanganisira huwandu hukuru hwemasvomhu ekuverenga, 3-4.5x kukurumidza kunoonekwa.

Pakati pemabasa akaoma kukwirisa uchishandisa S6 mapurojekiti anoshandisa iyo C API, yakadai seNumPy, pamwe nemashandiro ane chekuita nekudiwa kwekutarisa mhando dzenhamba huru yehukoshi. Kuita kwakaderera kunocherechedzwa zvakare kune imwe chete kufona kwezvishandiso-yakanyanya mabasa nekuda kwekushandiswa kweS6's yega isina kunyatsogadziriswa yePython muturikiri (iyo budiriro haina kusvika padanho rekugadzirisa nzira yekududzira). Semuenzaniso, muyedzo yeUnpack Sequence, iyo inoburitsa mahombe akakura ezvirongwa/tuples, paine kufona kamwe chete kunodzikira kusvika ku5 times, uye nekufona cyclic kuita kuri 0.97 kubva kuCPython.

Source: opennet.ru

Voeg