DeepSeek V3 λεπτομέρειες για το χαρτί: Πώς να παρακάμψετε το μονοπώλιο της CUDA!

Τα δύο μοντέλα της DeepSeek που κυκλοφόρησαν πρόσφατα, το DeepSeek-V3 και το DeepSeek-R1, επιτυγχάνουν επιδόσεις συγκρίσιμες με παρόμοια μοντέλα της OpenAI με πολύ χαμηλότερο κόστος.

Σύμφωνα με αναφορές ξένων μέσων ενημέρωσης, μέσα σε μόλις δύο μήνες εκπαίδευσαν ένα γλωσσικό μοντέλο MoE με 671 δισεκατομμύρια παραμέτρους σε ένα cluster 2.048 GPU H800, το οποίο είναι 10 φορές πιο αποτελεσματικό από την κορυφαία τεχνητή νοημοσύνη.

Αυτή η επανάσταση δεν επιτεύχθηκε με τη χρήση του CUDA, αλλά μέσω ενός μεγάλου αριθμού βελτιστοποιήσεων λεπτής κλίμακας και της χρήσης του προγραμματισμού PTX (παράλληλη εκτέλεση νημάτων) της NVIDIA που μοιάζει με assembly.

DeepSeek αναγκάστηκε να ακολουθήσει διαφορετικό δρόμο από την OpenAI και άλλες εταιρείες που βασίζονται στην ωμή υπολογιστική ισχύ υπό περιορισμούς υλικού. Χρησιμοποίησε μια σειρά από τεχνολογικές καινοτομίες για να μειώσει τις απαιτήσεις ισχύος του μοντέλου, επιτυγχάνοντας παράλληλα αύξηση των επιδόσεων.

Μερικά ενθουσιώδη σχόλια από τους διαδικτυακούς χρήστες:

"Σε αυτόν τον κόσμο, αν υπάρχουν ομάδες ανθρώπων που θα ήταν αρκετά τρελοί ώστε να λένε πράγματα όπως 'Η CUDA είναι πολύ αργή!

Genius geeks ρυθμίζουν το PTX για να μεγιστοποιήσουν την απόδοση της GPU

Η NVIDIA PTX (Parallel Thread Execution) είναι μια αρχιτεκτονική μεσαίου συνόλου εντολών που έχει σχεδιαστεί ειδικά για τις GPU της, η οποία βρίσκεται μεταξύ των γλωσσών προγραμματισμού υψηλού επιπέδου GPU (όπως η CUDA C/C++) ή άλλων γλωσσικών front ends και του κώδικα μηχανής χαμηλού επιπέδου (streaming assembly ή SASS).

Η PTX είναι μια αρχιτεκτονική συνόλου εντολών χαμηλού επιπέδου που παρουσιάζει τη GPU ως συσκευή παράλληλων υπολογισμών δεδομένων, επιτρέποντας βελτιστοποιήσεις λεπτού βαθμού, όπως η κατανομή καταχωρητών και ο συντονισμός σε επίπεδο νημάτων/νημάτων-δεσμών, που δεν είναι δυνατές με γλώσσες όπως η CUDA C/C++.

Όταν το PTX μετατρέπεται σε SASS, βελτιστοποιείται για μια συγκεκριμένη γενιά GPU της NVIDIA.

Κατά την εκπαίδευση του μοντέλου V3, το DeepSeek αναδιαμόρφωσε την GPU NVIDIA H800:

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

Για τη μεγιστοποίηση των επιδόσεων, η DeepSeek εφάρμοσε επίσης προηγμένους αλγορίθμους διοχέτευσης μέσω πρόσθετων λεπτομερών ρυθμίσεων επιπέδου δέσμης νημάτων/νημάτων.

Αυτές οι βελτιστοποιήσεις υπερβαίνουν κατά πολύ το επίπεδο της συμβατικής ανάπτυξης CUDA, αλλά είναι εξαιρετικά δύσκολο να διατηρηθούν. Ωστόσο, αυτό το επίπεδο βελτιστοποίησης είναι ακριβώς αυτό που αποδεικνύει πλήρως τις εξαιρετικές τεχνικές δυνατότητες της ομάδας DeepSeek.

