DeepMind open sourced S6, kahi waihona me kahi JIT compiler hoʻokō no CPython

Ua wehe ʻo DeepMind, i ʻike ʻia no kāna mau hoʻomohala ʻana i ke kahua o ka naʻauao artificial, i ke kumu kumu o ka papahana S6, nāna i hoʻomohala i kahi hui JIT no ka ʻōlelo Python. He mea hoihoi ka papahana no ka mea, ua hoʻolālā ʻia ʻo ia ma ke ʻano he waihona hoʻonui e hoʻohui pū me CPython maʻamau, e hōʻoia ana i ka hoʻokō piha ʻana me CPython a ʻaʻole pono e hoʻololi i ke code unuhi. Ke ulu nei ka papahana mai ka makahiki 2019, akā naʻe, ua hoʻopau ʻia a ʻaʻole e ulu hou ana. No ka mea hiki ke hoʻohana ʻia nā mea hoʻomohala no ka hoʻomaikaʻi ʻana iā Python, ua hoʻoholo ʻia e wehe i ke kumu o ke code. Ua kākau ʻia ka code compiler JIT ma C++ a ua hoʻokumu ʻia ma CPython 3.7. a ua wehe ʻia ma lalo o ka laikini Apache 2.0.

Ma nā ʻōlelo o nā hana hiki iā ia ke hoʻoponopono, hoʻohālikelike ʻo S6 no Python i ka mīkini V8 no JavaScript. Hoʻololi ka waihona i ka bytecode interpreter handler ceval.c me kāna hoʻokō ponoʻī e hoʻohana ana i ka JIT compilation e wikiwiki i ka hoʻokō. Nānā ʻo S6 inā ua hui mua ʻia ka hana o kēia manawa a, inā pēlā, hoʻokō i ke code i hōʻuluʻulu ʻia, a inā ʻaʻole, holo ka hana ma ke ʻano unuhi ʻōlelo bytecode, e like me ka unuhi unuhi CPython. Ma ka wehewehe ʻana, helu ʻia ka helu o nā ʻōlelo aʻoaʻo a me nā kelepona e pili ana i ka hana e hana ʻia nei. Ma hope o ka hōʻea ʻana i kekahi milestone, hoʻomaka ʻia kahi kaʻina hana e hoʻolalelale i ke code i hoʻokō pinepine ʻia. Hoʻopili ʻia ka hui ʻana i kahi hōʻike strongjit waena, a ma hope o ka optimization, ua hoʻololi ʻia i loko o nā ʻōkuhi mīkini o ka ʻōnaehana target e hoʻohana ana i ka waihona asmjit.

Ma muli o ke ʻano o ka hana, S6 ma lalo o nā kūlana maikaʻi loa e hōʻike ana i ka piʻi ʻana o ka wikiwiki hoʻokō hoʻokolohua a hiki i ka 9.5 mau manawa i hoʻohālikelike ʻia me CPython maʻamau. I ka wā e holo ana i 100 iterations o ka Richards ho'āʻo suite, he 7x ka wikiwiki, a i ka holo ana i ka Raytrace hoao, e komo ana i ka nui o ka makemakika helu, he 3-4.5x wikiwiki.

Ma waena o nā hana paʻakikī i ka hoʻohana ʻana i ka S6 he mau papahana e hoʻohana ana i ka C API, e like me NumPy, a me nā hana e pili ana i ka pono e nānā i nā ʻano o ka nui o nā waiwai. ʻIke ʻia ka haʻahaʻa haʻahaʻa no nā kelepona hoʻokahi o nā hana koʻikoʻi ma muli o ka hoʻohana ʻana o S6 ponoʻī unoptimized hoʻokō o ka Python unuhi (ʻaʻole i hiki i ka hoʻomohala ʻana i ka pae o ka hoʻonui ʻana i ke ʻano wehewehe). No ka laʻana, i ka ho'āʻo Unpack Sequence, e wehe ana i nā pūʻulu nui o nā arrays / tuples, me ka leo hoʻokahi aia ka lohi a hiki i 5 mau manawa, a me ke kelepona cyclic ka hana mai CPython.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka