DeepMind рдУрдкрди рд╕реЛрд░реНрд╕ S6, CPython рд╕рд╛рдареА JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ рд▓рд╛рдпрдмреНрд░рд░реА

рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддреЗрдЪреНрдпрд╛ рдХреНрд╖реЗрддреНрд░рд╛рддреАрд▓ рдкреНрд░рдЧрддреАрд╕рд╛рдареА рдУрд│рдЦрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ DeepMind рдиреЗ S6 рдкреНрд░рдХрд▓реНрдкрд╛рдЪрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб рдЙрдШрдбрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдиреЗ Python рднрд╛рд╖реЗрд╕рд╛рдареА JIT рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рдкреНрд░рдХрд▓реНрдк рдордиреЛрд░рдВрдЬрдХ рдЖрд╣реЗ рдХрд╛рд░рдг рддреЗ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд▓рд╛рдпрдмреНрд░рд░реА рдореНрд╣рдгреВрди рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗ рдЖрд╣реЗ рдЬреЗ рдорд╛рдирдХ CPython рд╕рд╣ рдПрдХрддреНрд░рд┐рдд рд╣реЛрддреЗ, CPython рд╕рд╣ рдкреВрд░реНрдг рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рдХреЛрдбрдордзреНрдпреЗ рдмрджрд▓ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рддреЗ. рд╣рд╛ рдкреНрд░рдХрд▓реНрдк 2019 рдкрд╛рд╕реВрди рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рджреБрд░реНрджреИрд╡рд╛рдиреЗ рддреЛ рдмрдВрдж рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрдгрд┐ рдЖрддрд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдд рдирд╛рд╣реА. рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдШрдбрд╛рдореЛрдбреА Python рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░реВ рд╢рдХрдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдХреЛрдб рдУрдкрди рд╕реЛрд░реНрд╕ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛. JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб C++ рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рддреЛ CPython 3.7 рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ. рдЖрдгрд┐ Apache 2.0 рд▓рд╛рдпрд╕рдиреНрд╕ рдЕрдВрддрд░реНрдЧрдд рдУрдкрди рд╕реЛрд░реНрд╕ рдЖрд╣реЗ.

рддреЗ рд╕реЛрдбрд╡реВ рд╢рдХрдгрд╛рд░реНтАНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдВрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, Python рд╕рд╛рдареА S6 рдЪреА рддреБрд▓рдирд╛ JavaScript рд╕рд╛рдареА V8 рдЗрдВрдЬрд┐рдирд╢реА рдХрд░рддреЗ. рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд┐рджреНрдпрдорд╛рди рдмрд╛рдпрдЯреЗрдХреЛрдб рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рд╣рдБрдбрд▓рд░ ceval.c рд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ рдмрджрд▓рддреЗ рдЬреЗ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд▓рд╛ рдЧрддреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА JIT рд╕рдВрдХрд▓рди рд╡рд╛рдкрд░рддреЗ. S6 рд╡рд░реНрддрдорд╛рди рдлрдВрдХреНрд╢рди рдЖрдзреАрдЪ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рддреЗ рдЖрдгрд┐ рддрд╕реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ, рдЖрдгрд┐ рдирд╕рд▓реНрдпрд╛рд╕, CPython рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рдкреНрд░рдорд╛рдгреЗрдЪ, bytecode рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯреЗрд╢рди рдореЛрдбрдордзреНрдпреЗ рдлрдВрдХреНрд╢рди рдЪрд╛рд▓рд╡рддреЗ. рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯреЗрд╢рди рджрд░рдореНрдпрд╛рди, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлрдВрдХреНрд╢рдирд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╕реВрдЪрдирд╛ рдЖрдгрд┐ рдХреЙрд▓рдЪреА рд╕рдВрдЦреНрдпрд╛ рдореЛрдЬрд▓реА рдЬрд╛рддреЗ. рдард░рд╛рд╡рд┐рдХ рдореИрд▓рд╛рдЪрд╛ рджрдЧрдб рдЧрд╛рдард▓реНрдпрд╛рдирдВрддрд░, рд╡рд╛рд░рдВрд╡рд╛рд░ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реЗрд▓реНрдпрд╛ рдХреЛрдбрдЪреА рдЧрддреА рд╡рд╛рдврд╡рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реВ рдХреЗрд▓реА рдЬрд╛рддреЗ. рд╕рдВрдХрд▓рди рд╣реЗ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд╕реНрдЯреНрд░рд╛рдБрдЧрдЬрд┐рдЯ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрд╛рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдирдВрддрд░, asmjit рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░реВрди рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реАрдЪреНрдпрд╛ рдорд╢реАрди рд╕реВрдЪрдирд╛рдВрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рд╡рд░реНрдХрд▓реЛрдбрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди, рдЗрд╖реНрдЯрддрдо рдкрд░рд┐рд╕реНрдерд┐рддреАрдд S6 рдирд┐рдпрдорд┐рдд CPython рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдЪрд╛рдЪрдгреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЧрддреА 9.5 рдкрдЯ рд╡рд╛рдв рджрд░реНрд╢рд╡рддреЗ. рд░рд┐рдЪрд░реНрдбреНрд╕ рдЯреЗрд╕реНрдЯ рд╕реВрдЯрдЪреА 100 рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдЪрд╛рд▓рд╡рддрд╛рдирд╛, 7x рд╕реНрдкреАрдбрдЕрдк рдкрд╛рд╣рд┐рд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рд░реЗрдЯреНрд░реЗрд╕ рдЪрд╛рдЪрдгреА рдЪрд╛рд▓рд╡рддрд╛рдирд╛, рдЬреНрдпрд╛рдордзреНрдпреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдЧрдгрд┐рддреА рдЧрдгрдирд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рддреЗ, 3-4.5x рд╕реНрдкреАрдбрдЕрдк рджрд┐рд╕реВрди рдпреЗрддреЛ.