Το έγγραφο V3 αναφέρει συγκεκριμένα λεπτομέρειες σχετικά με το PTX

Αυτό οφείλεται στο γεγονός ότι, υπό τη διπλή πίεση της παγκόσμιας έλλειψης GPU και των αμερικανικών περιορισμών, εταιρείες όπως η DeepSeek έπρεπε να αναζητήσουν καινοτόμες λύσεις.

Ευτυχώς, έχουν σημειώσει σημαντικές ανακαλύψεις στον τομέα αυτό.

Ένας προγραμματιστής πιστεύει ότι "ο προγραμματισμός χαμηλού επιπέδου GPU είναι η σωστή κατεύθυνση. Όσο περισσότερη βελτιστοποίηση, τόσο χαμηλότερο το κόστος ή ο προϋπολογισμός επιδόσεων που μπορεί να χρησιμοποιηθεί για άλλη πρόοδο χωρίς πρόσθετες δαπάνες".

Αυτή η ανακάλυψη είχε σημαντικό αντίκτυπο στην αγορά και ορισμένοι επενδυτές πιστεύουν ότι το νέο μοντέλο θα μειώσει τη ζήτηση για υλικό υψηλών επιδόσεων, γεγονός που μπορεί να επηρεάσει τις επιδόσεις των πωλήσεων εταιρειών όπως η NVIDIA.

Ωστόσο, βετεράνοι του κλάδου, συμπεριλαμβανομένου του πρώην διευθύνοντος συμβούλου της Intel Pat Gelsinger, πιστεύουν ότι οι εφαρμογές τεχνητής νοημοσύνης μπορούν να αξιοποιήσουν πλήρως όλη τη διαθέσιμη υπολογιστική ισχύ.

Ο Gelsinger βλέπει αυτό το επίτευγμα της DeepSeek ως έναν νέο τρόπο ενσωμάτωσης δυνατοτήτων τεχνητής νοημοσύνης σε συσκευές χαμηλού κόστους για τη μαζική αγορά.

PTX και CUDA

Σημαίνει λοιπόν η άφιξη του DeepSeek ότι η ανάπτυξη πρωτοποριακών LLM δεν απαιτεί πλέον συστοιχίες GPU μεγάλης κλίμακας;

Οι τεράστιες επενδύσεις σε υπολογιστικούς πόρους από την Google, OpenAI, τα Meta και xAI πάνε τελικά χαμένα; Η γενική συναίνεση μεταξύ των προγραμματιστών ΤΝ είναι ότι αυτό δεν ισχύει.

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

Με το μοντέλο V3 του DeepSeek ανοιχτού κώδικα, οι λεπτομέρειες αποκαλύπτονται λεπτομερώς στην τεχνική του έκθεση.

Η έκθεση τεκμηριώνει τις βαθιές υποκείμενες βελτιστοποιήσεις που πραγματοποιούνται από το DeepSeek. Εν ολίγοις, ο βαθμός βελτιστοποίησης μπορεί να συνοψιστεί ως "έχουν ξαναχτίσει ολόκληρο το σύστημα από την αρχή".

Όπως αναφέρθηκε παραπάνω, κατά την εκπαίδευση του V3 με τη χρήση της GPU H800, η DeepSeek προσάρμοσε τις βασικές υπολογιστικές μονάδες της GPU (πυρήνες πολλαπλών επεξεργαστών ροής ή SM) για να καλύψει συγκεκριμένες ανάγκες.

Από το σύνολο των 132 SM, διέθεσαν συγκεκριμένα 20 για να διεκπεραιώνουν εργασίες επικοινωνίας μεταξύ διακομιστών και όχι υπολογιστικές εργασίες.

Αυτή η προσαρμογή γίνεται στο επίπεδο PTX (παράλληλη εκτέλεση νημάτων), το οποίο είναι το σύνολο εντολών χαμηλού επιπέδου της GPU NVIDIA.

