I-DeepMind evulekile yomthombo we-S6, umtapo wolwazi onokusetshenziswa komhlanganisi we-JIT we-CPython

I-DeepMind, eyaziwa ngentuthuko yayo emkhakheni wezobuhlakani bokwenziwa, ivule ikhodi yomthombo wephrojekthi ye-S6, eyakha umdidiyeli we-JIT wolimi lwePython. Le phrojekthi iyathakazelisa ngoba yakhelwe njengomtapo wolwazi ohlanganisa ne-CPython ejwayelekile, iqinisekisa ukuhambisana okugcwele ne-CPython futhi ayidingi ukuguqulwa kwekhodi yomtoliki. Le phrojekthi ibilokhu ithuthukiswa kusukela ngo-2019, kodwa ngeshwa yanqanyulwa futhi ayisathuthuki. Njengoba ukuthuthukiswa okudaliwe kungase kube usizo ekuthuthukiseni i-Python, kunqunywe ukuvula umthombo wekhodi. Ikhodi ye-JIT compiler ibhalwe nge-C++ futhi isekelwe ku-CPython 3.7. futhi ivulekele umthombo ngaphansi kwelayisensi ye-Apache 2.0.

Ngokwemisebenzi engayixazulula, i-S6 yePython iqhathaniswa nenjini ye-V8 yeJavaScript. Ilabhulali ithatha indawo yesibambi sotolika esikhona se-bytecode i-ceval.c ngokusetshenziswa kwayo okusebenzisa ukuhlanganiswa kwe-JIT ukuze kusheshiswe ukusebenza. I-S6 ihlola ukuthi umsebenzi wamanje usuvele uhlanganisiwe futhi, uma kunjalo, isebenzise ikhodi ehlanganisiwe, futhi uma kungenjalo, iqhuba umsebenzi ngemodi yokutolika ye-bytecode, efana nomhumushi we-CPython. Phakathi nokuhumusha, inombolo yemiyalelo ekhishiwe namakholi ahlotshaniswa nomsebenzi ocutshungulwayo ibalwa. Ngemva kokufinyelela ingqopha-mlando ethile, inqubo yokuhlanganisa iyaqalwa ukuze kusheshiswe ikhodi evame ukukhishwa. Ukuhlanganiswa kwenziwa kube ukumelwa kwe-strongjit okumaphakathi, okuthi, ngemva kokwenza kahle, kuguqulelwe kumiyalo yomshini wesistimu eqondiwe kusetshenziswa umtapo wezincwadi we-asmjit.

Ngokuya ngemvelo yomthwalo womsebenzi, i-S6 ngaphansi kwezimo ezifanele ibonisa ukwanda kwesivinini sokwenza ukuhlolwa okufika ezikhathini ezingu-9.5 uma kuqhathaniswa ne-CPython evamile. Lapho usebenzisa i-100 iterations ye-Richards test suite, i-speedup engu-7x iyabonwa, futhi lapho kuqhuba ukuhlolwa kwe-Raytrace, okubandakanya inani elikhulu lezibalo zezibalo, ukusheshisa kwe-3-4.5x kuyabonwa.

Phakathi kwemisebenzi okunzima ukuyithuthukisa usebenzisa i-S6 kukhona amaphrojekthi asebenzisa i-C API, njenge-NumPy, kanye nemisebenzi ehlobene nesidingo sokuhlola izinhlobo zenani elikhulu lamanani. Ukusebenza okuphansi kuphinde kuqashelwe ngocingo olulodwa lwemisebenzi edinga izinsiza ngenxa yokusetshenziswa kokusetshenziswa okungalungiselelwe kahle kwe-S6 komhumushi wePython (ukuthuthukiswa akukakafinyeleli esigabeni sokuthuthukisa imodi yokuhumusha). Isibonelo, ekuhlolweni kwe-Unpack Sequence, evula amasethi amakhulu ama-array/ama-tuples, ngekholi eyodwa kukhona ukwehla okufika ezikhathini ezingu-5, futhi ngekholi yomjikelezo ukusebenza kungu-0.97 ukusuka ku-CPython.

Source: opennet.ru

Engeza amazwana