0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

OSC开源社区 来源:OSC开源社区 2023-04-14 17:04 次阅读

看来最近 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 添加或重新实现语言规则。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    30698

    浏览量

    268850
  • Meta
    +关注

    关注

    0

    文章

    270

    浏览量

    11377
  • 编译
    +关注

    关注

    0

    文章

    657

    浏览量

    32847
  • Rust
    +关注

    关注

    1

    文章

    228

    浏览量

    6598

原文标题:Meta开源Rust编写的高性能构建系统

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Meta发布Llama 3.2量化版模型

    近日,Meta开源Llama 3.2的1B与3B模型后,再次为人工智能领域带来了新进展。10月24日,Meta正式推出了这两个模型的量化版本,旨在进一步优化模型性能,拓宽其应用场景。
    的头像 发表于 10-29 11:05 370次阅读

    如何用Rust编写一个ChatGPT桌面应用(保姆级教程)

    用IDEA开发的java仔) 安装 Rust 语言工具链:首先,请确保你已安装了 Rust 编程语言工具链,包括 Rust 编译器 (rustc) 和包管理工具 (cargo)。可以通过访问
    的头像 发表于 09-25 11:19 338次阅读
    如何用<b class='flag-5'>Rust</b><b class='flag-5'>编写</b>一个ChatGPT桌面应用(保姆级教程)

    使用超声波发送器和接收器构建高性能NDT系统

    电子发烧友网站提供《使用超声波发送器和接收器构建高性能NDT系统.pdf》资料免费下载
    发表于 08-28 11:00 0次下载
    使用超声波发送器和接收器<b class='flag-5'>构建</b><b class='flag-5'>高性能</b>NDT<b class='flag-5'>系统</b>

    未来嵌入式系统的黄金搭档 MCX N947遇上Rust

    基于 Rust 的安全性和性能引入了 RustRust 有很多优势,内存安全、并发安全、生态系统、包管理与
    的头像 发表于 07-25 09:14 1343次阅读
    未来嵌入式<b class='flag-5'>系统</b>的黄金搭档 MCX N947遇上<b class='flag-5'>Rust</b>

    Meta发布全新开源大模型Llama 3.1

    科技巨头Meta近期震撼发布了其最新的开源人工智能(AI)模型——Llama 3.1,这一举措标志着Meta在AI领域的又一重大突破。Meta创始人马克·扎克伯格亲自站台,盛赞Llam
    的头像 发表于 07-24 18:25 1425次阅读

    Meta即将发布超强开源AI模型Llama 3-405B

    在人工智能领域的激烈竞争中,Meta公司再次掷出重磅炸弹,宣布将于7月23日正式发布其最新力作——Llama 3-405B,一个拥有惊人4050亿参数的开源大模型。这一举措不仅标志着Meta在AI研究领域的又一次重大突破,更预示
    的头像 发表于 07-18 09:58 980次阅读

    鸿蒙OpenHarmony开发板解析:【Rust模块配置规则和指导】

    Rust是一门静态强类型语言,具有更安全的内存管理、更好的运行性能、原生支持多线程开发等优势。Rust官方也使用Cargo工具来专门为Rust代码创建工程和
    的头像 发表于 05-10 11:32 1276次阅读
    鸿蒙OpenHarmony开发板解析:【<b class='flag-5'>Rust</b>模块配置规则和指导】

    构建高性能计算芯片

    计算的异构多核架构,对整个芯片行业的高性能 CPU 开发产生了影响。 这些芯片都不太可能进行商业销售。它们针对特定的数据类型和工作负载进行了优化,设计预算庞大,但可以通过提高性能和降低功耗来实现合理化。目标是在更小的面积上容纳更多的计算能力,同时降低冷却成本,而实现这一目
    的头像 发表于 04-25 10:23 1311次阅读
    <b class='flag-5'>构建</b><b class='flag-5'>高性能</b>计算芯片

    NVIDIA全面加快Meta Llama 3的推理速度

    Meta 最新开源大语言模型采用 NVIDIA 技术构建,其经过优化后可在云、数据中心、边缘和 PC 的 NVIDIA GPU 上运行。
    的头像 发表于 04-23 09:52 450次阅读

    Meta推出最强开源模型Llama 3 要挑战GPT

    Meta推出最强开源模型Llama 3 要挑战GPT Facebook母公司Meta Platforms(META.US)推出了开源AI大模
    的头像 发表于 04-19 17:00 830次阅读

    [鸿蒙]OpenHarmony4.0的Rust开发

    背景 Rust 是一门静态强类型语言,具有更安全的内存管理、更好的运行性能、原生支持多线程开发等优势。Rust 官方也使用 Cargo 工具来专门为 Rust 代码创建工程和
    的头像 发表于 02-26 17:28 867次阅读
    [鸿蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>开发

    Rust编写的首个Postgres基础Elasticsearch开源替代品问世

    PostgreSQL 的生态确实越来越繁荣了,在基于 PG 的扩展与衍生中,我们已经有了基于 MongoDB 开源替代 —— FerretDB,SQL Server 开源替代 Babelfish
    的头像 发表于 02-22 11:34 824次阅读
    <b class='flag-5'>Rust</b><b class='flag-5'>编写</b>的首个Postgres基础Elasticsearch<b class='flag-5'>开源</b>替代品问世

    Meta发布CodeLlama70B开源大模型

    Meta发布CodeLlama70B开源大模型 Meta发布了开源大模型CodeLlama70B,号称是CodeLlama系列体量最大、性能
    的头像 发表于 01-31 10:30 1408次阅读

    Meta发布开源大模型Code Llama 70B

    近日,Meta宣布推出了一款新的开源大模型Code Llama 70B,这是其“Code Llama家族中体量最大、性能最好的模型版本”。这款新模型提供三种版本,并免费供学术界和商业界使用。
    的头像 发表于 01-31 09:24 916次阅读

    从Rustup出发看Rust编译生态

    从Rustup出发看Rust编译生态 1. Rust和LLVM的关系是怎样的? 2. Rustup中targets是什么,为什么可以安装多个? 3. Rust在windows上为
    的头像 发表于 01-02 11:00 521次阅读