Mojo, ngôn ngữ lập trình mới được tạo bởi Chris Lattner, người tạo ra LLVM

mojo lang

Mojo là một ngôn ngữ lập trình mới hứa hẹn hiệu suất tốt hơn để phát triển máy học

Một vài ngày trước, tin tức đã phá vỡ rằng Chris Lattner, người sáng lập và kiến ​​trúc sư trưởng của LLVM và Tim Davis, cựu giám đốc dự án AI tại Google phát hành "Mojo", một ngôn ngữ lập trình mới, dựa trên Python, khắc phục các sự cố về hiệu suất và triển khai Python.

Người ta nói rằng Mojo kết hợp tính dễ sử dụng cho R&D và tạo mẫu nhanh với đầy đủ cho các sản phẩm cuối hiệu suất cao. Cái trước đạt được thông qua việc sử dụng cú pháp quen thuộc của ngôn ngữ Python và cái sau là do khả năng biên dịch thành mã máy, cơ chế quản lý bộ nhớ an toàn và sử dụng các công cụ để tăng tốc tính toán phần cứng. .

Giới thiệu về Mojo

Ngôn ngữ lập trình mới này tập trung vào việc sử dụng để phát triển máy học, nhưng cóe được trình bày dưới dạng ngôn ngữ có mục đích chung giúp mở rộng khả năng của ngôn ngữ Python với lập trình hệ thống và phù hợp với nhiều tác vụ.

Ví dụ: ngôn ngữ này có thể áp dụng cho các lĩnh vực như tính toán hiệu năng cao, xử lý dữ liệu và chuyển đổi dữ liệu. Một tính năng thú vị của Mojo là khả năng chỉ định biểu tượng cảm xúc “🔥” làm phần mở rộng cho tệp mã.

Dự án được thiết kế để liên quan đến tài nguyên phần cứng của các hệ thống có sẵn trong hệ thống trong các tính toán. Ví dụ: GPU, bộ tăng tốc máy học chuyên dụng và hướng dẫn xử lý véc tơ (SIMD) có thể được sử dụng để chạy ứng dụng Mojo và tính toán song song.

Lý do để phát triển một tập hợp con riêng biệt của ngôn ngữ Python, thay vì tham gia công việc tối ưu hóa CPython hiện có, được trích dẫn là:

Phương pháp xây dựng, tích hợp các khả năng lập trình của hệ thống và sử dụng kiến ​​trúc nội bộ khác về cơ bản cho phép mã được thực thi trên GPU và các bộ tăng tốc phần cứng khác nhau. Đồng thời, các nhà phát triển Mojo dự định sẽ hỗ trợ CPython càng nhiều càng tốt.

Mojo có thể được sử dụng cả trong chế độ giải thích JIT và để biên dịch thành các tệp thực thi (AOT, trước thời hạn). Trình biên dịch được tích hợp sẵn các công nghệ hiện đại để tự tối ưu hóa, lưu vào bộ nhớ đệm và biên dịch phân tán.

Mật mã mã nguồn bằng ngôn ngữ Mojo được chuyển đổi thành mã trung cấp cấp thấp MLIR (Đại diện trung gian đa cấp), được phát triển bởi dự án LLVM và cung cấp các chức năng bổ sung để tối ưu hóa việc xử lý biểu đồ luồng dữ liệu.

Việc sử dụng các cơ chế phần cứng bổ sung để tăng tốc độ tính toán cho phép bạn đạt được hiệu suất, với tính toán chuyên sâu, vượt trội so với các ứng dụng C/C++.

Chris lattner chịu trách nhiệm tạo ra nhiều dự án mà tất cả chúng ta dựa vào ngày nay, mặc dù chúng ta có thể chưa từng nghe về mọi thứ mà anh ấy đã xây dựng! Là một phần của luận án Tiến sĩ, ông bắt đầu phát triển LLVM, thứ đã thay đổi cơ bản cách xây dựng trình biên dịch và ngày nay tạo thành nền tảng của nhiều hệ sinh thái ngôn ngữ được sử dụng rộng rãi nhất trên thế giới.

Sau đó, ông tiếp tục phát hành Clang, trình biên dịch C và C++ nằm trên LLVM và được hầu hết các nhà phát triển phần mềm hàng đầu thế giới sử dụng (bao gồm cả việc cung cấp xương sống cho mã quan trọng về hiệu suất của Google). 

Khi đánh giá hiệu suất trong lĩnh vực xử lý sự cố máy học, ngăn xếp AI của Modular Inference Engine được viết bằng ngôn ngữ Mojo, so với giải pháp dựa trên thư viện TensorFlow, được phát hiện là nhanh hơn 3 lần trên hệ thống có bộ xử lý intel

Tuy nhiên, Chris thấy rằng C và C++ không tận dụng hết sức mạnh của LLVM, vì vậy khi làm việc tại Apple, anh ấy đã thiết kế một ngôn ngữ mới, gọi là "Swift", mà anh ấy mô tả là "đường cú pháp cho LLVM". 

Điều đáng nói là ngôn ngữ hỗ trợ gõ tĩnh và các tính năng bộ nhớ cấp thấp an toàn gợi nhớ đến các tính năng của Rust như theo dõi tuổi thọ tham chiếu và mượn biến (kiểm tra mượn).

Ngoài các phương tiện để hoạt động an toàn với con trỏ, ngôn ngữ cũng cung cấp các tính năng cho công việc cấp thấp, ví dụ: có thể truy cập trực tiếp bộ nhớ ở chế độ không an toàn bằng cách sử dụng loại con trỏ, gọi các hướng dẫn SIMD riêng lẻ hoặc truy cập các phần mở rộng phần cứng như TensorCores và AMX.

Hiện nay, ngôn ngữ đang được phát triển mạnh mẽ và chỉ có giao diện được cung cấp trực tuyến để thử. Những hứa hẹn trong tương lai là phát hành các bản dựng riêng biệt để chạy trên các hệ thống cục bộ sau này, sau khi nhận được phản hồi về hoạt động của môi trường web tương tác.

Mã nguồn mở của trình biên dịch, JIT và sự phát triển liên quan đến dự án khác được lên kế hoạch sau khi thiết kế kiến ​​trúc bên trong hoàn tất (mô hình phát triển cho nguyên mẫu hoạt động kín giống với giai đoạn phát triển ban đầu của LLVM, Clang và Swift).

Vì cú pháp của Mojo dựa trên Python và hệ thống kiểu gần với C/C++, nên trong tương lai có kế hoạch phát triển một bộ công cụ để giúp dịch các dự án hiện tại được viết bằng C/C++ và Python sang Mojo dễ dàng hơn. để phát triển các dự án lai kết hợp mã Python và Mojo.

Cuối cùng, nếu bạn quan tâm có thể biết thêm về nó, bạn có thể tham khảo chi tiết Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Jaime dijo

    thú vị cairn này…. (không dấu)