S6 рд╡рд╛рдкрд░реВрди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ рдХрдареАрдг рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдВрдордзреНрдпреЗ C API рд╡рд╛рдкрд░рдгрд╛рд░реЗ рдкреНрд░рдХрд▓реНрдк рдЖрд╣реЗрдд, рдЬрд╕реЗ рдХреА NumPy, рддрд╕реЗрдЪ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рддреАрд▓ рдореВрд▓реНрдпрд╛рдВрдЪреЗ рдкреНрд░рдХрд╛рд░ рддрдкрд╛рд╕рдгреНрдпрд╛рдЪреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддреЗрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдСрдкрд░реЗрд╢рдиреНрд╕. S6 рдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ Python рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░рдЪреНрдпрд╛ рдЕреЙрдкреНрдЯрд┐рдорд╛рдЗрдЬреНрдб рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдореБрд│реЗ рд╕рдВрд╕рд╛рдзрди-рдХреЗрдВрджреНрд░рд┐рдд рдлрдВрдХреНрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╕рд┐рдВрдЧрд▓ рдХреЙрд▓рд╕рд╛рдареА рджреЗрдЦреАрд▓ рдХрдореА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рджрд┐рд╕реВрди рдпреЗрддреЗ (рд╡рд┐рдХрд╛рд╕ рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯреЗрд╢рди рдореЛрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдкреЛрд╣реЛрдЪрд▓реЗрд▓рд╛ рдирд╛рд╣реА). рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЕрдирдкреЕрдХ рд╕реАрдХреНрд╡реЗрдиреНрд╕ рдЪрд╛рдЪрдгреАрдордзреНрдпреЗ, рдЬреЗ рдЕреЕрд░реЗ/рдЯреНрдпреБрдкрд▓реНрд╕рдЪреЗ рдореЛрдареЗ рд╕рдВрдЪ рдЕрдирдкреЕрдХ рдХрд░рддреЗ, рдПрдХрд╛ рдХреЙрд▓рд╕рд╣ 5 рд╡реЗрд│рд╛ рдордВрджрдЧрддреА рдЕрд╕рддреЗ рдЖрдгрд┐ рдЪрдХреНрд░реАрдп рдХреЙрд▓рд╕рд╣ рдХрд╛рдордЧрд┐рд░реА CPython рдХрдбреВрди 0.97 рдЕрд╕рддреЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