AMD: Οι επιπτώσεις του DirectX 12 στις GCN GPUs
Στο conference της AMD την προηγούμενη εβδομάδα, η AMD μίλησε και για τα πλεονεκτήματα του DirectX 12 και τις επιπτώσεις που θα φέρει στις κάρτες της με αρχιτεκτονική GCN. Στο conference της AMD την προηγούμενη εβδομάδα, η AMD μίλησε και για τα πλεονεκτήματα του DirectX 12 και τις επιπτώσεις που θα φέρει στις κάρτες της με αρχιτεκτονική GCN.
Χωρίς αμφιβολία, η AMD με το Mantle ώθησε την ανάπτυξη του DirectX 12 API από τους μηχανικούς της Microsoft. Το χτένι έφτασε στο κόμπο, ειδικά μετά τα πολλαπλά προβλήματα που εμφάνιζαν όλοι οι πρόσφατοι AAA τίτλοι της αγοράς, με τους gamers να "ρίχνουν" το φταίξιμο τόσο στον game developer όσο και στην εταιρεία που κατασκευάζει τις GPUs για τις χαμηλές επιδόσεις. Αυτό όμως που αποτελεί τροχοπέδη στις επιδόσεις είναι το πλέον "γερασμένο" DirectX 11 και τα λίγα draw calls που δε μπορεί να ζητήσει μεγάλο αριθμό αντικειμένων για rendering.
Τη λύση ήρθε να δώσει το Mantle και αργότερα η Microsoft με το DirectX 12, μια beta έκδοση του οποίου έχει ενσωματωθεί στην TP των Windows 10 και μπορούμε να το δοκιμάσουμε εάν έχουμε το 3DMark update (Advanced έκδοση) καθώς και μια συμβατή DX11 GPU. H AMD στο πρόσφατο conference που διεξήγαγε, αναφέρθηκε στο νέο API της Microsoft, τονίζοντας ορισμένα από τα πιο σημαντικά σημεία που θα δώσουν τα μέγιστα σε κάθε GCN κάρτα γραφικών της εταιρείας.
Αρχικά, μιλάμε για τους Asynchronous shaders, μια τεχνική που μπορεί να μειώσει το latency σε μια εργασία rendering πραγματικού χρόνου (rendering pipeline) αφού επιτρέπει τον παραλληλισμό διάφορων εργασιών που μέχρι τώρα εκτελούνταν με τη σειρά (single queue vs multi-threaded queue βλ. 1η φωτό). Αν και είναι τρομακτικά δύσκολο στην εξήγηση, η AMD συνοδεύει την ομιλία της με slides και αναπαραστάσεις δείχνοντας με τον καλύτερο τρόπο πως το pipeline περιλαμβάνει μικρές λεωφόρους, απ' όπου τα δεδομένα μπορούν να περάσουν παράλληλα (περισσότερα θεωρητικά lanes) κάτι που υποστηρίζεται από τις GCN κάρτες γραφικών.
Οι Ασύγχρονοι Shaders έχουν 3 queues διαθέσιμα. Το graphics queue (Rendering), το compute queue (Physics, Lighting, post-processing effects) καθώς και το copy queue, το οποίο αναφέρεται στις συναλλαγές που πραγματοποιεί η μνήμη της κάρτας με τον πυρήνα (Memory), μπορούν να εκτελεστούν ταυτόχρονα μέσω των compute-engines των GCN καρτών που ονομάζονται ACEs (Asynchronous Compute Engine), γλυτώνοντας χρόνο και παράγοντας περισσότερα καρέ στην ίδια ποιότητα εικόνας. Υποστηρίζουν 8 waiting queue και έχουν πλήρη πρόσβαση στην L2 cache η οποία ονομάζεται και global share data καθώς διαμοιράζει δεδομένα σε κάθε queue όταν το ζητήσει.
Το χαμηλό latency βέβαια συνδυάζεται με την Εικονική Πραγματικότητα (Virtual Reality), όπου οι τωρινές τεχνολογίες πάσχουν σημαντικά. Η AMD εργάζεται τελευταία στο LiquidVR-SDK το οποίο θα λειτουργεί ομαλά σε πολλαπλές κάρτες γραφικών, ενώ ένα πρόσφατο demo που εμφανίστηκε, έτρεχε στην επερχόμενη flagship κάρτα γραφικών Radeon R9 390X. Τέλος για όσους ενδιαφέρονται, η NVIDIA διαθέτει και αυτή μια παρόμοια τεχνική που ονομάζεται Asynchronous time warp.
Χωρίς αμφιβολία, η AMD με το Mantle ώθησε την ανάπτυξη του DirectX 12 API από τους μηχανικούς της Microsoft. Το χτένι έφτασε στο κόμπο, ειδικά μετά τα πολλαπλά προβλήματα που εμφάνιζαν όλοι οι πρόσφατοι AAA τίτλοι της αγοράς, με τους gamers να "ρίχνουν" το φταίξιμο τόσο στον game developer όσο και στην εταιρεία που κατασκευάζει τις GPUs για τις χαμηλές επιδόσεις. Αυτό όμως που αποτελεί τροχοπέδη στις επιδόσεις είναι το πλέον "γερασμένο" DirectX 11 και τα λίγα draw calls που δε μπορεί να ζητήσει μεγάλο αριθμό αντικειμένων για rendering.
Τη λύση ήρθε να δώσει το Mantle και αργότερα η Microsoft με το DirectX 12, μια beta έκδοση του οποίου έχει ενσωματωθεί στην TP των Windows 10 και μπορούμε να το δοκιμάσουμε εάν έχουμε το 3DMark update (Advanced έκδοση) καθώς και μια συμβατή DX11 GPU. H AMD στο πρόσφατο conference που διεξήγαγε, αναφέρθηκε στο νέο API της Microsoft, τονίζοντας ορισμένα από τα πιο σημαντικά σημεία που θα δώσουν τα μέγιστα σε κάθε GCN κάρτα γραφικών της εταιρείας.
Αρχικά, μιλάμε για τους Asynchronous shaders, μια τεχνική που μπορεί να μειώσει το latency σε μια εργασία rendering πραγματικού χρόνου (rendering pipeline) αφού επιτρέπει τον παραλληλισμό διάφορων εργασιών που μέχρι τώρα εκτελούνταν με τη σειρά (single queue vs multi-threaded queue βλ. 1η φωτό). Αν και είναι τρομακτικά δύσκολο στην εξήγηση, η AMD συνοδεύει την ομιλία της με slides και αναπαραστάσεις δείχνοντας με τον καλύτερο τρόπο πως το pipeline περιλαμβάνει μικρές λεωφόρους, απ' όπου τα δεδομένα μπορούν να περάσουν παράλληλα (περισσότερα θεωρητικά lanes) κάτι που υποστηρίζεται από τις GCN κάρτες γραφικών.
Οι Ασύγχρονοι Shaders έχουν 3 queues διαθέσιμα. Το graphics queue (Rendering), το compute queue (Physics, Lighting, post-processing effects) καθώς και το copy queue, το οποίο αναφέρεται στις συναλλαγές που πραγματοποιεί η μνήμη της κάρτας με τον πυρήνα (Memory), μπορούν να εκτελεστούν ταυτόχρονα μέσω των compute-engines των GCN καρτών που ονομάζονται ACEs (Asynchronous Compute Engine), γλυτώνοντας χρόνο και παράγοντας περισσότερα καρέ στην ίδια ποιότητα εικόνας. Υποστηρίζουν 8 waiting queue και έχουν πλήρη πρόσβαση στην L2 cache η οποία ονομάζεται και global share data καθώς διαμοιράζει δεδομένα σε κάθε queue όταν το ζητήσει.
Το χαμηλό latency βέβαια συνδυάζεται με την Εικονική Πραγματικότητα (Virtual Reality), όπου οι τωρινές τεχνολογίες πάσχουν σημαντικά. Η AMD εργάζεται τελευταία στο LiquidVR-SDK το οποίο θα λειτουργεί ομαλά σε πολλαπλές κάρτες γραφικών, ενώ ένα πρόσφατο demo που εμφανίστηκε, έτρεχε στην επερχόμενη flagship κάρτα γραφικών Radeon R9 390X. Τέλος για όσους ενδιαφέρονται, η NVIDIA διαθέτει και αυτή μια παρόμοια τεχνική που ονομάζεται Asynchronous time warp.