Mojo, η νέα γλώσσα προγραμματισμού που δημιουργήθηκε από τον Chris Lattner, τον δημιουργό του LLVM

mojo lang

Η Mojo είναι μια νέα γλώσσα προγραμματισμού που υπόσχεται καλύτερες επιδόσεις για την ανάπτυξη μηχανικής μάθησης

Πριν λίγες μέρες κυκλοφόρησε η είδηση Κρις Λάτνερ, ιδρυτής και επικεφαλής αρχιτέκτονας της LLVM και Τιμ Ντέιβις, πρώην επικεφαλής έργων AI στην Google κυκλοφόρησε το "Mojo", μια νέα γλώσσα προγραμματισμού, βασίζεται στην Python, η οποία διορθώνει ζητήματα εφαρμογής και απόδοσης Python.

Αναφέρεται ότι ο Mojo ότι συνδυάζει την ευκολία χρήσης για Ε&Α και γρήγορη δημιουργία πρωτοτύπων με επάρκεια για τελικά προϊόντα υψηλής απόδοσης. Το πρώτο επιτυγχάνεται με τη χρήση της οικείας σύνταξης της γλώσσας Python και το δεύτερο οφείλεται στην ικανότητα μεταγλώττισης σε κώδικα μηχανής, μηχανισμούς για ασφαλή διαχείριση μνήμης και χρήση εργαλείων για επιτάχυνση υπολογισμών μέσω υλικού.

Σχετικά με το Mojo

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

Για παράδειγμα, η γλώσσα είναι εφαρμόσιμη σε τομείς όπως υπολογιστές υψηλής απόδοσης, επεξεργασία δεδομένων και μετασχηματισμός δεδομένων. Ένα ενδιαφέρον χαρακτηριστικό του Mojo είναι η δυνατότητα καθορισμού του συμβόλου emoji "🔥" ως επέκταση για αρχεία κώδικα.

Το έργο έχει σχεδιαστεί για να περιλαμβάνει πόρους υλικού των συστημάτων που είναι διαθέσιμα στο σύστημα στους υπολογισμούς. Για παράδειγμα, οι GPU, οι εξειδικευμένοι επιταχυντές μηχανικής μάθησης και οι διανυσματικές οδηγίες επεξεργασίας (SIMD) μπορούν να χρησιμοποιηθούν για την εκτέλεση εφαρμογών Mojo και τον παραλληλισμό υπολογισμών.

Ο λόγος για την ανάπτυξη ενός ξεχωριστού υποσυνόλου της γλώσσας Python, αντί για τη συμμετοχή σε υπάρχουσες εργασίες βελτιστοποίησης CPython, αναφέρεται ως:

Μια προσέγγιση κατασκευής, ενοποίηση των δυνατοτήτων προγραμματισμού του συστήματος και χρήση μιας ριζικά διαφορετικής εσωτερικής αρχιτεκτονικής που επιτρέπει την εκτέλεση κώδικα σε GPU και διάφορους επιταχυντές υλικού. Ταυτόχρονα, οι προγραμματιστές Mojo σκοπεύουν να παραμείνουν στην υποστήριξη CPython όσο το δυνατόν περισσότερο.

Το Mojo μπορεί να χρησιμοποιηθεί τόσο σε λειτουργία ερμηνείας JIT όσο και για μεταγλώττιση σε εκτελέσιμα αρχεία (ΑΟΤ, εκ των προτέρων). Ο μεταγλωττιστής έχει ενσωματωμένες σύγχρονες τεχνολογίες για αυτοβελτιστοποίηση, αποθήκευση στην κρυφή μνήμη και κατανεμημένη μεταγλώττιση.

Ο κώδικας Ο πηγαίος κώδικας στη γλώσσα Mojo μετατρέπεται σε ενδιάμεσο κώδικα χαμηλού επιπέδου MLIR (Multi-Level Intermediate Representation), που αναπτύχθηκε από το έργο LLVM και παρέχει πρόσθετες λειτουργίες για τη βελτιστοποίηση της επεξεργασίας των γραφημάτων ροής δεδομένων.

