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
    +关注

    关注

    89

    文章

    38085

    浏览量

    296346
  • Meta
    +关注

    关注

    0

    文章

    316

    浏览量

    12326
  • 编译
    +关注

    关注

    0

    文章

    687

    浏览量

    34937
  • Rust
    +关注

    关注

    1

    文章

    240

    浏览量

    7474

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2025开放原子开发者大会旋武开源社区Rust分论坛成功举办

    11月22日,2025开放原子开发者大会——旋武开源社区Rust分论坛在北京顺利召开。论坛以“共建中国Rust生态”为核心主题,汇聚京东、华为、vivo、阿里、毛豆教育、DORA社区及南京大学等企业与学术机构技术专家,及众多
    的头像 发表于 11-27 14:55 304次阅读

    2025开放原子开发者大会旋武社区Rust分论坛即将启幕

    在数字化转型持续深化、系统安全与性能需求愈发迫切的当下,Rust凭借强大的内存安全、高并发性能和卓越的开发者体验,正成为重塑软件开发疆界的关键力量,更是
    的头像 发表于 11-13 10:00 333次阅读

    RusT-Thread:基于Rust面向资源受限嵌入式设备的操作系统的实践 | 技术集结

    摘要随着物联网和嵌入式系统的发展,实时操作系统(RTOS)的安全性和性能需求日益提高。传统基于C语言的RTOS在内存安全和并发控制方面存在局限,容易导致缓冲区溢出、数据竞争等问题。本项目以
    的头像 发表于 11-07 17:37 6461次阅读
    <b class='flag-5'>RusT</b>-Thread:基于<b class='flag-5'>Rust</b>面向资源受限嵌入式设备的操作<b class='flag-5'>系统</b>的实践 | 技术集结

    NVIDIA Spectrum-X 以太网交换机助力 Meta 和 Oracle 加速网络性能

    超大规模企业广泛采用 NVIDIA 网络解决方案,驱动十亿瓦级(Giga-Scale)高性能 AI 数据中心 Meta 推出基于 NVIDIA Spectrum 以太网的交换机,用于
    的头像 发表于 10-14 10:26 1413次阅读
    NVIDIA Spectrum-X 以太网交换机助力 <b class='flag-5'>Meta</b> 和 Oracle 加速网络<b class='flag-5'>性能</b>

    SGM260320:SSD 系统供电的高效低耗 PMIC

    切换,大幅提升系统灵活性。 2、高效节能与灵活调控:性能全面优化 在能效方面,SGM260320 的 Buck 转换器采用同步整流技术,3.3V 转 2.5V 时 1A 电流下效率高
    发表于 08-07 11:38

    TPS65263 4.5V 至 18V 输入电压、3A/2A/2A 输出电流降压转换器数据手册

    模式,旨在简化其应用,同时为设计人员提供根据目标应用优化系统的选择。该器件在 600 kHz 下工作,buck1 和 buck2buck3 之间有 180° 异相(
    的头像 发表于 06-25 09:52 576次阅读
    TPS65263 4.5V 至 18V 输入电压、3A/<b class='flag-5'>2</b>A/<b class='flag-5'>2</b>A 输出电流降压转换器数据手册

    TPS65263-Q1 4.0V-18V Vin、3A/2A/2A 三通道同步降压转换器数据手册

    可通过外部电阻器在 200 kHz 至 2.3 MHz 范围内调节。Buck1 和 Buck2 之间 180° 异相作,Buck3(Buck2
    的头像 发表于 06-23 18:08 620次阅读
    TPS65263-Q1 4.0V-18V Vin、3A/<b class='flag-5'>2</b>A/<b class='flag-5'>2</b>A 三通道同步降压转换器数据手册

    OrangePi 5 Plus 全面兼容openKylin操作系统,拓展高性能边缘计算新生态

    openKylin为边缘计算开发者提供了更丰富的开源软件选择,推动高性能硬件与开源系统协同创新。openKylin系统在Rockchip-r
    的头像 发表于 06-20 15:11 791次阅读
    OrangePi 5 Plus 全面兼容openKylin操作<b class='flag-5'>系统</b>,拓展<b class='flag-5'>高性能</b>边缘计算新生态

    TPS65262-2 4.5V-18V Vin、3A/1A/1A 三通道同步降压转换器数据手册

    的大多数中间总线电压。该转换器具有恒定频率峰值电流模式,旨在简化其应用,同时为设计人员提供根据目标应用优化系统的选择。该器件以 600kHz 的固定开关频率运行。集成了 buck2buck
    的头像 发表于 06-20 14:27 613次阅读
    TPS65262-<b class='flag-5'>2</b> 4.5V-18V Vin、3A/1A/1A 三通道同步降压转换器数据手册

    TPS65263-1Q1 4.0V 至 18V 输入、三通道 3A/2A/2A 同步降压转换器数据手册

    可通过外部电阻器在 200 kHz 至 2.3 MHz 范围内调节。Buck1 和 Buck2 之间 180° 异相作,Buck3(Buck2
    的头像 发表于 06-18 10:12 573次阅读
    TPS65263-1Q1 4.0V 至 18V 输入、三通道 3A/<b class='flag-5'>2</b>A/<b class='flag-5'>2</b>A 同步降压转换器数据手册

    使用树莓派构建 Slurm 高性能计算集群:分步指南!

    在这篇文章中,我将分享我尝试使用树莓派构建Slurm高性能计算集群的经历。一段时间前,我开始使用这个集群作为测试平台,来创建一个更大的、支持GPU计算的高性能计算集群。我获得了高性能
    的头像 发表于 06-17 16:27 1338次阅读
    使用树莓派<b class='flag-5'>构建</b> Slurm <b class='flag-5'>高性能</b>计算集群:分步指南!

    参考STM32 MPU生态资源利用Yocto构建STM32MP2芯片镜像运行docker

    STM32MPU生态对ST官方提供的MPU开发工具以及拓展包进行介绍,从入门的示例镜像烧录、应用程序开发以及Yoto构建系统使用。最近尝试利用其中
    发表于 05-10 16:47

    如何为Raspbian Bullseye构建开源OpenVINO™?

    为 Raspbian* Bullseye 构建开源OpenVINO™ 的变通方法步骤
    发表于 03-07 07:07

    鸿蒙原生页面高性能解决方案上线OpenHarmony社区 助力打造高性能原生应用

    NEXT的原生页面高性能解决方案,从页面滑动、跳转及应用冷启动等关键环节,为开发者提供全面的支持。目前,这些解决方案均已上线OpenHarmony开源社区,可在OpenHarmony三方库中心仓进行搜索,欢迎开发者多多使用和共建,打造更极致
    发表于 01-02 18:00

    Meta重磅发布Llama 3.3 70B:开源AI模型的新里程碑

    ​在人工智能领域,Meta的最新动作再次引起了全球的关注。今天,我们见证了Meta发布的 Llama 3.3 70B 模型,这是一个开源的人工智能模型,它不仅令人印象深刻,而且在性能
    的头像 发表于 12-18 16:46 877次阅读
    <b class='flag-5'>Meta</b>重磅发布Llama 3.3 70B:<b class='flag-5'>开源</b>AI模型的新里程碑