Η ανάλυση της Naughty Dog για τα τεχνικά χαρακτηριστικά (CPU,GPU,Cache) του PS4
Επιτέλους μάθαμε τα πάντα όλα για το PlayStation 4 από το official blog.
Κατά τη διάρκεια μιας εξαιρετικά ενδιαφέρουσας παρουσίασης στη Semana Informática στη Λισαβόνα ο Lead Programmer της Naughty Dog, Jason Gregory περιέγραψε την CPU, τη GPU, την αρχιτεκτονική της cache (κρυφή μνήμη) του PS4 με μεγάλη λεπτομέρεια, και εξηγεί πώς το στούντιο βελτιστοποιεί όλους αυτούς τους πόρους για την επίτευξη εξαιρετικών αποτελεσμάτων χάρη στη γνώση των πλεονεκτημάτων και των αδυναμιών του υλικού. Η Naughty Dog μπορεί να επωφεληθεί πλήρως από αυτό, καθιστώντας τον κώδικα να "τρέχει πολύ γρήγορα."
Πρώτα απ 'όλα, ο Gregory εξήγησε ότι ενώ υπάρχουν 8 gigabytes μνήμης RAM, μόνο πέντε έχουν διατεθεί για τα παιχνίδια, και μπορούν να γεμίσουν αρκετά εύκολα.
Ο κατακερματισμός της μνήμης είναι ένας από τους χειρότερους εχθρούς, γιατί έχει ως συνέπεια η μνήμη να εξαντλείται πολύ πιο γρήγορα από ό, τι συνήθως. Η Naughty Dog λύνει το πρόβλημα με τροποποιημένους εκχωρητές μνήμης για να ταιριάζει με τα πρότυπα κατανομής του λογισμικού.
Το στούντιο χρησιμοποιεί επίσης σαφείς χάρτες μνήμης στη μηχανή τους, που λέει σε κάθε δεδομένη στιγμή, που χρησιμοποιείται η μνήμη που και τι είδους χρήση γίνεται.
Αυτό είναι πολύ σημαντικό γιατί πολλά κιτ ανάπτυξης, ιδιαίτερα του PS3, έχουν διπλάσια μνήμη, που χρησιμοποιείται για εντοπισμό σφαλμάτων. Αυτό σημαίνει ότι τα χαρακτηριστικά του παιχνιδιού δεν πρέπει να χρησιμοποιούν την εν λόγω μνήμη.
Προχωρώντας σε πολλαπλή διαχείριση του κεντρικού επεξεργαστή, ο Gregory εξήγησε πώς το PS4, είναι ο ορισμός του πως λειτουργεί "η παράλληλη επεξεργασία".
Υπάρχουν 8 πυρήνες CPU, που είναι "υψηλότερης ποιότητας και πιο ισχυροί επεξεργαστές από ό, τι η κύρια CPU του PS3," και διαχωρίζονται δύο ομάδες.
Ο Gregory εξηγεί επίσης ότι η GPU είναι "πιο ισχυρή απ' οτι απαιτείται για γραφικά σε 1080p και στα 60 hz" και ότι η ιδέα των σχεδιαστών του PS4 ήταν να δοθεί στην κονσόλα επιπλέον πόροι GPU γιατί είναι "απίστευτα καλή στο να κάνει τεράστιες ποσότητες παράλληλης επεξεργασίας" και οραματίστηκε ότι οι σχεδιαστές του παιχνιδιού πρόκειται να την εκμεταλευτούν όσον αφορά τα physics, το animation στα ρούχα, τις ροές υγρών στοιχείων κτλπ.
Με το PS3 η Naughty Dog σε συνεργασία με την ICE team της Sony, ανέπτυξαν ένα "Job system" για να κάνουν αποτελεσματική χρήση της πολυπύρηνης CPU, και ένα παρόμοιο σύστημα έχει δημιουργηθεί και για το PS4.
Μόνο έξι από τους πυρήνες είναι διαθέσιμοι για τα παιχνίδια, καθώς οι δύο χρησιμοποιούνται από το λειτουργικό σύστημα. Το Job system χρησιμοποιεί επίσης τη GPU kai αυτούς τους έξι πυρήνες για να είναι σε θέση να τρέξει κώδικα. Κάθε πυρήνας της CPU τρέχει ένα νήμα εργασίας, και ενώ το πρώτο φροντίζει τον κύριο βρόχο του παιχνιδιού, οι άλλες θέσεις εργασίας κατανέμονται μεταξύ των υπόλοιπων πέντε πυρήνων.
Από την άλλη πλευρά, η GPU φροντίζει για την παροχή και την GPGPU κυματομετώπων, που αφορούν ουσιαστικά τα physics, το animation στα ρούχα και παρόμοιων υπολογισμών που αναφέρθηκαν παραπάνω.
Μια άλλη πολύ σημαντική έννοια είναι η βελτιστοποίηση, και ένα κρίσιμο στοιχείο είναι ο "κανόνας 80/20", που σημαίνει ότι το πρόγραμμά σας δαπανά το 80% του χρόνου του να τρέχει το 20% του κώδικά σας. Το υπόλοιπο του εν λόγω κώδικα εκτελείται πολύ σπάνια.
Έτσι, όταν βελτιστοποιήσετε τον κώδικά σας, δεν θέλετε να βελτιστοποιήσετε αυτό το 80%, γιατί θα πρέπει να σπαταλήσετε το χρόνο σας. Από την άλλη πλευρά, η Naughty Dog επικεντρώνεται σε αυτό το 20% που πραγματικά έχει σημασία, και αυτό τους επιτρέπει να έχουν όσον το δυνατό καλύτερη απόδοση.
Γνωρίζουμε πως το υλικό είναι πολύ σημαντικό, καθώς υπάρχουν βελτιστοποιήσεις που μπορεί να προσαρμοστούν μόνο σε ένα συγκεκριμένο κομμάτι του υλικού, λαμβάνοντας υπόψη το πως λειτουργεί.
H διαχείριση της μνήμης cache είναι ένα πολύ σημαντικό μέρος της βελτιστοποίησης, καθώς για τους σύγχρονους επεξεργαστές απαιτείται ένας αρκετά μεγάλος αριθμό κύκλων για να αποκτήσουν πρόσβαση σε δεδομένα από την κύρια μνήμη RAM, η οποία είναι μεγάλη. Στη συνέχεια, υπάρχει μια πολύ μικρότερη μνήμη cache που ονομάζεται "L2", που είναι επίσης πολύ πιο γρήγορη όσον αφορά την πρόσβαση, η μνήμη cache L1 που είναι ακόμη πιο γρήγορη, και επίσης υπάρχουν και τους καταχωρητές στο ίδιο το τσιπ που είναι εξαιρετικά μικροί αλλά στιγμιαίοι.
Κρατώντας δεδομένα υψηλής απόδοσης σε μικρότερο χώρο χάρη σε αυτό, δεδομένου ότι μπορούν να χωρέσουν στη μνήμη cache, στην οποία μπορεί να έχει πρόσβαση πολύ γρήγορα. Έχοντας αυτά τα στοιχεία μικρά και συνεχόμενα στη μνήμη είναι ακόμα πιο επωφελή για τη συνολική απόδοση.
Το PS4, συγκεκριμένα, έχει οκτώ πυρήνες που διατάσσονται σε δύο ομάδες. Η μνήμη L2 cache στην πραγματικότητα χωρίζεται σε δύο μέρη, ένα για κάθε ομάδα, και η επικοινωνία της κάθε ομάδας με τη δική του cache L2 διαρκεί 26 κύκλους. Η επικοινωνία μεταξύ μιας ομάδας και μιας μνήμης L2 cache που επισυνάπτεται σε μια άλλη συστάδα είναι πολύ πιο αργή, λαμβάνοντας 190 κύκλους.
Εκτός από αυτό, όταν διαβάζεται ένα byte στην κύρια μνήμη RAM, φορτώνονται επίσης 64 bytes της μνήμης στην cache.
Η γνώση αυτών των στοιχείων του PS4 επιτρέπει στο στούντιο να βελτιστοποιήσει τον κώδικα , έτσι ώστε να αποφεύγουμε ομάδες που επικοινωνούν με το "λάθος" μνήμη L2 cache και να βάζουμε τα δεδομένα σε ξεχωριστές γραμμές cache , αφαιρώντας την πιθανότητα συγκρούσεων και επιβραδύνσεις.
Μια τελευταία πολύ ενδιαφέρουσα λεπτομέρεια είναι ότι το PS3 είχε πραγματικά "κακό" υλικό δυναμικής πρόβλεψης άλματος στην CPU, που σημαίνει ότι "αν " ένα κομμάτι κώδικα συχνά προκαλούσε κακή απόδοση, αν δεν είχε "όλες τις απαιτούμενες υποδείξεις", αυτό συνέβαινε απλώς και μόνο επειδή η CPU δεν ήταν καλή στην πρόβλεψη ως προς τι κάνει ο κώδικας.
Από την άλλη πλευρά, το PS4 έχει " πραγματικά πολύ καλό " υλικό πρόβλεψης πρόβλεψης άλματος, που θα "μαντέψει " τι κάνει ο κώδικας, αφαιρώντας την ανάγκη για όλες τις συμπληρωματικές εργασίες που ήταν απαραίτητες για το PS3.
Ένα πράγμα είναι σίγουρο: ακούγοντας αυτή η συζήτηση είναι δύσκολο να μην αισθανόμαστε ακόμη πιο ενθουσιασμένοι για τον πρώτο τίτλο της Naughty Dog στο PS4.
Ολόκληρη την παρουσίαση μπορείτε να την παρακολουθήσετε παρακάτω, ενώ τα slides της παρουσίασης μπορείτε να τα κατεβάσετε
από αυτό το link
.
[youtube:3p1b3vwn]
[/youtube:3p1b3vwn]