តើអ្វីជាភាពខុសគ្នារវាង CUDA Cores និង Tensor Cores? (ពន្យល់) - ភាពខុសគ្នាទាំងអស់។
តារាងមាតិកា
CUDA និង Tensor cores គឺជាផលិតផលដែលបង្កើតឡើងដោយក្រុមហ៊ុនមួយឈ្មោះថា Nvidia។ ដូច្នេះតើស្នូល CUDA និង Tensor cores ជាអ្វី? CUDA តំណាងឱ្យ Compute Unified Device Architecture ។ ស្នូល CUDA មានវត្តមាននៅក្នុង GPUs ស្មាតហ្វូន និងសូម្បីតែរថយន្តរបស់អ្នក ដូចដែលអ្នកអភិវឌ្ឍន៍ Nvidia និយាយដូច្នេះ។
ស្នូល CUDA គឺជាវេទិកាកុំព្យូទ័រប៉ារ៉ាឡែល និងចំណុចប្រទាក់កម្មវិធីកម្មវិធី (API) ដែលអាចឱ្យកម្មវិធីប្រើប្រាស់ប្រភេទជាក់លាក់នៃអង្គភាពដំណើរការក្រាហ្វិក (GPUs) សម្រាប់ដំណើរការគោលបំណងទូទៅ។
ចំណែកឯ tensor cores ដែលត្រូវបានបង្កើតឡើងដោយ Nvidia ក៏ត្រូវបានប្រើប្រាស់នៅក្នុង GPUs ផងដែរ។ Tensor Cores បើកដំណើរការការគណនាភាពជាក់លាក់ចម្រុះ ដោយសម្រួលការគណនាដោយថាមវន្ត ដើម្បីបង្កើនការបញ្ជូនទិន្នន័យ ខណៈពេលដែលរក្សាបាននូវភាពត្រឹមត្រូវ។
នៅក្នុងពាក្យសាមញ្ញ ស្នូលទាំងនេះគឺជាផ្នែកសំខាន់នៃ GPUs នៅក្នុងកុំព្យូទ័ររបស់អ្នកដើម្បីធ្វើការគណនាជាក់លាក់។ ស្នូល CUDA ត្រូវបានប្រើដើម្បីគុណលេខពីរ ហើយបន្ថែមវាទៅលេខផ្សេងទៀត។
ចំណែកឯស្នូល Tensor គឺដូចគ្នា ប៉ុន្តែមានម៉ាទ្រីស 4×4។ ការគណនាទាំងនេះជាមូលដ្ឋានធ្វើឱ្យក្រាហ្វិកកាន់តែលឿនសម្រាប់អ្នក។
តើ CUDA ជាអ្វី?
Compute Unified Device Architecture in short CUDA បង្កើតឡើងដោយ Nvidia ដែលបានចេញផ្សាយនៅថ្ងៃទី 23 ខែមិថុនា ឆ្នាំ 2007 គឺជាវេទិកាកុំព្យូទ័រប៉ារ៉ាឡែល និងចំណុចប្រទាក់កម្មវិធីកម្មវិធី (API)។
នោះ អនុញ្ញាតឱ្យកម្មវិធីប្រើប្រាស់ប្រភេទជាក់លាក់នៃអង្គភាពដំណើរការក្រាហ្វិក (GPUs) សម្រាប់ដំណើរការគោលបំណងទូទៅ ដែលជាវិធីសាស្ត្រដែលគេស្គាល់ថាជាការគណនាគោលបំណងទូទៅនៅលើជីភីយូ (GPU) ។
CUDA គឺជាស្រទាប់សូហ្វវែរដែលផ្តល់ការចូលប្រើដោយផ្ទាល់ទៅកាន់សំណុំការណែនាំនិម្មិតរបស់ GPU និងធាតុគណនាស្របសម្រាប់ការប្រតិបត្តិនៃខឺណែលកុំព្យូទ័រ។ CUDA ត្រូវបានបង្កើតឡើងដើម្បីធ្វើការជាមួយនឹងភាសាកម្មវិធីផ្សេងគ្នារួមទាំង C, C ++, និង Fortran ។
សមត្ថភាពក្នុងការធ្វើការជាមួយភាសាសរសេរកម្មវិធីផ្សេងៗធ្វើឱ្យវាកាន់តែងាយស្រួលសម្រាប់អ្នកឯកទេសក្នុងការសរសេរកម្មវិធីស្របគ្នាក្នុងការប្រើប្រាស់ធនធាន GPU ប្រសិនបើយើងបែងចែកវាពី APIs ពីមុនដូចជា Direct3D ឬ OpenGL ដែលនឹងតម្រូវឱ្យអ្នកមានកម្រិតខ្ពស់ជាងនេះ។ មូលដ្ឋានជំនាញក្នុងការសរសេរកម្មវិធីក្រាហ្វិក។
GPU ជាមួយ CUDA ក៏គាំទ្រក្របខ័ណ្ឌសរសេរកម្មវិធីផងដែរ ដូចជា OpenMP, OpenACC, OpenCL និង HIP ដែលអាចចងក្រងកូដបែបនេះទៅ CUDA ។ ឈ្មោះដំបូងដែលប្រើសម្រាប់ CUDA គឺជាអក្សរកាត់សម្រាប់ស្ថាបត្យកម្មឧបករណ៍បង្រួបបង្រួមកុំព្យូទ័រ។ ទោះជាយ៉ាងណាក៏ដោយ Nvidia ក្រោយមកបានទម្លាក់អក្សរកាត់ដែលប្រើជាទូទៅ។
កាតក្រាហ្វិក Nvidia ដ៏មានអានុភាព GTX 1080 Ti
បន្ថែមអំពី CUDA
ក្នុងនាមជាប្រព័ន្ធដំណើរការកុំព្យូទ័រឯកទេស អង្គភាពដំណើរការក្រាហ្វិក (GPU) បំពេញតាមតម្រូវការជាក់ស្តែង។ -time បន្ទុកក្រាហ្វិក 3D ដែលពឹងផ្អែកខ្លាំងលើកុំព្យូទ័រ។
អំពី GPUs ឆ្នាំ 2012 បានវិវត្ត ហើយបានក្លាយជាប្រព័ន្ធពហុស្នូលស្របគ្នាខ្លាំង ដែលអនុញ្ញាតឱ្យដំណើរការទិន្នន័យប្រកបដោយប្រសិទ្ធភាពសម្រាប់ប្លុកធំៗ។
នៅពេលដំណើរការប្លុកដ៏ធំនៃទិន្នន័យស្របគ្នា ការរចនានេះគឺប្រសើរជាងអង្គភាពដំណើរការកណ្តាលដែលមានគោលបំណងទូទៅ (CPUs) សម្រាប់ក្បួនដោះស្រាយដូចជា៖
សូមមើលផងដែរ: តើអ្វីជាភាពខុសគ្នារវាង "នឹងមាន" និង "នឹងនៅទីនោះ"? (Spotting The Variance) - ភាពខុសគ្នាទាំងអស់។- កូដសម្ងាត់មុខងារ
- ការរៀនម៉ាស៊ីន
- ការក្លែងធ្វើឌីណាមិកម៉ូលេគុល
- ម៉ាស៊ីនរូបវិទ្យា
- តម្រៀបក្បួនដោះស្រាយ
ការប្រើប្រាស់ស្ថាបត្យកម្ម CUDA ឥឡូវនេះ និង នាពេលអនាគត
- ការបង្កើនល្បឿននៃការបង្ហាញក្រាហ្វិច 3D
- ការបំប្លែងទម្រង់ឯកសារវីដេអូដែលបានពន្លឿន
- ការពន្លឿនការបំលែងកូដ ការឌិគ្រីប និងការបង្ហាប់
- ព័ត៌មានជីវវិទ្យា។ ឧ. NGS DNA sequencing BarraCUDA
- ការគណនាដែលបានចែកចាយ ដូចជាការទស្សន៍ទាយការអនុលោមតាមដើមនៃប្រូតេអ៊ីន
- ការក្លែងធ្វើការវិភាគវេជ្ជសាស្ត្រ ជាឧទាហរណ៍ ការពិតនិម្មិតដែលផ្អែកលើរូបភាពស្កែន CT និង MRI
- ការក្លែងធ្វើរូបវិទ្យា ជាពិសេសនៅក្នុងឌីណាមិករាវ
- ការបណ្តុះបណ្តាលបណ្តាញសរសៃប្រសាទក្នុងបញ្ហារៀនម៉ាស៊ីន
- ការសម្គាល់មុខ
- គម្រោងកុំព្យូទ័រដែលបានចែកចាយ ដូចជា [អ៊ីមែល ការពារ] និងគម្រោងផ្សេងទៀតដោយប្រើ BOINC
- សក្ដានុពលម៉ូលេគុល
- ការជីកយករ៉ែ cryptocurrencies
- រចនាសម្ព័ន្ធពីកម្មវិធីចលនា (SfM)
តើ Tensor Core ជាអ្វី?
ស្នូលពិសេសដែលហៅថា Tensor Cores អនុញ្ញាតឱ្យមានការបណ្តុះបណ្តាលភាពជាក់លាក់ចម្រុះ។ ជំនាន់ដំបូងរបស់ស្នូលឯកទេសទាំងនេះធ្វើដូចនេះជាមួយនឹងក្បួនដោះស្រាយការបន្ថែមគុណ។ នេះធ្វើឱ្យវាអាចគុណ និងបន្ថែមម៉ាទ្រីស 4 x 4 FP16 ពីរទៅម៉ាទ្រីស 4 x 4 FP16 ឬ FP32 ។
លទ្ធផលចុងក្រោយនឹងជា FP32 ជាមួយនឹងការបាត់បង់ភាពជាក់លាក់តិចតួចប៉ុណ្ណោះ ការគណនាភាពជាក់លាក់ចម្រុះត្រូវបានកំណត់ថាទោះបីជាម៉ាទ្រីសបញ្ចូលអាចជា FP16 ភាពជាក់លាក់ទាប។
នៅក្នុងការអនុវត្ត នេះបង្កើនល្បឿនការគណនាយ៉ាងខ្លាំង ដោយមានឥទ្ធិពលតិចតួចលើប្រសិទ្ធភាពចុងក្រោយរបស់ម៉ូដែល។ សមត្ថភាពនេះត្រូវបានពង្រីកដោយមីក្រូស្ថាបត្យកម្មក្រោយៗទៀត ដល់ការតំណាងលេខកុំព្យូទ័រកាន់តែច្បាស់លាស់។
ជំនាន់ទីមួយត្រូវបានណែនាំជាមួយនឹងស្ថាបត្យកម្ម Volta microarchitecture ចាប់ផ្តើមពី V100 ទម្រង់ភាពជាក់លាក់នៃលេខកុំព្យូទ័រកាន់តែច្រើនត្រូវបានបង្កើតឡើងសម្រាប់ការគណនាជាមួយ microarchitecture GPU ថ្មីជាមួយនឹងជំនាន់នីមួយៗដែលឆ្លងកាត់។
យើងនឹងនិយាយអំពីរបៀបដែលសមត្ថភាព និងមុខងាររបស់ Tensor Cores បានផ្លាស់ប្តូរ និងធ្វើឱ្យប្រសើរឡើងជាមួយនឹងជំនាន់មីក្រូស្ថាបត្យកម្មនីមួយៗនៅក្នុងផ្នែកខាងក្រោម។
រូបភាពដែលបង្ហាញក្រាហ្វិកដែលបង្កើតឡើងដោយ Titan V
តើ Tensor Cores ដំណើរការយ៉ាងដូចម្តេច?
ជំនាន់ទីមួយ៖
ស្ថាបត្យកម្ម Volta GPU microarchitecture ត្រូវបានរួមបញ្ចូលជាមួយ Tensor Cores ជំនាន់ទីមួយ។ ស្នូលទាំងនេះបានធ្វើឱ្យវាអាចហ្វឹកហាត់ជាមួយនឹងភាពជាក់លាក់ចម្រុះ និងទម្រង់លេខ FP16 ។
វាអាចមានការជំរុញដល់ទៅ 12 ដងក្នុងការបញ្ជូន teraFLOP សម្រាប់ GPUs ជាក់លាក់។ 640 cores នៃថ្នាក់កំពូល V100 ផ្តល់ឱ្យរហូតដល់ទៅ 5 ដងក្នុងល្បឿនដំណើរការជាង Pascal GPUs នៃជំនាន់មុន។
ជំនាន់ទីពីរ៖
ជាមួយនឹងការណែនាំរបស់ Turing GPUs ជំនាន់ទីពីរនៃ Tensor Cores ត្រូវបានណែនាំ។ Int8, Int4, និង Int1 ត្រូវបានបន្ថែមទៅក្នុងបញ្ជីនៃភាពជាក់លាក់របស់ Tensor Core ដែលគាំទ្រ។ពីមុនត្រូវបានកំណត់ត្រឹម FP16 ។
សូមមើលផងដែរ: ភាពខុសគ្នារវាងវិចារណញាណនិងសភាវគតិ (ពន្យល់) - ភាពខុសគ្នាទាំងអស់។ដោយសារតែនីតិវិធីបណ្តុះបណ្តាលភាពជាក់លាក់ចម្រុះ ដំណើរការដំណើរការរបស់ GPU ត្រូវបានកើនឡើងរហូតដល់ 32 ដងបើប្រៀបធៀបទៅនឹង Pascal GPUs ។
ជំនាន់ទីបី៖
ស្ថាបត្យកម្មនៅក្នុង Ampere GPU ពង្រីកលើភាពជឿនលឿនរបស់ Volta និង Turing microarchitectures ដោយបន្ថែមការគាំទ្រសម្រាប់ភាពជាក់លាក់ FP64, TF32 និង bfloat16 ។
ការបណ្ដុះបណ្ដាលការរៀនសូត្រស៊ីជម្រៅ និងសកម្មភាពសន្និដ្ឋានត្រូវបានពន្លឿនកាន់តែច្រើនដោយទម្រង់ជាក់លាក់បន្ថែមទាំងនេះ។ ជាឧទាហរណ៍ ទម្រង់ TF32 ដំណើរការស្រដៀងនឹង FP32 ខណៈពេលដែលធានារហូតដល់ 20x speedups ដោយមិនផ្លាស់ប្តូរលេខកូដណាមួយឡើយ។
បន្ទាប់មក ជាមួយនឹងកូដពីរបីបន្ទាត់ ការអនុវត្តភាពជាក់លាក់ចម្រុះដោយស្វ័យប្រវត្តិនឹងបង្កើនល្បឿនការបណ្តុះបណ្តាលដោយ 2x បន្ថែម។
NVLink ជំនាន់ទី 3 ដើម្បីបើកអន្តរកម្មពហុ GPU ដែលមានល្បឿនលឿនខ្លាំង ស្នូល Ray Tracing ជំនាន់ទី 3 និងឯកទេសជាមួយគណិតវិទ្យាម៉ាទ្រីសតូច គឺជាទិដ្ឋភាពបន្ថែមនៃស្ថាបត្យកម្ម Ampere ។
ជំនាន់ទីបួន៖
ការចេញផ្សាយនាពេលអនាគតនៃ Tensor Cores ជំនាន់ទី 4 ដែលមានមូលដ្ឋានលើមីក្រូស្ថាបត្យកម្ម Hopper ត្រូវបានគ្រោងទុក។ Tensor Cores ជំនាន់ទី 4 នៅក្នុង H100 បន្ទាប់។
ដែលត្រូវបានរំពឹងថានឹងចេញនៅខែមីនា ឆ្នាំ 2022 នឹងអាចគ្រប់គ្រងទម្រង់ភាពជាក់លាក់ FP8 ហើយយោងទៅតាម NVIDIA នឹងបង្កើនល្បឿនគំរូភាសាដ៏ធំ "ដោយ 30X គួរឱ្យភ្ញាក់ផ្អើល លើសពីជំនាន់មុន។"
កាតក្រាហ្វិក RTX គឺប្រើសម្រាប់បង្ហាញក្រាហ្វិចលឿនខ្លាំង ដោយសារវាមានស្នូលតង់ស៊ីតេ។
ភាពខុសគ្នារវាងស្នូល CUDA និងស្នូល Tensor
ស្នូល Tensor បច្ចុប្បន្នត្រូវបានកំណត់ចំពោះ Titan V និង Tesla V100 ។ ស្នូល CUDA 5120 នៅលើ GPUs ទាំងពីរមានសមត្ថភាពអតិបរមានៃប្រតិបត្តិការគុណ-accumulate ភាពជាក់លាក់តែមួយ (ឧទាហរណ៍ក្នុង fp32: x += y * z) ក្នុងមួយនាឡិកា GPU (ឧ. Tesla V100 PCIe frequency គឺ 1.38Gz) ។
ស្នូល tensor នីមួយៗដំណើរការលើម៉ាទ្រីសតូច 4×4 សម្រាប់ម៉ាទ្រីសតូច។ ក្នុងមួយនាឡិកា GPU មួយ ស្នូលតង់ស៊ីតេនីមួយៗអាចបំពេញប្រតិបត្តិការម៉ាទ្រីសគុណ-កកកុញមួយ។
វាគុណនឹងម៉ាទ្រីស 4 × 4 FP16 ពីរ ហើយបន្ថែមម៉ាទ្រីស 4 × 4 FP32 ដែលលទ្ធផលនៅក្នុង accumulator (នោះក៏ជាម៉ាទ្រីស fp32 4 × 4 ផងដែរ) ។
ដោយសារតែម៉ាទ្រីសបញ្ចូលគឺ fp16 ខណៈពេលដែលលទ្ធផលគុណ និង accumulator គឺ fp32 ក្បួនដោះស្រាយត្រូវបានគេស្គាល់ថាជាភាពជាក់លាក់ចម្រុះ។
ពាក្យត្រឹមត្រូវទំនងជាគ្រាន់តែជា "ស្នូលម៉ាទ្រីស 4×4" ប៉ុន្តែក្រុមទីផ្សារ NVIDIA បានជ្រើសរើសប្រើ "ស្នូលតង់ស៊ីតេ"។
ការពន្យល់ពេញលេញនៃស្នូល Tensor ដោយសង្ខេប
កាត 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)<22 | 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 GB |
GeForce GTX 750 | 512 | 1GB ឬ 2 GB |
GPUs ដែលមានស្នូល CUDA
សេចក្តីសន្និដ្ឋាន
- CUDA និង Tensor cores គឺជាផលិតផល ទាំងពីរត្រូវបានបង្កើតឡើងដោយក្រុមហ៊ុនមួយដែលមានឈ្មោះថា Nvidia។ CUDA តំណាងឱ្យ Compute Unified Device Architecture ។ ស្នូល CUDA ទាំងនេះមានវត្តមាននៅក្នុង GPU របស់អ្នក ស្មាតហ្វូន និងសូម្បីតែរថយន្តរបស់អ្នក។
- ចំណែកឯ tensor cores ដែលត្រូវបានបង្កើតឡើងដោយ Nvidia ក៏ត្រូវបានប្រើប្រាស់នៅក្នុង GPUs ផងដែរ។ ស្នូលពិសេសដែលហៅថា "ស្នូល Tensor" អនុញ្ញាតឱ្យមានការបណ្តុះបណ្តាលភាពជាក់លាក់ចម្រុះ។ ជំនាន់ទីមួយនៃ Tensor Cores ធ្វើឱ្យវាអាចហ្វឹកហាត់ជាមួយនឹងភាពជាក់លាក់ចម្រុះ និងទម្រង់លេខ FP16 ។
- វាអាចមានការជំរុញដល់ទៅ 12 ដងក្នុងការបញ្ជូនទិន្នន័យ teraFLOP សម្រាប់ GPU ជាក់លាក់។ Int8, Int4, និង Int1 ត្រូវបានបន្ថែមទៅក្នុងបញ្ជីនៃភាពជាក់លាក់របស់ Tensor Core ដែលគាំទ្រ។
- ដោយសារការលាយបញ្ចូលគ្នានីតិវិធីបណ្តុះបណ្តាលភាពជាក់លាក់ ដំណើរការរបស់ GPU ត្រូវបានកើនឡើងរហូតដល់ 32 ដង។ ការចេញផ្សាយនាពេលអនាគតនៃ Tensor Cores ជំនាន់ទី 4 ដែលមានមូលដ្ឋានលើ Hopper microarchitecture ត្រូវបានគ្រោងទុក។