Redian新闻
>
比Python快35000倍!LLVM&Swift之父宣布全新编程语言Mojo:编程被颠覆了

比Python快35000倍!LLVM&Swift之父宣布全新编程语言Mojo:编程被颠覆了

公众号新闻

编译 | 核子可乐、Tina
“Mojo 可能是近几十年来最大的编程语言进步。”

近日,由 LLVM 和 Swift 编程语言的联合创始人 Chris Lattner 创办的新公司 Modular AI 发布了一种名为 Mojo 的新编程语言。

Mojo 将大家喜爱的 Python 特性,同 C、C++ 和 CUDA 的系统编程功能结合了起来,并通过其所谓“极限加速”与其他 Python 速度增强方案区分了开来。凭借着硬件加速,它在运行 Mandelbrot 等数字算法时比原始 Python 快上 3.5 万倍!

更重要的是,作为 LLVM 的缔造者, Chris Lattner 良好的出身为 Mojo 奠定了成功的基础。数据科学家、fast.ai 的创始研究员 Jeremy Howard 评价 Mojo 为“Mojo 可能是近几十年来最大的编程语言进步。”

1 为什么会有 Mojo?

对于全球各地开发者来说,我们应该都熟悉 Chris Lattner 这个名字。

Chris Lattner 曾先后效力于苹果、谷歌和特斯拉等公司,参与创建了我们今天所依赖的许多项目:开发了 LLVM 编译器工具链、共同创建了 MLIR 编译器,并带头开发出 Swift 编程语言。

最初,作为他博士论文的一部分,他开始了 LLVM 的开发。LLVM 最终从根本上改变了编译器的创建方式,构成了当今世界上许多应用广泛的语言生态系统的基础。然后他继续推出 Clang,这是一个位于 LLVM 之上的 C 和 C++ 编译器。

Chris 发现 C 和 C++ 并没有真正充分利用 LLVM 的强大功能,因此在苹果工作期间,他设计了一种名为“Swift”的新语言,他将其描述为“LLVM 的语法糖”。Swift 已经成为世界上使用最广泛的编程语言之一,特别是作为当今为 iPhone、iPad、MacOS 和 Apple TV 创建 iOS 应用程序的主要方式。

不幸的是,苹果对 Swift 的控制意味着它还没有真正在苹果之外的世界大放异彩。Chris 在谷歌工作了一段时间,试图将 Swift 带出苹果的舒适区,希望它成为人工智能模型开发中 Python 的替代者,但遗憾的是他没有得到苹果或谷歌所需的支持,最终也没有成功。

话虽如此,Chris 在谷歌期间还开发了另一个取得巨大成功的项目:MLIR。MLIR 是现代多核计算和 AI 工作负载的 LLVM IR 的替代品。这对于充分利用 GPU、TPU 和越来越多地添加到服务器级 CPU 的矢量单元等硬件的强大功能至关重要。

2022 年 1 月,Chris Lattner 正式宣布创业,和 Tim Davis 共同建立了“Modular AI”,希望自下而上重建全球 ML 基础设施。Tim Davis 曾经执掌谷歌机器学习项目,负责管理谷歌的机器学习 API、编译器和运行时基础设施。

他们在构建自己的平台以此统一世界上的 ML/AI 基础设施时,却意识到,在整个堆栈中编程太复杂了。“这些系统严重碎片化,硬件种类繁多,每个都有定制的工具”。

“我们想要的是一个创新的、可扩展的编程模型,可以针对加速器和其他机器学习中普遍存在的异构系统。这意味着一种具有强大的编译时元编程的编程语言,整合自适应编译技术,在整个编译流程中进行缓存,以及其他现有语言不支持的东西。”

所以在这种情况下,这家初创公司一口气公布了两个相关项目:Mojo,一种建立在 Python 基础上的编程语言,号称拥有与 C 比肩的速度优势;还有可移植、高性能 Modular 推荐引擎,能够在生产中以更低成本运行 AI 模型(所谓推理,就是经过训练的模型在实际场景中的使用过程)。

该公司表示,“Mojo 将研究人员喜爱的 Python 特性,同 C、C++ 和 CUDA 的系统编程功能结合了起来。”

“Mojo 建立在下一代编译器技术之上。当您向程序中添加类型时,该技术能够显著提高性能,帮助您定义零成本抽象、受益于 Rust 级别的内存安全特性,并支持独特的自动调优和编译时元编程能力。”

“Mojo 从 Rust 和 Swift 中学到了很多东西,并更进了一步。”

2 Mojo:比 Python 快 35000 倍的编程语言

Mojo 是 Python 家族的一员,但有着远大的目标——想要与 Python 生态系统完全兼容,因此开发人员可以继续使用自己熟悉的工具。Mojo 旨在通过保留 Python 的动态特性,同时为系统编程添加新原语,逐渐成为 Python 的超集。

这些新的系统编程原语将允许 Mojo 开发人员构建当前需要 C、C++、Rust、CUDA 和其他加速器系统的高性能库。

