LLVM Creator жаңы Mojo программалоо тилин иштеп чыгат

Крис Латтнер, LLVMнин негиздөөчүсү жана башкы архитектору жана Swift программалоо тилинин жаратуучусу жана Tensorflow жана JAX сыяктуу Google AI долбоорлорунун мурдагы жетекчиси Тим Дэвис изилдөөлөрдү иштеп чыгуу жана колдонуу жеңилдигин айкалыштырган Mojo жаңы программалоо тилин сунушташты. жогорку натыйжалуу акыркы продуктыларды түзүү мүмкүнчүлүгү менен тез прототиптөө. Биринчиси Python тилинин тааныш синтаксисин колдонуу аркылуу, ал эми экинчиси машина кодуна компиляциялоо, эстутумда коопсуз механизмдер жана аппараттык тездетүү куралдарын колдонуу аркылуу жетишилет.

Долбоор машинаны үйрөнүү чөйрөсүндө өнүктүрүү үчүн колдонууга багытталган, бирок Pythonдун мүмкүнчүлүктөрүн системалык программалоо куралдары менен кеңейтүүчү жана кеңири масштабдагы тапшырмалар үчүн ылайыктуу жалпы максаттуу тил катары берилген. Мисалы, бул тил жогорку өндүрүмдүүлүктөгү эсептөө, маалыматтарды иштетүү жана трансформациялоо сыяктуу тармактарга тиешелүү. Mojo'нун кызыктуу өзгөчөлүгү - ".mojo" текст кеңейтүүсүнөн тышкары, код файлдары үчүн кеңейтүү (мисалы, "helloworld.🔥") катары "🔥" эмодзи белгисин көрсөтүү мүмкүнчүлүгү.

Учурда тил интенсивдүү өнүгүү стадиясында турат жана тестирлөө үчүн бир гана онлайн интерфейси сунушталууда. Локалдык системаларда иштөө үчүн өзүнчө ассамблеялар интерактивдүү веб чөйрөнүн иштеши боюнча пикир алгандан кийин кийинчерээк жарыяланышы убада кылынган. Долбоордун компиляторунун, JITтин жана башка иштеп чыгуулардын баштапкы кодун ички архитектура аяктагандан кийин ачуу пландаштырылууда (жабык эшик артында жумушчу прототибин иштеп чыгуу модели LLVM, Clang жана Свифт). Mojo синтаксиси Python тилине негизделгендиктен жана тип системасы C/C++ке жакын болгондуктан, келечекте алар C/C++ жана Python тилдеринде жазылган долбоорлорду Mojo тилине которууну жөнөкөйлөтүү үчүн куралдарды иштеп чыгууну пландаштырууда, ошондой эле Python кодун жана Mojoну айкалыштырган гибриддик долбоорлорду иштеп чыгуу.

Долбоор эсептөөлөрдү жүргүзүүдө гетерогендик системалардын жеткиликтүү аппараттык ресурстарын тартуу үчүн иштелип чыккан. Мисалы, GPU, атайын машина үйрөнүү тездеткичтери жана процессордун нускама векторлору (SIMD) Mojo тиркемелерин иштетүү жана эсептөөлөрдү параллелдаштыруу үчүн колдонулушу мүмкүн. Учурдагы CPython оптималдаштыруу иштерине кошулуунун ордуна Pythonдун өзүнчө чакан топтомун иштеп чыгуу үчүн келтирилген себептер компиляцияга көңүл буруу, системаларды программалоо мүмкүнчүлүктөрүн интеграциялоо жана GPU жана ар кандай коддордо иштөөгө мүмкүндүк берген түп тамырынан бери башка ички архитектураны колдонуу болуп саналат. аппараттык тездеткичтер. Бирок, Mojo иштеп чыгуучулар мүмкүн болушунча CPython менен шайкеш бойдон калууга ниеттенүүдө.

