Ο πυρήνας Linux είναι η ραχοκοκαλιά των λειτουργικών συστημάτων (OS) Linux και είναι η θεμελιώδης διεπαφή μεταξύ του υλικού ενός υπολογιστή και των διαδικασιών του.
Πρόσφατα τα νέα το έσπασαν Η Google έκανε μια πρόταση μέσω των λιστών αλληλογραφίας των προγραμματιστών πυρήνα Linux, για μεταφορά δεδομένων δικτύου μεταξύ συσκευών.
Η πρόταση αυτή καθεαυτή είναι επί υλοποίηση του μηχανισμού Μνήμη συσκευής TCP (devmem TCP), το οποίο επιτρέπει τη μεταφορά δεδομένων απευθείας μέσω του δικτύου από τη μνήμη ορισμένων συσκευών στη μνήμη άλλων συσκευών, χωρίς ενδιάμεση αντιγραφή αυτών των δεδομένων σε buffer που βρίσκονται στη μνήμη του κεντρικού συστήματος.
Σχετικά με την πρόταση της Google αναφέρεται ότι Η μνήμη TCP της συσκευής αναμένεται να αυξήσει σημαντικά την απόδοση αλληλεπίδρασης σε συμπλέγματα και κατανεμημένων συστημάτων μηχανικής μάθησης χρησιμοποιώντας πρόσθετους πίνακες επιταχυντών.
Επιπλέον, αναφέρεται ότι Η χρήση επιταχυντών μηχανικής μάθησης οδηγεί σε σημαντική αύξηση του όγκου των πληροφοριών που μεταφέρονται στη διαδικασία εκπαίδευσης μοντέλων από την αποθήκευση στη μνήμη GPU/TPU. Σε ορισμένες περιπτώσεις, εκπαίδευση μοντέλων μηχανικής μάθησης μπορεί να καταναλώσει μόνο το 50% των διαθέσιμων υπολογιστικών πόρων TPU, και ένας τρόπος για την εξάλειψη του χρόνου διακοπής λειτουργίας και την πληρέστερη χρήση των πόρων GPU/TPU είναι η αύξηση της απόδοσης και της αποτελεσματικότητας μεταφοράς δεδομένων.
Επί του παρόντος, η μεταφορά δεδομένων μεταξύ συσκευών σε διαφορετικούς κεντρικούς υπολογιστές περιορίζεται στην αντιγραφή δεδομένων της μνήμης της συσκευής στη μνήμη φιλοξενίας, μεταφορά πληροφορίες σε άλλο κεντρικό υπολογιστή μέσω του δικτύου και αντιγράψτε από τη μνήμη του κεντρικού υπολογιστή προορισμός στη μνήμη άλλης συσκευής. Ένα τέτοιο σχήμα δεν είναι βέλτιστο και, μεταφέροντας μεγάλες ποσότητες πληροφοριών, δημιουργεί ένα πρόσθετο φορτίο στο εύρος ζώνης της μνήμης και στο δίαυλο PCIe.
Σήμερα, οι περισσότερες μεταφορές δεδομένων από συσκευή σε συσκευή στο δίκτυο είναι υλοποιείται με τις ακόλουθες λειτουργίες χαμηλού επιπέδου: αντιγραφή από συσκευή σε κεντρικό υπολογιστή, Μεταφορά δικτύου κεντρικού υπολογιστή σε κεντρικό υπολογιστή και αντιγραφή κεντρικού υπολογιστή σε συσκευή.
Η υλοποίηση δεν είναι βέλτιστη, ειδικά για μαζικές μεταφορές δεδομένων, και μπορεί ασκούν σημαντική πίεση στους πόρους του συστήματος, όπως το εύρος ζώνης της μνήμης κεντρικού υπολογιστή,Εύρος ζώνης PCIe, κ.λπ. Ένας σημαντικός λόγος πίσω από την τρέχουσα κατάσταση είναι η έλλειψη σημασιολογίας του πυρήνα για την έκφραση των μεταφορών από συσκευή σε δίκτυο.
Ο μηχανισμός TCP μνήμης συσκευής σάς επιτρέπει να εξαιρέσετε τη μνήμη κεντρικού υπολογιστή από αυτήν την αλυσίδα και να μεταφέρετε αμέσως δεδομένα μέσω του δικτύου από τη μνήμη της συσκευής και να τοποθετήσετε τα ληφθέντα δεδομένα σε πακέτα δικτύου στη μνήμη της συσκευής.
Για να λειτουργήσει το Device Memory TCP, απαιτείται κάρτα δικτύου που μπορεί να επεξεργαστεί ξεχωριστά κεφαλίδες πακέτων και δεδομένα ενθυλακωμένα σε πακέτα (ωφέλιμο φορτίο) σε διαφορετικά buffer. Τα δεδομένα φορτώνονται από τη μνήμη της συσκευής στην προσωρινή μνήμη ωφέλιμου φορτίου NIC χρησιμοποιώντας τον μηχανισμό dmabuf και οι κεφαλίδες μεταβιβάζονται από την κύρια μνήμη και συμπληρώνονται από τη στοίβα TCP/IP του συστήματος. Για τη βελτίωση της αποτελεσματικότητας, οι δυνατότητες των καρτών δικτύου μπορούν να χρησιμοποιηθούν επιπλέον για χωριστή επεξεργασία ροών σε διαφορετικές ουρές rx.
Η ανάγκη για μηχανισμό ανταλλαγής δεδομένων υψηλής απόδοσης μεταξύ συσκευών αυξάνεται λαμβάνοντας υπόψη τη χρήση κατανεμημένων συστημάτων για μηχανική εκμάθηση, όπου οι επιταχυντές βρίσκονται σε διαφορετικούς κεντρικούς υπολογιστές, καθώς και όταν μεταφέρονται δεδομένα για εκπαίδευση μοντέλων από εξωτερικούς SSD. δοκιμές απόδοσης κατασκευασμένο σε διαμόρφωση με 4 GPU και 4 κάρτες δικτύου έδειξε ότι η χρήση του Device Memory TCP του επιτρέπει να φτάσει σε επίπεδο 96,6% της ταχύτητας διαθέσιμη γραμμή κατά τη μεταφορά δεδομένων απευθείας μεταξύ της μνήμης της συσκευής.
Τέλος αξίζει να αναφέρουμε ότι η υλοποίηση βρίσκεται ακόμη στο στάδιο RFC, είναι δηλαδή για συζήτηση και αναθεώρηση από την κοινότητα, αλλά δεν έχει επισημοποιηθεί για υποβολή στον κύριο κλάδο του πυρήνα του Linux.
πηγή: https://lore.kernel.org/