Ένα φιλόδοξο project στοχεύει να φτιάξει κάρτες γραφικών, με ανοικτές και δημόσια διαθέσιμες προδιαγραφές…

Ένα από τα μεγάλα πλεονεκτήματα του ελεύθερου και ανοικτού κώδικα λογισμικού είναι ακριβώς η δυνατότητα που δίνει σε εσάς, σε εμένα, στον οποιονδήποτε να πάρει τον πηγαίο κώδικα μιας εφαρμογής, να τον μελετήσει, να τον διορθώσει και γιατί όχι να τον αξιοποιήσει για να φτιάξει κάτι καλύτερο. Η βιωσιμότητα και η επιτυχία αυτού του εντελώς διαφορετικού μοντέλου ανάπτυξης της Πληροφορικής αντικατοπτρίζεται στην ανάπτυξη ολόκληρων λειτουργικών συστημάτων ανοικτού κώδικα (Linux, FreeBSD, κλπ) αλλά και δεκάδων χιλιάδων εφαρμογών ανοικτού κώδικα (Firefox, OpenOffice, Inkscape, Gimp, κλπ) που χρησιμοποιούμε καθημερινά ακόμα και σε “κλειστά” λειτουργικά όπως τα Windows.

Τι γίνεται όμως με το hardware; Αναμφισβήτητα, η ανάπτυξη hardware για υπολογιστές (μητρικές, επεξεργαστές, κάρτες γραφικών, κλπ) απαιτεί πολλαπλάσια έξοδα απ’ ότι η ανάπτυξη μιας οποιασδήποτε εφαρμογής. Αυτά τα έξοδα απαιτούν αντίστοιχα έσοδα (από πωλήσεις, δικαιώματα, κλπ) για να έχουν νόημα για μια εταιρεία και γι’ αυτό δεν θα βρείτε πολλά παραδείγματα εταιρειών που προσφέρουν ελεύθερα τον “κώδικα” του hardware που κατασκευάζουν, δηλαδή τις προδιαγραφές του, υπό τον φόβο της αντιγραφής τους από ανταγωνιστές. Πηγαίνετε, λόγου χάρη, στο site της nVidia και ψάξτε έστω και για ένα σχεδιάγραμμα των chips της. Δεν πρόκειται να βρείτε τίποτε. Ειδικά στον τομέα των γραφικών, τα έξοδα ανάπτυξης ενός chip σαν το G70 (το chip της GeForce 7800GTX) είναι τεράστια και η εταιρεία δεν διακινδυνεύει την ανακοίνωση λεπτομερειών της υλοποίησης. Γι’ αυτό και δεν πρόκειται να βρείτε πουθενά drivers ανοικτού κώδικα με αντίστοιχες επιδόσεις με εκείνους που διανέμει η ίδια η nVidia. Με άλλα λόγια, αν πάρεις μια κάρτα nVidia είσαι υποχρεωμένος να χρησιμοποιήσεις τους drivers της και να εμπιστεύεσαι την εταιρεία χωρίς να ξέρεις τι ακριβώς κάνουν αυτοί στον υπολογιστή σου.

Υπάρχει όμως ένα project, που σκοπεύει να κάνει ακριβώς το αντίθετο: να αναπτύξει ένα νέο hardware για γραφικά και να δώσει τις προδιαγραφές του και τον κώδικα των drivers στους πάντες… Αναφερόμαστε στο Open Graphics Project, το οποίο στοχεύει να δημιουργήσει μια νέα γενιά ολοκληρωμένων chips που θα μπορεί να “αντιγράψει” ο καθένας (αρκεί να έχει τα κατάλληλα μέσα και χρήματα) αλλά και να φτιάξει drivers ανοικτού κώδικα με καλές επιδόσεις. Ας τα πάρουμε όμως από την αρχή…

Η ιδέα

