DeepMind tuwhera puna S6, he whare pukapuka ki te JIT compiler whakatinanatanga mo CPython

Ko DeepMind, e mohiotia ana mo ana whanaketanga i roto i te waahi o te matauranga mohio, kua whakatuwheratia te waehere puna o te kaupapa S6, i whakawhanakehia he JIT compiler mo te reo Python. He mea whakamere te kaupapa na te mea i hangaia hei whare pukapuka toronga e hono ana ki te CPython paerewa, me te whakarite kia hototahi katoa ki te CPython me te kore e hiahia ki te whakarereke i te waehere kaiwhakamaori. Mai i te tau 2019 e whanake ana te kaupapa, engari karekau i te whanake. I te mea he pai nga whanaketanga i hangaia hei whakapai ake i te Python, i whakatauhia kia whakatuwherahia te waehere. Kua tuhia te waehere whakahiato JIT ki te C ++ a kei runga i te CPython 3.7. he tuwhera puna i raro i te raihana Apache 2.0.

Mo nga mahi ka taea e ia te whakaoti, ka whakataurite a S6 mo Python ki te miihini V8 mo JavaScript. Ka whakakapihia e te whare pukapuka te kaiwhakamaori bytecode o naianei ceval.c me tana ake whakatinanatanga e whakamahi ana i te whakahiato JIT kia tere ake te mahi. Ka tirohia e S6 mehemea kua whakahiatohia te mahi o naianei, a, ki te pera, ka mahia te waehere kua whakahiato, ki te kore, ka whakahaere i te mahi i roto i te aratau whakamaori bytecode, he rite ki te kaiwhakamaori CPython. I te wa o te whakamaoritanga, ka tatauhia te maha o nga tohutohu me nga waea e pa ana ki te mahi e tukatukahia ana. Whai muri i te ekenga ki tetahi tohu nui, ka timatahia he tukanga whakahiato kia tere ake ai te mahi waehere. Ko te whakahiatotanga ka mahia ki roto i te tohu strongjit takawaenga, i muri i te arotautanga, ka huri hei tohutohu miihini o te punaha whaainga ma te whakamahi i te whare pukapuka asmjit.

I runga i te ahua o te mahi, ko te S6 i raro i nga tikanga tino pai e whakaatu ana i te piki o te tere o te whakamatautau ki te 9.5 nga wa ka whakaritea ki te CPython auau. I te wa e whakahaere ana i te 100 nga taapiri o te huinga whakamatautau a Richards, ka kitea he tere tere 7x, a, i te wa e whakahaere ana i te whakamatautau Raytrace, he nui te nui o nga tatauranga pangarau, ka kitea he tere 3-4.5x.

I roto i nga mahi he uaua ki te arotau ma te whakamahi i te S6 ko nga kaupapa e whakamahi ana i te C API, penei i te NumPy, me nga mahi e pa ana ki te hiahia ki te tirotiro i nga momo o te maha o nga uara. Kei te kitea hoki te iti o te mahi mo nga waea kotahi o nga mahi whakakaha rawa na te whakamahi a S6 ake i te whakatinanatanga o te kaiwhakamaori Python (kaore ano te whanaketanga i tae ki te waahi o te arotau i te aratau whakamaori). Hei tauira, i roto i te whakamatautau Unpack Sequence, e wetewete ana i nga huinga nui o nga raupapa / tuples, me te waea kotahi he puhoi ki runga ki te 5 nga wa, me te waea huringa ko te 0.97 te mahi mai i CPython.

Source: opennet.ru

Tāpiri i te kōrero