Octopiler

ibm cell

Ο Cell, ο νέος επεξεργαστής της IBM που θα μπει στο Playstation 3, ίσως γνωρίζετε πως είναι σχεδιασμένος για πολύ parallelization.

Σε προσωπικούς υπολογιστές, τώρα έχουμε αρχίσει να βλέπουμε dual core επεξεργαστές. Εδώ και αρκετούς μήνες δηλαδή. Και όμως, ελάχιστες εφαρμογές τους αξιοποιούν για την ώρα. Εν μέρει, αυτό έχει να κάνει με το ότι δεν έχει πολύς κόσμος ακόμα dual core επεξεργαστές. Αλλά σχεδόν εξίσου σημαντικό, αν όχι σημαντικότερο, είναι πως δεν είναι και τόσο απλό το να γίνει το parallelization σωστά. Οι περισσότεροι code monkeys θα πρέπει να μάθουν πολλά, και να αλλάξουν πολλά στο πως κάνουν τη δουλειά τους. Κάτι τέτοιο δε γίνεται από μέρα σε μέρα.

Ε λοιπόν με το Cell τα πράγματα είναι ακόμα πιο δύσκολα. Δεν είναι δύο ίδιοι επεξεργαστές—είναι ένας επεξεργαστής, και άλλοι οχτώ επεξεργαστές, διαφορετικοί από τον πρώτο. Οπότε η δουλειά δεν είναι μόνο να χωρίσεις κάτι στα δύο. Είναι να βρεις κάποιο τρόπο να το χωρίσεις στα εννιά, και μάλιστα το ένα κομμάτι πρέπει να είναι διαφορετικό από τα άλλα. Μετά, εκτός από την ίδια τη διαφορά, είναι το πως είναι τα οχτώ βοηθητικά τσιπάκια. In order, και χωρίς cache, μα με πιο deterministic μνήμη. Με άλλα λόγια, θέλουν πολύ περισσότερη δουλειά από τον προγραμματιστή—ή πολύ έξυπνο compiler.

Αυτό υποτίθεται πως θα είναι ο Octopiler. Φυσικά, το ζήτημα είναι πολύ μεγάλο, και δε θα ληθεί από μέρα σε μέρα. Το θέμα είναι θα ληθεί μέχρι να βγει το PS3; (Υπερβολικά χλωμό.) Θα έχει ληθεί πραγματικά μέχρι το τέλος της ζωής του PS3; (Υποθέτοντας 6-7 χρόνια, και αναλόγως τι εννοεί κανείς με το ‘πραγματικά,’ απ’ ό,τι φαίνεται ίσως και όχι!) Ο Hannibal συζητάει επί του θέματος.

Το όνομα; Εικάζω το προφανές. Compiler + οχτώ SPE.

