ΠšΡ€Π΅Π°Ρ‚ΠΎΡ€ΠΎΡ‚ Π½Π° LLVM Ρ€Π°Π·Π²ΠΈΠ²Π° Π½ΠΎΠ² програмски јазик Mojo

ΠšΡ€ΠΈΡ Π›Π°Ρ‚Π½Π΅Ρ€, основач ΠΈ Π³Π»Π°Π²Π΅Π½ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ Π½Π° LLVM ΠΈ ΠΊΡ€Π΅Π°Ρ‚ΠΎΡ€ Π½Π° програмскиот јазик Swift, ΠΈ Π’ΠΈΠΌ Π”Π΅Ρ˜Π²ΠΈΡ, ΠΏΠΎΡ€Π°Π½Π΅ΡˆΠ΅Π½ ΡˆΠ΅Ρ„ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ Π·Π° Π²Π΅ΡˆΡ‚Π°Ρ‡ΠΊΠ° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ†ΠΈΡ˜Π° Π½Π° Google, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Tensorflow ΠΈ JAX, Π²ΠΎΠ²Π΅Π΄ΠΎΠ° Π½ΠΎΠ² програмски јазик, Mojo, кој ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° Π»Π΅ΡΠ½ΠΎΡ‚ΠΈΡ˜Π° Π½Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° ΠΈΡΡ‚Ρ€Π°ΠΆΡƒΠ²Π°ΡšΠ΅ ΠΈ Π±Ρ€Π·ΠΎ создавањС Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ²ΠΈ со ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π» Π·Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΡ€Π°Ρ˜Π½ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ со високи пСрформанси. ΠŸΡ€Π²ΠΈΠΎΡ‚ Π΅ постигнат ΠΏΡ€Π΅ΠΊΡƒ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° ΠΏΠΎΠ·Π½Π°Ρ‚Π°Ρ‚Π° синтакса Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Python, Π° Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ ΠΏΡ€Π΅ΠΊΡƒ способноста Π·Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°ΡšΠ΅ Π²ΠΎ машински ΠΊΠΎΠ΄, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° бСзбСдност Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° ΠΈ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° хардвСрско Π·Π°Π±Ρ€Π·ΡƒΠ²Π°ΡšΠ΅.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π΅ фокусиран Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π²ΠΎ областа Π½Π° ΠΌΠ°ΡˆΠΈΠ½ΡΠΊΠΎΡ‚ΠΎ ΡƒΡ‡Π΅ΡšΠ΅, Π½ΠΎ Π΅ прСтставСн ΠΊΠ°ΠΊΠΎ јазик Π·Π° ΠΎΠΏΡˆΡ‚Π° Π½Π°ΠΌΠ΅Π½Π° кој Π³ΠΈ ΠΏΡ€ΠΎΡˆΠΈΡ€ΡƒΠ²Π° моТноститС Π½Π° Python со систСмски програмски Π°Π»Π°Ρ‚ΠΊΠΈ ΠΈ Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ Π·Π° ΡˆΠΈΡ€ΠΎΠΊ опсСг Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π»ΠΈΠ² Π·Π° области ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС ΠΏΡ€Π΅ΡΠΌΠ΅Ρ‚ΡƒΠ²Π°ΡšΠ΅ со високи пСрформанси, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π°. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Π° карактСристика Π½Π° Mojo Π΅ моТноста Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ Π·Π½Π°ΠΊΠΎΡ‚ Π·Π° Π΅ΠΌΠΎΡ‚ΠΈΠΊΠΎΠ½ΠΈ β€žπŸ”₯β€œ ΠΊΠ°ΠΊΠΎ наставка Π·Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ со ΠΊΠΎΠ΄ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€žhelloworld.πŸ”₯β€œ), ΠΏΠΎΠΊΡ€Π°Ρ˜ наставката Π·Π° тСкст β€ž.mojoβ€œ.