Το Open Graphics Project (OGP) ξεκίνησε τον Οκτώβριο του 2004 από τον Timothy Miller, έναν εργαζόμενο της Tech Source, Inc. Ο Miller πίστευε ότι υπήρχε χώρος στην αγορά για μια νέα κατηγορία καταναλωτικών προϊόντων: κάρτες γραφικών που είναι ειδικά σχεδιασμένες για ελεύθερο και ανοικτού κώδικα λογισμικό (ΕΛΛΑΚ). Όπως λέει ο ίδιος “αντί να παρακαλάμε τους προμηθευτές καρτών γραφικών για πρόσβαση στις προδιαγραφές τους, σκέφτηκα ότι θα ήταν καλύτερο να ρωτήσω τα μέλη της κοινότητας ΕΛΛΑΚ για το είδος του hardware που χρειάζονται, να συνεργαστώ μαζί τους για να φτιάξουμε τις προδιαγραφές και μετά να φτιάξουμε μια νέα κάρτα”. Η φράση-κλειδί για τον Miller είναι η “Ανοικτή Αρχιτεκτονική”, η οποία θα επιτρέψει στους προγραμματιστές ελεύθερου λογισμικού να έχουν τις πληροφορίες που χρειάζονται για να φτιάξουν ανοικτού κώδικα drivers που θα εκμεταλλεύονται πλήρως το νέο hardware.

Δυστυχώς, τα πράγματα δεν πήγαν όπως περίμενε. H Tech Source αρχικά δέχθηκε την πρόταση του και ο Miller άρχισε να αναπτύσσει ένα ολοκληρωμένο τσιπάκι για την μελλοντική κάρτα, αλλά στη συνέχεια λόγω του μεγάλου κόστους η εταιρεία διέκοψε το project, επικαλούμενη το γεγονός ότι η αγορά του ΕΛΛΑΚ δεν ήταν τόσο μεγάλη ώστε να μπορεί να έχει κέρδος από μια τέτοια επένδυση. Επιπλέον, το αρχικό τσιπάκι που ανέπτυξε ο Miller δεν λειτουργούσε σωστά. Δεν το έβαλε κάτω όμως. Μαζί με δύο ακόμα συναδέλφους του (τον Howard Parkin και τον Andy Fong), αποφάσισαν να συνεχίσουν το project μόνοι τους, με τη συναίνεση της Tech Source. Το επόμενο βήμα τους ήταν να κάνουν μερικές αλλαγές στο αρχικό σχέδιο, προκειμένου το project να αποκτήσει ένα βιώσιμο επιχειρηματικό μοντέλο. Έτσι, αποφάσισαν να κάνουν τρία διαδοχικά πράγματα:

  • Καταρχήν, να δημιουργήσουν μια “δοκιμαστική κάρτα” (development board), την OGD, που θα βασίζεται σε FPGA (Field Programmable Gate Array) και την οποία θα πωλούσαν, σε πολύ χαμηλότερες του ανταγωνισμού τιμές, σε όσους ενδιαφέρονται για πειραματισμό και ανάπτυξη νέων chip και καρτών γραφικών. Με τα χρήματα που θα συγκέντρωναν θα μπορούσαν να συνεχίσουν το project αλλά και να δείξουν σε επίδοξους επενδυτές ό,τι η ιδέα τους είναι βιώσιμη οικονομικά.
  • Στη συνέχεια, με βάση την δοκιμαστική κάρτα, να φτιάξουν ένα νέο ολοκληρωμένο τσιπάκι γραφικών ASIC (Application-Specific Integrated Circuit) που θα προορίζεται για την αγορά των embedded συστημάτων, όπου πίστευαν ότι θα ήταν ανταγωνιστικό σε τιμή και απόδοση. Ταυτόχρονα, όπως προέβλεπαν, αυτό το νέο chip θα μπορούσε να αξιοποιηθεί και σε κάρτες γραφικών για desktop υπολογιστές, ανεξάρτητα του λειτουργικού συστήματός τους.
  • Παράλληλα με την ανάπτυξη της OGD και του ASIC, να εκδώσουν τις προδιαγραφές τους με ελεύθερες (αλλά και ιδιόκτητες) άδειες χρήσης.

