DeepMind open sourced S6, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก JIT เบชเปเบฒเบฅเบฑเบš CPython

ะšะพะผะฟะฐะฝะธั DeepMind, ะฟะพะปัƒั‡ะธะฒัˆะฐั ะธะทะฒะตัั‚ะฝะพัั‚ัŒ ัะฒะพะธะผะธ ั€ะฐะทั€ะฐะฑะพั‚ะบะฐะผะธ ะฒ ะพะฑะปะฐัั‚ะธ ะธัะบัƒััั‚ะฒะตะฝะฝะพะณะพ ะธะฝั‚ะตะปะปะตะบั‚ะฐ, ะพั‚ะบั€ั‹ะปะฐ ะธัั…ะพะดะฝั‹ะต ั‚ะตะบัั‚ั‹ ะฟั€ะพะตะบั‚ะฐ S6, ั€ะฐะทะฒะธะฒะฐะฒัˆะตะณะพ JIT-ะบะพะผะฟะธะปัั‚ะพั€ ะดะปั ัะทั‹ะบะฐ Python. ะŸั€ะพะตะบั‚ ะธะฝั‚ะตั€ะตัะตะฝ ะพั„ะพั€ะผะปะตะฝะธะตะผ ะฒ ะฒะธะดะต ะฑะธะฑะปะธะพั‚ะตะบะธ-ั€ะฐััˆะธั€ะตะฝะธั, ะธะฝั‚ะตะณั€ะธั€ัƒะตะผะพะน ั ัˆั‚ะฐั‚ะฝั‹ะผ CPython, ะพะฑะตัะฟะตั‡ะธะฒะฐัŽั‰ะตะน ะฟะพะปะฝัƒัŽ ัะพะฒะผะตัั‚ะธะผะพัั‚ัŒ ั CPython ะธ ะฝะต ั‚ั€ะตะฑัƒัŽั‰ะตะน ะผะพะดะธั„ะธะบะฐั†ะธะธ ะบะพะดะฐ ะธะฝั‚ะตั€ะฟั€ะตั‚ะฐั‚ะพั€ะฐ. ะŸั€ะพะตะบั‚ ั€ะฐะทะฒะธะฒะฐะปัั ั 2019 ะณะพะดะฐ, ะฝะพ ะบ ัะพะถะฐะปะตะฝะธัŽ ะฑั‹ะป ัะฒั‘ั€ะฝัƒั‚ ะธ ะฑะพะปัŒัˆะต ะฝะต ั€ะฐะทะฒะธะฒะฐะตั‚ัั. ะขะฐะบ ะบะฐะบ ัะพะทะดะฐะฝะฝั‹ะต ะฝะฐั€ะฐะฑะพั‚ะบะธ ะผะพะณัƒั‚ ะพะบะฐะทะฐั‚ัŒัั ะฟะพะปะตะทะฝั‹ะผะธ ะดะปั ัƒะปัƒั‡ัˆะตะฝะธั Python, ะฑั‹ะปะพ ะฟั€ะธะฝัั‚ะพ ั€ะตัˆะตะฝะธะต ะพั‚ะบั€ั‹ั‚ัŒ ะธัั…ะพะดะฝั‹ะต ั‚ะตะบัั‚ั‹. ะšะพะด JIT-ะบะพะผะฟะธะปัั‚ะพั€ะฐ ะฝะฐะฟะธัะฐะฝ ะฝะฐ ัะทั‹ะบะต C++, ะพัะฝะพะฒะฐะฝ ะฝะฐ CPython 3.7. ะธ ะพั‚ะบั€ั‹ั‚ ะฟะพะด ะปะธั†ะตะฝะทะธะตะน Apache 2.0.

