Ո՞րն է տարբերությունը CUDA միջուկների և Tensor Cores-ի միջև: (Բացատրված) – Բոլոր տարբերությունները
Բովանդակություն
CUDA և Tensor միջուկները արտադրանք են, որոնք մշակվել են Nvidia կոչվող ընկերության կողմից: Այսպիսով, ինչ են CUDA միջուկները և Tensor միջուկները: CUDA-ն նշանակում է Compute Unified Device Architecture: CUDA միջուկները առկա են ձեր GPU-ներում, սմարթֆոններում և նույնիսկ ձեր մեքենաներում, ինչպես ասում են Nvidia-ի մշակողները:
CUDA միջուկները զուգահեռ հաշվողական հարթակ են և կիրառական ծրագրավորման ինտերֆեյս (API), որը թույլ է տալիս ծրագրակազմին օգտագործել հատուկ տեսակի գրաֆիկական մշակման միավորներ (GPU) ընդհանուր նշանակության մշակման համար:
Մինչդեռ տենզորային միջուկները, որոնք նույնպես մշակվել են Nvidia-ի կողմից, օգտագործվում են նաև GPU-ներում: Tensor Cores-ը թույլ է տալիս խառը ճշգրտությամբ հաշվարկել՝ դինամիկ կերպով հարմարեցնելով հաշվարկները՝ բարձրացնելու թողունակությունը՝ պահպանելով ճշգրտությունը:
Պարզ բառերով ասած՝ այս միջուկները ձեր համակարգչի GPU-ների կարևոր մասն են՝ որոշակի հաշվարկներ կատարելու համար: CUDA միջուկները օգտագործվում են երկու թվեր բազմապատկելու և դրանք մեկ այլ թվին ավելացնելու համար:
Մինչդեռ Tensor միջուկը նույնն է, բայց 4×4 մատրիցներով: Այս հաշվարկները հիմնականում ավելի արագ են դարձնում գրաֆիկները ձեզ համար:
Ի՞նչ է CUDA-ն:
Հաշվարկեք Unified Device Architecture-ը կարճ CUDA-ն, որը մշակվել է Nvidia-ի կողմից, թողարկվել է 2007 թվականի հունիսի 23-ին, զուգահեռ հաշվարկային հարթակ է և հավելվածի ծրագրավորման ինտերֆեյս (API):
թույլ է տալիս ծրագրակազմին օգտագործել գրաֆիկական մշակման միավորների (GPU) հատուկ տեսակներ ընդհանուր նշանակության մշակման համար, մեթոդ, որը հայտնի է որպես ընդհանուր նպատակային հաշվարկ:GPU (GPU):
CUDA-ն ծրագրային շերտ է, որն ապահովում է անմիջական մուտք դեպի GPU-ի վիրտուալ հրահանգների հավաքածուն և զուգահեռ հաշվողական տարրերը հաշվարկային միջուկների կատարման համար: CUDA-ն մշակվել է տարբեր ծրագրավորման լեզուների հետ աշխատելու համար, ներառյալ C, C++ և Fortran:
Տարբեր ծրագրավորման լեզուներով աշխատելու ունակությունը զուգահեռ ծրագրավորման մասնագետների համար հեշտացնում է GPU-ի ռեսուրսների օգտագործումը, եթե մենք այն տարբերում ենք նախկին API-ներից, ինչպիսիք են Direct3D-ը կամ OpenGL-ը, ինչը ձեզնից կպահանջի ավելի առաջադեմ: գրաֆիկական ծրագրավորման հմտությունների բազա:
GPU-ն CUDA-ով նաև աջակցում է ծրագրավորման շրջանակներին, ինչպիսիք են OpenMP, OpenACC, OpenCL և նաև HIP, որոնք կարող են նման կոդ կազմել CUDA-ում: CUDA-ի համար օգտագործված առաջին անունը Compute Unified Device Architecture-ի հապավումն էր: Այնուամենայնիվ, Nvidia-ն ավելի ուշ հեռացրեց սովորաբար օգտագործվող հապավումը:
Հզոր Nvidia գրաֆիկական քարտ GTX 1080 Ti
Ավելին CUDA-ի մասին
Որպես մասնագիտացված համակարգչային պրոցեսոր, գրաֆիկական մշակման միավորը (GPU) բավարարում է իրական կարիքները -ժամանակի, հաշվարկների ինտենսիվ եռաչափ գրաֆիկայի ծանրաբեռնվածություն:
Մոտավորապես 2012 թվականին GPU-ները զարգացան և դարձան խիստ զուգահեռ բազմամիջուկ համակարգեր, որոնք հնարավորություն էին տալիս արդյունավետ մշակել տվյալների մեծ բլոկների համար:
Տվյալների հսկայական բլոկներ զուգահեռ մշակելիս այս դիզայնը գերազանցում է ընդհանուր նշանակության կենտրոնական մշակման միավորներին (CPU) ալգորիթմների համար, ինչպիսիք են՝
- գաղտնագրային հեշը:գործառույթներ
- մեքենայի ուսուցում
- մոլեկուլային դինամիկայի սիմուլյացիաներ
- ֆիզիկական շարժիչներ
- տեսակավորող ալգորիթմներ
CUDA Architecture-ի օգտագործումը հիմա և ապագայում
- 3D գրաֆիկայի արագացված մատուցում
- Վիդեո ֆայլերի ձևաչափերի արագացված փոխակերպում
- Արագացված գաղտնագրում, վերծանում և սեղմում
- Կենսաինֆորմատիկա, օրինակ՝ NGS ԴՆԹ-ի հաջորդականությունը BarraCUDA
- Բաշխված հաշվարկներ, ինչպիսիք են սպիտակուցների բնօրինակ կոնֆորմացիայի կանխատեսումը
- Բժշկական վերլուծության սիմուլյացիաներ, օրինակ՝ վիրտուալ իրականություն՝ հիմնված CT և MRI սկանավորման պատկերների վրա
- Ֆիզիկական սիմուլյացիաներ, մասնավորապես հեղուկների դինամիկայի մեջ
- Նյարդային ցանցի ուսուցում մեքենայական ուսուցման խնդիրներում
- Դեմքի ճանաչում
- Բաշխված հաշվողական նախագծեր, ինչպիսիք են [email protected] և այլ նախագծեր, որոնք օգտագործում են BOINC
- Մոլեկուլային դինամիկա
- Մայնինգ կրիպտոարժույթներ
- Շարժման (SfM) ծրագրաշարի կառուցվածքը
Ի՞նչ է Tensor Core-ը:
Տենսորային միջուկներ կոչվող մասնագիտացված միջուկները թույլ են տալիս խառը ճշգրտությամբ ուսուցում: Այս մասնագիտացված միջուկների սկզբնական սերունդը դա անում է միաձուլված բազմապատկման ավելացման ալգորիթմով: Սա հնարավորություն է տալիս բազմապատկել և ավելացնել երկու 4 x 4 FP16 մատրիցներ 4 x 4 FP16 կամ FP32 մատրիցին:
Վերջնական արդյունքը կլինի FP32-ը միայն ճշգրտության աննշան կորստով, խառը ճշգրիտ հաշվարկը նշանակված է որպես այդպիսին, չնայածմուտքային մատրիցները կարող են լինել ցածր ճշգրտության FP16:
Գործնականում դա զգալիորեն արագացնում է հաշվարկները՝ փոքր ազդեցություն ունենալով մոդելի վերջնական արդյունավետության վրա: Այս կարողությունը ընդլայնվել է ավելի ուշ միկրոճարտարապետությունների կողմից՝ նույնիսկ ավելի քիչ ճշգրիտ համակարգչային թվերի ներկայացման համար:
Առաջին սերունդը ներկայացվեց Volta միկրոճարտարապետությամբ՝ սկսած V100-ից, ավելի շատ համակարգչային թվերի ճշգրիտ ձևաչափեր հասանելի դարձան նոր GPU միկրոճարտարապետությունների հետ յուրաքանչյուր անցնող սերնդի հետ հաշվարկելու համար:
Մենք կխոսենք այն մասին, թե ինչպես են Tensor Cores-ի հզորությունը և ֆունկցիոնալությունը փոխվել և բարելավվել յուրաքանչյուր միկրոճարտարապետության սերնդի հետ հաջորդ բաժնում:
Տիտան V-ի կողմից արված գրաֆիկական պատկերը
Ինչպե՞ս են աշխատում Tensor Cores-ը:
Առաջին սերունդ․ Այս միջուկները հնարավորություն տվեցին մարզվել խառը ճշգրտությամբ և FP16 թվային ձևաչափով:
Սա կարող է ունենալ մինչև 12 անգամ մեծացնել teraFLOP թողունակությունը որոշակի GPU-ների համար: Բարձրակարգ V100-ի 640 միջուկները նախորդ սերնդի Pascal GPU-ների համեմատությամբ ապահովում են կատարողականի արագության 5 անգամ ավելացում:
Երկրորդ սերունդ.
Turing GPU-ների ներդրմամբ ներկայացվեց Tensor Cores-ի երկրորդ սերունդը: Int8, Int4 և Int1 ավելացվել են աջակցվող Tensor Core ճշգրտումների ցանկին, որոնքնախկինում սահմանափակվել է FP16-ով:
Խառը ճշգրիտ ուսուցման ընթացակարգերի շնորհիվ GPU-ի կատարողականի թողունակությունը աճել է մինչև 32 անգամ՝ համեմատած Pascal GPU-ների:
Երրորդ սերունդ.
Ampere GPU-ի ճարտարապետությունն ընդլայնվում է Volta և Turing միկրոճարտարապետությունների նախկին առաջընթացների հիման վրա՝ ավելացնելով աջակցություն FP64, TF32 և bfloat16 ճշգրտությունների համար:
Խորը ուսուցման ուսուցումը և եզրակացության գործողությունները շատ ավելի արագացված են այս լրացուցիչ ճշգրիտ ձևաչափերով: Օրինակ, TF32 ձևաչափը գործում է FP32-ի նման՝ միաժամանակ երաշխավորելով մինչև 20 անգամ արագացում՝ առանց որևէ ծածկագրի փոփոխության:
Այնուհետև, ընդամենը մի քանի տող կոդով, ավտոմատ խառը ճշգրիտ իրականացումը կարագացնի մարզումը լրացուցիչ 2 անգամ:
Երրորդ սերնդի NVLink-ը, որը հնարավորություն է տալիս ահռելի արագ բազմաբնույթ GPU փոխազդեցությունները, երրորդ սերնդի Ray Tracing միջուկները և նոսր մատրիցային մաթեմատիկայի հետ մասնագիտացումը Ampere միկրոճարտարապետության լրացուցիչ ասպեկտներ են :
Տես նաեւ: Լացող օբսիդիան ընդդեմ սովորական օբսիդիանի (դրանց կիրառությունները) – բոլոր տարբերություններըՉորրորդ սերունդ.
Նախատեսվում է Hopper միկրոճարտարապետության վրա հիմնված Tensor Cores-ի չորրորդ սերնդի ապագա թողարկումը: Չորրորդ սերնդի Tensor Cores-ը հաջորդ H100-ում:
որը կթողարկվի 2022 թվականի մարտին, կկարողանա կառավարել FP8 ճշգրիտ ձևաչափերը և, ըստ NVIDIA-ի, արագացնելու է հսկայական լեզվական մոդելները «ապշեցուցիչ 30X-ով: նախորդ սերնդի նկատմամբ»:
RTX գրաֆիկական քարտըօգտագործվում է շատ արագ գրաֆիկա ներկայացնելու համար, քանի որ այն պարունակում է թենզորային միջուկներ:
Տարբերությունը CUDA միջուկների և թենզորային միջուկների միջև
Tensor միջուկները ներկայումս սահմանափակված են Titan V-ով և Tesla V100-ով: Երկու GPU-ների 5120 CUDA միջուկներն ունեն մեկ ճշգրիտ բազմապատկման-կուտակման գործողության առավելագույն հզորություն (օրինակ, fp32-ում՝ x += y * z) մեկ GPU ժամացույցի համար (օրինակ՝ Tesla V100 PCIe հաճախականությունը 1,38 Գց է):
Յուրաքանչյուր թենզորային միջուկ գործում է 4×4 փոքր մատրիցների վրա փոքր մատրիցների համար: Մեկ GPU ժամացույցի համար յուրաքանչյուր տենզորի միջուկ կարող է կատարել մեկ մատրիցային բազմապատկման-կուտակման գործողություն:
Տես նաեւ: Ո՞րն է տարբերությունը Maul-ի և Warhammer-ի միջև (բացահայտված) – Բոլոր տարբերություններըԱյն բազմապատկում է երկու 4×4 FP16 մատրիցներ և ավելացնում է 4×4 FP32 մատրիցը, որի արդյունքում ստացվում է կուտակիչ (դա նաև fp32 4×4 մատրիցա է):
Քանի որ մուտքագրման մատրիցները fp16 են, իսկ բազմապատկման արդյունքները և կուտակիչը fp32 են, ալգորիթմը հայտնի է որպես խառը ճշգրտություն:
Ճիշտ տերմինը, ամենայն հավանականությամբ, կլինի ընդամենը «4×4 մատրիցային միջուկներ», սակայն NVIDIA մարքեթինգային թիմը որոշեց օգտագործել «tensor cores»:
Tensor cores ամբողջական բացատրությունը համառոտ
GPU քարտ | CUDA միջուկներ | VRAM |
---|---|---|
GeForce GTX 1660 Ti | 1536 | 6GB |
GeForce GTX 1660 Super | 1408 | 6GB |
GeForce GTX 1660 | 1408 | 6GB |
GeForce GTX 1650 Super | 1408 | 4GB |
GeForce GTX 1650 | 1024 եւ896 | 4GB |
GeForce GTX 1060 3GB | 1280 | 4GB |
GeForce GTX 1650 | 1280 | 3GB |
GeForce GTX 1060 6GB | 768 | 6GB |
GeForce GTX 1050 Ti (3GB) | 768 | 4GB |
GeForce GTX 1050 (2GB) | 640 | 3GB |
GeForce GTX 960 | 1024 | 2GB |
GeForce GTX 950 | 786 | 2GB |
GeForce GTX 780 Ti | 2880 | 2GB |
GeForce GTX 780 | 2304 | 3GB |
GeForce GTX 750 Ti | 640 | 2 ԳԲ |
GeForce GTX 750 | 512 | 1ԳԲ կամ 2 ԳԲ |
GPU-ները, որոնք պարունակում են CUDA միջուկներ
Եզրակացություն
- CUDA և Tensor միջուկները արտադրանք են, երկուսն էլ մշակվել են Nvidia կոչվող ընկերության կողմից: CUDA-ն նշանակում է Compute Unified Device Architecture: Այս CUDA միջուկները առկա են ձեր GPU-ներում, սմարթֆոններում և նույնիսկ ձեր մեքենաներում:
- Մինչդեռ տենզորային միջուկները, որոնք նույնպես մշակվել են Nvidia-ի կողմից, օգտագործվում են նաև GPU-ներում: «Tensor cores» կոչվող մասնագիտացված միջուկները թույլ են տալիս խառը ճշգրտությամբ ուսուցում: Tensor Cores-ի առաջին սերունդը հնարավորություն տվեց մարզվել խառը ճշգրտությամբ և FP16 թվային ձևաչափով:
- Սա կարող է ունենալ մինչև 12 անգամ մեծացնել teraFLOP թողունակությունը որոշակի GPU-ների համար: Int8-ը, Int4-ը և Int1-ը ավելացվել են Tensor Core-ի աջակցվող ճշգրտումների ցանկին:
- Պայմանավորված է խառըճշգրիտ ուսուցման ընթացակարգերը, GPU-ի աշխատանքը ավելացել է մինչև 32 անգամ: Նախատեսվում է Hopper միկրոճարտարապետության վրա հիմնված Tensor Cores-ի չորրորդ սերնդի թողարկումը: