LLVM рдХреНрд░рд┐рдПрдЯрд░ рдирд╡реАрди рдореЛрдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЛ

LLVM рдЪреЗ рд╕рдВрд╕реНрдерд╛рдкрдХ рдЖрдгрд┐ рдореБрдЦреНрдп рд╡рд╛рд╕реНрддреБрд╡рд┐рд╢рд╛рд░рдж рдЖрдгрд┐ рд╕реНрд╡рд┐рдлреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓рдБрдЧреНрд╡реЗрдЬрдЪреЗ рдирд┐рд░реНрдорд╛рддреЗ рдЦреНрд░рд┐рд╕ рд▓реЕрдЯрдирд░ рдЖрдгрд┐ Tensorflow рдЖрдгрд┐ JAX рд╕рд╛рд░рдЦреНрдпрд╛ Google AI рдкреНрд░рдХрд▓реНрдкрд╛рдВрдЪреЗ рдорд╛рдЬреА рдкреНрд░рдореБрдЦ рдЯрд┐рдо рдбреЗрд╡реНрд╣рд┐рд╕ рдпрд╛рдВрдиреА рдПрдХ рдирд╡реАрди Mojo рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕рд╛рджрд░ рдХреЗрд▓реА рдЬреА R&D рд╕рд╛рдареА рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕реБрд▓рднрддрд╛ рдЖрдгрд┐ рдЬрд▓рдж рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд┐рдВрдЧрд╕рд╣ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЗ. рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдВрддрд┐рдо рдЙрддреНрдкрд╛рджрдирд╛рдВрд╕рд╛рдареА рдЙрдкрдпреБрдХреНрддрддрд╛. рдкрд╣рд┐рд▓реЗ рдкрд╛рдпрдерди рднрд╛рд╖реЗрдЪреНрдпрд╛ рдкрд░рд┐рдЪрд┐рдд рд╡рд╛рдХреНрдпрд░рдЪрдиреЗрдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рджреБрд╕рд░реЗ рдорд╢реАрди рдХреЛрдбрд╡рд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛, рд╕реБрд░рдХреНрд╖рд┐рдд рдореЗрдорд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рд╕рд╛рдареА рдпрдВрддреНрд░рдгрд╛ рдЖрдгрд┐ рдЧрдгрдирд╛рдВрдЪреНрдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдкреНрд░рд╡реЗрдЧрд╛рд╕рд╛рдареА рд╕рд╛рдзрдирд╛рдВрдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдореБрд│реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ.

рд╣рд╛ рдкреНрд░рдХрд▓реНрдк рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯрд╕рд╛рдареА рд╡рд╛рдкрд░рдгреНрдпрд╛рд╡рд░ рдХреЗрдВрджреНрд░рд┐рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реАрдп рднрд╛рд╖рд╛ рдореНрд╣рдгреВрди рд╕рд╛рджрд░ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ рдЬреА рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрд╕рд╣ рдкрд╛рдпрдерди рднрд╛рд╖реЗрдЪреА рдХреНрд╖рдорддрд╛ рд╡рд╛рдврд╡рддреЗ рдЖрдгрд┐ рдХрд╛рд░реНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реЗрдгреАрд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рднрд╛рд╖рд╛ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рдВрдЧрдгрди, рдбреЗрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдгрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдХреНрд╖реЗрддреНрд░рд╛рдВрд╕рд╛рдареА рд▓рд╛рдЧреВ рдЖрд╣реЗ. Mojo рдЪреЗ рдПрдХ рдордиреЛрд░рдВрдЬрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдореНрд╣рдгрдЬреЗ ".mojo" рдордЬрдХреВрд░ рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдлрд╛рдЗрд▓реНрд╕рд╕рд╛рдареА рд╡рд┐рд╕реНрддрд╛рд░ рдореНрд╣рдгреВрди "ЁЯФе" рдЗрдореЛрдЬреА рдЪрд┐рдиреНрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, "helloworld.ЁЯФе").

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