Π’ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Π΅ Π²ΠΎ Ρ„Π°Π·Π° Π½Π° ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π΅Π½ Ρ€Π°Π·Π²ΠΎΡ˜ ΠΈ само онлајн ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΎΡ‚ Π΅ ΠΏΠΎΠ½ΡƒΠ΄Π΅Π½ Π·Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅. ОддСлни склопови Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ систСми сС Π²Π΅Ρ‚Π΅Π½ΠΈ Π΄Π΅ΠΊΠ° ќС Π±ΠΈΠ΄Π°Ρ‚ објавСни ΠΏΠΎΠ΄ΠΎΡ†Π½Π°, ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС Π΄ΠΎΠ±ΠΈΡ˜Π°Ρ‚ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ‚Π° Π²Π΅Π±-ΠΎΠΊΠΎΠ»ΠΈΠ½Π°. Π˜Π·Π²ΠΎΡ€Π½ΠΈΠΎΡ‚ ΠΊΠΎΠ΄ Π·Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚, JIT ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΡΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ° ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ сС ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° сС ΠΎΡ‚Π²ΠΎΡ€ΠΈ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС Π·Π°Π²Ρ€ΡˆΠΈ Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° (ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π·Π°Π΄ Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π²Ρ€Π°Ρ‚ΠΈ потсСтува Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚Π½Π°Ρ‚Π° Ρ„Π°Π·Π° Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° LLVM, Clang ΠΈ Π‘Π²ΠΈΡ„Ρ‚). Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ синтаксата Mojo сС заснова Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Python, Π° систСмот Π½Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Π΅ блиску Π΄ΠΎ C/C++, Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Π°Ρ‚ Π΄Π° Ρ€Π°Π·Π²ΠΈΡ˜Π°Ρ‚ Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΎΡ‚ Π½Π° постоСчкитС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ напишани Π²ΠΎ C/C++ ΠΈ Python Π½Π° Mojo, ΠΊΠ°ΠΊΠΎ ΠΈ Π΄Π° сС Ρ€Π°Π·Π²ΠΈΡ˜Π°Ρ‚ Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΊΠΎΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π°Ρ‚ Python ΠΊΠΎΠ΄ ΠΈ Mojo.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π΅ Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ Π΄Π° Π³ΠΈ Π²ΠΊΠ»ΡƒΡ‡ΠΈ достапнитС хардвСрски рСсурси Π½Π° Ρ…Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½ΠΈ систСми Π²ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° прСсмСткитС. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈΡ‚Π΅ процСсори, ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π°ΠΊΡ†Π΅Π»Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° машинско ΡƒΡ‡Π΅ΡšΠ΅ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° инструкции Π½Π° процСсорот (SIMD) ΠΌΠΎΠΆΠ΅ Π΄Π° сС користат Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Mojo ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° прСсмСткитС. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° Ρ€Π°Π·Π²ΠΈΠ²Π°ΡšΠ΅ Π½Π° посСбна ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΏΠ° Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Python намСсто ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΠ½ постоСчката Ρ€Π°Π±ΠΎΡ‚Π° Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° CPython Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ Ρ„ΠΎΠΊΡƒΡΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π°, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° способноститС Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅ Π½Π° систСмот ΠΈ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° која Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ процСсори ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ хардвСрски Π°ΠΊΡ†Π΅Π»Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ. Π‘Π΅ΠΏΠ°ΠΊ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° Mojo ΠΈΠΌΠ°Π°Ρ‚ Π½Π°ΠΌΠ΅Ρ€Π° Π΄Π° останат ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½ΠΈ со CPython ΠΊΠΎΠ»ΠΊΡƒ ΡˆΡ‚ΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ повСќС.

Mojo ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи ΠΈ Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ˜Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ JIT, ΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π° Π²ΠΎ ΠΈΠ·Π²Ρ€ΡˆΠ½ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ (AOT, ΠΏΡ€Π΅Π΄Π²Ρ€Π΅ΠΌΠ΅). ΠšΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ ΠΈΠΌΠ° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° автоматска ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π°, ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅ ΠΈ дистрибуирана ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π°. Π˜Π·Π²ΠΎΡ€Π½ΠΈΡ‚Π΅ тСкстови Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Моџо сС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π°Ρ‚ Π²ΠΎ срСдСн ΠΊΠΎΠ΄ Π½Π° ниско Π½ΠΈΠ²ΠΎ MLIR (ΠœΡƒΠ»Ρ‚ΠΈ-Π½ΠΈΠ²ΠΎ Π½Π° срСдно ΠΏΡ€Π΅ΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅), Ρ€Π°Π·Π²ΠΈΠ΅Π½ ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ LLVM ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ моТности Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΡ‚ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. ΠšΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° користитС Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΠ·Π°Π΄ΠΈΠ½ΠΈ ΠΊΠΎΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°Π°Ρ‚ MLIR Π·Π° Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚Π΅ машински ΠΊΠΎΠ΄.

ΠšΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ хардвСрски ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Π·Π°Π±Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° прСсмСткитС ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° сС постигнат пСрформанси ΡˆΡ‚ΠΎ сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ C/C++ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½ΠΈΡ‚Π΅ прСсмСтки. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° мноТСството Mandelbrot, ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Mojo ΠΊΠΎΠ³Π° Π΅ ΠΈΠ·Π²Ρ€ΡˆΠ΅Π½Π° Π²ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ‚ AWS (r7iz.metal-16xl) сС ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° Π΅ 6 ΠΏΠ°Ρ‚ΠΈ ΠΏΠΎΠ±Ρ€Π·Π° ΠΎΠ΄ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π²ΠΎ C++ (0.03 сСк. наспроти 0.20 сСк.), Π° исто Ρ‚Π°ΠΊΠ° 35 илјади ΠΏΠ°Ρ‚ΠΈ ΠΏΠΎΠ±Ρ€Π·ΠΎ ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Python ΠΊΠΎΠ³Π° сС користи стандардниот CPython 3.10.9 (0.03 сСк. наспроти 1027 сСк.) ΠΈ 1500 ΠΏΠ°Ρ‚ΠΈ ΠΏΠΎΠ±Ρ€Π·ΠΎ ΠΊΠΎΠ³Π° сС користи PYPY (0.03 сСк. наспроти 46.1 сСк.). .

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° пСрформанситС Π½Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Π½Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ со машинско ΡƒΡ‡Π΅ΡšΠ΅, ΠΌΠΎΠ΄ΡƒΠ»Π°Ρ€Π½ΠΈΠΎΡ‚ ΠΌΠΎΡ‚ΠΎΡ€ Π·Π° Π·Π°ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅ со Π²Π΅ΡˆΡ‚Π°Ρ‡ΠΊΠ° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ†ΠΈΡ˜Π°, напишан Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Mojo, Π²ΠΎ спорСдба со Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° TensorFlow, бСшС 3 ΠΏΠ°Ρ‚ΠΈ ΠΏΠΎΠ±Ρ€Π· ΠΊΠΎΠ³Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°ΡˆΠ΅ Ρ˜Π°Π·ΠΈΡ‡Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° систСм со процСсор Π˜Π½Ρ‚Π΅Π», 6.4 ΠΏΠ°Ρ‚ΠΈ ΠΏΠΎΠ±Ρ€Π· ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΏΡ€Π΅ΠΏΠΎΡ€Π°ΠΊΠΈ ΠΈ 2.1 ΠΏΠ°Ρ‚ΠΈ ΠΏΠΎΠ±Ρ€Π·ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° со ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π²ΠΈΠ·ΡƒΠ΅Π»Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° AMD процСсори, Π΄ΠΎΠ±ΠΈΠ²ΠΊΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Mojo Π±Π΅Π° 3.2, 5 ΠΈ 2.2 ΠΏΠ°Ρ‚ΠΈ, Π° ΠΏΡ€ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ARM процСсори - 5.3, 7.5 ΠΈ 1.7 ΠΏΠ°Ρ‚ΠΈ, соодвСтно. Π Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ засновано Π½Π° PyTorch заостанува Π·Π°Π΄ Mojo Π·Π° 1.4, 1.1 ΠΈ 1.5 ΠΏΠ°Ρ‚ΠΈ Π½Π° процСсоритС Π½Π° Intel, 2.1, 1.2 ΠΈ 1.5 ΠΏΠ°Ρ‚ΠΈ Π½Π° процСсоритС AMD ΠΈ 4, 4.3 ΠΈ 1.3 ΠΏΠ°Ρ‚ΠΈ Π½Π° процСсоритС Π½Π° ARM.