Το PTX εκτελείται σε επίπεδο κοντά στη γλώσσα assembly και επιτρέπει βελτιστοποιήσεις λεπτού βαθμού, όπως η κατανομή καταχωρητών και ο συντονισμός σε επίπεδο νήματος/δέσμης νήματος. Ωστόσο, αυτός ο λεπτομερής έλεγχος είναι πολύπλοκος και δύσκολο να διατηρηθεί.

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

Ωστόσο, όταν πρόκειται για τη μεγιστοποίηση της αποδοτικότητας των πόρων της GPU και την επίτευξη συγκεκριμένων απαιτήσεων βελτιστοποίησης, οι προγραμματιστές πρέπει να καταφύγουν στο PTX.

Ωστόσο, τα τεχνικά εμπόδια παραμένουν

Από αυτή την άποψη, ο χρήστης του Διαδικτύου Ian Cutress δήλωσε: "Η χρήση του PTX από την Deepseek δεν εξαλείφει τα τεχνικά εμπόδια του CUDA".

Η CUDA είναι μια γλώσσα υψηλού επιπέδου. Διευκολύνει την ανάπτυξη βιβλιοθηκών και διεπαφών με GPUs της NVIDIA και υποστηρίζει την ταχεία επαναληπτική ανάπτυξη.

Το CUDA μπορεί να βελτιστοποιήσει την απόδοση με τη λεπτομερή ρύθμιση του υποκείμενου κώδικα (π.χ. PTX) και οι βασικές βιβλιοθήκες είναι ήδη ολοκληρωμένες. Το μεγαλύτερο μέρος του λογισμικού σε επίπεδο παραγωγής είναι σήμερα βασισμένο στο CUDA.

Το PTX μοιάζει περισσότερο με μια άμεσα κατανοητή γλώσσα συναρμολόγησης για τη GPU. Λειτουργεί σε χαμηλό επίπεδο και επιτρέπει τη βελτιστοποίηση σε μικροεπίπεδο.

Αν επιλέξετε να προγραμματίσετε σε PTX, αυτό σημαίνει ότι δεν μπορεί να χρησιμοποιηθεί καμία από τις προαναφερθείσες ενσωματωμένες βιβλιοθήκες CUDA. Πρόκειται για μια πολύ κουραστική εργασία που απαιτεί βαθιά εξειδίκευση σε θέματα υλικού και χρόνου εκτέλεσης.

Ωστόσο, αν οι προγραμματιστές κατανοήσουν πλήρως τι κάνουν, μπορούν πράγματι να επιτύχουν καλύτερες επιδόσεις και βελτιστοποίηση κατά την εκτέλεση.

Επί του παρόντος, η κύρια τάση του οικοσυστήματος της NVIDIA εξακολουθεί να είναι η χρήση του CUDA.

Οι προγραμματιστές που θέλουν να έχουν μια επιπλέον απόδοση 10-20% ή αποδοτικότητα ισχύος από το υπολογιστικό τους φορτίο, όπως οι εταιρείες που αναπτύσσουν μοντέλα στο cloud και πωλούν συμβολικές υπηρεσίες, έχουν πράγματι βελτιστοποιηθεί από το επίπεδο CUDA στο επίπεδο PTX. Είναι πρόθυμοι να επενδύσουν χρόνο, επειδή μακροπρόθεσμα αξίζει τον κόπο.

Θα πρέπει να σημειωθεί ότι το PTX είναι συνήθως βελτιστοποιημένο για ένα συγκεκριμένο μοντέλο υλικού και είναι δύσκολο να μεταφερθεί μεταξύ διαφορετικού υλικού, εκτός αν η λογική προσαρμογής είναι ειδικά γραμμένη.

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

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

Για όλους τους άλλους προγραμματιστές, συνιστάται να συνεχίσουν να χρησιμοποιούν το CUDA ή άλλες προηγμένες παραλλαγές που βασίζονται στο CUDA (ή το MLIR).

Παρόμοιες θέσεις

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *