LLVM නිර්මාපකයා නව Mojo ක්‍රමලේඛන භාෂාව සංවර්ධනය කරයි

LLVM හි නිර්මාතෘ සහ ප්‍රධාන ගෘහ නිර්මාණ ශිල්පියා සහ Swift ක්‍රමලේඛන භාෂාවේ නිර්මාතෘ Chris Lattner සහ Tensorflow සහ JAX වැනි Google AI ව්‍යාපෘතිවල හිටපු ප්‍රධානී Tim Davis විසින් Mojo නම් නව ක්‍රමලේඛන භාෂාවක් හඳුන්වා දෙන ලදී. ඉහළ කාර්ය සාධනයක් සහිත අවසාන නිෂ්පාදන සැකසීමේ හැකියාව සහිත වේගවත් මූලාකෘතිකරණය. පළමුවැන්න පයිතන් භාෂාවේ හුරුපුරුදු වාක්‍ය ඛණ්ඩය භාවිතයෙන් සහ දෙවැන්න යන්ත්‍ර කේතයට සම්පාදනය කිරීමේ හැකියාව, මතක ආරක්ෂිත යාන්ත්‍රණ සහ දෘඩාංග ත්වරණය කිරීමේ මෙවලම් භාවිතයෙන් ලබා ගත හැකිය.

මෙම ව්‍යාපෘතිය යන්ත්‍ර ඉගෙනීමේ ක්‍ෂේත්‍රයේ සංවර්ධනය සඳහා භාවිතා කිරීම කෙරෙහි අවධානය යොමු කර ඇත, නමුත් පද්ධති ක්‍රමලේඛන මෙවලම් සමඟ Python හි හැකියාවන් පුළුල් කරන සහ පුළුල් පරාසයක කාර්යයන් සඳහා සුදුසු පොදු කාර්ය භාෂාවක් ලෙස ඉදිරිපත් කෙරේ. උදාහරණයක් ලෙස, භාෂාව ඉහළ කාර්ය සාධනයක් සහිත පරිගණකකරණය, දත්ත සැකසීම සහ පරිවර්තනය වැනි ක්ෂේත්‍ර සඳහා අදාළ වේ. Mojo හි සිත්ගන්නා ලක්ෂණයක් වන්නේ ".mojo" යන පෙළ දිගුවට අමතරව කේත ගොනු සඳහා දිගුවක් ලෙස (උදාහරණයක් ලෙස, "helloworld.🔥") ඉමොජි අක්ෂරය "🔥" සඳහන් කිරීමේ හැකියාවයි.

දැනට, භාෂාව තීව්‍ර සංවර්ධනයේ අදියරේ පවතින අතර පරීක්‍ෂණය සඳහා ඉදිරිපත් කරනු ලබන්නේ මාර්ගගත අතුරුමුහුණත පමණි. අන්තර්ක්‍රියාකාරී වෙබ් පරිසරයේ ක්‍රියාකාරිත්වය පිළිබඳ ප්‍රතිපෝෂණ ලැබීමෙන් පසුව, ප්‍රාදේශීය පද්ධති මත ධාවනය කිරීම සඳහා වෙනම එකලස් කිරීම් පසුව ප්‍රකාශයට පත් කිරීමට පොරොන්දු වේ. සම්පාදකය, JIT සහ ව්‍යාපෘතියට අදාළ අනෙකුත් වර්ධනයන් සඳහා වන මූල කේතය අභ්‍යන්තර ගෘහ නිර්මාණ ශිල්පය අවසන් වූ පසු විවෘත කිරීමට සැලසුම් කර ඇත (සංවෘත දොරවල් පිටුපස වැඩ කරන මූලාකෘතියක් සංවර්ධනය කිරීමේ ආකෘතිය LLVM, Clang සහ සංවර්ධනයේ ආරම්භක අදියර සිහිපත් කරයි. ස්විෆ්ට්). Mojo වාක්‍ය ඛණ්ඩය පයිතන් භාෂාව මත පදනම් වී ඇති නිසාත්, ටයිප් පද්ධතිය C/C++ ට ආසන්න වන නිසාත්, අනාගතයේ දී ඔවුන් C/C++ සහ Python වෙතින් Mojo වෙත ලියා ඇති දැනට පවතින ව්‍යාපෘති පරිවර්තනය කිරීම සරල කිරීමට මෙවලම් සංවර්ධනය කිරීමට සැලසුම් කරයි. Python code සහ Mojo ඒකාබද්ධ කරමින් දෙමුහුන් ව්‍යාපෘති සංවර්ධනය කිරීමට.

