У чым розніца паміж ядрамі CUDA і тэнзарнымі ядрамі? (Тлумачэнне) – Усе адрозненні
Змест
Ядры CUDA і Tensor - гэта прадукты, распрацаваныя кампаніяй пад назвай Nvidia. Такім чынам, што такое ядра CUDA і ядра Tensor? CUDA расшыфроўваецца як Compute Unified Device Architecture. Ядра CUDA прысутнічаюць у вашых графічных працэсарах, смартфонах і нават у вашых аўтамабілях, як кажуць распрацоўшчыкі Nvidia.
Ядра CUDA - гэта паралельная вылічальная платформа і інтэрфейс прыкладнога праграмавання (API), які дазваляе праграмнаму забеспячэнню выкарыстоўваць пэўныя тыпы графічных працэсараў (GPU) для апрацоўкі агульнага прызначэння.
У той час як тэнзарныя ядра, якія таксама былі распрацаваны Nvidia, таксама выкарыстоўваюцца ў графічных працэсарах. Tensor Cores забяспечваюць вылічэнні са змешанай дакладнасцю, дынамічна адаптуючы вылічэнні для павышэння прапускной здольнасці пры захаванні дакладнасці.
Простымі словамі, гэтыя ядра з'яўляюцца важнай часткай графічных працэсараў вашага кампутара для выканання пэўных вылічэнняў. Ядра CUDA выкарыстоўваюцца для множання двух лікаў і дадання іх да іншага ліку.
У той час як ядро Tensor такое ж, але з матрыцамі 4×4. Гэтыя вылічэнні ў асноўным дазваляюць вам хутчэй афармляць графіку.
Што такое CUDA?
Compute Unified Device Architecture, скарочана CUDA, распрацаваная Nvidia, выпушчаная 23 чэрвеня 2007 г., уяўляе сабой паралельную вылічальную платформу і інтэрфейс прыкладнога праграмавання (API).
Гэта дазваляе праграмнаму забеспячэнню выкарыстоўваць пэўныя тыпы графічных працэсараў (GPU) для апрацоўкі агульнага прызначэння, метад, вядомы як вылічэнні агульнага прызначэння наГрафічныя працэсары (GPU).
CUDA - гэта праграмны ўзровень, які забяспечвае прамы доступ да віртуальнага набору інструкцый GPU і паралельных вылічальных элементаў для выканання вылічальных ядраў. CUDA была распрацавана для працы з рознымі мовамі праграмавання, уключаючы C, C++ і Fortran.
Магчымасць працаваць з рознымі мовамі праграмавання палягчае спецыялістам па паралельным праграмаванні выкарыстанне рэсурсаў графічнага працэсара, калі мы адрозніваем яго ад папярэдніх API, такіх як Direct3D або OpenGL, якія патрабуюць ад вас больш прасунутага база навыкаў у графічным праграмаванні.
GPU з CUDA таксама падтрымлівае структуры праграмавання, такія як OpenMP, OpenACC, OpenCL, а таксама HIP, які можа кампіляваць такі код у CUDA. Першая назва CUDA была абрэвіятурай Compute Unified Device Architecture. Аднак пазней Nvidia адмовілася ад звычайна выкарыстоўванай абрэвіятуры.
Магутная відэакарта Nvidia GTX 1080 Ti
Больш падрабязна пра CUDA
З'яўляючыся спецыялізаваным кампутарным працэсарам, графічны працэсар (GPU) задавальняе патрэбы рэальнага Працоўныя нагрузкі 3D-графікі з высокім узроўнем часу і інтэнсіўнымі вылічэннямі.
Прыкладна ў 2012 г. графічныя працэсары эвалюцыянавалі і сталі вельмі паралельнымі шмат'ядравымі сістэмамі, якія забяспечваюць эфектыўную апрацоўку даных для вялікіх блокаў.
Пры паралельнай апрацоўцы велізарных блокаў даных гэты дызайн пераўзыходзіць цэнтральныя працэсары агульнага прызначэння (ЦП) для такіх алгарытмаў, як:
- крыптаграфічны хэшфункцыі
- машыннае навучанне
- мадэляванне малекулярнай дынамікі
- фізічныя рухавікі
- алгарытмы сартавання
Выкарыстанне архітэктуры CUDA цяпер і у будучыні
- Паскораны рэндэрынг 3D-графікі
- Паскоранае ўзаемапераўтварэнне фарматаў відэафайлаў
- Паскоранае шыфраванне, дэшыфраванне і сцісканне
- Біяінфарматыка, напрыклад, секвенирование ДНК NGS BarraCUDA
- Размеркаваныя вылічэнні, такія як прагназаванне натыўнай канфармацыі бялкоў
- Мадэляванне медыцынскага аналізу, напрыклад, віртуальная рэальнасць на аснове КТ і МРТ малюнкаў
- Фізічнае мадэляванне, у прыватнасці, у дынаміцы вадкасці
- Навучанне нейронных сетак праблемам машыннага навучання
- Распазнаванне твараў
- Праекты размеркаваных вылічэнняў, такія як [email protected] і іншыя праекты з выкарыстаннем BOINC
- Малекулярная дынаміка
- Здабыча крыптавалют
- Праграмнае забеспячэнне Structure from motion (SfM)
Што такое Tensor Core?
Спецыялізаваныя ядры, якія называюцца тэнзарнымі ядрамі, дазваляюць трэніравацца са змешанай дакладнасцю. Першапачатковае пакаленне гэтых спецыялізаваных ядраў робіць гэта з дапамогай злітага алгарытму множання-дадання. Гэта дае магчымасць памнажаць і складаць дзве матрыцы 4 x 4 FP16 да матрыцы 4 x 4 FP16 або FP32.
Канчатковым вынікам будзе FP32 толькі з нязначнай стратай дакладнасці, вылічэнні са змешанай дакладнасцю пазначаюцца як такія, нават каліўваходныя матрыцы могуць быць нізкадакладнымі FP16.
На практыцы гэта істотна паскарае разлікі з невялікім уплывам на канчатковую эфектыўнасць мадэлі. Гэтая здольнасць была пашырана пазнейшымі мікраархітэктурамі да яшчэ менш дакладных камп'ютэрных лічбавых уяўленняў.
Першае пакаленне было прадстаўлена з мікраархітэктурай Volta, пачынаючы з V100, з кожным наступным пакаленнем для вылічэнняў з новымі мікраархітэктурамі графічных працэсараў стала даступна больш камп'ютэрных фарматаў дакладнасці лікаў.
У наступным раздзеле мы пагаворым пра тое, як ёмістасць і функцыянальнасць Tensor Cores змяняліся і паляпшаліся з кожным пакаленнем мікраархітэктуры.
Графічна адлюстраваны відарыс, зроблены Titan V
Як працуюць тэнзарныя ядры?
Першае пакаленне:
Мікраархітэктура Volta GPU была ўключана ў першае пакаленне тэнзарных ядраў. Гэтыя ядра дазволілі трэніравацца са змешанай дакладнасцю і ў фармаце лікаў FP16.
Глядзі_таксама: Розніца паміж Ігнараваць & Заблакіраваць у Snapchat – усе адрозненніГэта можа павялічыць прапускную здольнасць teraFLOP да 12 разоў для некаторых графічных працэсараў. 640 ядраў найвышэйшага ўзроўню V100 даюць да 5-кратнага павелічэння хуткасці ў параўнанні з графічнымі працэсарамі Pascal папярэдняга пакалення.
Другое пакаленне:
З увядзеннем графічных працэсараў Turing было прадстаўлена другое пакаленне тэнзарных ядраў. Int8, Int4 і Int1 былі дададзены ў спіс падтрымоўваных дакладнасцей Tensor Core, якія быліраней абмежаваны FP16.
Дзякуючы змешаным працэдурам навучання дакладнасці, прапускная здольнасць графічнага працэсара была павялічана да 32 разоў у параўнанні з графічнымі працэсарамі Pascal.
Трэцяе пакаленне:
Архітэктура графічнага працэсара Ampere пашырае ранейшыя дасягненні мікраархітэктур Volta і Turing, дадаючы падтрымку дакладнасці FP64, TF32 і bfloat16.
Глыбокае навучанне і дзейнасць па вываду паскараюцца дзякуючы гэтым дадатковым дакладным фарматам. Напрыклад, фармат TF32 функцыянуе аналагічна FP32, а таксама гарантуе паскарэнне да 20 разоў без змены кода.
Тады з дапамогай усяго некалькіх радкоў кода аўтаматычная рэалізацыя змешанай дакладнасці паскорыць навучанне яшчэ ў 2 разы.
Трэцяе пакаленне NVLink для надзвычай хуткага ўзаемадзеяння з некалькімі графічнымі працэсарамі, ядра трэцяга пакалення з трасіроўкай прамянёў і спецыялізацыя з матэматыкай разрэджаных матрыц з'яўляюцца дадатковымі аспектамі мікраархітэктуры Ampere .
Чацвёртае пакаленне:
Плануецца будучы выпуск чацвёртага пакалення Tensor Cores на аснове мікраархітэктуры Hopper. Тэнзорныя ядра чацвёртага пакалення ў наступным H100.
Глядзі_таксама: Розніца паміж VIX і VXX (тлумачэнне) – Усе адрозненніЯкі будзе выпушчаны ў сакавіку 2022 года, змогуць працаваць з дакладнымі фарматамі FP8 і, паводле NVIDIA, паскараюць вялізныя моўныя мадэлі «ў дзіўныя 30 разоў у параўнанні з папярэднім пакаленнем.”
Відэакарта RTXвыкарыстоўваецца для вельмі хуткага рэндэрынгу графікі, паколькі змяшчае тэнзарныя ядра.
Розніца паміж ядрамі CUDA і тэнзарнымі ядрамі
Тэнзарныя ядра ў цяперашні час абмежаваныя Titan V і Tesla V100. Ядра 5120 CUDA на абодвух графічных працэсарах маюць максімальную магутнасць адной дакладнай аперацыі множання-назапашвання (напрыклад, у fp32: x += y * z) на такт GPU (напрыклад, частата Tesla V100 PCIe роўная 1,38 Гц).
Кожнае ядро тэнзара працуе на малых матрыцах 4×4 для малых матрыц. За адзін такт GPU кожнае ядро тэнзара можа выканаць адну аперацыю множання-назапашвання матрыцы.
Ён памнажае дзве матрыцы 4×4 FP16 і дадае матрыцу 4×4 FP32, у выніку якой атрымліваецца акумулятар (гэта таксама матрыца fp32 4×4).
Паколькі ўваходныя матрыцы маюць fp16, а вынікі множання і акумулятар - fp32, алгарытм вядомы як змешаная дакладнасць.
Правільным тэрмінам было б, хутчэй за ўсё, проста «матрычныя ядра 4×4», але маркетынгавая каманда NVIDIA вырашыла выкарыстоўваць «тэнзарныя ядра».
Короткае поўнае тлумачэнне ядраў Tensor
Карта GPU | Ядра CUDA | VRAM |
---|---|---|
GeForce GTX 1660 Ti | 1536 | 6 ГБ |
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 | 2 ГБ |
GeForce GTX 780 Ti | 2880 | 2 ГБ |
GeForce GTX 780 | 2304 | 3GB |
GeForce GTX 750 Ti | 640 | 2 ГБ |
GeForce GTX 750 | 512 | 1 ГБ або 2 ГБ |
Графічныя працэсары, якія змяшчаюць ядры CUDA
Выснова
- Ядры CUDA і Tensor - гэта прадукты, абодва распрацаваныя кампаніяй пад назвай Nvidia. CUDA расшыфроўваецца як Compute Unified Device Architecture. Гэтыя ядра CUDA прысутнічаюць у вашых графічных працэсарах, смартфонах і нават аўтамабілях.
- У той час як тэнзарныя ядра, якія таксама былі распрацаваны Nvidia, таксама выкарыстоўваюцца ў графічных працэсарах. Спецыялізаваныя ядры пад назвай "тэнзарныя ядры" дазваляюць трэніравацца са змешанай дакладнасцю. Першае пакаленне Tensor Cores дазволіла трэніравацца са змешанай дакладнасцю і фарматам лікаў FP16.
- Гэта можа павялічыць прапускную здольнасць teraFLOP да 12 разоў для некаторых графічных працэсараў. Int8, Int4 і Int1 былі дададзены ў спіс падтрымоўваных дакладнасцей Tensor Core.
- З-за змешанагапрацэдур навучання дакладнасці, прадукцыйнасць GPU была павялічана да 32 разоў. У будучыні плануецца выпуск чацвёртага пакалення Tensor Cores на аснове мікраархітэктуры Hopper.