Εκπαιδευτικά σεμινάρια

▷ Directx 12 vs vulkan: ο αγώνας για την καλύτερη μηχανή γραφικών;

Πίνακας περιεχομένων:

Anonim

Επί του παρόντος, για τον κόσμο των υπολογιστών υπάρχουν δύο πρώτης κατηγορίας γραφικά API που διαχειρίζονται την αγορά με εξουσία. Γι 'αυτό σας προσφέρουμε τη σύγκριση του DirectX 12 Vs Vulkan.

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

Ευρετήριο περιεχομένων

Το γραφικό API χαμηλού επιπέδου και το "Overhead Driver"

Το API σημαίνει "διεπαφή προγραμματισμού εφαρμογών" και είναι ένα σύνολο υπορουτίνας που μπορεί να χρησιμοποιηθεί από έναν προγραμματιστή που περιλαμβάνει επίσης πρωτόκολλα επικοινωνίας και βοηθητικά προγράμματα που διευκολύνουν την ανάπτυξη λογισμικού. Μπορούμε να τα βρούμε σχεδόν για όλα και είναι κοινό για κάθε πάροχο υπηρεσιών να έχει αυτό το είδος βοήθειας για να εφαρμόσει τα συστήματά του με έναν απλό και προσιτό τρόπο.

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

Τόσο το DirectX 12 όσο και το Vulkan 1.1 είναι API που προσανατολίζονται στην ανάπτυξη παιχνιδιών και εφαρμογών που απαιτούν τη βοήθεια σύγχρονων μηχανών γραφικών. Ταυτόχρονα, τα API υποστηρίζονται από τους οδηγούς των σημαντικότερων σχεδιαστών γραφικών chipset και επομένως ένας γρήγορος και οικονομικός τρόπος πρόσβασης στα χαρακτηριστικά τους χωρίς να χρειάζεται να γνωρίζουν το σχεδιασμό τους σε πολύ χαμηλό επίπεδο.

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

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

Τα API χαμηλού επιπέδου έχουν άμεση επίδραση σε μια άλλη υπολογιστική αντίληψη που γνωρίζουμε ως "επιβάρυνση οδηγού", που είναι, εν συντομία, οι δευτερεύοντες πόροι που χρειαζόμαστε για να εκτελέσουμε ορισμένους τύπους λειτουργιών σε έναν υπολογιστή. Στην περίπτωση των γραφικών παραπέμπει στους επιπλέον πόρους που χρειάζεται η κάρτα γραφικών για να κάνει τη δουλειά της και σε αυτή την περίπτωση είναι βασικά κεντρικός χρόνος επεξεργασίας της CPU. Τα API χαμηλού επιπέδου που θα περιγράψουμε εδώ μειώνουν αυτή την εξάρτηση και στην πραγματικότητα η εξάρτηση τείνει στο 0.

Microsoft DirectX

Το DirectX ανακύπτει ως αναγκαιότητα για την τυποποίηση διαφορετικών υποσυστημάτων πολυμέσων των Windows και είναι το υποκατάστατο του WinG για Windows 3.1. Εγκρίνεται στα Windows 95 ως πρόσθετο πακέτο και η δεύτερη έκδοση του, το DirectX 2.0, γίνεται βασικό στοιχείο του Windows 95 OSR2.

Μέσα στο DirectX βρίσκουμε πολλαπλά ανεξάρτητα API όπως το Direct3D, το οποίο είναι πραγματικά το εν λόγω, DirectDraw, DirectMusic, DirectPlay και DirectSound. Το DirectX ήταν ένας τρόπος για να αναφέρουμε κοινές εξελίξεις σε όλα αυτά τα υπο-API. Πρόκειται για ένα API για Windows, αλλά χρησιμοποιείται επίσης για την ανάπτυξη παιχνιδιών στις κονσόλες του Xbox, ώστε να μπορούμε να το θεωρούμε ένα API Multiplatform αλλά όχι δωρεάν, όπως συμβαίνει με το Vulkan.

