DeepMind ืงื•ื“ ืคืชื•ื— S6, ืกืคืจื™ื•ืช ืขื ื™ื™ืฉื•ื ืžื”ื“ืจ JIT ืขื‘ื•ืจ CPython

DeepMind, ื”ื™ื“ื•ืขื” ื‘ืคื™ืชื•ื—ื™ื” ื‘ืชื—ื•ื ื”ื‘ื™ื ื” ื”ืžืœืื›ื•ืชื™ืช, ืคืชื—ื” ืืช ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ืคืจื•ื™ืงื˜ S6, ืฉืคื™ืชื— ืžื”ื“ืจ JIT ืœืฉืคืช Python. ื”ืคืจื•ื™ืงื˜ ืžืขื ื™ื™ืŸ ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืชื•ื›ื ืŸ ื›ืกืคืจื™ื™ืช ื”ืจื—ื‘ื” ื”ืžืฉืชืœื‘ืช ืขื CPython ื”ืกื˜ื ื“ืจื˜ื™, ืžื” ืฉืžื‘ื˜ื™ื— ืชืื™ืžื•ืช ืžืœืื” ืœ-CPython ื•ืื™ื ื• ืžืฆืจื™ืš ืฉื™ื ื•ื™ ื‘ืงื•ื“ ื”ืžืชื•ืจื’ืžืŸ. ื”ืคืจื•ื™ืงื˜ ืžืชืคืชื— ืžืื– 2019, ืืš ืœืžืจื‘ื” ื”ืฆืขืจ ื”ื•ื ื”ื•ืคืกืง ื•ืื™ื ื• ืžืชืคืชื— ื™ื•ืชืจ. ืžื›ื™ื•ื•ืŸ ืฉื”ืคื™ืชื•ื—ื™ื ืฉื ื•ืฆืจื• ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ื™ื ืœืฉื™ืคื•ืจ Python, ื”ื•ื—ืœื˜ ืœืคืชื•ื— ืืช ื”ืงื•ื“ ื‘ืงื•ื“. ืงื•ื“ ื”ืžื”ื“ืจ JIT ื›ืชื•ื‘ ื‘-C++ ื•ืžื‘ื•ืกืก ืขืœ CPython 3.7. ื•ื”ื•ื ื‘ืงื•ื“ ืคืชื•ื— ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0.

ืžื‘ื—ื™ื ืช ื”ืžืฉื™ืžื•ืช ืฉื”ื•ื ื™ื›ื•ืœ ืœืคืชื•ืจ, S6 ืขื‘ื•ืจ Python ืžืฉื•ื•ื” ืœืžื ื•ืข V8 ืขื‘ื•ืจ JavaScript. ื”ืกืคืจื™ื™ื” ืžื—ืœื™ืคื” ืืช ื”ืžื˜ืคืœ ื”ืงื™ื™ื ื‘-bytecode ceval.c ื‘ื™ื™ืฉื•ื ืžืฉืœื” ืฉืžืฉืชืžืฉ ื‘ื”ื™ื“ื•ืจ JIT ื›ื“ื™ ืœื”ืื™ืฅ ืืช ื”ื‘ื™ืฆื•ืข. S6 ื‘ื•ื“ืง ื”ืื ื”ืคื•ื ืงืฆื™ื” ื”ื ื•ื›ื—ื™ืช ื›ื‘ืจ ืงื•ืžืคื™ืœื”, ื•ืื ื›ืŸ, ืžื‘ืฆืขืช ืืช ื”ืงื•ื“ ื”ืžื”ื•ื“ืจ, ื•ืื ืœื, ืžืคืขื™ืœื” ืืช ื”ืคื•ื ืงืฆื™ื” ื‘ืžืฆื‘ ืคื™ืจื•ืฉ bytecode, ื‘ื“ื•ืžื” ืœืžืคืจืฉืŸ CPython. ื‘ืžื”ืœืš ื”ืคืจืฉื ื•ืช, ื ืกืคืจ ืžืกืคืจ ื”ื”ื•ืจืื•ืช ื•ื”ืฉื™ื—ื•ืช ื”ืžื‘ื•ืฆืขื•ืช ื”ืงืฉื•ืจื•ืช ืœืคื•ื ืงืฆื™ื” ื”ืžืขื•ื‘ื“ืช. ืœืื—ืจ ื”ื’ืขื” ืœืื‘ืŸ ื“ืจืš ืžืกื•ื™ืžืช, ืžืชื—ื™ืœ ืชื”ืœื™ืš ืงื•ืžืคื™ืœืฆื™ื” ื›ื“ื™ ืœื”ืื™ืฅ ืืช ื”ืงื•ื“ ื”ืžื‘ื•ืฆืข ื‘ืชื“ื™ืจื•ืช ื’ื‘ื•ื”ื”. ื”ืงื•ืžืคื™ืœืฆื™ื” ืžืชื‘ืฆืขืช ืœื™ื™ืฆื•ื’ strongjit ื‘ื™ื ื™ื™ื, ืืฉืจ, ืœืื—ืจ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”, ืžื•ืžืจ ืœื”ื•ืจืื•ืช ืžื›ื•ื ื” ืฉืœ ืžืขืจื›ืช ื”ื™ืขื“ ื‘ืืžืฆืขื•ืช ืกืคืจื™ื™ืช asmjit.

