AMD: Βελτιώνει την απόδοση της DX12 ως και 46%

0

Η αρχιτεκτονική της AMD, η GCN (Graphics Core Next), που χρησιμοποιείται στις GPU περιλαμβάνει μέσα μια τεχνολογία που ονομάζεται ACE (Asynchronous Compute Engine). Η τεχνολογία αυτή βοηθά εκτελώντας ταυτόχρονα πολλές διεργασίες της GPU και το αποτέλεσμα όλων αυτών των ολοκληρωμένων διεργασιών είναι να ελαφρύνει ο φόρτος στους Asynchronous Shaders της DX12 βελτιώνοντας την απόδοση μέχρι και 46%.

AMD-improves-dx12-performance-1

Οι Asynchronous Shaders είναι ένα νέο χαρακτηριστικό για την DX12, το Mantle και το Vulkan που προηγουμένως δεν ήταν διαθέσιμο στην DX11 και στο OpenGL. Αυτό το χαρακτηριστικό επιτρέπει σε διεργασίες να καταχωρηθούν και να επεξεργαστούν από μονάδες shader μέσα στις GPU (Cuda Cores για την Nvidia και Stream Processors για την AMD) ταυτόχρονα και ασυγχρόνιστα σε μορφή πολυπλέγματος (multi thread).

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

AMD-improves-dx12-performance-2

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

AMD-improves-dx12-performance-3

Άλλες συμπληρωματικές τεχνολογίες προσπάθησαν να βελτιώσουν την κατάσταση ενεργοποιώντας την ιεράρχηση των σημαντικών διεργασιών πάνω από άλλες. Η κλίση (pre-emption) των γραφικών επέτρεψε την ιεράρχηση των διεργασιών αλλά όπως και τα γραφικά του πολυπλέγματος στην DX11 δεν μπόρεσε να λύσει το θεμελιώδες πρόβλημα: να ενεργοποιήσει τις ταυτόχρονες διεργασίες να χειριστούν και να καταχωρηθούν ταυτόχρονα και ανεξάρτητα η μία από την άλλη. Σαν αναλογία μπορούμε να πούμε ότι η κλίση των γραφικών προσθέτει ένα φανάρι στο δρόμο αντί για μια επιπλέον λωρίδα πορείας.

AMD-improves-dx12-performance-4

Μέσα από αυτό το πρόβλημα, μια εγένετο η λύση. Μίας που είναι πολύ δραστική και διαθέσιμη στους προγραμματιστές με την DX12, το Vulkan και το Mantle. Ονομάζεται Asynchronous Shaders κι όπως εξηγήσαμε παραπάνω ενεργοποιεί την επεξεργασία μέσω πολυπλέγματος για τα γραφικά. Επιτρέπει τις διεργασίες να επεξεργαστούν ταυτόχρονα και ανεξάρτητα η μία από την άλλη, έτσι ώστε κάθε μία από τις χιλιάδες μονάδες shader μέσα σε μια σύγχρονη GPU να αποδώσει τα μέγιστα ώστε να βελτιώσει το περισσότερο δυνατόν το συνολικό σύστημα.

Ωστόσο, για να ενεργοποιηθεί αυτό το χαρακτηριστικό η GPU θα πρέπει να φτιαχτεί από το μηδέν για να το στηρίξει. Στις GPU που βασίζονται στη GCN της AMD, αυτό το χαρακτηριστικό είναι ενεργοποιημένο μέσω της τεχνολογίας ACE που είναι ενσωματωμένη σε κάθε GPU. Αυτά είναι τα θεμέλια στα οποία κατασκευάζεται απευθείας η GPU και λειτουργούν σαν λεωφόρος πολλών λωρίδων όπου οι διεργασίες ολοκληρώνονται από τους stream processors.

AMD-improves-dx12-performance-5

Κάθε ACE μπορεί να διαχειριστεί οκτώ ουρές και κάθε GPU βασισμένη στην GCN έχει τουλάχιστον δύο ACE. Τα πιο σύγχρονα τσιπ όπως η R9 285 και η R9 290/290X έχουν από οκτώ ACE η κάθε μία. Οι ACE έκαναν την εμφάνισή τους με την πρώτη κάρτα γραφικών αρχιτεκτονικής GCN με κωδική ονομασία Tahiti στα τέλη του 2011. Αρχικά προστέθηκαν στο σύστημα των GPU για να διαχειριστούν διεργασίες, γιατί δεν ήταν δυνατόν αυτό να ελαφρύνει μέσω των API που κυκλοφορούσαν για τα γραφικά ως τότε. Σήμερα, όμως, οι ACE παίρνουν έναν πιο ενεργό ρόλο στην επεξεργασία γραφικών και επιπλέον στη γενική διαχείριση.

AMD-improves-dx12-performance-6

Για να αποδείξουν ποσοτικά τα πλεονεκτήματα στην απόδοση, οι μηχανικοί της AMD χρησιμοποίησαν ένα demo του LiquidVR. Το demo έτρεξε στα 245 FPS με τους Asynchronous Shaders και την προεπεξεργασία απενεργοποιημένα. Ωστόσο αφού ενεργοποιήθηκε η προεπεξεργασία η απόδοση έπεσε στα 158 FPS. Τελικώς, όταν οι Asynchronous Shaders και η προεπεξεργασία ήταν ενεργοποιημένα, ο μέσος όρος των FPS έφτασε τα 230 FPS, σχεδόν 46% πιο ανεβασμένη απόδοση. Με λίγα λόγια άγγιξε την αρχική τιμή. Μπορεί αυτό να είναι η καλύτερη των περιπτώσεων, αλλά δείχνει προοπτική.

AMD-improves-dx12-performance-7

Δεν είναι απλά μια θεωρητική εξάσκηση, υπάρχει ένας αριθμός από παιχνίδια που έχουν ήδη εκδοθεί εφαρμόζοντας την τεχνολογία με τους Asynchronous Shaders. Αυτά τα παιχνίδια είναι το BattleField 4, το Infamous – Second Son και το The Tomorrow Children που κυκλοφορούν στο PS4 συν το Thief που κυκλοφορεί σε PC. Προφανώς η AMD απέδειξε αυτό που ήθελε αναφέροντας παιχνίδια για PS4 και PC, αφού και οι δύο πλατφόρμες υποστηρίζουν την αρχιτεκτονική γραφικών GCN. Επομένως ό,τι κατόρθωσε να κάνει στη μία πλατφόρμα, πολύ εύκολα το μεταφέρει και στην άλλη.

Φυσικά, αυτό το demo απλά δείχνει τις δυνατότητες βελτίωσης της απόδοσης που μπορούν να κατορθωθούν με τους Asynchronous Shaders και χαμηλού επιπέδου APIs όπως το Mantle, το Vulkan και την DX12. Με σωστή εφαρμογή και κατάλληλη βελτιστοποίηση μπορεί να δούμε παιχνίδια για DX12 να φτάνουν σε απόδοση μεγαλύτερα νούμερα με τους Asynchronous Shaders, το οποίο είναι μία πολύ συναρπαστική προοπτική.

AMD-improves-dx12-performance-8

Πηγή: 1, 2, 3

Δημήτρης Μηλόπουλος

Παρακολουθήστε τα σχόλια
Να ειδοποιηθώ όταν
guest
0 Σχόλια
Inline Feedbacks
View all comments

Αυτός ο ιστότοπος χρησιμοποιεί cookies για να βελτιώσει την εμπειρία χρήσης. Αποδοχή Περισσότερα