Η τελευταία έκδοση του DirectX 12 είναι μαζί μας από το 2014 και δεν έχει παραμείνει σταθερή και πριν από λίγους μήνες έλαβε σημαντικές βελτιώσεις όπως η υπορουτίνα Direct RayTracing (DXR) που συμπεριλήφθηκε στην έκδοση ενημέρωσης 1809 Οκτωβρίου των Windows 10.

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

Μπορούν να εκτελούν διάφορους τύπους λειτουργιών, συνήθως "ακέραιοι" ή "κινητές", εκμεταλλευόμενοι τις δυνατότητες των συμβατών γραφικών και επίσης διαιρώντας τις πολύπλοκες πράξεις σε απλούστερες επεξεργαζόμενες παράλληλα σε αυτά τα μεγαλύτερα λεωφορεία. Ένα καλό παράδειγμα είναι το πώς η AMD ή η Nvidia μπορούν πλέον να επεξεργαστούν 16-Bit λειτουργίες στα λεωφορεία 32-Bit, βελτιώνοντας σημαντικά την αποδοτικότητα των γραφικών τους.

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

Επί του παρόντος, το DirectX 12 είναι έκπληκτο για τα Windows 7 και τα Windows 10 και αν και δεν είναι άμεσα συμβατό με το Xbox One, η αλήθεια είναι ότι πρακτικά το 90% της λειτουργικότητάς του χρησιμοποιείται για PC, οι διαφορές είναι ελάχιστες και έχουν επιτρέψει προγραμματιστές γρήγορες προσαρμογές των παιχνιδιών τους για το Xbox One και αντίστροφα.

Vulkan του Χρόνου

Το Vulkan είναι η εξέλιξη στο API χαμηλού επιπέδου του OpenGL και υποστηρίζεται από την εταιρία Khronos Corporation. Στον κόσμο των υπολογιστών έχουν δευτερεύοντα ρόλο σε σχέση με το DirectX 12, αλλά οι διαφορετικές προσαρμογές σε διαφορετικές πλατφόρμες, όπως το Android, το κατέστησαν σημείο αναφοράς στα γραφικά για την κινητικότητα. Είναι επίσης συμβατό με το Linux που είναι η μεγάλη εναλλακτική λύση του παιχνιδιού σε ελεύθερα συστήματα.

Η μεγάλη της αρετή είναι η μεγάλη παράλληλη χωρητικότητα επεξεργασίας, που είναι εξαιρετικά αποδοτική στις σύγχρονες CPUs και GPUs, επιτυγχάνοντας χαμηλές χρήσεις του πρώτου και μεγάλη χρήση του εξοπλισμού του τελευταίου. Είναι ειδικά σχεδιασμένο για να εκμεταλλεύεται τους επεξεργαστές πολλαπλών πυρήνων επιτυγχάνοντας μια εξαιρετική κατανομή φορτίου σε αυτόν τον τύπο επεξεργαστών, στην πραγματικότητα, είναι πολύ πιο αποτελεσματική για τους περισσότερους πυρήνες που μπορούμε να προσφέρουμε.

Η ιστορία του Vulkan χρονολογείται από ένα χρόνο μετά το DirectX 12 και το Khronos, που είναι μη κερδοσκοπική εταιρεία, τη διατηρεί τόσο συχνά ή συχνότερα από ό, τι η Microsoft κάνει με το δικό της API. Βασίζεται στο API Mantle που επεξεργάστηκε η AMD για την αρχιτεκτονική του GCN και αυτό ήταν ένα άλλο API χαμηλού επιπέδου για ένα μειωμένο "overhead driver". Η AMD δωρίζει τις εξελίξεις της στο Khronos και αυτές είναι οι βάσεις ενός από τα καλύτερα γραφικά API στην αγορά.

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

Το Vulkan εισάγει επίσης βελτιώσεις API χαμηλού επιπέδου σε Android και άλλες πλατφόρμες.