ව්‍යාපෘතිය සැලසුම් කර ඇත්තේ ගණනය කිරීම් සිදු කිරීමේදී විෂම පද්ධතිවල පවතින දෘඪාංග සම්පත් සම්බන්ධ කර ගැනීමටය. උදාහරණයක් ලෙස, Mojo යෙදුම් ධාවනය කිරීමට සහ ගණනය කිරීම් සමාන්තර කිරීමට GPUs, විශේෂිත යන්ත්‍ර ඉගෙනුම් ත්වරණකාරක සහ ප්‍රොසෙසර උපදෙස් දෛශික (SIMD) භාවිතා කළ හැක. පවතින CPython ප්‍රශස්තිකරණ කාර්යයට සම්බන්ධ වීමට වඩා Python භාෂාවේ වෙනම උප කුලකයක් සංවර්ධනය කිරීම සඳහා ලබා දී ඇති හේතු අතර සම්පාදනය, පද්ධති ක්‍රමලේඛන හැකියාවන් ඒකාබද්ධ කිරීම සහ GPU සහ විවිධ මත කේත ක්‍රියාත්මක කිරීමට ඉඩ සලසන මූලික වශයෙන් වෙනස් අභ්‍යන්තර ගෘහ නිර්මාණ ශිල්පයක් භාවිතා කිරීම ඇතුළත් වේ. දෘඪාංග ත්වරණකාරක. කෙසේ වෙතත්, Mojo සංවර්ධකයින් හැකිතාක් CPython සමඟ අනුකූලව සිටීමට අදහස් කරයි.

Mojo JIT භාවිතයෙන් පරිවර්ථන ප්‍රකාරයේදී සහ ක්‍රියාත්මක කළ හැකි ගොනු (AOT, කලින් කලට) සම්පාදනය කිරීමට භාවිතා කළ හැක. සම්පාදකය සතුව ස්වයංක්‍රීය ප්‍රශස්තකරණය, හැඹිලිගත කිරීම සහ බෙදා හරින ලද සම්පාදනය සඳහා නවීන තාක්ෂණයන් ඇත. Mojo භාෂාවේ ඇති මූලාශ්‍ර පාඨ, LLVM ව්‍යාපෘතිය මගින් සංවර්ධනය කරන ලද පහත මට්ටමේ අතරමැදි කේත MLIR (Multi-Level Intermediate Representation) බවට පරිවර්තනය කරනු ලබන අතර දත්ත ප්‍රවාහ ප්‍රස්තාරය සැකසීම ප්‍රශස්ත කිරීම සඳහා අමතර හැකියාවන් සපයයි. යන්ත්‍ර කේතය ජනනය කිරීම සඳහා MLIR සඳහා සහය දක්වන විවිධ පසුබිම් භාවිතා කිරීමට සම්පාදකය ඔබට ඉඩ සලසයි.

ගණනය කිරීම් වේගවත් කිරීම සඳහා අතිරේක දෘඪාංග යාන්ත්‍රණයන් භාවිතා කිරීමෙන් දැඩි ගණනය කිරීම් වලදී C/C++ යෙදුම් වලට වඩා උසස් කාර්ය සාධනයක් ලබා ගැනීමට හැකි වේ. උදාහරණයක් ලෙස, මැන්ඩෙල්බ්‍රොට් කට්ටලය ජනනය කිරීම සඳහා යෙදුමක් පරීක්‍ෂා කිරීමේදී, AWS වලාකුළෙහි (r7iz.metal-16xl) ක්‍රියාත්මක කළ විට Mojo භාෂාවෙන් සම්පාදනය කරන ලද යෙදුමක් C++ (6 තත්. එදිරිව) ක්‍රියාත්මක කිරීමට වඩා 0.03 ගුණයක් වේගවත් විය. . 0.20 තත්.), සහ සම්මත CPython 35 (තත්පර 3.10.9. එදිරිව 0.03 තත්.) භාවිතා කරන විට Python යෙදුමකට වඩා 1027 ගුණයකින් වේගවත් වන අතර PYPY භාවිතා කරන විට 1500 ගුණයක වේගවත් (0.03 තත්. එදිරිව 46.1) XNUMX. .

