Ποια είναι η διαφορά μεταξύ των πυρήνων CUDA και των πυρήνων Tensor; (Εξηγήσεις) - Όλες οι διαφορές

 Ποια είναι η διαφορά μεταξύ των πυρήνων CUDA και των πυρήνων Tensor; (Εξηγήσεις) - Όλες οι διαφορές

Mary Davis

Οι πυρήνες CUDA και οι πυρήνες Tensor είναι προϊόντα που αναπτύσσονται από μια εταιρεία που ονομάζεται Nvidia. Τι είναι λοιπόν οι πυρήνες CUDA και οι πυρήνες Tensor; CUDA σημαίνει Compute Unified Device Architecture. Οι πυρήνες CUDA υπάρχουν στις GPU, στα smartphones, ακόμη και στα αυτοκίνητά σας, όπως λένε οι προγραμματιστές της Nvidia.

Οι πυρήνες CUDA είναι μια πλατφόρμα παράλληλων υπολογισμών και μια διεπαφή προγραμματισμού εφαρμογών (API) που επιτρέπει στο λογισμικό να χρησιμοποιεί συγκεκριμένους τύπους μονάδων επεξεργασίας γραφικών (GPU) για επεξεργασία γενικού σκοπού.

Ενώ οι πυρήνες τανυστών (tensor cores), οι οποίοι αναπτύχθηκαν επίσης από την Nvidia, χρησιμοποιούνται επίσης στις GPU. Οι πυρήνες τανυστών επιτρέπουν υπολογισμούς μικτής ακρίβειας, προσαρμόζοντας δυναμικά τους υπολογισμούς για να αυξήσουν την απόδοση, διατηρώντας παράλληλα την ακρίβεια.

Με απλά λόγια, αυτοί οι πυρήνες είναι ένα σημαντικό μέρος των GPU στον υπολογιστή σας για την εκτέλεση ορισμένων υπολογισμών. Οι πυρήνες CUDA χρησιμοποιούνται για τον πολλαπλασιασμό δύο αριθμών και την πρόσθεσή τους σε έναν άλλο αριθμό.

Ενώ ο πυρήνας Tensor είναι το ίδιο, αλλά με πίνακες 4×4. Αυτοί οι υπολογισμοί ουσιαστικά αποδίδουν ταχύτερα τα γραφικά για εσάς.

Τι είναι το CUDA;

