CUDA Cores နှင့် Tensor Cores အကြားကွာခြားချက်ကဘာလဲ။ (ရှင်းပြသည်) - ကွဲပြားမှုအားလုံး
မာတိကာ
CUDA နှင့် Tensor cores များသည် Nvidia ဟုခေါ်သော ကုမ္ပဏီမှ ထုတ်လုပ်သည့် ထုတ်ကုန်များဖြစ်သည်။ ဒါဆို CUDA cores နဲ့ Tensor cores တွေက ဘာတွေလဲ။ CUDA သည် Compute Unified Device Architecture ကို ကိုယ်စားပြုသည်။ Nvidia developer များပြောသကဲ့သို့ CUDA cores များသည် သင်၏ GPU များ၊ စမတ်ဖုန်းများနှင့် သင့်ကားများတွင် ရှိနေပါသည်။
CUDA cores များသည် အပြိုင်ကွန်ပျူတာပလပ်ဖောင်းနှင့် အပလီကေးရှင်းပရိုဂရမ်းမင်း အင်တာဖေ့စ် (API) တစ်ခုဖြစ်ပြီး ယေဘုယျရည်ရွယ်ချက်လုပ်ဆောင်ခြင်းအတွက် သီးခြားဂရပ်ဖစ်လုပ်ဆောင်ခြင်းယူနစ်များ (GPUs) အမျိုးအစားများကို အသုံးပြုနိုင်ရန် ဆော့ဖ်ဝဲလ်ကို အသုံးပြုခွင့်ပေးသည်။
Nvidia မှလည်း ဖန်တီးထားသည့် tensor cores များကို GPU များတွင်လည်း အသုံးပြုပါသည်။ Tensor Cores များသည် တိကျမှုအား ထိန်းသိမ်းထားစဉ်တွင် တိကျမှုကို ထိန်းသိမ်းထားစဉ်တွင် တွက်ချက်မှုများကို ဒိုင်းနမစ်ဖြင့် လိုက်လျောညီထွေဖြစ်အောင် ပေါင်းစပ်ထားသော တိကျသောတွက်ချက်မှုကို လုပ်ဆောင်နိုင်စေသည်။
ရိုးရှင်းသောစကားအားဖြင့်၊ ဤ cores များသည် အချို့သောတွက်ချက်မှုများကိုလုပ်ဆောင်ရန် သင့်ကွန်ပျူတာရှိ GPU ၏အရေးကြီးသောအစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ CUDA core များကို ဂဏန်းနှစ်လုံးကို မြှောက်ပြီး အခြားနံပါတ်သို့ ထည့်ရန် အသုံးပြုသည်။
Tensor core သည် တူညီသော်လည်း 4×4 matrices နှင့် ဖြစ်သောကြောင့်။ ဤတွက်ချက်မှုများသည် အခြေခံအားဖြင့် သင့်အတွက် ဂရပ်ဖစ်ပိုမြန်စေသည်။
CUDA ဆိုတာ ဘာလဲ
အတိုချုံးအားဖြင့် Compute Unified Device Architecture သည် Nvidia မှ ဇွန်လ 23 ရက်၊ 2007 တွင် ထုတ်ဝေသော Nvidia မှ ဖန်တီးထားသော အပြိုင်ကွန်ပြူတာပလပ်ဖောင်းနှင့် အပလီကေးရှင်းပရိုဂရမ်းမင်း အင်တာဖေ့စ် (API) တစ်ခုဖြစ်သည်။
အဲဒါ ယေဘုယျရည်ရွယ်ချက်ဖြင့် လုပ်ဆောင်ခြင်းအတွက် သီးခြားဂရပ်ဖစ်အမျိုးအစားများ (GPUs) ကို အသုံးပြုရန် ဆော့ဖ်ဝဲလ်အား ခွင့်ပြုပေးသည်GPU များ (GPU)။
ကြည့်ပါ။: Aesir နှင့် Aesir အကြား ကွာခြားချက် Vanir - Norse ဒဏ္ဍာရီ - ကွဲပြားမှုများအားလုံးCUDA သည် GPU ၏ virtual instruction set နှင့် compute kernels များကို လုပ်ဆောင်ရန်အတွက် အပြိုင်တွက်ချက်မှုဆိုင်ရာ ဒြပ်စင်များသို့ တိုက်ရိုက်ဝင်ရောက်ခွင့်ပေးသည့် ဆော့ဖ်ဝဲအလွှာတစ်ခုဖြစ်သည်။ CUDA ကို C၊ C++ နှင့် Fortran အပါအဝင် မတူညီသော ပရိုဂရမ်းမင်းဘာသာစကားများဖြင့် အလုပ်လုပ်ရန် တီထွင်ခဲ့သည်။
ကွဲပြားခြားနားသော ပရိုဂရမ်းမင်းဘာသာစကားများဖြင့် လုပ်ဆောင်နိုင်မှုသည် သင့်အား ပိုမိုအဆင့်မြင့်ရန်လိုအပ်မည့် ယခင် APIs များဖြစ်သည့် Direct3D သို့မဟုတ် OpenGL ကဲ့သို့သော GPU အရင်းအမြစ်များနှင့် ကွဲပြားပါက အပြိုင်ပရိုဂရမ်းမင်းတွင် ပါရဂူများအသုံးပြုရန် ပိုမိုလွယ်ကူစေသည်။ graphical programming ကျွမ်းကျင်မှုအခြေခံ။
CUDA ပါသော GPU သည် OpenMP၊ OpenACC၊ OpenCL နှင့် HIP ကဲ့သို့သော ပရိုဂရမ်ရေးဆွဲမှုဘောင်များကို CUDA တွင် ပံ့ပိုးပေးပါသည်။ CUDA အတွက်အသုံးပြုသော ပထမဆုံးအမည်မှာ Compute Unified Device Architecture အတွက် အတိုကောက်ဖြစ်သည်။ သို့သော်လည်း နောက်ပိုင်းတွင် Nvidia သည် အသုံးများသော အတိုကောက်ကို ဖြုတ်ချခဲ့သည်။
အားကောင်းသည့် Nvidia ဂရပ်ဖစ်ကတ် GTX 1080 Ti
နောက်ထပ် CUDA အကြောင်း
အထူးပြုကွန်ပြူတာပရိုဆက်ဆာအနေဖြင့်၊ ဂရပ်ဖစ်လုပ်ဆောင်ခြင်းယူနစ် (GPU) သည် အမှန်တကယ် လိုအပ်ချက်များကို ဖြည့်ဆည်းပေးပါသည်။ -အချိန်၊ ကွန်ပြူတာသုံးသော 3D ဂရပ်ဖစ်အလုပ်များ။
2012 GPU များအကြောင်း ဆင့်ကဲပြောင်းလဲလာပြီး ဘလောက်ကြီးများအတွက် ထိရောက်သောဒေတာကို စီမံဆောင်ရွက်ပေးနိုင်သော မြင့်မားသောအပြိုင် multi-core စနစ်များ ဖြစ်လာခဲ့သည်။
ဒေတာအများအပြားကို အပြိုင်လုပ်ဆောင်သောအခါ၊ ဤဒီဇိုင်းသည် အယ်လဂိုရီသမ်များအတွက် ယေဘူယျရည်ရွယ်ချက်အတွက် ဗဟိုလုပ်ဆောင်ခြင်းယူနစ်များ (CPUs) ထက် သာလွန်ပါသည်၊၊လုပ်ဆောင်ချက်များ
CUDA ဗိသုကာနှင့် ယခုအသုံးပြုမှုများ၊ အနာဂတ်တွင်
- 3D ဂရပ်ဖစ်များ၏ အရှိန်အဟုန်ဖြင့် တင်ဆက်ခြင်း
- ဗီဒီယိုဖိုင်ဖော်မတ်များကို အရှိန်မြှင့်ပြောင်းလဲခြင်း
- အရှိန်မြှင့် ကုဒ်ဝှက်ခြင်း၊ စာဝှက်ခြင်းနှင့် ချုံ့ခြင်း
- ဇီဝနည်းပညာ၊ ဥပမာ၊ NGS DNA စီစစ်ခြင်း BarraCUDA
- ပရိုတိန်းများ၏ မူလပုံစံကို ခန့်မှန်းခြင်းကဲ့သို့သော ဖြန့်ဝေထားသော တွက်ချက်မှုများ
- ဆေးဘက်ဆိုင်ရာခွဲခြမ်းစိတ်ဖြာမှု သရုပ်ဖော်မှုများ၊ ဥပမာ၊ CT နှင့် MRI စကန်ဖတ်ပုံများကို အခြေခံထားသည့် အတုအယောင်
- Physical simulations၊ အထူးသဖြင့် fluid dynamics
- စက်သင်ယူမှုပြဿနာများတွင် Neural network training
- Face recognition
- [email protected] နှင့် အခြားပရောဂျက်များကို အသုံးပြုနေသည့် ကွန်ပြူတာပရောဂျက်များကဲ့သို့သော ဖြန့်ဝေထားသော ကွန်ပျူတာပရောဂျက်များ BOINC
- မော်လီကျူးဒိုင်းနမစ်
- သတ္တုတွင်း cryptocurrencies
- ရွေ့လျားမှု (SfM) ဆော့ဖ်ဝဲလ်မှ ဖွဲ့စည်းတည်ဆောက်ပုံ
Tensor Core ဟူသည် အဘယ်နည်း။
Tensor Cores ဟုခေါ်သော အထူးပြု cores များသည် ရောစပ်တိကျမှု လေ့ကျင့်မှုကို ခွင့်ပြုသည်။ ဤအထူးပြု cores များ၏ ကနဦးမျိုးဆက်များသည် ၎င်းကို ပေါင်းထားသော ပေါင်းထည့်သည့် အယ်လဂိုရီသမ်ဖြင့် လုပ်ဆောင်သည်။ ၎င်းသည် 4 x 4 FP16 matrices နှစ်ခုကို 4 x 4 FP16 သို့မဟုတ် FP32 matrix သို့ ပွားပြီး ထည့်နိုင်စေသည်။
အဆုံးစွန်သောရလဒ်သည် FP32 သည် တိကျမှုအနည်းငယ်ဆုံးရှုံးရုံသာမက၊ ရောစပ်တိကျသောတွက်ချက်မှုဖြင့်သတ်မှတ်ထားသည်ကိုပင်ဖြစ်စေသည်၊input matrices များသည် low-precision FP16 ဖြစ်နိုင်သည်။
လက်တွေ့တွင်၊ ၎င်းသည် မော်ဒယ်၏နောက်ဆုံးထိရောက်မှုအပေါ် အနည်းငယ်လွှမ်းမိုးမှုဖြင့် တွက်ချက်မှုများကို သိသိသာသာ မြန်ဆန်စေသည်။ ဤစွမ်းရည်ကို နောက်ပိုင်းတွင် အသေးစားဗိသုကာပညာရှင်များက တိကျသောကွန်ပြူတာနံပါတ်များကို ကိုယ်စားပြုခြင်းများကိုပင် ချဲ့ထွင်ခဲ့သည်။
ပထမမျိုးဆက်ကို V100 မှစတင်ကာ Volta microarchitecture ဖြင့် စတင်မိတ်ဆက်ခဲ့ပြီး မျိုးဆက်တစ်ခုချင်းစီနှင့်အတူ GPU microarchitectures အသစ်များဖြင့် တွက်ချက်ရန်အတွက် ကွန်ပျူတာနံပါတ်တိကျမှုဖော်မတ်များကို ပိုမိုရရှိနိုင်မည်ဖြစ်သည်။
အောက်ဖော်ပြပါကဏ္ဍရှိ မိုက်ခရိုဗိသုကာမျိုးဆက်တစ်ခုစီတွင် Tensor Cores ၏ စွမ်းဆောင်ရည်နှင့် လုပ်ဆောင်နိုင်စွမ်းများ ပြောင်းလဲလာပုံအကြောင်း ကျွန်ုပ်တို့ ဆွေးနွေးပါမည်။
Titan V မှ ဖန်တီးထားသော ဂရပ်ဖစ်ဖြင့် ပြန်ဆိုထားသော ရုပ်ပုံတစ်ပုံ
Tensor Cores မည်သို့အလုပ်လုပ်သနည်း။
ပထမမျိုးဆက်-
Volta GPU မိုက်ခရိုဗိသုကာကို Tensor Cores ၏ ပထမမျိုးဆက်နှင့်အတူ ထည့်သွင်းထားပါသည်။ အဆိုပါ cores များသည် ရောစပ်တိကျမှုနှင့် FP16 နံပါတ်ဖော်မတ်ဖြင့် လေ့ကျင့်နိုင်စေခဲ့သည်။
၎င်းသည် အချို့သော GPU များအတွက် teraFLOP ဖြတ်သန်းမှုတွင် 12 ဆ မြှင့်တင်နိုင်သည်။ ထိပ်တန်း V100 ၏ 640 cores များသည် ယခင်မျိုးဆက်၏ Pascal GPU များထက် စွမ်းဆောင်ရည် အမြန်နှုန်း 5 ဆအထိ တိုးမြင့်ပေးသည်။
ဒုတိယမျိုးဆက်-
Turing GPU များကို မိတ်ဆက်ခြင်းဖြင့် Tensor Cores ၏ ဒုတိယမျိုးဆက်ကို မိတ်ဆက်ခဲ့သည်။ Int8၊ Int4 နှင့် Int1 ကို ပံ့ပိုးထားသော Tensor Core တိကျမှုစာရင်းတွင် ထည့်သွင်းထားသည်၊ယခင်က FP16 ကိုကန့်သတ်ထားသည်။
ရောနှောတိကျသောလေ့ကျင့်ရေးလုပ်ထုံးလုပ်နည်းများကြောင့်၊ GPU ၏စွမ်းဆောင်ရည်ဖြတ်သန်းမှုသည် Pascal GPUs များနှင့်နှိုင်းယှဉ်ပါက ၃၂ ဆအထိတိုးမြင့်လာခဲ့သည်။
တတိယမျိုးဆက်-
Ampere GPU ရှိ ဗိသုကာသည် FP64၊ TF32 နှင့် bfloat16 တိကျမှုများကို ပံ့ပိုးပေးခြင်းဖြင့် Volta နှင့် Turing microarchitectures ၏ အစောပိုင်းတိုးတက်မှုများအပေါ် ချဲ့ထွင်သည်။
နက်နဲသော သင်ကြားရေး လေ့ကျင့်မှုနှင့် အနုမာန လှုပ်ရှားမှုများကို ဤအပိုတိကျသော ဖော်မတ်များဖြင့် ပိုမိုအရှိန်မြှင့်ပါသည်။ ဥပမာအားဖြင့်၊ TF32 ဖော်မတ်သည် မည်သည့်ကုဒ်ကိုမျှ မပြောင်းလဲဘဲ 20x speedups အထိ အာမခံပေးသော်လည်း FP32 နှင့် အလားတူလုပ်ဆောင်သည်။
ထို့နောက်၊ ကုဒ်မျဉ်းအနည်းငယ်မျှဖြင့်၊ အလိုအလျောက် ရောစပ်တိကျမှုကို အကောင်အထည်ဖော်ခြင်းဖြင့် လေ့ကျင့်မှုကို နောက်ထပ် 2 ဆ အရှိန်မြှင့်ပေးပါမည်။
တတိယမျိုးဆက် NVLink သည် အလွန်လျင်မြန်သော GPU ပေါင်းစုံ အပြန်အလှန်တုံ့ပြန်မှုများ၊ တတိယမျိုးဆက် Ray Tracing cores နှင့် sparse matrix သင်္ချာဆိုင်ရာ အထူးပြုမှုများသည် Ampere microarchitecture ၏ ထပ်ဆင့်ရှုထောင့်များဖြစ်သည် ။
Fourth Generation-
Tensor Cores ၏ စတုတ္ထမြောက်မျိုးဆက် Hopper microarchitecture ကိုအခြေခံသည့် အနာဂတ်တွင် ထွက်ရှိရန် စီစဉ်ထားသည်။ လာမည့် H100 ရှိ စတုတ္ထမျိုးဆက် Tensor Cores။
မတ်လ 2022 တွင် ထွက်ရှိလာမည့် FP8 တိကျသောဖော်မတ်များကို ကိုင်တွယ်နိုင်မည်ဖြစ်ပြီး NVIDIA ၏အဆိုအရ ကြီးမားသောဘာသာစကားမော်ဒယ်များကို “အံ့ဩဖွယ်ရာ 30X ဖြင့် အရှိန်မြှင့်ပေးမည် ယခင်မျိုးဆက်ထက်။"
RTX ဂရပ်ဖစ်ကတ်တစ်ခုဖြစ်သည်။၎င်းတွင် tensor cores များပါ၀င်သောကြောင့် အလွန်လျင်မြန်သော ဂရပ်ဖစ်များကို တင်ဆက်ရန်အတွက် အသုံးပြုပါသည်။
CUDA Cores နှင့် Tensor Cores ကွာခြားချက်
Tensor Core များကို လောလောဆယ် Titan V နှင့် Tesla V100 တွင် ကန့်သတ်ထားပါသည်။ GPU နှစ်ခုလုံးရှိ 5120 CUDA cores များတွင် တစ်ခုတည်းသော တိကျစွာ များပြားသော လုပ်ဆောင်မှုတစ်ခု၏ အမြင့်ဆုံးစွမ်းရည်ရှိသည် (ဥပမာ၊ GPU နာရီတစ်ခုလျှင် fp32: x += y*z) (ဥပမာ Tesla V100 PCIe ကြိမ်နှုန်းမှာ 1.38Gz) ဖြစ်သည်။
တင်းဆာ core တစ်ခုစီသည် အသေးစားမက်ထရစ်များအတွက် 4×4 အသေးစားမက်ထရစ်များပေါ်တွင် လုပ်ဆောင်သည်။ GPU နာရီတစ်ခုလျှင် tensor core တစ်ခုစီသည် matrix တစ်ခုအား များပြားစွာ-စုပြုံလုပ်ဆောင်မှုကို အပြီးသတ်နိုင်သည်။
၎င်းသည် 4×4 FP16 matrices နှစ်ခုကို မြှောက်ပြီး accumulator တွင် ရလဒ်ထွက်သည့် 4×4 FP32 matrix (၎င်းသည် fp32 4×4 matrix လည်းဖြစ်သည်)။
ကိန်းဂဏန်းများသည် fp16 ဖြစ်သောကြောင့် ပွားခြင်းရလဒ်များနှင့် accumulator သည် fp32 ဖြစ်သောကြောင့်၊ အယ်လဂိုရီသမ်ကို ရောစပ်တိကျမှုဟု ခေါ်သည်။
မှန်ကန်သောအသုံးအနှုန်းသည် “4×4 matrix cores” မျှသာဖြစ်နိုင်သော်လည်း NVIDIA စျေးကွက်ရှာဖွေရေးအဖွဲ့မှ “tensor cores” ကိုအသုံးပြုရန် ရွေးချယ်ခဲ့သည်။
Tensor cores ၏ ရှင်းလင်းချက် အပြည့်အစုံ
ကြည့်ပါ။: ရှုပ်ထွေးခြင်းနှင့် ရှုပ်ထွေးခြင်းကြား ကွာခြားချက်ကဘာလဲ။ - ကွဲပြားမှုအားလုံးGPU ကတ် | CUDA cores | 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 |
CUDA cores များပါရှိသော GPU များ
နိဂုံးချုပ်
- CUDA နှင့် Tensor cores များသည် Nvidia ဟုခေါ်သော ကုမ္ပဏီမှ တီထွင်ထုတ်လုပ်ထားသော ထုတ်ကုန်များဖြစ်သည်။ CUDA သည် Compute Unified Device Architecture ကို ကိုယ်စားပြုသည်။ ဤ CUDA cores များသည် သင်၏ GPU များ၊ စမတ်ဖုန်းများနှင့် သင့်ကားများတွင်ပင် ရှိနေပါသည်။
- Nvidia မှလည်း ဖန်တီးထားသည့် tensor cores များကို GPU များတွင်လည်း အသုံးပြုပါသည်။ "Tensor cores" ဟုခေါ်သော အထူးပြု cores များသည် ရောစပ်တိကျမှု လေ့ကျင့်မှုကို ခွင့်ပြုသည်။ Tensor Cores ၏ ပထမမျိုးဆက်သည် ရောစပ်တိကျမှုနှင့် FP16 နံပါတ်ဖော်မတ်ဖြင့် လေ့ကျင့်နိုင်စေခဲ့သည်။
- ၎င်းသည် အချို့သော GPU များအတွက် teraFLOP ဖြတ်သန်းမှုတွင် 12 ဆ မြှင့်တင်နိုင်သည်။ Int8၊ Int4 နှင့် Int1 ကို ပံ့ပိုးထားသော Tensor Core တိကျမှုစာရင်းတွင် ထည့်သွင်းထားသည်။
- ရောနှောခြင်းကြောင့်တိကျသောလေ့ကျင့်ရေးလုပ်ထုံးလုပ်နည်းများ၊ GPU ၏စွမ်းဆောင်ရည်သည် ၃၂ ဆအထိတိုးတက်ခဲ့သည်။ Hopper မိုက်ခရိုဗိသုကာအခြေပြု Tensor Cores စတုတ္ထမျိုးဆက်ကို အနာဂတ်တွင် ထုတ်ပြန်ရန် စီစဉ်ထားသည်။