S6, is leabharlann tiomsaithe JIT aonair é do CPython
aigne, aitheanta mar gheall ar a fhorbairtí i réimse na hintleachta saorga, d'fhógair sé le déanaí go Tá cinneadh déanta aige cód foinse an tionscadail S6 a scaoileadh, a d’fhorbair sé as tiomsaitheoir JIT don teanga Python.
Tá an tionscadal suimiúil mar gheall ar deartha mar leabharlann síneadh is féidir a chomhtháthú le CPython caighdeánach, a soláthraíonn sé comhoiriúnacht iomlán CPython agus ní gá modhnú a dhéanamh air den chód ateangaire. Tá an tionscadal á fhorbairt ó 2019, ach ar an drochuair tá sé scálú siar agus níl sé á fhorbairt a thuilleadh.
Ba thionscadal é S6 ar cuireadh tús leis laistigh de DeepMind in 2019 chun CPython a bhrostú le tiomsú díreach in am ("JIT"). Chuirfí na feidhmeanna seo ar fáil mar ghnáthleabharlann Python agus ní bheadh gá le haon athruithe ar an ateangaire CPython. Bhí sé i gceist ag S6 a dhéanamh do Python an méid a rinne V8 do Javascript (is é an t-ainm ómós do V8). Bhí an obair bunaithe ar leagan CPython 3.7. Ag brath ar an ualach oibre, chonaiceamar luasanna suas le 9.5x i tagarmharcanna coitianta.
Is é an phríomhchúis gur socraíodh an cód foinse a scaoileadh, ceann acu agus mar a luadh cheana ná gur stop an tionscadal le tacaíocht a fháil, tugadh ceann eile de na príomhchúiseanna gur féidir, bunaithe ar na forbairtí a cruthaíodh, a bheith úsáideach fós chun python a fheabhsú. .
Stopamar ag obair ar S6 go hinmheánach. Mar sin, tá an stór seo curtha i gcartlann agus nílimid ag glacadh le hiarratais nó ceisteanna tarraingte. Chuireamar foinsithe oscailte agus chuireamar forbhreathnú dearaidh ar fáil thíos chun comhráite a spreagadh laistigh de phobal Python agus chun obair amach anseo a spreagadh chun Python a fheabhsú.
Maidir le feidhmiú S6, ba cheart dúinn é sin a lua S6 do Python i gcomparáid le V8 inneall do JavaScript i dtéarmaí tascanna a réitíonn sé. Cuireann an leabharlann a feidhmchlár féin in ionad an tiománaí ateangaire bytecode ceval.c atá ann cheana féin a úsáideann tiomsú JIT chun cur i gcrích a bhrostú.
Seiceálann S6 an bhfuil an fheidhm reatha curtha le chéile cheana féin agus, má tá, an cód tiomsaithe a fhorghníomhú, agus mura ndéanann, an fheidhm a fhorghníomhú i modh léirmhínithe beart-chóid cosúil leis an ateangaire CPython. Áiríonn an léirmhíniú líon na ráiteas agus na nglaonna a rinneadh a bhaineann leis an bhfeidhm atá á próiseáil.
Tar éis cloch mhíle áirithe a bhaint amach, cuirtear tús leis an bpróiseas tógála chun an cód a bhrostú a ritheann go minic. Déantar an tiomsú ar an ionadaíocht láidirjit idirmheánach, a dhéantar, tar éis leas iomlán a bhaint as, a thiontú go dtí treoracha meaisín an chórais sprioc ag baint úsáide as an leabharlann asmjit.
Ag brath ar nádúr an ualaigh, faoi na coinníollacha is fearr is féidir, léiríonn S6 méadú ar luas forghníomhaithe tástála suas le 9,5 uair i gcomparáid le CPython rialta.
Nuair a dhéantar 100 atriall ó shraith tástála Richards, tá luasghéarú 7 n-uaire, agus nuair a bhíonn an tástáil Raytrace á rith, ina bhfuil go leor matamaitice, tá sé 3 go 4,5 huaire níos tapúla.
Tascanna atá deacair a bharrfheabhsú le S6 Is iad na tionscadail a úsáideann an API C, mar shampla NumPy, chomh maith le hoibríochtaí a bhaineann leis an ngá atá le cineálacha líon mór luachanna a sheiceáil.
Feictear drochfheidhmíocht freisin i gcás glaonna aonfheidhme a ídíonn go leor acmhainní mar gheall ar chur i bhfeidhm neamhoptamaithe an ateangaire S6 Python a úsáid (níl an fhorbairt tar éis céim leas iomlán a bhaint as modh ateangaireachta).
Mar shampla, sa tástáil Seicheamh Díphacáil, a dhíphacáil tacair mhóra eagair/tupaill, léiríonn glao amháin moilliú suas le 5 huaire, agus tugann glao timthriallach 0,97 ó CPython.
Ar deireadh dóibh siúd ar spéis leo níos mó eolais a fháil air, ba chóir go mbeadh a fhios agat go bhfuil an cód tiomsaitheora JIT scríofa i C ++ agus tá sé bunaithe faoi láthair ar CPython 3.7, chomh maith leis an bhfíric go bhfuil an cód foinse oscailte cheana féin faoi cheadúnas Apache 2.0 agus is féidir dul i gcomhairle leis ón nasc thíos.
Bí ar an chéad trácht