เมื่อไม่กี่วันก่อนมีข่าวออกมาว่า คริสแลทเนอร์ ผู้ก่อตั้งและหัวหน้าสถาปนิกของ LLVM และ ทิมเดวิส, อดีตหัวหน้าโครงการ AI ที่ Google เปิดตัว "Mojo" ภาษาโปรแกรมใหม่ ขึ้นอยู่กับ Python ซึ่งแก้ไขการใช้งาน Python และปัญหาด้านประสิทธิภาพ
ว่ากันว่าโมโจ นี้ รวมความง่ายในการใช้งานสำหรับ R&D และการสร้างต้นแบบอย่างรวดเร็วโดยมีความเพียงพอสำหรับผลิตภัณฑ์ขั้นสุดท้ายที่มีประสิทธิภาพสูง แบบแรกทำได้โดยการใช้ไวยากรณ์ที่คุ้นเคยของภาษา Python และแบบหลังเกิดจากความสามารถในการคอมไพล์เป็นรหัสเครื่อง กลไกสำหรับการจัดการหน่วยความจำที่ปลอดภัย และการใช้เครื่องมือสำหรับการเร่งความเร็วของฮาร์ดแวร์ในการคำนวณ .
เกี่ยวกับ โมโจ
ภาษาโปรแกรมใหม่นี้ เน้นการใช้งานเพื่อพัฒนาแมชชีนเลิร์นนิงแต่ใช่e นำเสนอเป็นภาษาวัตถุประสงค์ทั่วไป ซึ่งขยายขีดความสามารถของภาษาไพธอนด้วยการเขียนโปรแกรมระบบและเหมาะสำหรับงานที่หลากหลาย
ตัวอย่างเช่น ภาษาใช้ได้กับพื้นที่ต่างๆ เช่น การประมวลผลประสิทธิภาพสูง การประมวลผลข้อมูล และการแปลงข้อมูล คุณสมบัติที่น่าสนใจของ Mojo คือความสามารถในการระบุสัญลักษณ์อีโมจิ “🔥” เป็นส่วนขยายสำหรับไฟล์โค้ด
โครงการได้รับการออกแบบให้เกี่ยวข้องกับทรัพยากรฮาร์ดแวร์ ของระบบที่มีอยู่ในระบบในการคำนวณ ตัวอย่างเช่น สามารถใช้ GPU, ตัวเร่งความเร็วการเรียนรู้ของเครื่องเฉพาะ และคำสั่งการประมวลผลแบบเวกเตอร์ (SIMD) เพื่อเรียกใช้แอปพลิเคชัน Mojo และประมวลผลแบบขนานได้
เหตุผลสำหรับการพัฒนาชุดย่อยแยกต่างหากของภาษา Python แทนที่จะเข้าร่วมการเพิ่มประสิทธิภาพ CPython ที่มีอยู่นั้นถูกอ้างถึงเป็น:
วิธีการสร้าง การรวมความสามารถในการตั้งโปรแกรมของระบบ และการใช้สถาปัตยกรรมภายในที่แตกต่างกันโดยพื้นฐาน ซึ่งช่วยให้สามารถเรียกใช้โค้ดบน GPU และตัวเร่งฮาร์ดแวร์ต่างๆ ในขณะเดียวกันผู้พัฒนา Mojo ตั้งใจที่จะสนับสนุน CPython ให้มากที่สุด
Mojo สามารถใช้ได้ทั้งในโหมดการตีความ JIT และสำหรับการคอมไพล์เป็นไฟล์เรียกทำงาน (ทอท.ล่วงหน้า). คอมไพเลอร์มีเทคโนโลยีสมัยใหม่ในตัวสำหรับการเพิ่มประสิทธิภาพด้วยตนเอง การแคช และการคอมไพล์แบบกระจาย
รหัส ซอร์สโค้ดในภาษา Mojo จะถูกแปลงเป็นโค้ดกลางระดับต่ำ MLIR (การเป็นตัวแทนระดับกลางหลายระดับ) พัฒนาโดยโครงการ LLVM และมีฟังก์ชันเพิ่มเติมเพื่อเพิ่มประสิทธิภาพการประมวลผลกราฟการไหลของข้อมูล
การใช้กลไกฮาร์ดแวร์เพิ่มเติมเพื่อเพิ่มความเร็วในการคำนวณ ช่วยให้คุณได้รับประสิทธิภาพที่เหนือกว่าแอปพลิเคชัน C/C++ ด้วยการประมวลผลแบบเข้มข้น
Chris lattner รับผิดชอบในการสร้างโครงการมากมายที่เราทุกคนพึ่งพาในปัจจุบัน แม้ว่าเราอาจไม่เคยได้ยินเกี่ยวกับทุกสิ่งที่เขาสร้างด้วยซ้ำ ในฐานะส่วนหนึ่งของวิทยานิพนธ์ระดับปริญญาเอกของเขา เขาเริ่มพัฒนา LLVM ซึ่งเปลี่ยนวิธีการสร้างคอมไพเลอร์โดยพื้นฐาน และปัจจุบันเป็นรูปแบบพื้นฐานของระบบนิเวศทางภาษาศาสตร์ที่ใช้กันอย่างแพร่หลายมากที่สุดในโลกหลายแห่ง
จากนั้นเขาจึงเปิดตัว Clang ซึ่งเป็นคอมไพเลอร์ C และ C++ ที่อยู่ด้านบนของ LLVM และใช้งานโดยนักพัฒนาซอฟต์แวร์ชั้นนำของโลกส่วนใหญ่
เมื่อประเมินประสิทธิภาพในด้านการแก้ไขปัญหาการเรียนรู้ของเครื่อง สแต็ก AI ของ Modular Inference Engine ที่เขียนด้วยภาษา Mojo เมื่อเทียบกับโซลูชันที่ใช้ไลบรารี TensorFlow พบว่าเร็วกว่า 3 เท่าบนระบบที่มีโปรเซสเซอร์ Intel
อย่างไรก็ตาม Chris เห็นว่า C และ C++ ไม่ได้ใช้ประโยชน์จากพลังของ LLVM อย่างเต็มที่ ดังนั้นในขณะที่ทำงานที่ Apple เขาจึงออกแบบภาษาใหม่ที่เรียกว่า "Swift" ซึ่งเขาอธิบายว่าเป็น "syntax sugar สำหรับ LLVM"
เป็นมูลค่าการกล่าวขวัญว่า ภาษารองรับการพิมพ์แบบคงที่และคุณสมบัติหน่วยความจำระดับต่ำที่ปลอดภัย ซึ่งชวนให้นึกถึงคุณสมบัติของ Rust เช่น การติดตามอายุอ้างอิงและการยืมผันแปร (ตัวตรวจสอบสินเชื่อ)
นอกเหนือจากวิธีการใช้งานอย่างปลอดภัยด้วยพอยน์เตอร์แล้ว ภาษา ยังมีคุณสมบัติสำหรับการทำงานระดับต่ำ ตัวอย่างเช่น สามารถเข้าถึงหน่วยความจำได้โดยตรงในโหมดไม่ปลอดภัยโดยใช้ประเภทตัวชี้ เรียกใช้คำสั่ง SIMD แต่ละตัว หรือเข้าถึงส่วนขยายของฮาร์ดแวร์ เช่น TensorCores และ AMX
ปัจจุบัน ภาษาอยู่ระหว่างการพัฒนาอย่างเข้มข้น และมีเพียงส่วนต่อประสานเท่านั้นที่มีให้ ออนไลน์เพื่อลอง สัญญาในอนาคตคือการเปิดตัวบิลด์แยกต่างหากเพื่อทำงานบนระบบโลคัลในภายหลัง หลังจากได้รับคำติชมเกี่ยวกับการทำงานของสภาพแวดล้อมเว็บแบบโต้ตอบ
โค้ดโอเพ่นซอร์สของคอมไพเลอร์ JIT และการพัฒนาที่เกี่ยวข้องกับโครงการอื่นๆ มีการวางแผนหลังจากการออกแบบสถาปัตยกรรมภายในเสร็จสมบูรณ์แล้ว (รูปแบบการพัฒนาสำหรับต้นแบบการทำงานแบบ Closed-door คล้ายกับช่วงเริ่มต้นของการพัฒนาของ LLVM, Clang และ Swift)
เนื่องจากไวยากรณ์ของ Mojo ใช้ Python และระบบประเภทใกล้เคียงกับ C/C++ จึงมีแผนในอนาคตที่จะพัฒนาชุดเครื่องมือเพื่อให้ง่ายต่อการแปลโปรเจ็กต์ที่มีอยู่ที่เขียนด้วย C/C++ และ Python เป็น Mojo เช่นกัน ในการพัฒนาโครงการแบบผสมผสานที่รวมรหัส Python และ Mojo
สุดท้ายนี้ หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม สามารถปรึกษารายละเอียดได้ ในลิงค์ต่อไปนี้.
น่าสนใจ แครนนี้…. (ไม่มีสำเนียง)