рдЧрдгрдиреЗрдордзреНрдпреЗ рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд┐рд╖рдо рдкреНрд░рдгрд╛рд▓реАрдВрдЪреНрдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рдХрд▓реНрдкрд╛рдЪреА рд░рдЪрдирд╛ рдХреЗрд▓реА рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, GPUs, рд╡рд┐рд╢реЗрд╖ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдкреНрд░рд╡реЗрдЧрдХ рдЖрдгрд┐ рд╡реЗрдХреНрдЯрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рдиреНрд╕ (SIMDs) Mojo рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╕рдорд╛рдВрддрд░ рдЧрдгрдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рд╡рд┐рджреНрдпрдорд╛рди CPython рдЪреНрдпрд╛ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдХрд╛рд░реНрдпрд╛рдд рд╕рд╛рдореАрд▓ рд╣реЛрдгреНрдпрд╛рдРрд╡рдЬреА, Python рднрд╛рд╖реЗрдЪрд╛ рдПрдХ рд╡реЗрдЧрд│рд╛ рдЙрдкрд╕рдВрдЪ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рдХрд╛рд░рдг рд╕рдВрдХрд▓рд┐рдд рдлреЛрдХрд╕, рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдВрдЪреЗ рдПрдХрддреНрд░реАрдХрд░рдг рдЖрдгрд┐ рдореВрд▓рднреВрддрдкрдгреЗ рднрд┐рдиреНрди рдЕрдВрддрд░реНрдЧрдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪрд╛ рд╡рд╛рдкрд░ рдореНрд╣рдгреВрди рдирдореВрдж рдХреЗрд▓реЗ рдЖрд╣реЗ рдЬреЗ рдХреЛрдбрд▓рд╛ рдЕрдиреБрдорддреА рджреЗрддреЗ. GPU рдЖрдгрд┐ рд╡рд┐рд╡рд┐рдз рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдкреНрд░рд╡реЗрдЧрдХрд╛рдВрд╡рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдореЛрдЬреЛрдЪреНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдВрдЪрд╛ CPython рд╕рд╣ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рд╕реБрд╕рдВрдЧрддрддреЗрдЪреЗ рдкрд╛рд▓рди рдХрд░рдгреНрдпрд╛рдЪрд╛ рдорд╛рдирд╕ рдЖрд╣реЗ.

рдореЛрдЬреЛрдЪрд╛ рд╡рд╛рдкрд░ JIT рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯреЗрд╢рди рдореЛрдбрдордзреНрдпреЗ рдЖрдгрд┐ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕ (AOT, рдЕрдЧреЛрджрд░-рдСрдл-рдЯрд╛рдЗрдо) рдордзреНрдпреЗ рд╕рдВрдХрд▓рдирд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдХрдВрдкрд╛рдЗрд▓рд░рдордзреНрдпреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди, рдХреЕрд╢рд┐рдВрдЧ рдЖрдгрд┐ рд╡рд┐рддрд░рд┐рдд рд╕рдВрдХрд▓рдирд╛рд╕рд╛рдареА рдЕрдВрдЧрднреВрдд рдЖрдзреБрдирд┐рдХ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЖрд╣реЗ. рдореЛрдЬреЛ рднрд╛рд╖реЗрддреАрд▓ рд╕реНрддреНрд░реЛрдд рдордЬрдХреВрд░ рдПрд▓рдПрд▓рд╡реНрд╣реАрдПрдо рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд▓реЛ-рд▓реЗрд╡реНрд╣рд▓ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдХреЛрдб рдПрдордПрд▓рдЖрдпрдЖрд░ (рдорд▓реНрдЯреА-рд▓реЗрд╡реНрд╣рд▓ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд░рд┐рдкреНрд░реЗрдЭреЗрдВрдЯреЗрд╢рди) рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдЖрд▓реЗрдЦрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕ рдЕрдиреБрдХреВрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд. рдХрдВрдкрд╛рдЗрд▓рд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╢реАрди рдХреЛрдб рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА MLIR рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рдгрд╛рд░реЗ рд╡рд┐рд╡рд┐рдз рдмреЕрдХрдПрдВрдб рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ.