ΠšΡ€Π΅Π°Ρ‚ΠΎΡ€ΠΎΡ‚ Π½Π° LLVM Ρ€Π°Π·Π²ΠΈΠ²Π° Π½ΠΎΠ² програмски јазик Mojo

ΠˆΠ°Π·ΠΈΠΊΠΎΡ‚ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° статичко ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° бСзбСдност Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° Π½Π° ниско Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠΈ потсСтуваат Π½Π° Rust, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΎ слСдСњС Π΄ΠΎΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΠΎΠ·Π°Ρ˜ΠΌΠΈΡ†ΠΈ. ΠŸΠΎΠΊΡ€Π°Ρ˜ моТноститС Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° со ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΈ, Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ниско Π½ΠΈΠ²ΠΎ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ пристап Π΄ΠΎ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π²ΠΎ Π½Π΅Π±Π΅Π·Π±Π΅Π΄Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ Ρ‚ΠΈΠΏΠΎΡ‚ ΠŸΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡, ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅Ρ‡Π½ΠΈ SIMD инструкции ΠΈΠ»ΠΈ пристап Π΄ΠΎ хардвСрски СкстСнзии ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС TensorCores ΠΈ AMX .

ΠšΡ€Π΅Π°Ρ‚ΠΎΡ€ΠΎΡ‚ Π½Π° LLVM Ρ€Π°Π·Π²ΠΈΠ²Π° Π½ΠΎΠ² програмски јазик Mojo

Π—Π° Π΄Π° сС поСдностави ΠΎΠ΄Π²ΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° класичниот ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ Python ΠΊΠΎΠ΄ Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ со Сксплицитни Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Π·Π° ситС ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π΄Π° сС користи посСбСн ΠΊΠ»ΡƒΡ‡Π΅Π½ Π·Π±ΠΎΡ€ β€žfnβ€œ намСсто β€ždefβ€œ. Π‘Π»ΠΈΡ‡Π½ΠΎ Π½Π° класитС, Π°ΠΊΠΎ Ρ‚Ρ€Π΅Π±Π° статички Π΄Π° ΠΏΠ°ΠΊΡƒΠ²Π°Ρ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° (ΠΊΠ°ΠΊΠΎ Π²ΠΎ C), ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ користитС Ρ‚ΠΈΠΏΠΎΡ‚ β€žstructβ€œ намСсто β€žclassβ€œ. Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Сдноставно Π΄Π° сС ΡƒΠ²Π΅Π·Π°Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° Ρ˜Π°Π·ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° C/C++, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° ΡƒΠ²ΠΎΠ· Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° cos ΠΎΠ΄ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡ΠΊΠ°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ β€žΠΎΠ΄ β€žmath.hβ€œ import cosβ€œ.

Π˜Π·Π²ΠΎΡ€: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π΄ΠΎΠ²Π΅Ρ€Π»ΠΈΠ² хостинг Π·Π° ΡΠ°Ρ˜Ρ‚ΠΎΠ²ΠΈ со DDoS Π·Π°ΡˆΡ‚ΠΈΡ‚Π°, VPS VDS сСрвСри πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ сигурСн Π²Π΅Π±-хостинг со DDoS Π·Π°ΡˆΡ‚ΠΈΡ‚Π°, VPS VDS сСрвСри | ProHoster