3 Responses to “Octopiler”


  1. 1 cosmix Feb 26th, 2006 at 3:56 pm

    Χμμ, κοίταξε Κωστή, σωστά τα όσα γράφεις, και σωστά τα όσα γράφει ο Hannibal. Όμως το ύφος και η προσέγγιση του Hannibal, και κατ’επέκταση το δικό σου, είναι λάθος.

    Τι εννοώ. Πρώτον ας μην ξεχνάμε πως η δυσκολία στον προγραμματισμό συστημάτων με custom chips υπήρχε ανέκαθεν. Για παράδειγμα, ας πάρουμε έναν υποθετικό προγραμματιστή (ή όπως γράφει ο hannibal, ομάδα, γιατι περι ομάδων πρόκεται συνήθως) που επιθυμούσε να κάνει port το παιχνίδι του από DirectX 2.0 σε Playstation (1) το 1996-97. Γνωρίζεις πόση δουλειά επρέπε να κάνει; Πέραν από τη χαμηλή επίδοση του κεντρικού επεξεργαστή του PS1, είχε να λάβει υπ’όψη του optimisations για MIPS, για τους συνοδευτικούς επεξεργαστές γραφικών και ήχου κλπ. Και όλα αυτά με εντελώς πρωτόγονα εργαλεία σε σχέση με το σήμερα.

    Γιατί το αναφέρω: Κανείς από τους προγραμματιστές παιχνιδιών για κονσόλες δεν γράφει Tier IV κώδικα. Κανένας, χωρίς εξαίρεση. Όλοι θα είναι μεταξύ Tier II kai III με μεγάλα παιχνίδια να έχουν αρκετά κομμάτια ανεπτυγμένα σε Tier II-τύπου κώδικα. Σίγουρα στην αρχή τα παιχνίδια δεν θα είναι Tier II (ή και Ι) και πολύς κόσμος θα αρκεσθεί σε Tier III για πολύ υπάρχοντα κώδικα, καθώς ο χρόνος για release θα είναι μικρός και η πολυπλοκότητα μεγάλη. Όμως και πάλι, τα ‘καλά’ παιχνίδια του 2006 θα προσφέρουν ήδη μια εμπειρία κατα πολύ ανώτερη από αυτή που προσφέρουν οι κονσόλες της προηγούμενης γενιάς, και η περεταίρω αξιοποίηση του PS3 θα έιναι σταδιακή. Η (πολλάκις εκφρασμένη) ανησυχία του Ηannibal περι PS3 launch in 2006 έιναι, πιστεύω, υπερβολική.

    Τέλος, δε νομίζω πως θα μας πάρει 5 χρόνια μέχρι να έχουμε έναν ‘βασικό’ compiler ικανό να μοιράσει τη δουλειά. Όχι επειδή δεν είναι ιδιαίτερως σημαντικό και δύσκολο έργο (προφανώς έιναι από τα δυσκολότερα!), αλλά επειδή το cell φαίνεται πως είναι κρίσιμης σημασίας για πολύ κόσμο, πόσο μάλλον για την IBM, και τα δισεκατομμύρια που θα δωθούν για την αξιοποίησή του θα έιναι σίγουρα πολλά. Η ύπαρξη ενός τέτοιου ‘octopiler’, για να χρησιμοποιήσω την ορολογία σου, θα κάνει το Cell έναν ικανό ανταγωνίστή στη κατηγορία general purpose CPU. Η απουσία του, όμως, δεν αποκλείει την ανάπτυξη ‘ειδικών’ εφαρμογών που να αξιοποιούν το Cell, μέσα στις οποίες είναι και ακριβές παραγωγές παιχνιδιών.

    Ιδού τα δύο ευρωλεπτά μου. :)

  2. 2 Kostis Feb 26th, 2006 at 8:03 pm

    Γενικά δε διαφωνώ μαζί σου. Να επισημάνω τρία πράγματα όμως.

    Πρώτον, το νέο generation είναι διαφορετικό. Είναι διαφορετικό γιατί, επειδή μπορείς να κάνεις πολλά παραπάνω, επειδή η ανάλυση είναι τόσο μεγαλύτερη, γενικά το κόστος των παιχνιδιών, όπως θα έχεις ακούσει, ανεβαίνει τρομερά. Θα ήταν τρομερά σημαντικό για τη Sony να υπάρχει η δυνατότητα σχετικά αξιόλογου Tier IV ή III programming, γιατί θα σήμαινε τουλάχιστον μικρότερα σχετικά έξοδα σε προγραμματιστές.

    Δεύτερον, δεν είναι προφανές, σε μένα τουλάχιστον, πως η πολυπλοκότητα του Cell είναι όμοια με την πολυπλοκότητα των PS1 και PS2, από την άλλη δε γνωρίζω ακριβώς πως ήταν σχεδιασμένες οι πρώτες δύο. Όμως, αν ήταν διαφορετικά specialized chips, τότε εικάζω πως τα πράγματα μπορεί να ήταν πολύ πιο εύκολα. Ένα από τα puzzle, όπως το έχω καταλάβει, με τα SPE του Cell, είναι τι να τα κάνουν. Δεν είναι προφανές πως θα είναι ιδιαίτερα καλά για διάφορα κομμάτια κώδικα που ίσως μπορούσαν να τους ξεφουρνίσουν σε διαφορετικά threads. Και, για όσο πιο βασικά κομμάτια μιλάμε, η συνεννόηση μεταξύ των κομματιών γίνεται πιο σημαντική. Άλλο το να πρέπει να προγραμματίσεις διαφορετικά τον ήχο και τα γραφικά σου, και άλλο το να πρέπει να μειράσεις gameplay, ai, physics και ήχο σ’ αυτά τα μικρά units.

    Τρίτον, μη ξεχνάμε το τι έχει σημασία. Ναι, το PS3 θα κάνει παπάδες ό,τι και να συμβεί, όσο άχρειστοι και αν είναι οι compilers. Μα αυτό δεν είναι το θέμα. Το θέμα είναι τι θα κάνει σε σχέση με τους άλλους δύο. Ήδη υπάρχουν ενδοίξεις πως ο προγραμματισμός για το Revolution θα είναι και απλός και φθηνός. Το Χ360, ο μεγαλύτερος ανταγωνιστής, διάλεξε ένα design με τρία Primary Processing Units του Cell, αντί για ένα PPU και οχτώ SPE. Αυτό είναι ένα αίνιγμα που θα λυθεί σίγουρα πιο γρήγορα από το αίνιγμα του Cell, και μη ξεχνάς πως όλο το PC industry θα προσπαθεί να το λύσει τα ερχόμενα χρόνια ούτως ή άλλως.

    Το όλο θέμα είναι το εξής: πήγε η Sony για περισσότερο parallelization απ’ ότι έπρεπε; Too much too soon? Θα δούμε γενικά. Αλλά δεν αποκλείεται. Και το σημαντικό δεν είναι αν θα λυθεί το θέμα, ή αν και στην προηγούμενη γενιά έπρεπε να κάνουν ένα σωρό customizations. Το σημαντικό είναι αν οι ανταγωνιστές θα χρειάζονται λιγότερα, και αν η πολυπλοκότητα του συστήματος θα κρατάει το PS3 πάντα ένα βήμα πίσω από τους ανταγωνιστές του, χωρίς τουλάχιστον να δίνουν τα απίστευτα λεφτά στην παραγωγή.

  3. 3 cosmix Feb 26th, 2006 at 8:35 pm

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

    Είμαι σίγουρος πως γνωρίζεις όμως Κωστή πως το ένα εκ των δύο σημείων που αναφέρεις (η ανάλυση και κατα σύνεπεια τα γραφικά/καλλιτεχνικό κομμάτι) είναι μακράν το ακριβότερο στην παραγωγή του μέσου παιχνιδιού για PS3 σήμερα.

    Θα ήταν τρομερά σημαντικό για τη Sony να υπάρχει η δυνατότητα σχετικά αξιόλογου Tier IV ή III programming, γιατί θα σήμαινε τουλάχιστον μικρότερα σχετικά έξοδα σε προγραμματιστές.

    Για μένα η ύπαρξη ενός optimising octopiler θα σήμαινε το τέλος της ηγεμονίας του απαρχαιωμένου προτύπου μονοεπεξεργαστικών συστημάτων. Θα καταστούσε το cell και τους απόγονούς του, την de facto μεσοπρόθεσμη λύση μέχρι να υπάρξει paradigm shift, και σίγουρα θα έδινε ιδιαίτερα μεγάλη δύναμη στις εταιρίες που το σχεδίασαν και κατασκεύασαν και ιδιαίτερα στην IBM, η οποία είναι και η μόνη που θα κερδίσει άμεσα.

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

    Δεύτερον, δεν είναι προφανές, σε μένα τουλάχιστον, πως η πολυπλοκότητα του Cell είναι όμοια με την πολυπλοκότητα των PS1 και PS2, από την άλλη δε γνωρίζω ακριβώς πως ήταν σχεδιασμένες οι πρώτες δύο.

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

    Αυτό είναι ένα αίνιγμα που θα λυθεί σίγουρα πιο γρήγορα από το αίνιγμα του Cell, και μη ξεχνάς πως όλο το PC industry θα προσπαθεί να το λύσει τα ερχόμενα χρόνια ούτως ή άλλως.

    Δε πιστεύω πως η βιομηχανία υπολογιστών θα λύσει το πρόβλημα της παράλληλης επεξεργασίας στον βαθμό που υπόσχεται να το λύσει το Cell γρηγορότερα από το ίδιο το Cell — δεν υπάρχει σύγκριση μεταξύ π.χ. SMP/HT/xCore και Cell. Όπως και να έχει αυτό δεν έχει σημασία καθώς και να προλάβαινε το PC, απλώς ενισχύει το επιχείρημά μου περι υπερβολής Hannibal.

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

    Τέλος σε σχέση με τους άλλους δυο, πιστεύω πως το PS3, όπως σωστά γράφεις, αρχικά θα υστερεί από οικονομικής πλευράς και ίσως του στοιχήσει. Πιστεύω πως θα αντέξει τεχνολογικά, παρ’όλες τις αρχικές δυσκολίες στην ανάπτυξη παιχνιδιών, σταδιακά θα ξεχωρίσει προσφέρωντας ‘εμπειρία’ ανώτερη από αυτή που θα μπορεί να προσφέρει το Revolution και, αργότερα, το X360 και συνάμα, αν η IBM εκμεταλλευτεί τη θέση που έχει σήμερα, θα δούμε όλο και περισσότερες λύσεις βασισμένες στο cell, π.χ. blades. Η αρχιτεκτονική του Χ360 είναι ήδη ‘ξεπερασμένη’ (ως αρχιτεκτονική όχι ως υλικό!). Είναι σαφές, από τη προδιαγραφή του Cell, πως η Sony σκοπεύει να υποστηρίξει επιπλέον παραλληλισμό με χρήση πολλαπλών Cells. Π.χ. σε πρωτότυπα workstations, βρίσκονται 2 cells.

    Έτσι, με τη πτώση της τιμής του PS3 στο μέλλον ίσως δούμε παιχνίδια με απάιτηση 2 ή 4 PS3, όπως έχουμε ξανασυζητήσει στο παρελθόν. Κάτι τέτοιο δε θα έιναι εύκολο να γίνει με το X360 ή με το Revolution, κάνωντας το PS3 τότε οικονομικά πιο συμφέρον και για τη Sony αλλά και για τον καταναλωτή.

    Είναι μια πραγματικά ενδιαφέρουσα ιστορία και εποχή και συμφωνώ πως είναι άγνωστο το τι θα ακολουθήσει. Η IBM έχει ιστορία καταπληκτικών ιδεών που εν τέλει απλά μπαίνουν σε ένα ντουλάπι ή καταλήγουν σε μια niche αγορά μέχρι που συντηρητικές εταιρίες τύπου Ιntel τις πλασάρουν στην αγορά με ελκυστικό και αγοραστικά προσιτό τρόπο.

    Ας ελπίσουμε, αν θες μόνον και μόνον για ενίσχυση της ‘αγοράς’, να πετύχει το Cell, όχι μόνον στο PS3 αλλά και σε άλλες αγορές.

    “Time vill tell!”

Leave a Reply