Η χρήση πρόσθετων μηχανισμών υλικού για την επιτάχυνση των υπολογισμών σάς επιτρέπει να επιτύχετε απόδοση που, με εντατικούς υπολογισμούς, ξεπερνά τις εφαρμογές C/C++.

Ο Chris Lattner είναι υπεύθυνος για τη δημιουργία πολλών από τα έργα στα οποία βασιζόμαστε όλοι σήμερα, παρόλο που μπορεί να μην έχουμε καν ακούσει για όλα όσα έχτισε! Ως μέρος της διδακτορικής του διατριβής, ξεκίνησε την ανάπτυξη του LLVM, το οποίο άλλαξε θεμελιωδώς τον τρόπο κατασκευής των μεταγλωττιστών και σήμερα αποτελεί τη βάση πολλών από τα πιο ευρέως χρησιμοποιούμενα γλωσσικά οικοσυστήματα στον κόσμο.

Στη συνέχεια, κυκλοφόρησε το Clang, έναν μεταγλωττιστή C και C++ που βρίσκεται στην κορυφή του LLVM και χρησιμοποιείται από τους περισσότερους κορυφαίους προγραμματιστές λογισμικού στον κόσμο (συμπεριλαμβανομένης της παροχής της ραχοκοκαλιάς για τον κρίσιμο κώδικα απόδοσης). της Google). 

Κατά την αξιολόγηση της απόδοσης στον τομέα της αντιμετώπισης προβλημάτων μηχανικής μάθησης, η στοίβα Modular Inference Engine AI γραμμένη στη γλώσσα Mojo, σε σύγκριση με μια λύση που βασίζεται στη βιβλιοθήκη TensorFlow, βρέθηκε ότι είναι 3 φορές ταχύτερη σε ένα σύστημα με επεξεργαστή intel

Ωστόσο, ο Chris είδε ότι η C και η C++ δεν εκμεταλλεύονταν πλήρως τη δύναμη του LLVM, οπότε ενώ εργαζόταν στην Apple σχεδίασε μια νέα γλώσσα, που ονομάζεται "Swift", την οποία περιγράφει ως "συντακτική ζάχαρη για το LLVM". 

Αξίζει να σημειωθεί ότι το Η γλώσσα υποστηρίζει στατική πληκτρολόγηση και λειτουργίες ασφαλούς μνήμης χαμηλού επιπέδου που θυμίζουν χαρακτηριστικά Rust όπως η παρακολούθηση ζωής αναφοράς και ο μεταβλητός δανεισμός (loan checker).

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

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

Ο ανοιχτός κώδικας του μεταγλωττιστή, του JIT και άλλων σχετικών με το έργο ανάπτυξης σχεδιάζεται μετά την ολοκλήρωση του σχεδιασμού της εσωτερικής αρχιτεκτονικής (το μοντέλο ανάπτυξης για ένα πρωτότυπο εργασίας κλειστής πόρτας μοιάζει με το πρώιμο στάδιο ανάπτυξης των LLVM, Clang και Swift).

Δεδομένου ότι η σύνταξη του Mojo βασίζεται στην Python και το σύστημα τύπων είναι κοντά στο C/C++, υπάρχουν σχέδια στο μέλλον να αναπτυχθεί ένα σύνολο εργαλείων που θα διευκολύνουν τη μετάφραση υπαρχόντων έργων γραμμένων σε C/C++ και Python σε Mojo, επίσης. για την ανάπτυξη υβριδικών έργων που συνδυάζουν κώδικα Python και Mojo.

Τέλος, εάν ενδιαφέρεστε να μάθετε περισσότερα σχετικά, μπορείτε να συμβουλευτείτε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   jaime dijo

    ενδιαφερον το τρελο αυτο…. (χωρίς τόνους)