Όπως είναι αυτονόητο η ανάπτυξη ενός οποιουδήποτε hardware έχει ιδιαίτερα μεγάλο κόστος. Ο Miller εκτιμούσε από την αρχή ότι θα χρειαζόντουσαν αρκετά εκατομμύρια δολάρια για την ανάπτυξη του τελικού ASIC. Γι’ αυτό το λόγο o Miller και οι συνεργάτες του δημιούργησαν την Traversal Technology, την εταιρεία που παίζει το ρόλο του σπόνσορα του Open Graphics Project και η οποία θα αναλάβει την εκτέλεση των παραγγελιών όταν είναι έτοιμη η δοκιμαστική κάρτα OGD. Επιπλέον η Traversal θα κατασκεύαζε και όλα τα προϊόντα που θα προέκυπταν από το project. Παράλληλα, για τη στέγαση του project δημιουργήθηκε και ένα ίδρυμα, το Open Graphics Foundation με πρόεδρο τον Patrick McNamara, έναν από τα μέλη της ομάδας ανάπτυξης.

Το πρωτότυπο

Ο πρώτος καρπός των προσπαθειών της ομάδας του Miller ήρθε μετά από δύο χρόνια δουλειάς χωρίς την παραμικρή εξωτερική υποστήριξη. Τον Δεκέμβριο του 2006, η ιστοσελίδα του project είχε μια πολύ μεγάλη ανακοίνωση: “Ξέρουμε ότι ονειρεύεστε εδώ και καιρό μια εντελώς ανοικτή κάρτα γραφικών. Έχουμε τις πρώτες φωτογραφίες αυτού που θα γίνει τελική η Open Graphics Card. H κάρτα δεν είναι πια όνειρο. Είναι πραγματικότητα.”

Το όνομα του πρωτότυπου ήταν OGD1-256 και δούλευε σε δίαυλο PCI. Στη μονάδα επεξεργασίας γραφικών της OGD1 βρίσκονταν δύο FPGA, το Xilinx Spartan III 4000 για τα γραφικά και το Lattice XP10 για το PCI. Η ψύξη της ήταν παθητική πάνω στο Spartan III. H κάρτα διέθετε 256ΜΒ μνήμης RAM στα 350ΜHz, 3 DACs στα 300MHz, δύο βύσματα DVI για ταυτόχρονη έξοδο σε δύο οθόνες αλλά υποστήριζε και εξόδους για αναλογικό σήμα και TV. H μέγιστη ανάλυση της κάρτας ήταν τουλάχιστον 2048×2048 και ήταν συμβατή με τα πρότυπα VESA και OpenGL 1.3.

Οι αρχικοί στόχοι του Miller και της ομάδας του ήταν η κάρτα να πετυχαίνει επιδόσεις της τάξης των 6.4 GB/sec στη διαμεταγωγή μνήμης και 400 εκ. pixels/sec στο 3D rendering. Τελικά, οι επιδόσεις στη μνήμη ήταν αρκετά μικρότερες, της τάξης των 1.6 GB/sec. Εντούτοις, ακόμα και αυτό το πρωτότυπο φαίνεται ότι ξεπερνάει σε επιδόσεις μια Radeon 7000. Σύμφωνα με την αρχική ανακοίνωση, οι επιδόσεις της δοκιμαστικής κάρτας στο Quake III βρίσκονταν κάπου μεταξύ των 20 και 30 FPS στα 1280×1024.

Οι βασικές προδιαγραφές της κάρτας, και ιδιαίτερα το λεγόμενο RTL του FPGA, διατίθενται ελεύθερα από το site του project. To RTL (Register Transfer Level) είναι ένας τρόπος περιγραφής της συμπεριφοράς ενός ψηφιακού κυκλώματος με βάση τη ροή των δεδομένων ανάμεσα στα στοιχεία του καθώς και των λογικών λειτουργιών που γίνονται σε αυτά. Σε γενικές γραμμές, το RTL είναι για το hardware ότι ο πηγαίος κώδικας των εφαρμογών. Το RTL του FPGA της OGD είναι γραμμένο στην γλώσσα Verilog και διανέμεται ελεύθερα υπό την άδεια χρήσης GPL. Ωστόσο, η Traversal κρατάει το copyright και το δικαίωμα διπλής άδειας προκειμένου να μπορεί να το πουλήσει σε εταιρείες που ενδιαφέρονται. Στο μέλλον, η Traversal θα ‘περάσει’ στην άδεια GPL όλες τις προδιαγραφές της κάρτας.

