Μία φινλανδική startup με την ονομασία Flow Computing, υπόσχεται να κάνει εντυπωσιακά πράγματα. Μέσω της διαδικασίας Parallel Processing Unit (PPU), η startup φιλοδοξεί να αυξήσει την απόδοση των επεξεργαστών έως και 100 φορές. Σε αντίθεση με την Tachyum, η Flow Computing στηρίζεται σε έρευνα άνω των 20 ετών, ενώ οι PPUs της δεν έρχονται να αντικαταστήσουν, αλλά για να συμπληρώσουν τους υπάρχοντες πυρήνες επεξεργασίας. Οι πελάτες μπορούν να λάβουν άδειες χρήσης για τις PPUs. Μήπως, λοιπόν, βρισκόμαστε στα πρόθυρα μίας επανάστασης;
Ας ρίξουμε μια πιο προσεκτική ματιά στις υποσχέσεις της Flow Computing, οι οποίες ακούγονται αρκετά πειστικές.
Η PPU στοχεύει σε δραματική αύξηση της απόδοσης, αξιοποιώντας μεγάλο αριθμό threads. Με αυτόν τον τρόπο, οι καθυστερήσεις στην πρόσβαση στη μνήμη εξαλείφονται, επιτρέποντας στην PPU να λειτουργεί συνεχώς. Για την επίτευξη του στόχου αυτού, η PPU βασίζεται σε εξαιρετικά ελαφριά threads, τα οποία η Flow Computing ονομάζει Fibres. Σε αντίθεση με τα τυπικά threads, η εναλλαγή μεταξύ των Fibres δεν απαιτεί χρονοβόρο context switching. Κατά τη διάρκεια του context switching, το περιεχόμενο των μητρώων του επεξεργαστή αποθηκεύεται, ώστε το thread που εκτοπίζεται να μπορεί να συνεχίσει ομαλά αργότερα.
Για όσους γνωρίζουν την αρχιτεκτονική Cuda της Nvidia, το concept ίσως φαντάζει οικείο: Κάθε Shader Module μπορεί να διαχειρίζεται ένα σύνολο thread blocks, μειώνοντας έτσι τις καθυστερήσεις που οφείλονται σε υπολογισμούς και προσβάσεις στη μνήμη. Η PPU λειτουργεί χωρίς caches, ενώ διαθέτει ένα μικρό Scratchpad για την αποθήκευση συχνά χρησιμοποιούμενων δεδομένων.
Επιπλέον, η PPU ενσωματώνει στοιχεία dataflow αρχιτεκτονικής – εξ ου και η ονομασία της startup. Τα αποτελέσματα μίας μονάδας υπολογισμού μπορούν να αποστέλλονται απευθείας σε μία άλλη, χωρίς να χρειάζεται η μεταφορά τους μέσω των μητρώων του επεξεργαστή. Αυτή η δυνατότητα αποτελεί βασικό πλεονέκτημα και η Tachyum την έχει υιοθετήσει επίσης.
Ένα ενδιαφέρον concept threads
Για την αρχιτεκτονική της, η Flow Computing υιοθετεί ένα δικό της μοντέλο threads, ονομαζόμενο Thick Control Flow (TCF). Η Flow Computing επισημαίνει ότι αυτή η αρχιτεκτονική της είναι κατοχυρωμένη με δίπλωμα ευρεσιτεχνίας. Η βασική ιδέα είναι οι εφαρμογές να αποτελούνται από ένα κύριο μονοπάτι ελέγχου, το οποίο περιστασιακά διακλαδώνεται σε παράλληλους κλάδους. Η προσέγγιση μοιάζει με αυτήν των Cuda ή OpenMP.
Ωστόσο, η υλοποίηση διαφοροποιείται σημαντικά, όπως περιγράφεται σε μία δημοσίευση του 2022: Οι PPUs δεν τροφοδοτούνται με εντολές και δεδομένα από μόνες τους, αλλά λαμβάνουν τα απαραίτητα στοιχεία από ένα Front-End, το οποίο μπορεί να είναι οποιοσδήποτε πυρήνας επεξεργασίας. Σε αυτό το Front-End εκτελούνται και τα διαδοχικά τμήματα του κώδικα.
Όταν φτάσει σε μια παράλληλη περιοχή, αναθέτει την εκτέλεση της στις PPU. Οι PPU και το Front-End συνδέονται μέσω ενός δισδιάστατου πλέγματος πολλαπλών διαδρομών, στο οποίο υπάρχουν πολλαπλοί διακόπτες σε κάθε κόμβο. Αυτό αποσκοπεί στην αποφυγή συμφόρησης.
Ωστόσο, ο σχεδιασμός της PPU είναι σαφώς παλαιότερος από ό,τι υποδηλώνουν οι ισχυρισμοί της εταιρείας.
Η ιδέα και ο σχεδιασμός της PPU
Η ιδέα και ο σχεδιασμός της PPU αναπτύχθηκαν στο Ερευνητικό Κέντρο Τεχνολογίας Φινλανδίας VTT. Εκεί, ο Martti Forsell, νυν Chief Technology Officer της Flow Computing, εργαζόταν σε συναφή concepts από το 1997 τουλάχιστον. Το 2011, εισήγαγε τον όρο TCF. Αυτό που η startup ονομάζει σήμερα PPU εμφανίζεται την ίδια χρονιά: Ως αρχιτεκτονική Replica στο VTT, η ιστοσελίδα του έργου αναφέρει παρόμοια δεδομένα. Η χρονική περίοδος του έργου ήταν από το 2011 έως το 2013.
Συμμετοχή στην Replica
Ο Chief Designer της Flow Computing, Jussi Roivainen, είχε επίσης συμμετάσχει στην Replica. Αυτό αποδεικνύεται από παλιές δημοσιεύσεις, οι οποίες αποκαλύπτουν ότι ένα FPGA prototype είχε ήδη αναπτυχθεί εκείνη την εποχή. Εκτός από το VTT, το concept TCF δεν φαίνεται να έχει υιοθετηθεί αλλού, με δημοσιεύσεις να προέρχονται αποκλειστικά από τον Forsell και διάφορους συνεργάτες.
Η Υψηλή Παράλληλη Επεξεργασία (PPU) σπάνια αποδίδει
Φαίνεται ότι οι ιδρυτές της Flow Computing έφεραν στο προσκήνιο μια παλιά ιδέα. Έχοντας δημοσιεύσει πολλά πράγματα για αυτό το θέμα, η αξιολόγηση τους είναι εφικτή, σε αντίθεση με την Tachyum που διατηρεί μια ανεξήγητη μυστικοπάθεια. Αυτό όμως οδηγεί στο συμπέρασμα ότι η υποσχόμενη επανάσταση δεν θα έρθει. Τα τελευταία χρόνια, έχουν υπάρξει πολλές ιδέες για highly parallel processors με σχετικά απλούς πυρήνες.
Εκτός από GPUs και NPUs, καμία δεν έχει επικρατήσει, και αυτό για ένα απλό λόγο: Οι καθημερινές εφαρμογές ωφελούνται ελάχιστα από την άκρως υψηλή παράλληλη επεξεργασία. Η Flow Computing συνιστά 64 PPUs για desktop processors.
Για να λειτουργούν τόσο αποτελεσματικά ώστε να επιτυγχάνεται η υποσχόμενη αύξηση της απόδοσης, θα έπρεπε να είναι ενεργοί εκατοντάδες fibres ταυτόχρονα. Αυτό είναι απλώς μη ρεαλιστικό στην καθημερινή χρήση. Οι μεγάλοι πολλαπλασιασμοί πινάκων, το όνειρο κάθε highly parallel system και, κατά συνέπεια, το αγαπημένο παράδειγμα της Flow Computing, δεν είναι τόσο παντοδύναμο όσο θα ήθελε η startup.
Το σημαντικότερο και πολυδιαφημιζόμενο στοιχείο των τσιπ των PPUs θα παρέμενε ανεκμετάλλευτο για το μεγαλύτερο μέρος του χρόνου. Η Flow Computing διαφημίζει ότι μπορούν να επιταχύνουν την τεχνητή νοημοσύνη και τα codecs βίντεο. Ωστόσο, όλοι οι developers processors έχουν ήδη μια καλύτερη λύση: Το Neural Processing Units (NPUs) και ειδικά IP-Cores για τα codecs.
Η υιοθέτηση των NPU σε σχεδόν κάθε νέο processor οφείλεται στην αναμενόμενη αύξηση της χρήσης τεχνητής νοημοσύνης, στους ειδικούς τύπους δεδομένων και στην σχετικά μικρή επιφάνεια που καταλαμβάνουν. Επιπλέον, βασίζονται και σε dataflow architectures – η αναγνώριση ότι σε ορισμένες περιπτώσεις είναι λογικό τα δεδομένα να μην ανταλλάσσονται μέσω registers ή μνήμης, δεν έχει γίνει μόνο στη Φινλανδία.
Το σημαντικό είναι ότι το hardware overhead παραμένει διαχειρίσιμο – κάτι που ισχύει για τα NPUs. Οι κωδικοποιητές βίντεο μπορούν επίσης να ενσωματωθούν στο τσιπ με σαφώς μικρότερη κατανάλωση χώρου σε σύγκριση με ένα ειδικό IP-Core.
Η Flow Computing επαναλαμβάνει αποτυχημένες ιδέες
Το μοναδικό μεγάλο πλεονέκτημα της PPU της Flow Computing είναι η στενή σύνδεση της με την CPU, η οποία εξαλείφει το υψηλό κόστος εκκίνησης ενός υπολογισμού σε μια GPU. Ωστόσο, επειδή οι PPUs δεν αντικαθιστούν μια GPU, οι developers processors, εκτός από τους developers server CPUs, θα ενσωμάτωναν redundancies.
Εκτός από αυτό, η startup επαναφέρει ιδέες που έχουν αποτύχει πολλαπλά τα τελευταία 15 χρόνια. Η Intel δεν κατάφερε ποτέ να υλοποιήσει το Larrabee στην αρχική του μορφή, η οποία έμοιαζε αρκετά με το PPU. Οι “χαζές”, αλλά ισχυρές, computing units του Cell processor της IBM μισήθηκαν από τους developers. Και η Rex Computing δεν ήταν η μόνη που απέτυχε με υψηλούς αριθμούς πυρήνων.
Για να λειτουργήσει ομαλά το έργο της Flow Computing χωρίς μεγάλη προσπάθεια για αρχιτεκτονικές προσαρμογές, θα χρειαζόταν ένας compiler με καλή λειτουργική, αυτόματο parallelization – ένας από τους λόγους για την αποτυχία του Itanium της Intel. Επιπλέον, οι υπάρχοντες πυρήνες processors θα πρέπει να τροποποιηθούν για να μπορούν να συνδεθούν με τις PPUs.
Είναι απίθανο ένας developer processors να κάνει αυτό το βήμα, όταν υπάρχουν άλλες εναλλακτικές λύσεις που λειτουργούν καλά ή ακόμα και καλύτερα. Αυτή την εντύπωση ενισχύει το γεγονός ότι οι ιδέες πίσω από το design της PPU, παρά τις κάποιες δημοσιεύσεις, δεν υιοθετήθηκαν από άλλους ερευνητές ή εταιρείες για περισσότερα από δέκα χρόνια.
Συμπέρασμα
Η PPU της Flow Computing βασίζεται σε παλιές ιδέες που έχουν αποτύχει στο παρελθόν. Αν και η στενή σύνδεσή της με την CPU αποτελεί πλεονέκτημα, η έλλειψη πραγματικής καινοτομίας και η ύπαρξη ανώτερων εναλλακτικών λύσεων καθιστούν αμφίβολη την επιτυχία της. Ακόμα και αν η Flow Computing ξεπεράσει τις τεχνικές προκλήσεις, είναι απίθανο να βρει αγορά για το προϊόν της.