რა განსხვავებაა CUDA ბირთვებსა და ტენსორ ბირთვებს შორის? (ახსნილია) – ყველა განსხვავება
Სარჩევი
CUDA და Tensor ბირთვები არის პროდუქტები, რომლებიც შემუშავებულია კომპანიის მიერ, სახელწოდებით Nvidia. რა არის CUDA ბირთვები და Tensor ბირთვები? CUDA ნიშნავს Compute Unified Device Architecture. CUDA ბირთვები წარმოდგენილია თქვენს GPU-ებში, სმარტფონებში და მანქანებშიც კი, როგორც ამას Nvidia-ს დეველოპერები ამბობენ.
CUDA ბირთვები არის პარალელური გამოთვლითი პლატფორმა და აპლიკაციის პროგრამირების ინტერფეისი (API), რომელიც საშუალებას აძლევს პროგრამულ უზრუნველყოფას გამოიყენოს კონკრეტული ტიპის გრაფიკული დამუშავების ერთეულები (GPU) ზოგადი დანიშნულების დამუშავებისთვის.
მაშინ, როცა ტენზორული ბირთვები, რომლებიც ასევე შეიქმნა Nvidia-ს მიერ, ასევე გამოიყენება GPU-ებში. Tensor Cores იძლევა შერეული სიზუსტის გამოთვლას, გამოთვლების დინამიურად ადაპტირებას გამტარუნარიანობის გაზრდის მიზნით, სიზუსტის შენარჩუნებისას.
მარტივი სიტყვებით რომ ვთქვათ, ეს ბირთვები თქვენი კომპიუტერის GPU-ების მნიშვნელოვანი ნაწილია გარკვეული გამოთვლების შესასრულებლად. CUDA ბირთვები გამოიყენება ორი რიცხვის გასამრავლებლად და სხვა რიცხვში დასამატებლად.
მაშინ, როცა ტენსორის ბირთვი იგივეა, მაგრამ 4×4 მატრიცებით. ეს გამოთვლები ძირითადად თქვენთვის უფრო სწრაფად ასახავს გრაფიკას.
რა არის CUDA?
Compute Unified Device Architecture მოკლედ CUDA შემუშავებული Nvidia-ს მიერ, გამოშვებული 2007 წლის 23 ივნისს, არის პარალელური გამოთვლითი პლატფორმა და აპლიკაციის პროგრამირების ინტერფეისი (API).
საშუალებას აძლევს პროგრამულ უზრუნველყოფას გამოიყენოს სპეციალური ტიპის გრაფიკული დამუშავების ერთეულები (GPU) ზოგადი დანიშნულების დამუშავებისთვის, მეთოდი, რომელიც ცნობილია როგორც ზოგადი დანიშნულების გამოთვლა.GPU (GPU).
Იხილეთ ასევე: დაცული და დაუცველი არჩევანი NBA დრაფტისთვის: არის რაიმე განსხვავება? - ყველა განსხვავება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) აკმაყოფილებს რეალურ მოთხოვნებს -დრო, გამოთვლითი ინტენსიური 3D გრაფიკის დატვირთვა.
დაახლოებით 2012 GPU-ები განვითარდა და იქცა ძალიან პარალელურ მრავალბირთვიან სისტემებად, რაც შესაძლებელს გახდის მონაცემთა ეფექტური დამუშავებას დიდი ბლოკებისთვის.
მონაცემთა უზარმაზარი ბლოკების პარალელურად დამუშავებისას, ეს დიზაინი აღემატება ზოგადი დანიშნულების ცენტრალურ დამუშავების ერთეულებს (CPU) ალგორითმებისთვის, როგორიცაა:
- კრიპტოგრაფიული ჰეშიფუნქციები
- მანქანის სწავლა
- მოლეკულური დინამიკის სიმულაციები
- ფიზიკის ძრავები
- დალაგების ალგორითმები
CUDA Architecture–ის გამოყენება ახლა და მომავალში
- 3D გრაფიკის დაჩქარებული გადაცემა
- ვიდეო ფაილების ფორმატების დაჩქარებული ინტერკონვერტაცია
- დაჩქარებული დაშიფვრა, გაშიფვრა და შეკუმშვა
- ბიოინფორმატიკა, მაგ., NGS დნმ-ის თანმიმდევრობა BarraCUDA
- განაწილებული გამოთვლები, როგორიცაა ცილების მშობლიური კონფორმაციის პროგნოზირება
- სამედიცინო ანალიზის სიმულაციები, მაგალითად, ვირტუალური რეალობა CT და MRI სკანირების სურათებზე დაფუძნებული
- ფიზიკური სიმულაციები, კერძოდ სითხის დინამიკაში
- ნერვული ქსელის სწავლება მანქანათმცოდნეობის პრობლემებში
- სახის ამოცნობა
- განაწილებული გამოთვლითი პროექტები, როგორიცაა [email protected] და სხვა პროექტები გამოყენებით BOINC
- მოლეკულური დინამიკა
- კრიპტოვალუტების მოპოვება
- სტრუქტურა მოძრაობის (SfM) პროგრამული უზრუნველყოფიდან
რა არის ტენზორული ბირთვი?
სპეციალიზებული ბირთვები, სახელწოდებით Tensor Cores, იძლევა შერეული სიზუსტის ვარჯიშის საშუალებას. ამ სპეციალიზებული ბირთვების საწყისი თაობა ამას აკეთებს შერწყმული გამრავლება-დამატების ალგორითმით. ეს შესაძლებელს ხდის გამრავლდეს და დაამატოთ ორი 4 x 4 FP16 მატრიცა 4 x 4 FP16 ან FP32 მატრიცაში.
საბოლოო შედეგი იქნება FP32 სიზუსტის მხოლოდ მცირე დაკარგვით, შერეული სიზუსტის გამოთვლა ასეთად არის დანიშნული, მიუხედავად იმისა, რომშეყვანის მატრიცები შეიძლება იყოს დაბალი სიზუსტის FP16.
პრაქტიკაში, ეს მნიშვნელოვნად აჩქარებს გამოთვლებს და მცირე გავლენას ახდენს მოდელის საბოლოო ეფექტურობაზე. ეს სიმძლავრე გაფართოვდა გვიანდელი მიკროარქიტექტურების მიერ კიდევ უფრო ნაკლებად ზუსტი კომპიუტერული რიცხვების წარმოდგენამდე.
პირველი თაობა დაინერგა ვოლტას მიკროარქიტექტურით დაწყებული V100-დან, უფრო მეტი კომპიუტერული ნომრის ზუსტი ფორმატები ხელმისაწვდომი გახდა ახალი GPU მიკროარქიტექტურებით გამოთვლებისთვის ყოველი გავლის თაობაზე.
ჩვენ ვისაუბრებთ იმაზე, თუ როგორ შეიცვალა და გაუმჯობესდა Tensor Cores-ის სიმძლავრე და ფუნქციონირება ყოველი მიკროარქიტექტურის თაობაზე შემდეგ განყოფილებაში.
Titan V-ის მიერ შექმნილი გრაფიკულად გამოსახული სურათი
როგორ მუშაობს ტენზორული ბირთვები?
პირველი თაობა:
ვოლტას GPU მიკროარქიტექტურა შედიოდა Tensor Cores-ის პირველ თაობაში. ამ ბირთვებმა შესაძლებელი გახადა ვარჯიში შერეული სიზუსტით და FP16 ნომრის ფორმატით.
ამას შეიძლება ჰქონდეს teraFLOP გამტარუნარიანობის 12-ჯერ გაზრდა გარკვეული GPU-სთვის. უმაღლესი დონის V100-ის 640 ბირთვი იძლევა მუშაობის სიჩქარის 5-ჯერ ზრდას წინა თაობის Pascal GPU-ებთან შედარებით.
მეორე თაობა:
ტურინგის GPU-ების დანერგვით, დაინერგა Tensor Cores-ის მეორე თაობა. Int8, Int4 და Int1 დაემატა მხარდაჭერილი Tensor Core სიზუსტეების სიას, რომლებიც იყოადრე შემოიფარგლებოდა FP16-ით.
Იხილეთ ასევე: რა განსხვავებაა CSB-სა და ESV ბიბლიას შორის? (განხილული) – ყველა განსხვავებაშერეული ზუსტი ვარჯიშის პროცედურების გამო, GPU-ს მუშაობის გამტარუნარიანობა გაიზარდა 32-ჯერ პასკალის GPU-ებთან შედარებით.
მესამე თაობა:
Ampere GPU-ის არქიტექტურა აფართოებს ვოლტასა და ტურინგის მიკროარქიტექტურების ადრინდელ მიღწევებს FP64, TF32 და bfloat16 სიზუსტეების მხარდაჭერის დამატებით.
ღრმა სწავლის სწავლება და დასკვნის აქტივობები ბევრად უფრო დაჩქარებულია ამ დამატებითი ზუსტი ფორმატებით. მაგალითად, TF32 ფორმატი ფუნქციონირებს FP32-ის მსგავსად და ასევე იძლევა გარანტიას 20-ჯერ აჩქარების კოდის შეცვლის გარეშე.
შემდეგ, მხოლოდ რამდენიმე ხაზის კოდით, შერეული სიზუსტის ავტომატური განხორციელება დააჩქარებს ვარჯიშს დამატებით 2-ჯერ.
მესამე თაობის NVLink გასაოცრად სწრაფი მრავალ GPU ურთიერთქმედების გასააქტიურებლად, მესამე თაობის Ray Tracing ბირთვები და სპეციალიზაცია იშვიათი მატრიცის მათემატიკით არის ამპერის მიკროარქიტექტურის დამატებითი ასპექტები .
მეოთხე თაობა:
დაგეგმილია Hopper-ის მიკროარქიტექტურაზე დაფუძნებული მეოთხე თაობის Tensor Cores-ის მომავალი გამოშვება. მეოთხე თაობის Tensor Cores მომდევნო H100-ში.
რომელიც სავარაუდოდ გამოვა 2022 წლის მარტში, შეძლებს გაუმკლავდეს FP8 ზუსტი ფორმატებს და NVIDIA-ს თანახმად, დააჩქარებს უზარმაზარ ენობრივ მოდელებს „გასაოცარი 30X-ით. წინა თაობასთან შედარებით.”
RTX გრაფიკული ბარათი არისგამოიყენება გრაფიკის ძალიან სწრაფად გადასაღებად, რადგან ის შეიცავს ტენსორ ბირთვებს.
განსხვავება CUDA ბირთვებსა და ტენსორ ბირთვებს შორის
ტენსორის ბირთვები ამჟამად შემოიფარგლება მხოლოდ Titan V და Tesla V100. ორივე GPU-ზე 5120 CUDA ბირთვს აქვს ერთი ზუსტი გამრავლება-დაგროვების ოპერაციის მაქსიმალური ტევადობა (მაგალითად, fp32: x += y * z) თითო GPU საათზე (მაგ. Tesla V100 PCIe სიხშირე არის 1.38 Gz).
თითოეული ტენზორული ბირთვი მუშაობს 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 | 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 GB |
GeForce GTX 750 | 512 | 1GB ან 2 GB |
GPU, რომლებიც შეიცავს CUDA ბირთვებს
დასკვნა
- CUDA და Tensor ბირთვები არის პროდუქტები, ორივე შემუშავებული კომპანიის მიერ, სახელწოდებით Nvidia. CUDA ნიშნავს Compute Unified Device Architecture. ეს CUDA ბირთვები წარმოდგენილია თქვენს GPU-ებში, სმარტფონებში და მანქანებშიც კი.
- მაშინ, როცა ტენსორის ბირთვები, რომლებიც ასევე შეიქმნა Nvidia-ს მიერ, ასევე გამოიყენება GPU-ებში. სპეციალიზებული ბირთვები სახელწოდებით "Tensor Cores" იძლევა შერეული სიზუსტის ვარჯიშის საშუალებას. Tensor Cores-ის პირველმა თაობამ შესაძლებელი გახადა ვარჯიში შერეული სიზუსტით და FP16 ნომრის ფორმატით.
- ამას შეიძლება ჰქონდეს teraFLOP გამტარუნარიანობის 12-ჯერ გაზრდა გარკვეული GPU-სთვის. Int8, Int4 და Int1 დაემატა მხარდაჭერილი Tensor Core სიზუსტეების სიას.
- შერეულის გამოზუსტი სავარჯიშო პროცედურების დროს, GPU-ს შესრულება გაიზარდა 32-ჯერ. იგეგმება Hopper-ის მიკროარქიტექტურაზე დაფუძნებული მეოთხე თაობის Tensor Cores-ის მომავალი გამოშვება.