DeepMind ya buɗe S6, ɗakin karatu tare da aiwatar da mai tarawa JIT don CPython

DeepMind, wanda aka sani da ci gabansa a fannin fasaha na wucin gadi, ya buɗe lambar tushe na aikin S6, wanda ya kirkiro JIT compiler don harshen Python. Aikin yana da ban sha'awa saboda an tsara shi azaman ɗakin karatu mai tsawo wanda ke haɗawa tare da daidaitaccen CPython, yana tabbatar da cikakkiyar dacewa tare da CPython kuma baya buƙatar gyara lambar fassarar. Tun a shekarar 2019 ake ci gaba da gudanar da aikin, amma abin takaici an daina shi kuma ba ya ci gaba. Tun da abubuwan da aka ƙirƙira na iya zama masu amfani don haɓaka Python, an yanke shawarar buɗe tushen lambar. An rubuta lambar mai tarawa JIT a cikin C++ kuma ta dogara ne akan CPython 3.7. kuma an buɗe shi ƙarƙashin lasisin Apache 2.0.

Dangane da ayyukan da zai iya warwarewa, S6 na Python ya kwatanta da injin V8 don JavaScript. Laburaren yana maye gurbin mai sarrafa tafsirin bytecode ceval.c tare da aiwatar da kansa wanda ke amfani da harhada JIT don hanzarta aiwatarwa. S6 yana duba ko an riga an haɗa aikin na yanzu kuma, idan haka ne, yana aiwatar da lambar da aka haɗa, kuma idan ba haka ba, yana gudanar da aikin a yanayin fassarar bytecode, kama da mai fassarar CPython. Yayin fassara, ana ƙidaya adadin umarnin da aka aiwatar da kiran da ke da alaƙa da aikin da ake sarrafawa. Bayan an kai wani mataki mai mahimmanci, za a fara tsarin tattarawa don hanzarta lambar da ake aiwatarwa akai-akai. Ana aiwatar da tari zuwa matsakaicin matsakaicin ƙarfijit, wanda, bayan haɓakawa, ana jujjuya shi zuwa umarnin injin na tsarin manufa ta amfani da ɗakin karatu na asmjit.

Dangane da yanayin aikin aiki, S6 a ƙarƙashin yanayi mafi kyau yana nuna haɓakar saurin aiwatar da gwajin har zuwa sau 9.5 idan aka kwatanta da CPython na yau da kullun. Lokacin gudanar da 100 na'urorin gwajin Richards, ana lura da saurin gudu na 7x, kuma lokacin da ake gudanar da gwajin Raytrace, wanda ya ƙunshi adadi mai yawa na lissafin lissafi, ana ganin saurin 3-4.5x.

Daga cikin ayyukan da ke da wahalar haɓaka ta amfani da S6 akwai ayyukan da ke amfani da C API, kamar NumPy, da kuma ayyukan da suka danganci buƙatar duba nau'ikan adadi mai yawa. Hakanan ana lura da ƙarancin aiki don kira guda ɗaya na ayyuka masu ƙarfi na albarkatu saboda amfani da S6 na kansa wanda ba a inganta shi ba na fassarar Python (ci gaban bai kai matakin inganta yanayin fassarar ba). Misali, a cikin gwajin jerin abubuwan Unpack, wanda ke buɗe manyan jeri na arrays/tuples, tare da kira guda ɗaya akwai raguwar har zuwa sau 5, kuma tare da kiran cyclic wasan kwaikwayon shine 0.97 daga CPython.

source: budenet.ru

Add a comment