Παράλληλα, το project έχει δεσμευτεί να δώσει ελεύθερα και τον πηγαίο κώδικα των drivers της OGD (αλλά και των υπολοίπων καρτών στο μέλλον). Ο κώδικας αυτός διανέμεται υπό την άδεια MIT ή X11 με στόχο να ενθαρρυνθεί η αξιοποίηση του σε ανοικτού αλλά και κλειστού κώδικα λογισμικό. Αξίζει να σημειωθεί ότι η χρηματοδότηση της OGD έγινε εξολοκλήρου από την τσέπη της ομάδας ανάπτυξης χωρίς τη συνδρομή επενδυτών.

Η αξία του εγχειρήματος

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

Πιο συγκεκριμένα, η OGD1 εξυπηρετεί δύο σκοπούς. Πρώτον, θα είναι η πλατφόρμα ανάπτυξης των νέων ASICs. Η επιλογή ανάπτυξης της κάρτας με τσιπάκι FPGA δεν έγινε τυχαία. Ένα FPGA είναι πολύ φθηνότερο από ένα ASIC και, σε αντίθεση με αυτό, έχει δυνατότητα εύκολου επαναπρογραμματισμού. Αυτά τα δύο χαρακτηριστικά του δίνουν στην ομάδα ανάπτυξης την ευχέρεια να κάνει πολλές δοκιμές και διορθώσεις χωρίς το υπέρογκο κόστος που συνεπάγεται η εξαρχής ανάπτυξη ενός ASIC. Επιπλέον, η ανάπτυξη ενός ASIC γίνεται συνήθως με χρήση προσομοιώσεων. Αυτό είχε κάνει ο Miller στην Tech Source, αλλά παρά τις προσπάθειες του πολλά κρίσιμα στοιχεία είχαν παραβλεφθεί με αποτέλεσμα το πρώτο εκείνο ASIC να μη δουλεύει. Από την άλλη πλευρά, το κακό με τα FPGA chips είναι ότι είναι πιο αργά από ένα ASIC της ίδιας επιφάνειας die. Όμως αυτό δεν πτοεί τον Miller που πιστεύει ότι ακόμα κι αν το FPGA τρέχει στη μισή ταχύτητα από το αντίστοιχο ASIC, θα είναι και πάλι εφικτό να κάνει κάποιος δοκιμές σε πραγματικούς υπολογιστές.

Εκτός από πλατφόρμα ανάπτυξης του ASIC, όμως, η OGD μπορεί να έχει πολλές ακόμα χρήσεις. Για παράδειγμα, εταιρείες ή ερευνητικά κέντρα που σχεδιάζουν chips θα μπορούσαν να την εκμεταλλευτούν, όπως επίσης και τμήματα Επιστήμης Υπολογιστών που κάνουν μαθήματα αρχιτεκτονικής επεξεργαστών. Τα μεγάλα ατού της κάρτας: η χαμηλή τιμή της και η δωρεάν τεκμηρίωση της αρχιτεκτονικής της.

Αυτή τη στιγμή, Traversal δέχεται προπαραγγελίες της κάρτας με τιμή 1500 δολάρια (-100 δολάρια έκπτωση). Αυτά είναι πολλά λεφτά για μια κάρτα γραφικών με αυτές τις δυνατότητες, αλλά πάρα πολύ λίγα για μια πλατφόρμα ανάπτυξης καρτών γραφικών. Για να έχετε ένα μέτρο σύγκρισης, μια κάρτα ανάπτυξης με αντίστοιχο FPGA του εμπορίου ξεκινάει από τα 2000 δολάρια. Άλλωστε η OGD δεν προορίζεται για χρήση σε PCs αλλά για ανάπτυξη άλλων chips και καρτών.

Το μέλλον

