Բարձր արդյունավետության հաշվարկն անհրաժեշտ է ավելի ու ավելի շատ խնդիրներ լուծելու համար, ինչպիսիք են պատկերի մշակումը կամ նեյրոնային ցանցերում խորը ուսուցման տարբեր ծրագրեր, որտեղ դուք պետք է մշակեք հսկայական քանակությամբ տվյալներ և կատարեք դա բավական արագ, հակառակ դեպքում դա կարող է անհավատալի քանակությամբ պահանջել: ժամանակ. Տարածված կարծիք կա, որ նման գործողություններ կատարելիս արագության և հուսալիության փոխզիջումն անխուսափելի է: Ըստ այս մտածողության, եթե արագությունը առաջնահերթություն է, ապա հուսալիությունը հավանաբար տուժում է և հակառակը:
Այնուամենայնիվ, մի խումբ հետազոտողներ, որոնք հիմնականում հիմնված են Մասաչուսեթսի տեխնոլոգիական ինստիտուտում (MIT) վիճարկում են այս հասկացությունը՝ պնդելով, որ դուք կարող եք իրականում ունենալ այդ ամենը: Ըստ MIT-ի Համակարգչային գիտության և արհեստական ինտելեկտի լաբորատորիայի (CSAIL) երկրորդ կուրսի ասպիրանտ Ամանդա Լյուի, ծրագրավորման նոր լեզվով, որը նրանք գրել են հատուկ բարձր կատարողական հաշվարկների համար, «արագությունն ու ճիշտությունը չպետք է մրցակցեն: Ընդհակառակը, կարող են գնալ միասին, կողք կողքի, մեր գրած հաղորդումներում»։ Լյուն և նրա թիմը խոսեցին իրենց նորաստեղծ A Tensor լեզվի (ATL) ներուժի մասին անցյալ ամիս Ֆիլադելֆիայում ծրագրավորման լեզուների սկզբունքների համաժողովում:
«Մեր լեզվում ամեն ինչ,- ասում է Լյուն,- ուղղված է կամ մեկ թիվ կամ թենզոր ստանալուն»: Տենսորներն իրենց հերթին վեկտորների և մատրիցների ընդհանրացում են։ Թեև վեկտորները միաչափ առարկաներ են (հաճախ ներկայացված են առանձին սլաքներով), իսկ մատրիցները թվերի երկչափ զանգվածներ են, թենզորները n-չափ զանգվածներ են, որոնք կարող են ունենալ 3×3×3 զանգվածի ձև, օրինակ, կամ նույնիսկ։ ավելի բարձր (կամ ցածր) հարթություն:
Համակարգչային ալգորիթմի կամ ծրագրի էությունը որոշակի հաշվարկ սկսելն է։ Բայց կարող են լինել այս ծրագիրը գրելու շատ տարբեր եղանակներ. «տարբեր կոդի իրականացման զարմանալի բազմազանություն», ինչպես գրում են Լյուն և նրա համահեղինակները իրենց աշխատության մեջ, որոնցից մի քանիսը զգալիորեն ավելի արագ են, քան մյուսները: ATL-ի հիմքում ընկած հիմնական հիմնավորումը, նա բացատրում է, սա է. «Հաշվի առնելով, որ բարձր արդյունավետությամբ հաշվողականությունը շատ ռեսուրսներ է պահանջում, դուք ցանկանում եք, որ կարողանաք փոփոխել կամ վերաշարադրել ծրագրերը օպտիմալ ձևով, արագացնելու համար: Հաճախ դուք սկսում եք այն ծրագրով, որն ամենահեշտն է գրել, բայց դա կարող է այն գործարկելու ամենաարագ ճանապարհը չլինել, այնպես որ դուք դեռ պետք է հետագա ճշգրտումներ կատարեք»:
Նոր հրամանի լեզուն հիմնված է գոյություն ունեցող Coq լեզվի վրա, որը ներառում է ապացույցների օգնական: Ապացույցի օգնականն իր հերթին հնարավորություն ունի մաթեմատիկորեն ճշգրիտ ապացուցելու իր պնդումները։ Coq-ն ունի ևս մեկ հատկություն, որն այն գրավիչ է դարձնում MIT խմբի համար. այդ լեզվով գրված ծրագրերը կամ դրա հարմարեցումը միշտ ավարտվում են և չեն կարող անվերջ աշխատել անսահման օղակներով:
Այժմ այն առաջին և առայժմ միակ տենզորային լեզուն է՝ պաշտոնապես հաստատված օպտիմալացումներով: MIT թիմը զգուշացնում է, սակայն, որ ATL-ը դեռևս միայն նախատիպ է, թեև խոստումնալից, որը փորձարկվել է մի շարք փոքր ծրագրերի վրա:
Կարդացեք նաև.