Redian新闻
>
Meta开源Rust编写的高性能构建系统

Meta开源Rust编写的高性能构建系统

公众号新闻

出品 | OSC开源社区(ID:oschina2013)

看来最近 Meta 的工程师是一点都没有闲着,前两天刚开源 AI 图像分割模型,这不就又发布了名为 Buck2 的开源构建系统。

Buck2 是一个已经在 Meta 内部使用了一段时间的大型构建系统,目前 Meta 有数千名开发人员正在使用该构建系统,每天执行数百万次的构建。在 Meta 的内部测试中,Buck2 完成构建的速度是 Buck1 的 2 倍。

虽然 Buck2 跟 Buck1 使用了相同的名称,也是 Buck1 构建系统的继任者,但前者并不是后者简单的升级版,Buck2 用 Rust 完全重写(Buck1 用的 Java),目标是使构建速度更快、更有效。

正因如此,Buck2 有一个单独的 GitHub 仓库和单独的官方网站,为的就是跟 Buck1 进行区分。

我们自己的内部分析表明,当 Buck2 执行构建时,工程师能够生成更多有意义的代码,我们希望更广泛的行业也能从中受益。

Buck2 的设计基于以下原则:

  • 完全分离了核心规则和特定于语言的规则,将语言规则从核心中分离出来意味着规则更容易改变和理解。Buck2 的核心是用 Rust 编写的,它的语言规则(比如如何构建 C++)是用 Starlark 编写的。这种分离与 Buck1(所有规则都写在核心中)和 Bazel(C++/Java 写在核心中)形成对比。

  • 构建系统消除了许多类型的错误并增加了并行性。

  • 规则 API 被设计为包含先进的性能特征,以及动态依赖特征。

  • 开源版本与 Meta 的内部版本几乎相同,唯一替换掉的部分是工具链(指向 Meta 编译器的内部副本)和远程执行(指向 Meta 内部服务器) —— 两者都提供了开源替代品。还发布了与内部使用完全相同的所有规则。

  • Buck2 的编写是为了与远程执行相结合,能够在远程机器上运行操作,使用与 Bazel 相同的 API,并且一直在用 Buildbarn 和 EngFlow 测试远程执行。

  • Buck2 还可以与虚拟文件系统集成。

上述所有这些更改都是想要帮助工程师和开发者减少等待时间,将更多时间用于迭代他们的代码。

目前 Buck2 为以下这些语言附带了对应的规则:Assembly、C/C++、Erlang、Go、Haskell、Java、JavaScript、Julia、OCaml、Python 和 Rust。开发者可以使用 Starlark 脚本语言,向 Buck2 添加或重新实现语言规则。

项目地址:https://github.com/facebook/buck2

官方网站:https://buck2.build/


往期推荐



微软开源JARVIS(贾维斯):用ChatGPT控制AI模型

因ChatGPT,三星交出 “昂贵” 学费

Slint 1.0正式发布,Rust编写的原生GUI工具包



这里有最新开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦


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

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Vite 4.3正式发布,性能提升,为应对Rust写的Turbopack?将 sudo 和 su 移植到 Rust,Rust 要重写万物?60行代码就能构建GPT!网友:比之前的教程都要清晰|附代码Cloudflare用Rust重写Nginx C模块,构建没有Nginx的未来Ambient:Rust编写的高性能多人游戏引擎上海交大张智涛:设计高性能柔性高分子发光材料,构建下一代柔性可拉伸电子皮肤发光显示器面向大模型训练,腾讯发布高性能计算集群:整体性能提升3倍叫板ChatGPT?Stability AI 开源语言大模型 StableLM,参数仅为GPT-3百分之四,却能实现超高性能Conagen和Natáur达成合作,生产可持续天然牛磺酸FastTrack Universität 2023莱比锡大学公立语言项目招生简章看电视连续剧《县委大院》字节跳动开源 Shmipc:基于共享内存的高性能 IPCRust 基础系列 #1: 创建并运行你的首个 Rust 程序 | Linux 中国取代 C++!微软用 Rust 改写的 Win11 内核来了宾州吉姆索普(Jim Thorpe),漂亮街景Rust 语言年度回顾:全球企业如何采用 Rust的?ChatGPT编写胡鑫宇新闻,结果出人意料大规模棚改重启?住建系统人士:没听说Meilisearch 1.0稳定版发布,Rust高性能开源搜索引擎专访人工智能教父杰弗里·辛顿:你不能理解它,除非你能构建它Rust 基础系列 #3: Rust 中的数据类型 | Linux 中国早报|法医回应中国情侣巴厘岛酒店遇害;世卫:新冠不再构成国际突发公卫事件;董明珠股份冻结写错;大规模棚改重启?住建系统人士回应不该走的人正被逼走,RustConf粗暴撤换主讲人事态升级引发多人出走,根源出在Rust领导小组不愿交权?Stability AI连扔两个王炸!首个开源RLHF模型登基,DeepFloyd IF像素级出图Rust 基础系列 #2: 在 Rust 程序中使用变量和常量 | Linux 中国Rust 社区管理再起“内讧”:RustConf 粗暴撤换主讲人事态升级引发多人出走冬天的乐趣-Parc Omega野生动物园。“地球人”,请你大声点在线研讨会预告:针对向量计算开发的高性能数据库和云原生开源数据编排技术Rust 基础系列 #4: Rust 中的数组和元组 | Linux 中国在没有构建系统的情况下编写 Javascript | Linux 中国怎样才能构建「健康有效」的人脉关系?兰德公司政策报告?看似兰德公司也被共军渗透啦~!!Rust 基础系列 #5: Rust 中的函数 | Linux 中国Ruby引入新JIT编译器RJIT,替代MJIT
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。