рдЧрдгрдирд╛ рд╡реЗрдЧрд╡рд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдпрдВрддреНрд░рдгреЗрдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓реНрдпрд╛рдиреЗ, рдЧрд╣рди рдЧрдгрдирд╛рд╕рд╣, C / C ++ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕рд╛рдзреНрдп рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдордБрдбрд▓рдмреНрд░реЙрдЯ рд╕реЗрдЯ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреА рдЪрд╛рдЪрдгреА рдХрд░рддрд╛рдирд╛, рд╕рдВрдХрд▓рд┐рдд рдореЛрдЬреЛ рдНрдкреНрд▓рд┐рдХреЗрд╢рди, AWS рдХреНрд▓рд╛рдЙрдб (r7iz.metal-16xl) рдордзреНрдпреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛рд╡рд░, C++ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА (6 рд╕реЗ. рд╡рд┐. 0.03 рд╕реЗ.) рдкреЗрдХреНрд╖рд╛ 0.20 рдкрдЯ рд╡реЗрдЧрд╡рд╛рди рд╣реЛрддреЗ. .), рддрд╕реЗрдЪ рд╕реНрдЯреЙрдХ CPython 35 (3.10.9 sec vs 0.03 sec) рд╡рд╛рдкрд░реВрди Python рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирдкреЗрдХреНрд╖рд╛ 1027 рд╣рдЬрд╛рд░ рдкрдЯ рд╡реЗрдЧрд╡рд╛рди рдЖрдгрд┐ PYPY (1500 рд╕реЗрдХрдВрдж рд╡рд┐ 0.03 рд╕реЗрдХрдВрдж) рд╡рд╛рдкрд░реВрди 46.1 рдкрдЯ рд╡реЗрдЧрд╡рд╛рди.

рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖реЗрддреНрд░рд╛рддреАрд▓ рдХрд╛рдордЧрд┐рд░реАрдЪреЗ рдореВрд▓реНрдпрдорд╛рдкрди рдХрд░рддрд╛рдирд╛, рдореЛрдЬреЛ рднрд╛рд╖реЗрдд рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдореЙрдбреНрдпреБрд▓рд░ рдЗрдиреНрдлрд░рдиреНрд╕ рдЗрдВрдЬрд┐рди рдПрдЖрдп рд╕реНрдЯреЕрдХ, рдЯреЗрдиреНрд╕рд░рдлреНрд▓реЛ рд▓рд╛рдпрдмреНрд░рд░реАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реЛрд▓реНрдпреВрд╢рдирдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд, рдЗрдВрдЯреЗрд▓рд╕рд╣ рд╕рд┐рд╕реНрдЯрдорд╡рд░ 3 рдкрдЯ рд╡реЗрдЧрд╡рд╛рди рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдЖрд▓реЗ. рднрд╛рд╖реЗрдЪреНрдпрд╛ рдореЙрдбреЗрд▓рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдирд╛ рдкреНрд░реЛрд╕реЗрд╕рд░, рд╢рд┐рдлрд╛рд░рд╕ рдЬрдирд░реЗрд╢рди рдореЙрдбреЗрд▓рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рддрд╛рдирд╛ 6.4 рдкрдЯ рд╡реЗрдЧрд╡рд╛рди рдЖрдгрд┐ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓ рдорд╛рд╣рд┐рддреАрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореЙрдбреЗрд▓рд╕рд╣ рдХрд╛рдо рдХрд░рддрд╛рдирд╛ 2.1 рдкрдЯ рд╡реЗрдЧрд╡рд╛рди. AMD рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд╛рдкрд░рддрд╛рдирд╛, Mojo рд╡рд╛рдкрд░рддрд╛рдирд╛ рдирдлрд╛ 3.2, 5 рдЖрдгрд┐ 2.2 рдкрдЯ рд╣реЛрддрд╛ рдЖрдгрд┐ ARM рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд╛рдкрд░рддрд╛рдирд╛ - рдЕрдиреБрдХреНрд░рдореЗ 5.3, 7.5 рдЖрдгрд┐ 1.7 рдкрдЯ. PyTorch-рдЖрдзрд╛рд░рд┐рдд рд╕реЛрд▓реНрдпреВрд╢рди Mojo рдкреЗрдХреНрд╖рд╛ Intel CPU рд╡рд░ 1.4, 1.1 рдЖрдгрд┐ 1.5 рдкрдЯ, AMD CPU рд╡рд░ 2.1, 1.2 рдЖрдгрд┐ 1.5 рдкрдЯ рдЖрдгрд┐ ARM CPU рд╡рд░ 4, 4.3 рдЖрдгрд┐ 1.3 рдкрдЯреАрдиреЗ рдорд╛рдЧреЗ рдкрдбрд▓реЗ.