යන්ත්‍ර ඉගෙනීමේ ගැටළු විසඳීමේ ක්ෂේත්‍රයේ කාර්ය සාධනය තක්සේරු කිරීමේදී, TensorFlow පුස්තකාලය මත පදනම් වූ විසඳුමකට සාපේක්ෂව Mojo භාෂාවෙන් ලියා ඇති AI stack Modular Inference Engine, පද්ධතියක භාෂා ආකෘතියක් සැකසීමේදී 3 ගුණයක් වේගවත් විය. Intel ප්‍රොසෙසරයක්, නිර්දේශ උත්පාදන ආකෘතිය ක්‍රියාත්මක කිරීමේදී 6.4 ගුණයකින් වේගවත් වන අතර දෘශ්‍ය තොරතුරු සැකසීම සඳහා ආකෘති සමඟ වැඩ කිරීමේදී 2.1 ගුණයකින් වේගවත් වේ. AMD ප්‍රොසෙසර භාවිතා කරන විට, Mojo භාවිතා කරන විට ලාභය 3.2, 5 සහ 2.2 ගුණයක් වන අතර ARM ප්‍රොසෙසර භාවිතා කරන විට - පිළිවෙලින් 5.3, 7.5 සහ 1.7 වාරයක්. PyTorch මත පදනම් වූ විසඳුම Intel CPU වල 1.4, 1.1 සහ 1.5 ගුණයකින්ද, AMD CPU වල 2.1, 1.2 සහ 1.5 ගුණයකින්ද, ARM CPU වල 4, 4.3 සහ 1.3 ගුණයකින්ද Mojo වලට වඩා පසුගාමී විය.

LLVM නිර්මාපකයා නව Mojo ක්‍රමලේඛන භාෂාව සංවර්ධනය කරයි

භාෂාව ස්ථිතික ටයිප් කිරීම සහ රස්ට් සිහිගන්වන පහත මට්ටමේ මතක ආරක්ෂිත විශේෂාංග සඳහා සහය දක්වයි, එනම් සමුද්දේශ ජීවිත ලුහුබැඳීම සහ ණය පරීක්‍ෂා කිරීම වැනි. පොයින්ටර් සමඟ ආරක්ෂිතව වැඩ කිරීම සඳහා පහසුකම් වලට අමතරව, භාෂාව පහත මට්ටමේ වැඩ සඳහා විශේෂාංග සපයයි, උදාහරණයක් ලෙස, Pointer වර්ගය භාවිතයෙන් අනාරක්ෂිත ආකාරයෙන් මතකයට සෘජු ප්‍රවේශය, තනි SIMD උපදෙස් ඇමතීම, හෝ TensorCores සහ AMX වැනි දෘඪාංග දිගු වෙත ප්‍රවේශ වීම. .

LLVM නිර්මාපකයා නව Mojo ක්‍රමලේඛන භාෂාව සංවර්ධනය කරයි

සියලුම විචල්‍යයන් සඳහා පැහැදිලි ආකාරයේ නිර්වචන සහිත ශ්‍රිත සඳහා සම්භාව්‍ය සහ ප්‍රශස්ත Python කේතය වෙන් කිරීම සරල කිරීම සඳහා, "def" වෙනුවට "fn" වෙනම මූල පදයක් භාවිතා කිරීමට යෝජනා කෙරේ. ඒ හා සමානව පන්ති සඳහා, ඔබට සම්පාදනය කිරීමේදී (C හි මෙන්) මතකයේ දත්ත ස්ථිතිකව ඇසුරුම් කිරීමට අවශ්‍ය නම්, ඔබට "class" වෙනුවට "struct" වර්ගය භාවිතා කළ හැක. C/C++ භාෂාවලින් සරලව මොඩියුල ආයාත කිරීමට ද හැකිය, උදාහරණයක් ලෙස, ගණිත පුස්තකාලයෙන් cos ශ්‍රිතය ආයාත කිරීම සඳහා, ඔබට "math.h" import cos වෙතින්" සඳහන් කළ හැක.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න