Η τελευταία έκδοση του Vulkan 1.1, που εισήχθη στο τέλος του 2018, προσθέτει σημαντικές βελτιώσεις όπως η υποστήριξη HLSL, η οποία είναι η εναλλακτική λύση του DirectX 12 στη διαχείριση των λειτουργιών shader χωρίς την ανάγκη για προσυμπίεση, καλύτερη συμβατότητα με το DirectX 12 εκτός από τα γραφικά), τη ρητή υποστήριξη για συστήματα Multi-GPU ανεξάρτητα από τον κατασκευαστή και, φυσικά, υποστήριξη για RayTracing.

Πλεονεκτήματα και αδυναμίες του DirectX 12 vs Vulkan

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

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

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

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

Έχουμε περιορίσει το framerate σε 120FPS για μια επίδειξη του Overhead Driver. Στο Dota 2 η κατανάλωση της CPU μειώνεται σημαντικά με το ίδιο FPS.

Η μόνη πιο εμφανής διαφορά είναι ότι το Vulkan έχει κάπως λιγότερη εξάρτηση από την CPU, με χαμηλότερη μέση κατανάλωση και ότι είναι επίσης πολύ πιο ανοιχτό σε διαφορετικές πλατφόρμες, συμπεριλαμβανομένων των Windows και Linux και την ομογενοποίησή του με το OpenGL ES, είναι προς το σκοπό της περαιτέρω ενοποίησης των πλατφορμών στις οποίες κινείται.

Το DirectX 12 είναι υπέρ της μεγάλης αποδοχής από τους προγραμματιστές, οι οποίοι φαίνεται να βρίσκουν σε αυτό το API το τέλειο οικοσύστημα για να μειώσουν το κόστος τους, καθώς έχει και μεγάλη ενσωμάτωση σε πλαίσια τόσο εκτεταμένα όσο το.NET Framework όπου ενσωματώνει χιλιάδες θαύματα με μικρή απώλεια απόδοσης.

Διαφορές απόδοσης στα παιχνίδια με διπλό API

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

Δοκιμή 3DMark Driver Overhead. Τα αποτελέσματα σε εκατομμύρια αιτήσεις, περισσότερα είναι καλύτερα.

Οι στάχτες της μοναδικότητας. Τα αποτελέσματα σε FPS, περισσότερο είναι καλύτερα.

Παράξενη ταξιαρχία. Τα αποτελέσματα σε FPS, περισσότερο είναι καλύτερα.

Συνοψίζουμε τους καλύτερους οδηγούς υλικού που σας ενδιαφέρουν:

  • Οι καλύτεροι επεξεργαστές στην αγορά Οι καλύτερες μητρικές στην αγορά Η καλύτερη μνήμη RAM στην αγορά Οι καλύτερες κάρτες γραφικών στην αγορά Τα καλύτερα SSD στην αγορά Καλύτερα σασί ή θήκες για PC Καλύτερες προμήθειες ισχύος Καλύτερες ψήκτρες και ψύκτες υγρών

Όπως μπορείτε να δείτε, τα αποτελέσματα είναι ομαλά και βλέπουμε διαφορές μεταξύ των προγραμμάτων υπέρ και κατά του ενός και του άλλου. Αυτό μας αφήνει το ερώτημα ποιο είναι το καλύτερο και η απάντηση είναι σαφής, εξαρτάται από το πρόγραμμα και πώς ο προγραμματιστής γνωρίζει ή θέλει να επωφεληθεί από τα οφέλη του. Αυτό που απομένει είναι να σκεφτούμε ότι σε κάθε παιχνίδι οι προγραμματιστές θα χρησιμοποιήσουν ακριβώς το API που εκμεταλλεύεται καλύτερα τα οφέλη των γραφικών μας, παρόλο που είναι σαφές ότι και οι δύο επιλογές φαίνονται κάτι περισσότερο από ικανό. Τι γνώμη έχετε για το άρθρο μας σχετικά με το Directx 12 vs Vulkan; Θέλουμε να γνωρίζουμε τη γνώμη σας!

Εκπαιδευτικά σεμινάρια

Η επιλογή των συντακτών

Back to top button