在 MLIR 上,Mojo 代码可以访问各种 AI 调优的硬件功能,例如 TensorCores 和 AMX 扩展。因此,对于某些特定算法类型,它的速度要远远超过原始 Python——它在 AWS r7iz.metal-16xl 上运行 Mandelbrot 算法只需 0.03 秒,而 Python 3.10.9 则需要 1027 秒(约 17 分钟)。

Chris Lattner 在 Hacker News 上表示:“我们的目标不是让动态 Python 神奇地快速。虽然我们在动态代码方面要快得多(因为我们有编译器而不是解释器),但这并不是依靠‘足够智能’的编译器来消除动态性”。

他表示,Mojo 比 Python 快得多的原因是它让程序员可控制静态行为,并且可以在有意义的地方逐步采用它。这样做的关键回报是编译过程非常简单,不需要 JIT,还可以获得可预测和可控的性能。

Mojo 仍在开发当中,但目前已经开放了试用 Jupyter notebook。到全面完成之后,它有望成为 Python 的超集——一个带有系统编程工具包的 Python 生态系统。到那个时候,它应该能够运行一切 Python 程序。但目前,Mojo 还仅支持 Python 的核心功能,包括 async/await、错误处理和可变参数,距离全面兼容还有很长的路要走。

“感觉编程被颠覆了”  

在周四发布的公告中,Fast.ai 联合创始人、数据科学家 Jeremy Howard 表示,“Mojo 可能是近几十年来最大的编程语言进步。”

“‘镇’上出现了一种新的编程语言:Mojo!我对此感到非常兴奋。它像 Python,但没有 Python 的任何问题。你可以像 C 一样快速编写代码,并像 C 一样部署小型独立应用程序。”

“感觉编程被颠覆了。”在 Jeremy Howard 的记忆中,上次有这样的感觉,还是他首次上手 Visual Basic v1.0。

Jeremy Howard 是 Python 的重度使用者,Python 可以并且确实可以做任何事情,但它有一个缺点:性能,它比 C++ 等语言慢数千倍。利用 Python 进行开发需要避免用 Python 来实现性能关键部分,并采用 Python 包装器来覆盖 C、FORTRAN、Rust 等代码。

因此,凭借着生态系统的丰富性,Python 确实在 AI 模型开发领域占据优势,但又因为性能有限,Python 程序员往往最终会将代码指向运行速度更快的其他语言(例如 C/C++ 和 Rust)模块。这种“双语”现实导致机器学习应用程序的分析、调试、学习和部署变得愈发困难。Howard 解释道,Mojo 试图解决的就是 AI 内部这种割裂现实。

“Mojo 的一大亮点在于,开发人员可以随时选择更快的‘模式’,使用‘fn’替代‘def’创建自己的函数。在这种模式下,开发者必须准确声明每个变量的类型,这样 Mojo 就能创建出经过优化的机器码来实现所需函数。”

“此外,如果使用‘struct’来替代‘class’,属性就会被紧密打包到内存中,甚至可以直接在数据结构内使用、而无需到处寻找指针。这些特性让它获得了堪与 C 语言比肩的运行速度,也让 Python 程序员们在稍微学习一点新语法之后就能掌握这处性能宝藏。”

Mojo 的另一个好处,在于能将代码编译成独立且快速启动的二进制文件,使其轻松借助可用核心和加速硬件的优势完成部署。

作为一种编译型语言,Mojo 的部署过程与 C 基本相同。例如,一个包含从头编写的 matmul 版本的示例程序大约在 100k 左右。

“这彻底的颠覆了传统游戏规则。”

当然,目前的 Mojo 仍有一定缺失,比如包管理和构建系统——这也是 Python 社区长久以来一直努力解决的需求。另外,Mojo 语言尚未指定开源许可,但相信只是时间问题。

Howard 在推文中总结道,“Mojo 还没有最终完成——但目前的成果已经令人兴奋,毕竟它是由一支体量极小的团队在短时间内打造而成。Lattner 凭借着多年的 Clang、LLVM 和 Swift 开发经验,为我们奠定了又一块精心构建的语言基石。”

参考链接:

https://www.modular.com/blog/the-future-of-ai-depends-on-modularityhttps://news.ycombinator.com/item?id=35811380

https://twitter.com/jeremyphoward/status/1653924474536984577

https://docs.modular.com/mojo/programming-manual.html#argument-passing-control-and-memory-ownership

https://www.theregister.com/2023/05/05/modular_struts_its_mojo_a/

声明:本文为 InfoQ 翻译整理,未经许可禁止转载。

今日好文推荐

拼多多回应将总部从中国迁至爱尔兰;微软Bing爆炸级更新,文生图原生支持中文;75岁人工智能教父离职谷歌,痛悔毕生工作| Q资讯

谷歌、OpenAI 都白干,开源才是终极赢家!谷歌内部文件泄露:欲借开源打败 OpenAI