Mojo JIT аркылуу интерпретация режиминде да, аткарылуучу файлдарга компиляциялоо үчүн да колдонсо болот (AOT, мөөнөтүнөн мурда). Компилятордо автоматтык оптималдаштыруу, кэштөө жана бөлүштүрүлгөн компиляция үчүн заманбап технологиялар орнотулган. Mojo тилиндеги булак тексттери LLVM долбоору тарабынан иштелип чыккан жана маалымат агымынын графигин иштетүүнү оптималдаштыруу үчүн кошумча мүмкүнчүлүктөрдү камсыз кылуучу MLIR (Мульти-деңгээл аралык өкүлчүлүк) төмөнкү деңгээлдеги орто кодуна айландырылат. Компилятор машина кодун түзүү үчүн MLIRди колдогон ар кандай бэкенддерди колдонууга мүмкүндүк берет.

Эсептөөлөрдү тездетүү үчүн кошумча аппараттык механизмдерди колдонуу интенсивдүү эсептөөлөр учурунда C/C++ тиркемелеринен жогору болгон аткарууга жетишүүгө мүмкүндүк берет. Мисалы, Mandelbrot топтомун түзүү үчүн тиркемени тестирлөөдө, 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 эсе ылдамыраак. .

Машинаны үйрөнүү маселелерин чечүү жаатындагы иштин натыйжалуулугун баалоодо, Mojo тилинде жазылган AI стек Модулярдык Inference Engine, TensorFlow китепканасынын негизиндеги чечимге салыштырмалуу, тил моделин системада иштетүүдө 3 эсе тезирээк болгон. Intel процессору, сунушталган генерация моделин иштетүүдө 6.4 эсе жана визуалдык маалыматты иштетүү үчүн моделдер менен иштөөдө 2.1 эсе тезирээк. AMD процессорлорун колдонууда, Mojoну колдонууда пайда 3.2, 5 жана 2.2 эсеге, ал эми ARM процессорлорун колдонууда 5.3, 7.5 жана 1.7 эсеге жеткен. PyTorch негизиндеги чечим Intel процессорлорунда Mojoдон 1.4, 1.1 жана 1.5 эсеге, AMD процессорлорунда 2.1, 1.2 жана 1.5 эсеге жана ARM процессорлорунда 4, 4.3 жана 1.3 эсеге артта калган.

LLVM Creator жаңы Mojo программалоо тилин иштеп чыгат

Бул тил статикалык терүүнү жана Rustту эске салган төмөнкү деңгээлдеги эстутумда коопсуз функцияларды колдойт, мисалы, маалымдама өмүр бою көзөмөлдөө жана карыз текшерүүчү. Көрсөткүчтөр менен коопсуз иштөө үчүн мүмкүнчүлүктөрдөн тышкары, тил төмөнкү деңгээлдеги иш үчүн функцияларды да камсыз кылат, мисалы, Pointer түрүн колдонуу менен кооптуу режимде эстутумга түз жетүү, жеке SIMD инструкцияларын чакыруу же TensorCores жана AMX сыяктуу аппараттык кеңейтүүлөргө жетүү. .

LLVM Creator жаңы Mojo программалоо тилин иштеп чыгат

Бардык өзгөрмөлөр үчүн ачык типтүү аныктамалары бар функциялар үчүн классикалык жана оптималдаштырылган Python кодун бөлүүнү жөнөкөйлөтүү үчүн, "def" ордуна өзүнчө "fn" ачкыч сөзүн колдонуу сунушталат. Окшош, класстар үчүн, компиляция учурунда эстутумга маалыматтарды статикалык пакеттөө керек болсо (Стегидей), "класстын" ордуна "структура" түрүн колдонсоңуз болот. Ошондой эле C/C++ тилдериндеги модулдарды жөн гана импорттоого болот, мисалы, cos функциясын математикалык китепканадан импорттоо үчүн, "math.h" импорттоо cos" деп белгилесеңиз болот.

Source: opennet.ru

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster