FPGA-ի ներթափանցման անխուսափելիությունը տվյալների կենտրոններ

FPGA-ի ներթափանցման անխուսափելիությունը տվյալների կենտրոններ
FPGA-ների համար ծրագրավորելու համար պետք չէ լինել չիպերի դիզայներ, ինչպես որ պետք չէ լինել C++ ծրագրավորող՝ Java-ում կոդ գրելու համար: Այնուամենայնիվ, երկու դեպքում էլ, հավանաբար, օգտակար կլինի։

Ինչպես Java, այնպես էլ FPGA տեխնոլոգիաների առևտրայնացման նպատակն է հերքել վերջին պնդումը: Լավ նորություն FPGA-ների համար. օգտագործելով ճիշտ աբստրակցիոն շերտերը և գործիքների հավաքածուն, վերջին 35 տարում ծրագրավորվող տրամաբանական սարքի գյուտից ի վեր, ստեղծելով ալգորիթմներ և տվյալների հոսքեր FPGA-ների համար՝ CPU-ների, DSP-ների, GPU-ների կամ հատուկ ASIC-ների այլ ձևերի փոխարեն: գնալով ավելի տարածված: ավելի հեշտ:

Դրանց ստեղծման զարմանալի արդիականությունն ակնհայտ է նրանով, որ հենց այն ժամանակ, երբ պրոցեսորներն այլևս չէին կարող մնալ տվյալների կենտրոնների միակ հաշվողական մոդուլը, որը կատարում էր բազմաթիվ առաջադրանքներ՝ տարբեր պատճառներով, FPGA-ները հասան իրենց արդյունավետությանը՝ առաջարկելով արագություն, ցածր ուշացում, ցանցային հնարավորություններ: իսկ հիշողությունը` ժամանակակից FPGA SoC-ների տարասեռ հաշվողական հնարավորությունները, որոնք գրեթե լիարժեք հաշվողական համակարգեր են: Այնուամենայնիվ, FPGA-ները հաջողությամբ զուգակցվում են նաև հիբրիդային համակարգերի այլ սարքերի հետ, և, մեր կարծիքով, նրանք նոր են սկսում գտնել իրենց արժանի տեղը հաշվողական հիերարխիայում:

Ահա թե ինչու մենք հունվարի 22-ին Սան Խոսեում կազմակերպեցինք The Next FPGA Platform համաժողովը: Բնականաբար, աշխարհում FPGA-ի գլխավոր մատակարարներից մեկը և այս ոլորտում առաջամարտիկը Xilinx-ն է: Իվո Բոլսենսը, Xilinx-ի ավագ փոխնախագահ և տեխնոլոգիայի գլխավոր տնօրենը, ելույթ ունեցավ համաժողովում և այսօր մեզ փոխանցեց իր մտքերն այն մասին, թե ինչպես է Xilinx-ն օգնում ստեղծել տվյալների կենտրոնների համար փոփոխական հաշվողական համակարգեր:

Համակարգի ճարտարապետներից և ծրագրավորողներից շատ ժամանակ պահանջվեց՝ ստեղծելու տարասեռ տվյալների կենտրոն, որը կներկայացնի համակարգչային էներգիայի տարբեր տեսակներ, որոնք լուծում են հաշվարկման, պահպանման և ցանցի խնդիրները: Սա անհրաժեշտ է թվում, քանի որ գնալով ավելի դժվար է դառնում հետևել Մուրի օրենքին՝ օգտագործելով տարբեր CMOS սարքեր: Առայժմ մեր լեզուն դեռևս կենտրոնացած է պրոցեսորների վրա, և մենք դեռ խոսում ենք «կիրառման արագացման» մասին, ինչը նշանակում է, որ ծրագրերն ավելի լավ աշխատեն, քան այն, ինչ կարելի է անել միայն պրոցեսորների վրա: Ժամանակի ընթացքում տվյալների կենտրոնները կդառնան հաշվողական հզորության, տվյալների պահպանման և արձանագրությունների հավաքածուներ, որոնք կապում են ամեն ինչ, և մենք կվերադառնանք այնպիսի տերմինների, ինչպիսիք են «հաշվարկը» և «կիրառությունները»: Հիբրիդային հաշվարկները կդառնան նույնքան սովորական, որքան այսօրվա ամպային ծառայությունները, որոնք աշխատում են աշխատասեղանի կամ վիրտուալ մեքենաների վրա, և ինչ-որ պահի մենք պարզապես կօգտագործենք «հաշվողական» բառը՝ նկարագրելու, թե ինչպես են դրանք աշխատում: Ինչ-որ պահի, և հավանական է, որ FPGA-ները կօգնեն սկսել այս դարաշրջանը, մենք այն նորից կանվանենք տվյալների մշակում:

Տվյալների կենտրոններում FPGA-ների ընդունումը կպահանջի մտածելակերպի փոփոխություն: «Երբ մտածում եք այսօրվա հավելվածներն արագացնելու ուղիների մասին, դուք պետք է իջնեք այն հիմունքներին, թե ինչպես են դրանք աշխատում, ինչ ռեսուրսներ են օգտագործվում, որտեղ է ծախսվում ժամանակը», - բացատրում է Բոլսենսը: – Դուք պետք է ուսումնասիրեք ընդհանուր խնդիրը, որը փորձում եք լուծել: Այսօր տվյալների կենտրոններում աշխատող շատ հավելվածներ սպառում են մեծ քանակությամբ ռեսուրսներ: Վերցրեք, օրինակ, մեքենայական ուսուցումը, որն օգտագործում է հսկայական թվով հաշվողական հանգույցներ: Բայց երբ խոսում ենք արագացման մասին, պետք է մտածել ոչ միայն հաշվարկների արագացման, այլեւ ենթակառուցվածքների արագացման մասին»:

Օրինակ, մեքենայական ուսուցման այնպիսի գործառնությունների մեջ, որոնք Բոլսենսը գործնականում ուսումնասիրել է, ժամանակի մոտավորապես 50%-ը ծախսվում է տվյալների ետ ու առաջ փոխանցման վրա ցրված հաշվողական հզորության միջև, և ժամանակի միայն մնացած կեսն է ծախսվում հենց հաշվարկների վրա:

«Այստեղ, կարծում եմ, FPGA-ն կարող է օգնել, քանի որ մենք կարող ենք ապահովել, որ հավելվածի և՛ հաշվողական, և՛ հաղորդակցման ասպեկտները օպտիմիզացված լինեն: Եվ մենք կարող ենք դա անել ընդհանուր ենթակառուցվածքի մակարդակով և չիպերի մակարդակով: Սա FPGA-ների մեծ առավելություններից մեկն է, որը թույլ է տալիս ստեղծել կապի ցանցեր հատուկ հավելվածների կարիքների համար: Ելնելով AI-ի աշխատանքային ծանրաբեռնվածության մեջ տվյալների շարժման տիպիկ օրինաչափություններից՝ ես չեմ տեսնում կոմպլեքս անջատիչի վրա հիմնված ճարտարապետության անհրաժեշտություն: Դուք կարող եք ցանց կառուցել տվյալների մեծ հոսքով: Նույնը վերաբերում է նեյրոնային ցանցի ուսուցման առաջադրանքներին՝ դուք կարող եք կառուցել ցանցային ցանց՝ փաթեթների չափերով, որոնք հարմարվում են կոնկրետ առաջադրանքին: Օգտագործելով FPGA, տվյալների փոխանցման արձանագրությունները և սխեմաների տոպոլոգիաները կարող են շատ ճշգրիտ մասշտաբավորվել և հարմարեցվել կոնկրետ ծրագրին: Իսկ մեքենայական ուսուցման դեպքում պարզ է նաև, որ մեզ պետք չեն կրկնակի ճշգրտությամբ լողացող կետով թվեր, և մենք կարող ենք դա նույնպես կարգավորել»:

FPGA-ի և պրոցեսորի կամ սովորական ASIC-ի միջև տարբերությունն այն է, որ վերջիններս ծրագրավորվում են գործարանում, և դրանից հետո դուք այլևս չեք կարող փոխել ձեր կարծիքը հաշվարկվող տվյալների տեսակների կամ հաշվարկվող տարրերի կամ տվյալների բնույթի մասին։ հոսում է սարքի միջով: FPGA-ները թույլ են տալիս փոխել ձեր կարծիքը, եթե փոխվեն աշխատանքային պայմանները:

Նախկինում այս առավելությունն արժեր, երբ FPGA ծրագրավորումը թույլ սրտով չէր: Անհրաժեշտ է բացել FPGA կոմպիլյատորներ, որպեսզի ավելի լավ ինտեգրվեն այն գործիքներին, որոնք ծրագրավորողները օգտագործում են C, C, C++ կամ Python-ում CPU-ի զուգահեռ հավելվածներ գրելու համար, և որոշ աշխատանքները փոխանցելու գրադարաններին, որոնք արագացնում են ընթացակարգերը FPGA-ներում: Սա այն է, ինչ անում է Vitis մեքենայական ուսուցման կույտը, հզորացնելով ML հարթակները, ինչպիսիք են Caffe-ը և TensorFlow-ը, գրադարաններով՝ սովորական AI մոդելներ գործարկելու կամ FPGA-ի հնարավորությունները ավելացնելով այնպիսի առաջադրանքներին, ինչպիսիք են վիդեո տրանսկոդավորումը, վիդեո օբյեկտների ճանաչումը և տվյալների վերլուծությունը: , ֆինանսական ռիսկերի կառավարում և ցանկացած երրորդ: - կուսակցական գրադարաններ.

Այս հայեցակարգը շատ չի տարբերվում մեկ տասնամյակ առաջ գործարկված Nvidia-ի CUDA նախագծից, որը զուգահեռ հաշվարկները բեռնաթափում է GPU արագացուցիչներին կամ AMD-ի ROCm գործիքակազմից կամ Intel-ի OneAPI նախագծի խոստումից, որը պետք է աշխատի տարբեր պրոցեսորների, GPU-ների և FPGA-ների վրա:

Միակ հարցն այն է, թե ինչպես են այս բոլոր գործիքները միացվել միմյանց, որպեսզի ցանկացած մարդ կարողանա ծրագրավորել հաշվողական հզորությունների մի շարք իր հայեցողությամբ: Սա կարևոր է, քանի որ FPGA-ները դարձել են ավելի բարդ, շատ ավելի բարդ, քան հասանելի պրոցեսորներից որևէ մեկը: Դրանք արտադրվում են ամենաառաջադեմ արտադրական գործընթացների և չիպերի փաթեթավորման ամենաժամանակակից տեխնոլոգիաների կիրառմամբ: Եվ նրանք կգտնեն իրենց տեղը, քանի որ մենք այլևս չենք կարող վատնել ժամանակ, փող, էներգիա և բանականություն. այս ամենը չափազանց թանկ ռեսուրսներ են:

«FPGA-ներն առաջարկում են տեխնոլոգիական առավելություններ», - ասում է Բոլսենսը: – Եվ սա պարզապես սովորական գովազդ չէ հարմարվողականության և վերակազմակերպման մասին: Բոլոր կարևոր հավելվածներում՝ մեքենայական ուսուցում, գրաֆիկների վերլուծություն, բարձր արագությամբ առևտուր և այլն։ - նրանք հնարավորություն ունեն հարմարվելու կոնկրետ առաջադրանքին ոչ միայն տվյալների բաշխման ճանապարհին, այլև հիշողության ճարտարապետությանը. ինչպես են տվյալները շարժվում չիպի ներսում: FPGA-ները նաև շատ ավելի շատ հիշողություն ունեն, քան մյուս սարքերը: Պետք է նաև հաշվի առնել, որ եթե առաջադրանքը չի տեղավորվում մեկ FPGA-ի մեջ, կարող եք այն մասշտաբել մի քանի չիպերի վրա՝ չհանդիպելով այն թերություններին, որոնք սպասում են ձեզ՝ մի քանի պրոցեսորների կամ գրաֆիկական պրոցեսորների միջև առաջադրանքները չափելիս»:

Source: www.habr.com

Добавить комментарий