Η Compute Unified Device Architecture, εν συντομία CUDA, που αναπτύχθηκε από την Nvidia και κυκλοφόρησε στις 23 Ιουνίου 2007, είναι μια πλατφόρμα παράλληλων υπολογιστών και μια διεπαφή προγραμματισμού εφαρμογών (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 τώρα και στο μέλλον

  • Επιταχυνόμενη απόδοση τρισδιάστατων γραφικών
  • Επιταχυνόμενη μετατροπή μορφών αρχείων βίντεο
  • Επιταχυνόμενη κρυπτογράφηση, αποκρυπτογράφηση και συμπίεση
  • Βιοπληροφορική, π.χ., αλληλούχιση DNA NGS BarraCUDA
  • Κατανεμημένοι υπολογισμοί, όπως η πρόβλεψη της εγγενούς διαμόρφωσης των πρωτεϊνών
  • Προσομοιώσεις ιατρικής ανάλυσης, για παράδειγμα, εικονική πραγματικότητα με βάση εικόνες αξονικής και μαγνητικής τομογραφίας
  • Φυσικές προσομοιώσεις, ιδίως στη δυναμική των ρευστών
  • Εκπαίδευση νευρωνικών δικτύων σε προβλήματα μηχανικής μάθησης
  • Αναγνώριση προσώπου
  • Έργα κατανεμημένου υπολογισμού, όπως το [email protected] και άλλα έργα που χρησιμοποιούν το BOINC
  • Μοριακή δυναμική
  • Εξόρυξη κρυπτονομισμάτων
  • Λογισμικό Structure from motion (SfM)

Τι είναι ένας πυρήνας αισθητήρων;

Οι εξειδικευμένοι πυρήνες που ονομάζονται Tensor Cores επιτρέπουν την εκπαίδευση μικτής ακρίβειας. Η αρχική γενιά αυτών των εξειδικευμένων πυρήνων το κάνει αυτό με έναν αλγόριθμο συγχωνευμένου πολλαπλασιασμού-πρόσθεσης. Αυτό καθιστά δυνατό τον πολλαπλασιασμό και την πρόσθεση δύο πινάκων 4 x 4 FP16 σε έναν πίνακα 4 x 4 FP16 ή FP32.

Το τελικό αποτέλεσμα θα είναι FP32 με μικρή μόνο απώλεια ακρίβειας, οι υπολογισμοί μικτής ακρίβειας χαρακτηρίζονται ως τέτοιοι, παρόλο που οι πίνακες εισόδου μπορεί να είναι FP16 χαμηλής ακρίβειας.

Στην πράξη, αυτό επιταχύνει σημαντικά τους υπολογισμούς με μικρή επίδραση στην τελική αποτελεσματικότητα του μοντέλου. Η ικανότητα αυτή επεκτάθηκε από μεταγενέστερες μικροαρχιτεκτονικές σε ακόμη λιγότερο ακριβείς αναπαραστάσεις αριθμών υπολογιστών.

Η πρώτη γενιά εισήχθη με τη μικροαρχιτεκτονική Volta ξεκινώντας από την V100, περισσότερες μορφές αριθμητικής ακρίβειας υπολογιστών έγιναν διαθέσιμες για υπολογισμούς με νέες μικροαρχιτεκτονικές GPU με κάθε γενιά που περνούσε.

Στην ενότητα που ακολουθεί θα μιλήσουμε για το πώς η χωρητικότητα και η λειτουργικότητα των πυρήνων αισθητήρων έχουν αλλάξει και βελτιωθεί με κάθε γενιά μικροαρχιτεκτονικής.

Μια γραφικά αναπαραγόμενη εικόνα από έναν Titan V

Πώς λειτουργούν οι πυρήνες αισθητήρων;

Πρώτη γενιά:

Η μικροαρχιτεκτονική της GPU Volta περιλαμβανόταν στην πρώτη γενιά πυρήνων Tensor. Αυτοί οι πυρήνες επέτρεψαν την εκπαίδευση με μικτή ακρίβεια και τη μορφή αριθμών FP16.

Αυτό θα μπορούσε να έχει έως και 12x αύξηση της απόδοσης teraFLOP για ορισμένες GPU. Οι 640 πυρήνες της κορυφαίας V100 προσφέρουν έως και 5x αύξηση της ταχύτητας απόδοσης σε σχέση με τις Pascal GPU της προηγούμενης γενιάς.

Δεύτερη γενιά:

Με την εισαγωγή των GPU Turing, εισήχθη η δεύτερη γενιά των Tensor Cores. Οι Int8, Int4 και Int1 προστέθηκαν στον κατάλογο των υποστηριζόμενων ακρίβειας Tensor Core, οι οποίες προηγουμένως περιορίζονταν σε FP16.

Λόγω των διαδικασιών εκπαίδευσης μικτής ακρίβειας, η απόδοση της GPU αυξήθηκε έως και 32 φορές σε σύγκριση με τις GPU Pascal.

Τρίτη γενιά:

Η αρχιτεκτονική σε μια GPU Ampere επεκτείνει τις προηγούμενες εξελίξεις των μικροαρχιτεκτονικών Volta και Turing προσθέτοντας υποστήριξη για FP64, TF32 και bfloat16 ακρίβειας.

Οι δραστηριότητες εκπαίδευσης και εξαγωγής συμπερασμάτων βαθιάς μάθησης επιταχύνονται πολύ περισσότερο από αυτές τις μορφές πρόσθετης ακρίβειας. Για παράδειγμα, η μορφή TF32 λειτουργεί παρόμοια με την FP32, ενώ παράλληλα εγγυάται έως και 20πλάσια επιτάχυνση χωρίς να τροποποιηθεί κανένας κώδικας.

Στη συνέχεια, με λίγες μόνο γραμμές κώδικα, η αυτόματη εφαρμογή μικτής ακρίβειας θα επιταχύνει την εκπαίδευση κατά επιπλέον 2x.

Δείτε επίσης: Η διαφορά μεταξύ πίστης και τυφλής πίστης - Όλες οι διαφορές

Το NVLink τρίτης γενιάς για να επιτρέπει ταχύτατες αλληλεπιδράσεις πολλαπλών GPU, οι πυρήνες Ray Tracing τρίτης γενιάς και η εξειδίκευση με μαθηματικά αραιών πινάκων είναι πρόσθετες πτυχές της μικροαρχιτεκτονικής Ampere. .

Τέταρτη γενιά:

Σχεδιάζεται μια μελλοντική έκδοση της τέταρτης γενιάς πυρήνων Tensor με βάση τη μικροαρχιτεκτονική Hopper. Οι πυρήνες Tensor τέταρτης γενιάς στον επόμενο H100.

η οποία αναμένεται να κυκλοφορήσει τον Μάρτιο του 2022, θα μπορεί να χειριστεί μορφές ακρίβειας FP8 και, σύμφωνα με την NVIDIA, θα επιταχύνει τα μοντέλα τεράστιων γλωσσών "κατά ένα εκπληκτικό 30πλάσιο σε σχέση με την προηγούμενη γενιά".

Μια κάρτα γραφικών RTX χρησιμοποιείται για την απόδοση γραφικών πολύ γρήγορα, καθώς περιέχει πυρήνες tensor.

Η διαφορά μεταξύ των πυρήνων CUDA και των πυρήνων Tensor

Οι πυρήνες Tensor περιορίζονται επί του παρόντος στον Titan V και στον Tesla V100. Οι 5120 πυρήνες CUDA και στις δύο GPU έχουν μέγιστη χωρητικότητα μιας πράξης πολλαπλασιασμού-συσσωρεύσεων μονής ακρίβειας (για παράδειγμα, σε fp32: x += y * z) ανά ρολόι GPU (π.χ. η συχνότητα PCIe του Tesla V100 είναι 1,38Gz).

Κάθε πυρήνας τανυστή λειτουργεί σε μικρούς πίνακες 4×4 για μικρούς πίνακες. Ανά ένα ρολόι GPU, κάθε πυρήνας τανυστή μπορεί να ολοκληρώσει μία πράξη πολλαπλασιασμού-συσσώρευσης πινάκων.

Πολλαπλασιάζει δύο πίνακες 4×4 FP16 και προσθέτει τον πίνακα 4×4 FP32 που προκύπτει στον συσσωρευτή (που είναι επίσης ένας πίνακας fp32 4×4).

Επειδή οι πίνακες εισόδου είναι fp16, ενώ τα αποτελέσματα του πολλαπλασιασμού και ο συσσωρευτής είναι fp32, ο αλγόριθμος είναι γνωστός ως μικτής ακρίβειας.

Ο σωστός όρος θα ήταν πιθανότατα απλά "πυρήνες μήτρας 4×4", αλλά η ομάδα μάρκετινγκ της NVIDIA επέλεξε να χρησιμοποιήσει τους "πυρήνες τανυστή".

Πλήρης εξήγηση των πυρήνων τανυστών με λίγα λόγια

Κάρτα 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, στα smartphones, ακόμη και στα αυτοκίνητά σας.
  • Ενώ οι πυρήνες τανυστών, οι οποίοι αναπτύχθηκαν επίσης από την Nvidia, χρησιμοποιούνται επίσης στις GPU. Οι εξειδικευμένοι πυρήνες που ονομάζονται "πυρήνες τανυστών" επιτρέπουν την εκπαίδευση με μικτή ακρίβεια. Η πρώτη γενιά των πυρήνων τανυστών επέτρεψε την εκπαίδευση με μικτή ακρίβεια και τη μορφή αριθμών FP16.
  • Αυτό θα μπορούσε να έχει έως και 12πλάσια αύξηση της απόδοσης teraFLOP για ορισμένες GPU. Οι Int8, Int4 και Int1 προστέθηκαν στον κατάλογο των υποστηριζόμενων ακρίβειας Tensor Core.
  • Λόγω των διαδικασιών εκπαίδευσης μικτής ακρίβειας, η απόδοση της GPU αυξήθηκε έως και 32 φορές. Προβλέπεται η μελλοντική έκδοση της τέταρτης γενιάς Tensor Cores με βάση τη μικροαρχιτεκτονική Hopper.

Άλλα άρθρα

    Mary Davis

    Η Mary Davis είναι συγγραφέας, δημιουργός περιεχομένου και μανιώδης ερευνήτρια που ειδικεύεται στην ανάλυση σύγκρισης σε διάφορα θέματα. Με πτυχίο στη δημοσιογραφία και πάνω από πέντε χρόνια εμπειρίας στον τομέα, η Μαίρη έχει πάθος να παρέχει αμερόληπτες και άμεσες πληροφορίες στους αναγνώστες της. Η αγάπη της για το γράψιμο ξεκίνησε όταν ήταν μικρή και ήταν η κινητήρια δύναμη πίσω από την επιτυχημένη καριέρα της στο γράψιμο. Η ικανότητα της Mary να ερευνά και να παρουσιάζει τα ευρήματα σε μια κατανοητή και ελκυστική μορφή την έχει κάνει αγαπητή στους αναγνώστες σε όλο τον κόσμο. Όταν δεν γράφει, η Μαίρη της αρέσει να ταξιδεύει, να διαβάζει και να περνά χρόνο με την οικογένεια και τους φίλους.