Ο απώτερος στόχος του OGP είναι η δημιουργία μιας κάρτας γραφικών για όλους τους χρήστες, που θα λέγεται Open Graphics Card (OGC). Πρόκειται για μια κάρτα που θα βασίζεται στο μελλοντικό ASIC, το οποίο θα αναπτυχθεί με βάση την OGD1, και θα είναι ανοικτής αρχιτεκτονικής, με ανοικτού κώδικα drivers και η τιμή της θα είναι περίπου 120 δολάρια. Το ASIC θα μπορεί να τρέχει και σε AGP/PCI-Express ενώ θα είναι συμβατό με το OpenGL 2.0 για 3D και 2D γραφικά. Η OGC θα είναι ειδικά σχεδιασμένη για τεχνολογίες ανοικτού κώδικα (όπως τα X.org και Mesa) και θα παίζει χωρίς προβλήματα στα Windows, το Linux και στο BSD, είτε σε x86 είτε σε PowerPC αρχιτεκτονικές. Σύμφωνα με τα λόγια του Miller, η OGC είναι “η κάρτα που θα αποκαλύπτει όλα τα interfaces της ώστε να μπορεί να υποστηρίζει κάθε χαρακτηριστικό, και μάλιστα με επιτάχυνση”.

Η OGC δεν είναι έτοιμη ακόμα, επειδή έπρεπε πρώτα να φτιαχτεί η OGD. Ακόμα και τώρα όμως που το πρωτότυπο της OGD είναι γεγονός, δεν σημαίνει ότι είναι ζήτημα …χρόνου η ανάπτυξη της OGC. Ο λόγος είναι ότι για την κατασκευή του ASIC θα απαιτηθούν εκτεταμένες δοκιμές πάνω στο FPGA και, το κυριότερο, περίπου 2 εκ. δολάρια, δηλαδή λεφτά που κανείς δεν βρίσκει τόσο εύκολα. O Miller όμως είναι αισιόδοξος γιατί το πρώτο βήμα έχει γίνει ήδη. Ο στόχος είναι τώρα να πωληθούν αρκετές κάρτες OGD σε developers και εργαστήρια και να βρεθούν επενδυτές που θα χρηματοδοτήσουν την ανάπτυξη του ASIC και της κάρτας OGC. Μέχρι τότε όμως όλη η ομάδα ανάπτυξης είναι “επί ξύλου κρεμάμενη”, γι’ αυτό κανείς από τα μέλη της δεν έχει αφήσει την κανονική του δουλειά.

Επίλογος

Ανεξάρτητα του πόσο χρήσιμο θεωρείτε ένα project δημιουργίας “ανοικτών” καρτών γραφικών (στο κάτω-κάτω μπορεί να νιώθετε άνετα με την nVidia σας), θα πρέπει να παραδεχθείτε ό,τι το OGP είναι ένα μεγάλο και αξιέπαινο εγχείρημα. Και γίνεται ακόμα πιο μεγάλο, αν σκεφτείτε πόσο δύσκολο είναι να αναπτύσσεις κάτι (και μάλιστα να σχεδιάζεις hardware) στον ελεύθερο χρόνο σου, μια και όλα τα μέλη της ομάδας ανάπτυξης δουλεύουν παράλληλα στις κανονικές δουλειές τους.

Από αυτή τη σκοπιά, η δημιουργία της πρωτότυπης κάρτας OGD ήταν ένας μικρός άθλος και ουσιαστικά τώρα το project καλείται να δείξει την αξία του και να πείσει επενδυτές να το χρηματοδοτήσουν για να αναπτύξει το ASIC και την πρώτη πραγματική κάρτα γραφικών OGC. Η επιτυχία του εγχειρήματος δεν είναι σε καμία περίπτωση σίγουρη, αλλά οι 500 και πλέον εθελοντές που συμμετέχουν στην λίστα email του project αφήνουν υποσχέσεις. Ανάμεσα σε αυτούς βρίσκονται γνωστοί προγραμματιστές του πυρήνα Linux, ειδικοί στα γραφικά 3D, καθηγητές Πληροφορικής, σχεδιαστές hardware κά. Η συμμετοχή τέτοιων ανθρώπων είναι καλός οιωνός για το project που αν τα καταφέρει πιθανώς να μας δώσει ένα τρανταχτό παράδειγμα ότι το “ανοικτό μοντέλο” ανάπτυξης που επαγγέλλεται ο ανοικτός κώδικας μπορεί να είναι ωφέλιμο για όλους. Και που ξέρετε μπορεί μια μέρα να βάλετε και σεις στο PC σας μια OGC…

Αυτό το άρθρο δημοσιεύθηκε τον Μάρτιο του 2007 στο περιοδικό “Computer Για Όλους”.