LLVM Creator жаңа Mojo бағдарламалау тілін әзірлейді

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

Жоба машиналық оқытуды дамытуға бағытталған, бірақ сонымен қатар Python тілін жүйелік бағдарламалау мүмкіндіктерімен кеңейтетін және кең ауқымды тапсырмалар үшін жарамды жалпы мақсаттағы тіл ретінде ұсынылған. Мысалы, бұл тіл өнімділігі жоғары есептеулер, деректерді өңдеу және түрлендіру сияқты салаларға қолданылады. Mojo-ның қызықты ерекшелігі - ".mojo" мәтіндік кеңейтімінен басқа, кодтық файлдарға (мысалы, "helloworld.🔥") кеңейтім ретінде "🔥" эмодзи символын көрсету мүмкіндігі.

Тіл қазір қарқынды дамып жатыр және тестілеу үшін тек онлайн интерфейсі қол жетімді. Жергілікті жүйелерде жұмыс істеуге арналған дербес құрастырулар интерактивті веб-ортада кері байланыс алғаннан кейін кейінірек жарияланады деп уәде етілген. Компилятордың, JIT және басқа да қатысты әзірлемелердің бастапқы коды ішкі архитектура аяқталғаннан кейін ашық бастапқы кодпен жоспарлануда (жұмыс прототипі үшін жабық есік әзірлеу үлгісі LLVM, Clang және Swift әзірлеудің бастапқы кезеңін еске түсіреді). 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 жиынын генерациялау қолданбасын сынау кезінде құрастырылған Mojo қолданбасы (r7iz.metal-16xl) AWS бұлтында іске қосылған кезде C++ іске асырудан 6 есе жылдам (0.03 сек. қарсы 0.20 сек.), Python қолданбасынан 35 000 есе жылдамырақ болды (0.03 сек. стандартты CP 30.03. ver. 1027 сек.) және PYPY пайдаланған кезде 1500 есе жылдамырақ (0.03 сек. қарсы 46.1 сек.).

Машиналық оқыту өнімділігін бағалау кезінде Mojo тілінде жазылған Modular Inference Engine AI стегі тіл үлгісін өңдеу кезінде Intel процессорында 3 есе, ұсыныс үлгісін іске қосқан кезде 6.4 есе және визуалды ақпаратты өңдеу үлгілерін іске қосу кезінде TensorFlow негізіндегі шешіммен салыстырғанда 2.1 есе жылдамырақ болды. AMD процессорларында Mojo 3.2x, 5x және 2.2x өнімділікке қол жеткізді, ал ARM процессорларында ол 5.3x, 7.5x және 1.7x өнімділікке қол жеткізді. PyTorch негізіндегі шешім Intel процессорларында Mojo-дан 1.4x, 1.1x және 1.5x, AMD процессорларында 2.1x, 1.2x және 1.5x, ARM CPU-ларда 4x, 4.3x және 1.3x артта қалды.

LLVM Creator жаңа Mojo бағдарламалау тілін әзірлейді

Бұл тіл статикалық теруді және Rust-ті еске түсіретін төмен деңгейлі жад қауіпсіздігі мүмкіндіктерін қолдайды, мысалы, анықтамалық қызмет мерзімін бақылау және қарызды тексеру құралы. Көрсеткіштің қауіпсіздік мүмкіндіктеріне қоса, тіл меңзер түрін пайдаланып қауіпті режимде тікелей жадқа қол жеткізу, жеке SIMD нұсқауларын шақыру және TensorCores және AMX сияқты аппараттық кеңейтімдерге қол жеткізу сияқты төмен деңгейлі мүмкіндіктерді ұсынады.

LLVM Creator жаңа Mojo бағдарламалау тілін әзірлейді

Барлық айнымалылар үшін нақты анықталған түрлері бар функциялар үшін классикалық және оңтайландырылған Python кодын бөлуді жеңілдету үшін «def» орнына бөлек «fn» кілт сөзін пайдалану ұсынылады. Дәл осылай, сыныптар үшін, егер компиляция уақытында жадтағы статикалық деректер бумасы қажет болса (С тіліндегідей), «сыныптың» орнына «құрылым» түрін пайдалануға болады. C/C++ модульдерін қарапайым импорттау да мүмкін. Мысалы, cos функциясын математикалық кітапханадан импорттау үшін "math.h ішінен импорт cos" параметрін көрсетуге болады.

Ақпарат көзі: opennet.ru

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