ЛЛВМ Цреатор развија нови Мојо програмски језик

Цхрис Латтнер, оснивач и главни архитекта ЛЛВМ-а и творац програмског језика Свифт, и Тим Давис, бивши шеф Гоогле АИ пројеката као што су Тенсорфлов и ЈАКС, представили су нови програмски језик, Мојо, који комбинује једноставност коришћења за развој истраживања и брза израда прототипа са потенцијалом за формулисање крајњих производа високих перформанси. Први се постиже употребом познате синтаксе језика Питхон, а други могућношћу компајлирања у машински код, механизмима безбедним за меморију и употребом алата за хардверско убрзање.

Пројекат је фокусиран на коришћење за развој у области машинског учења, али је представљен као језик опште намене који проширује могућности Пајтона помоћу алата за системско програмирање и погодан је за широк спектар задатака. На пример, језик је применљив у областима као што су рачунарство високих перформанси, обрада података и трансформација. Занимљива карактеристика Мојо-а је могућност да наведете знак емоџија „🔥“ као екстензију за датотеке кода (на пример, „хелловорлд.🔥“), поред текстуалне екстензије „.мојо“.

Тренутно је језик у фази интензивног развоја и на тестирање је понуђен само онлајн интерфејс. Обећано је да ће одвојени склопови за рад на локалним системима бити објављени касније, након добијања повратних информација о раду интерактивног веб окружења. Планирано је да се изворни код за компајлер, ЈИТ и друга дешавања у вези са пројектом отвори након што се заврши интерна архитектура (модел развоја радног прототипа иза затворених врата подсећа на почетну фазу развоја ЛЛВМ, Цланг и Свифт). Пошто је Мојо синтакса заснована на језику Питхон, а систем типова је близак Ц/Ц++, у будућности планирају да развију алате за поједностављење превода постојећих пројеката написаних на Ц/Ц++ и Питхон-у у Мојо, као и да развијају хибридне пројекте који комбинују Питхон код и Мојо.

Пројекат је осмишљен тако да укључи расположиве хардверске ресурсе хетерогених система у извођење прорачуна. На пример, ГПУ-ови, специјализовани акцелератори машинског учења и вектори инструкција процесора (СИМД) могу се користити за покретање Мојо апликација и паралелизацију израчунавања. Разлози који се наводе за развој посебног подскупа језика Питхон уместо придруживања постојећем раду на оптимизацији ЦПитхон-а укључују фокусирање на компилацију, интеграцију могућности системског програмирања и коришћење фундаментално различите интерне архитектуре која омогућава покретање кода на ГПУ-овима и различитим хардверски акцелератори. Међутим, Мојо програмери намеравају да остану компатибилни са ЦПитхон-ом што је више могуће.

Мојо се може користити како у режиму интерпретације користећи ЈИТ, тако и за компилацију у извршне датотеке (АОТ, унапред). Компајлер има уграђене модерне технологије за аутоматску оптимизацију, кеширање и дистрибуирану компилацију. Изворни текстови на Мојо језику се конвертују у средњи код ниског нивоа МЛИР (Мулти-Левел Интермедиате Репресентатион), који је развио ЛЛВМ пројекат и пружа додатне могућности за оптимизацију обраде графа тока података. Компајлер вам омогућава да користите различите позадине које подржавају МЛИР за генерисање машинског кода.

Коришћење додатних хардверских механизама за убрзавање прорачуна омогућава постизање перформанси које су супериорније од Ц/Ц++ апликација током интензивних прорачуна. На пример, приликом тестирања апликације за генерисање Манделброт скупа, испоставило се да је компајлирана апликација на Мојо језику када се извршава у АВС облаку (р7из.метал-16кл) 6 пута бржа од имплементације у Ц++ (0.03 сек. вс. 0.20 сек.), а такође 35 хиљада пута брже од Питхон апликације када се користи стандардни ЦПитхон 3.10.9 (0.03 сек. наспрам 1027 сек.) и 1500 пута брже када се користи ПИПИ (0.03 сек. наспрам 46.1 сек.) .

Приликом процене перформанси у области решавања проблема машинског учења, АИ стацк Модулар Инференце Енгине, написан на Мојо језику, у поређењу са решењем заснованим на библиотеци ТенсорФлов, био је 3 пута бржи при обради језичког модела на систему са Интел процесор, 6.4 пута бржи при обради извршења модела генерисања препорука и 2.1 пута бржи када се ради са моделима за обраду визуелних информација. Када се користе АМД процесори, добици при коришћењу Мојо су били 3.2, 5 и 2.2 пута, а када се користе АРМ процесори - 5.3, 7.5 и 1.7 пута, респективно. Решење засновано на ПиТорцх-у заостајало је за Мојо-ом 1.4, 1.1 и 1.5 пута на Интеловим процесорима, 2.1, 1.2 и 1.5 пута на АМД ЦПУ-има и 4, 4.3 и 1.3 пута на АРМ процесорима.

ЛЛВМ Цреатор развија нови Мојо програмски језик

Језик подржава статичко куцање и функције безбедне за меморију ниског нивоа које подсећају на Руст, као што је праћење референтног животног века и провера позајмљивања. Поред могућности за безбедан рад са показивачима, језик такође пружа функције за рад на ниском нивоу, на пример, директан приступ меморији у небезбедном режиму коришћењем типа Поинтер, позивање појединачних СИМД инструкција или приступ хардверским екстензијама као што су ТенсорЦорес и АМКС .

ЛЛВМ Цреатор развија нови Мојо програмски језик

Да би се поједноставило раздвајање класичног и оптимизованог Питхон кода за функције са експлицитним дефиницијама типа за све променљиве, предлаже се употреба посебне кључне речи „фн“ уместо „деф“. Слично за класе, ако треба да статички спакујете податке у меморију током компилације (као у Ц), можете користити тип „струцт“ уместо „цласс“. Такође је могуће једноставно увести модуле у Ц/Ц++ језицима, на пример, да бисте увезли цос функцију из математичке библиотеке, можете одредити „из „матх.х“ импорт цос“.

Извор: опеннет.ру

Додај коментар