ะŸะพ ั€ะตัˆะฐะตะผั‹ะผ ะทะฐะดะฐั‡ะฐะผ S6 ะดะปั Python ัั€ะฐะฒะฝะธะฒะฐะตั‚ัั ั ะดะฒะธะถะบะพะผ V8 ะดะปั JavaScript. ะ‘ะธะฑะปะธะพั‚ะตะบะฐ ะทะฐะผะตะฝัะตั‚ ััƒั‰ะตัั‚ะฒัƒัŽั‰ะธะน ะพะฑั€ะฐะฑะพั‚ั‡ะธะบ ะธะฝั‚ะตั€ะฟั€ะตั‚ะฐั‚ะพั€ะฐ ะฑะฐะนั‚ะบะพะดะฐ ceval.c ัะพะฑัั‚ะฒะตะฝะฝะพะน ั€ะตะฐะปะธะทะฐั†ะธะตะน, ะธัะฟะพะปัŒะทัƒัŽั‰ะตะน JIT-ะบะพะผะฟะธะปัั†ะธัŽ ะดะปั ัƒัะบะพั€ะตะฝะธั ะฒั‹ะฟะพะปะฝะตะฝะธั. S6 ะฟั€ะพะฒะตั€ัะตั‚, ัะบะพะผะฟะธะปะธั€ะพะฒะฐะฝะฐ ะปะธ ัƒะถะต ั‚ะตะบัƒั‰ะฐั ั„ัƒะฝะบั†ะธั ะธ, ะตัะปะธ ะดะฐ โ€” ะธัะฟะพะปะฝัะตั‚ ัะบะพะผะฟะธะปะธั€ะพะฒะฐะฝะฝั‹ะน ะบะพะด, ะฐ ะตัะปะธ ะฝะตั‚ โ€” ะทะฐะฟัƒัะบะฐะตั‚ ั„ัƒะฝะบั†ะธัŽ ะฒ ั€ะตะถะธะผะต ะธะฝั‚ะตั€ะฟั€ะตั‚ะฐั†ะธะธ ะฑะฐะนั‚ะบะพะดะฐ, ะฟะพั…ะพะถะตะผ ะฝะฐ ะธะฝั‚ะตั€ะฟั€ะตั‚ะฐั‚ะพั€ CPython. ะŸั€ะธ ะธะฝั‚ะตั€ะฟั€ะตั‚ะฐั†ะธะธ ะฟะพะดัั‡ะธั‚ั‹ะฒะฐะตั‚ัั ั‡ะธัะปะพ ะฒั‹ะฟะพะปะฝะตะฝะฝั‹ั… ะธะฝัั‚ั€ัƒะบั†ะธะน ะธ ะพะฑั€ะฐั‰ะตะฝะธะน, ัะฒัะทะฐะฝะฝั‹ั… ั ะพะฑั€ะฐะฑะฐั‚ั‹ะฒะฐะตะผะพะน ั„ัƒะฝะบั†ะธะตะน. ะŸะพัะปะต ะดะพัั‚ะธะถะตะฝะธั ะพะฟั€ะตะดะตะปั‘ะฝะฝะพะณะพ ั€ัƒะฑะตะถะฐ ะดะปั ัƒัะบะพั€ะตะฝะธั ั‡ะฐัั‚ะพ ะฒั‹ะฟะพะปะฝัะตะผะพะณะพ ะบะพะดะฐ ะธะฝะธั†ะธะธั€ัƒะตั‚ัั ะฟั€ะพั†ะตัั ะบะพะผะฟะธะปัั†ะธะธ. ะšะพะผะฟะธะปัั†ะธั ะฟั€ะพะธะทะฒะพะดะธั‚ัั ะฒ ะฟั€ะพะผะตะถัƒั‚ะพั‡ะฝะพะต ะฟั€ะตะดัั‚ะฐะฒะปะตะฝะธะต strongjit, ะบะพั‚ะพั€ะพะต ะฟะพัะปะต ะพะฟั‚ะธะผะธะทะฐั†ะธะธ ะฟั€ะตะพะฑั€ะฐะทัƒะตั‚ัั ะฒ ะผะฐัˆะธะฝะฝั‹ะต ะธะฝัั‚ั€ัƒะบั†ะธะธ ั†ะตะปะตะฒะพะน ัะธัั‚ะตะผั‹ ะฟั€ะธ ะฟะพะผะพั‰ะธ ะฑะธะฑะปะธะพั‚ะตะบะธ asmjit.