ื‘ื”ืชืื ืœืื•ืคื™ ืขื•ืžืก ื”ืขื‘ื•ื“ื”, S6 ื‘ืชื ืื™ื ืื•ืคื˜ื™ืžืœื™ื™ื ืžื“ื’ื™ื ืขืœื™ื™ื” ื‘ืžื”ื™ืจื•ืช ื‘ื™ืฆื•ืข ื”ื‘ื“ื™ืงื” ืฉืœ ืขื“ ืคื™ 9.5 ื‘ื”ืฉื•ื•ืื” ืœ-CPython ืจื’ื™ืœ. ื›ืืฉืจ ืžืจื™ืฆื™ื 100 ืื™ื˜ืจืฆื™ื•ืช ืฉืœ ื—ื‘ื™ืœืช ื”ื‘ื“ื™ืงื•ืช ืฉืœ ืจื™ืฆ'ืจื“ืก, ื ืฆืคื” ืžื”ื™ืจื•ืช ืฉืœ ืคื™ 7, ื•ื›ืืฉืจ ืžืจื™ืฆื™ื ืืช ืžื‘ื—ืŸ Raytrace, ื”ื›ื•ืœืœ ื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ื—ื™ืฉื•ื‘ื™ื ืžืชืžื˜ื™ื™ื, ื ืฆืคื” ืžื”ื™ืจื•ืช ืฉืœ ืคื™ 3-4.5.

ื‘ื™ืŸ ื”ืžืฉื™ืžื•ืช ืฉืงืฉื” ืœื‘ืฆืข ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื‘ืืžืฆืขื•ืช S6 ื ื™ืชืŸ ืœืžืฆื•ื ืคืจื•ื™ืงื˜ื™ื ื”ืžืฉืชืžืฉื™ื ื‘-C API, ื›ืžื• NumPy, ื•ื›ืŸ ืคืขื•ืœื•ืช ื”ืงืฉื•ืจื•ืช ืœืฆื•ืจืš ื‘ื‘ื“ื™ืงืช ืกื•ื’ื™ ืžืกืคืจ ืจื‘ ืฉืœ ืขืจื›ื™ื. ื‘ื™ืฆื•ืขื™ื ื ืžื•ื›ื™ื ื ืฆืคื™ื ื’ื ืขื‘ื•ืจ ืงืจื™ืื•ืช ื‘ื•ื“ื“ื•ืช ืฉืœ ืคื•ื ืงืฆื™ื•ืช ืขืชื™ืจื•ืช ืžืฉืื‘ื™ื ืขืงื‘ ื”ืฉื™ืžื•ืฉ ื‘ื™ื™ืฉื•ื ืœื ืื•ืคื˜ื™ืžืœื™ ืฉืœ S6 ืขืฆืžื• ืฉืœ ืžืชื•ืจื’ืžืŸ Python (ื”ืคื™ืชื•ื— ืœื ื”ื’ื™ืข ืœืฉืœื‘ ืฉืœ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืžืฆื‘ ื”ืคื™ืจื•ืฉ). ืœืžืฉืœ, ื‘ืžื‘ื—ืŸ Unpack Sequence, ื”ืžืคืจืง ืกื˜ื™ื ื’ื“ื•ืœื™ื ืฉืœ ืžืขืจื›ื™ื/ื˜ื•ืคืœื™ื, ื‘ืงืจื™ืื” ื‘ื•ื“ื“ืช ื™ืฉ ื”ืื˜ื” ืฉืœ โ€‹โ€‹ืขื“ ืคื™ 5, ื•ื‘ืงืจื™ืื” ืžื—ื–ื•ืจื™ืช ื”ื‘ื™ืฆื•ืขื™ื ื”ื 0.97 ืž-CPython.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”