LLVM рдХреНрд░рд┐рдПрдЯрд░ рдирд╡реАрди рдореЛрдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЛ

рд╣реА рднрд╛рд╖рд╛ рд╕реНрдЯреЕрдЯрд┐рдХ рдЯрд╛рдпрдкрд┐рдВрдЧ рдЖрдгрд┐ рд▓реЛ-рд▓реЗрд╡реНрд╣рд▓ рдореЗрдорд░реА-рд╕реЗрдл рдлреАрдЪрд░реНрд╕рдирд╛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддреЗ рдЬреА рд░рд╕реНрдЯ рдлреАрдЪрд░реНрд╕рдЪреА рдЖрдард╡рдг рдХрд░реВрди рджреЗрддреЗ рдЬрд╕реЗ рдХреА рд░реЗрдлрд░рдиреНрд╕ рд▓рд╛рдИрдлрдЯрд╛рдИрдо рдЯреНрд░реЕрдХрд┐рдВрдЧ рдЖрдгрд┐ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдмреЛрд░реЛрдЗрдВрдЧ рдЪреЗрдХрд░ (рдмреЛрд░реЛ рдЪреЗрдХрд░). рдкреЙрдЗрдВрдЯрд░реНрд╕рд╕рд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рднрд╛рд╖рд╛ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдХрд╛рдорд╛рд╕рд╛рдареА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреЙрдЗрдВрдЯрд░ рдкреНрд░рдХрд╛рд░ рд╡рд╛рдкрд░реВрди рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдореЛрдбрдордзреНрдпреЗ рдореЗрдорд░реАрдордзреНрдпреЗ рдереЗрдЯ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ, рд╡реИрдпрдХреНрддрд┐рдХ SIMD рд╕реВрдЪрдирд╛рдВрд╡рд░ рдХреЙрд▓ рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╡рд┐рд╕реНрддрд╛рд░рд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ. TensorCores рдЖрдгрд┐ AMX рдореНрд╣рдгреВрди.

LLVM рдХреНрд░рд┐рдПрдЯрд░ рдирд╡реАрди рдореЛрдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЛ

рд╕рд░реНрд╡ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд╕рд╛рдареА рд╕реНрдкрд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА рдХреНрд▓рд╛рд╕рд┐рдХ рдЖрдгрд┐ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрд╛рдпрдерди рдХреЛрдбрдЪреЗ рдкреГрдердХреНрдХрд░рдг рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, "def" рдРрд╡рдЬреА рд╕реНрд╡рддрдВрддреНрд░ рдХреАрд╡рд░реНрдб "fn" рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЖрд╣реЗ. рддреНрдпрд╛рдЪрдкреНрд░рдорд╛рдгреЗ рдХреНрд▓рд╛рд╕реЗрд╕рд╕рд╛рдареА, рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдВрдкрд╛рдЗрд▓рдЪреНрдпрд╛ рд╡реЗрд│реА рдореЗрдорд░реАрдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╕реНрдЯреЕрдЯрд┐рдХрд▓реА рдкреЕрдХ рдХрд░рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓ (C рдкреНрд░рдорд╛рдгреЗ), "class" рдРрд╡рдЬреА рддреБрдореНрд╣реА "struct" рдЯрд╛рдЗрдк рдХрд░реВ рд╢рдХрддрд╛. C/C ++ рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рдлрдХреНрдд рдореЙрдбреНрдпреВрд▓реНрд╕ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рд╢рдХреНрдп рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЧрдгрд┐рдд рд▓рд╛рдпрдмреНрд░рд░реАрддреВрди cos рдлрдВрдХреНрд╢рди рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА "from "math.h" import cos рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛.

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

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