谷歌用机器人大规模删除代码:二十多年积累了数十亿行,已删除5%C++代码

开发者的好日子要来了?苹果即将在iOS 17迎来大变化

会议预告

业务出海是近年来一个热点话题,但为什么有的业务出海后一飞冲天,有的屡战屡败?背后的原因有很多。其中,数据合规、多云架构、合规架构、全球化用户体验都是出海过程中会面临的挑战,QCon 全球软件开发大会(广州站)2023 特别策划「出海的思考」专题,邀请各领域具有代表性的企业专家分析他们的海外业务拓展过程中遇到的问题和解法。精彩议题抢先看——

  • 海外业务 1 年暴增 20 倍,ZOLOZ 是怎么做到的?/ 张放 蚂蚁集团大安全技术部认证技术架构师

  • 企业出海合规及云上数据合规实践 / 廖智杰 阿里云高级合规专家

  • 从酷家乐出海看演进式架构 / 王栋年 酷家乐云原生中间件资深技术专家

更多精彩内容尽在 QCon 广州,我们还从稳定性即生命线、AGI 与 AIGC 落地、下一代软件架构、研发效能提升、DevOps vs 平台工程、AIGC 浪潮下的效能智能化、大前端技术探索、编程语言实战等角度与你探讨。目前大会日程已上线,点击『阅读原文』了解详情,大会 9 折优惠中,组团购票还有更多折扣,感兴趣的同学联系票务经理:15600537884(电话同微信)。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
普通台灯被颠覆了!1灯=台灯+夹子灯+壁灯+手电筒...不到百元集成GPT-4的编程神器来了,GitHub发布Copilot X:编程30年,突然就不需要手敲代码了?!全球超过3200万孩子都在玩的编程游戏,用“闯关”教真实的编程语言去全球化往哪去《JOJO magazine 2022 WINTER》JOJO粉不可错过的一册!百度推出AI编程助手 "Comate":覆盖30多种编程语言Mojo:比 Python 快 35000 倍的编程语言多送一节竞赛课!未来领域教育编程夏令营开课啦,这个暑期让孩子成为Python大神!也许只有Python之父才能救得了RustEpic CEO:元宇宙已达6亿用户,元宇宙编程语言Verse意义何在?Flask之父凭一己之力击败各种GPT,称Python包管理比LLM更火热比Python快3.5万倍的语言来了/ 微软将推私有版ChatGPT/ iOS17剧透8项新功能…今日更多新鲜事在此今天,GPT-4登陆Office全家桶,打工人的生产方式被颠覆了我今早把我今年订了还没收到的花整理整理 加深印象【美国春天母亲节5年回顾原创三部曲六一钢琴节】我为柳宗元《小石潭记》作曲 &《让我们唱在夏天里》&《卖火柴的小女孩》真人怎么开始学佛(十三)路是要自己走的Flask 之父凭一己之力击败各种 GPT,称 Python 包管理比 LLM 更火热【君在我心】之【云深情也深 】& 【今夜想起你 】& 【爱在我心中】16 年等待,再见 SQL Boy,这一次数据库交互形态彻底被颠覆了!麻省理工Python增强编译器Codon 让Python像C\\C++一样高效腾讯发布 2022 研发大数据报告:Go 语言蝉联最热编程语言【美国春天母亲节献礼4女高音三部曲 舞台艺术节255】春天原创现场舞台:《妈妈是天使》&《游子吟:三春晖》&《春天摇篮》LLVM&Swift之父宣布全新AI开发编程语言"Mojo",兼容Python,且快35000倍AI变革来了,颠覆和被颠覆,你选哪边儿?谷歌终于能与OpenAI 打擂台了!全新PaLM 2比肩GPT-4:一部手机就可运行,精通Python等20种语言终身仁慈独裁者、Python 之父龟叔,曾被认为最不可能发明自己的编程语言35+7今晚截团!全球超过3200万孩子都在玩的编程游戏,用“闯关”教真实的编程语言苹果推出 SwiftData,可替代 SwiftUI 的 Core Data咀外文嚼汉字(213)“少子”、“无子”、“子名人”【美国春天母亲节5原创钢琴三部曲 “粉衣蓝裙”不表白庆六一艺术节】《美丽夏天温柔的雨》&《爱的童话》&《雷雨之后》它就是比尔盖茨和 Linux 之父同时推崇的编程语言!终身仁慈独裁者、Python之父龟叔,曾被认为最不可能发明自己的编程语言多编程语言代码生成神器 CodeGeeX,编码效率提升十倍!惊呆!不会R语言、Python软件,零基础的师姐却三个月发二区生信SCI……中文编程语言——青语言开源发布火爆北美的少儿Python编程课免费领!英文授课,藤校师资,科技史代让孩子领先一步!Holiday Special 七月上 望七月 ~~ poem & song by 盈盈 & APJava 近期新闻:新 JEP、GraalVM 23 早期访问构建、Infinispan、Mojarra又一个中文编程语言发布:青语言
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。