ะ’ ะทะฐะฒะธัะธะผะพัั‚ะธ ะพั‚ ั…ะฐั€ะฐะบั‚ะตั€ะฐ ะฝะฐะณั€ัƒะทะบะธ S6 ะฟั€ะธ ะพะฟั‚ะธะผะฐะปัŒะฝั‹ั… ัƒัะปะพะฒะธัั… ะดะตะผะพะฝัั‚ั€ะธั€ัƒะตั‚ ะฟะพะฒั‹ัˆะตะฝะธะต ัะบะพั€ะพัั‚ะธ ะฒั‹ะฟะพะปะฝะตะฝะธั ั‚ะตัั‚ะพะฒ ะดะพ 9.5 ั€ะฐะท ะฒ ัั€ะฐะฒะฝะตะฝะธะธ ั ะพะฑั‹ั‡ะฝั‹ะผ CPython. ะŸั€ะธ ะทะฐะฟัƒัะบะต 100 ะธั‚ะตั€ะฐั†ะธะน ั‚ะตัั‚ะพะฒะพะณะพ ะฝะฐะฑะพั€ะฐ Richards ะฝะฐะฑะปัŽะดะฐะตั‚ัั ัƒัะบะพั€ะตะฝะธะต ะฒ 7 ั€ะฐะท, ะฐ ะฟั€ะธ ะทะฐะฟัƒัะบะต ั‚ะตัั‚ะฐ Raytrace, ะฒ ะบะพั‚ะพั€ะพะผ ะฟั€ะธััƒั‚ัั‚ะฒัƒะตั‚ ะฑะพะปัŒัˆะพะน ะพะฑัŠั‘ะผ ะผะฐั‚ะตะผะฐั‚ะธั‡ะตัะบะธั… ะฒั‹ั‡ะธัะปะตะฝะธะน, โ€” ะฒ 3-4.5 ั€ะฐะทะฐ.

ะ˜ะท ะทะฐะดะฐั‡ ะบะพั‚ะพั€ั‹ะต ะฟะปะพั…ะพ ะฟะพะดะดะฐัŽั‚ัั ะพะฟั‚ะธะผะธะทะฐั†ะธะธ ะฟั€ะธ ะฟะพะผะพั‰ะธ S6, ะฝะฐะทั‹ะฒะฐัŽั‚ัั ะฟั€ะพะตะบั‚ั‹, ะธัะฟะพะปัŒะทัƒัŽั‰ะธะต C API, ั‚ะฐะบะธะต ะบะฐะบ NumPy, ะฐ ั‚ะฐะบะถะต ะพะฟะตั€ะฐั†ะธะธ, ัะฒัะทะฐะฝะฝั‹ะต ั ะฝะตะพะฑั…ะพะดะธะผะพัั‚ัŒัŽ ะฟั€ะพะฒะตั€ะบะธ ั‚ะธะฟะพะฒ ะฑะพะปัŒัˆะพะณะพ ั‡ะธัะปะฐ ะทะฝะฐั‡ะตะฝะธะน. ะะธะทะบะฐั ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ัŒ ั‚ะฐะบะถะต ะฝะฐะฑะปัŽะดะฐะตั‚ัั ะดะปั ะตะดะธะฝะธั‡ะฝั‹ั… ะฒั‹ะทะพะฒะพะฒ ั€ะตััƒั€ัะพั‘ะผะบะธั… ั„ัƒะฝะบั†ะธะน ะธะท-ะทะฐ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ะฒ S6 ัะพะฑัั‚ะฒะตะฝะฝะพะน ะฝะตะพะฟั‚ะธะผะธะทะธั€ะพะฒะฐะฝะฝะพะน ั€ะตะฐะปะธะทะฐั†ะธะธ Python-ะธะฝั‚ะตั€ะฟั€ะตั‚ะฐั‚ะพั€ะฐ (ั€ะฐะทั€ะฐะฑะพั‚ะบะฐ ะฝะต ะดะพัั‚ะธะณะปะฐ ัั‚ะฐะดะธะธ ะฟั€ะพะฒะตะดะตะฝะธั ะพะฟั‚ะธะผะธะทะฐั†ะธะธ ั€ะตะถะธะผะฐ ะธะฝั‚ะตั€ะฟั€ะตั‚ะฐั†ะธะธ). ะะฐะฟั€ะธะผะตั€, ะฒ ั‚ะตัั‚ะต Unpack Sequence, ะฒั‹ะฟะพะปะฝััŽั‰ะตะผ ั€ะฐัะฟะฐะบะพะฒะบัƒ ะฑะพะปัŒัˆะธั… ะฝะฐะฑะพั€ะพะฒ ะผะฐััะธะฒะพะฒ/ะบะพั€ั‚ะตะถะตะน, ะฟั€ะธ ะตะดะธะฝะธั‡ะฝะพะผ ะฒั‹ะทะพะฒะต ะฝะฐะฑะปัŽะดะฐั‚ัŒัั ะทะฐะผะตะดะปะตะฝะธะต ะดะพ 5 ั€ะฐะท, ะฐ ะฟั€ะธ ั†ะธะบะปะธั‡ะฝะพะผ ะฒั‹ะทะพะฒะต โ€” ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ัŒ ัะพัั‚ะฐะฒะปัะตั‚ 0.97 ะพั‚ CPython.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™