Burn - Rust 深度学习框架和张量库 | CubeCL - Rust 开发 GPU 计算内核

Burn 是一个用 Rust 构建的深度学习框架和张量库,最新发布的 0.18.0 版本达到了两个重要的性能里程碑。

  1. 最先进的多平台矩阵乘法内核

  • 引入了复杂的矩阵乘法内核引擎,性能与 cuBLAS 和 CUTLASS 相媲美,同时支持更广泛的 GPU。

  • 这是大量工作的成果,尽管许多人不推荐这样做,但团队坚信需要自主实现深度学习框架的核心部分以实现最佳性能。

  • 发布了详细的基准测试技术文章。见 https://burn.dev/blog/sota-multiplatform-matmul/

  • 动态图灵活性与静态图融合能力

    • 优化了张量编译引擎,引入新的搜索机制以优化动态图。

    • 重新排序操作以最大化优化机会,包括死代码消除,提高了对不同张量操作序列的适应性。

    • 利用 Rust 的类型系统和所有权规则,实现了动态执行中的图操作和优化。

  • 改进的可靠性

    • 扩展了 CI 测试套件,解决了多线程、延迟求值和异步执行问题。

    • 实施了自动性能回归测试,确保平台演变过程中的稳定性。

  • CubeCL 0.6.0

    • 同步发布了 CubeCL 0.6.0,包含大量错误修复、新功能和项目重构。

    • 新增了内核模块(如 cubecl-matmul、cubecl-convolution 等),计划添加 cubecl-attention 以加速 Transformer 模型。

    • 改善了 CubeCL 的文档和可用性,发布了新的用户手册。

    CubeCL 的目标是减轻编写高度优化且可跨硬件移植的计算内核的痛苦。目前,如果您希望在跨平台的同时获得最佳性能,则尚无合适的解决方案。

    您要么必须为不同的硬件编写自定义内核,通常使用不同的语言,例如 CUDA、Metal 或 ROCm。为了解决这个问题,我们创建了一个即时编译器 (JIT),它具有三个核心功能: 自动矢量化 、 编译时间和自动调优!

    借助 CubeCL,您可以使用 Rust 编程 GPU,利用零成本抽象来开发可维护、灵活且高效的计算内核。CubeCL 还附带优化的运行时,可管理任何平台的内存管理和惰性执行。

    Burn 仓库:https://github.com/tracel-ai/burn

    CubeCL 仓库:https://github.com/tracel-ai/cubecl

    Reddit:https://www.reddit.com/r/rust/comments/1m37b0d/burn_0180_important_performance_milestones/

    文章:《Figma 通过 Rust 中的内存优化显著提升了文件加载速度并降低了内存使用》

    Figma 文件由节点组成,每个节点是一个属性映射(Map<u16, u64>)。优化前,该映射占文件内存使用量的 60% 以上。Figma 团队用一个扁平的、排序的向量(Vec<u16, u64>)替换了默认的 BTreeMap,尽管从理论上讲,向量的插入时间复杂度更高,但实际文件反序列化速度提升了 20%,内存使用量降低了 25%。

    此外,团队还尝试了另一种优化方法:利用 x86 指针的未使用的顶部 16 位存储字段 ID,将字段 ID 和指针合并为一个 64 位数字。这种方法进一步降低了内存使用量(约 5%),但由于潜在的内存风险,尚未投入生产。

    阅读:https://www.figma.com/blog/supporting-faster-file-load-times-with-memory-optimizations-in-rust/

    教程:从 std 到 no_std - 使用 ESP32 嵌入式 Rust

    它是《impl Rust for ESP32》一书的一部分。新增此章节旨在教您如何从头开始创建 LED 闪烁项目,而不是使用项目模板。它从标准二进制项目开始,然后为嵌入式环境做好准备。

    介绍了

    • 从头开始创建项目,而不是使用模板

    • 逐步将标准 Rust 二进制项目转换为在 ESP32 上运行的 no_std 项目

    阅读:https://esp32.implrust.com/std-to-no-std/index.html

    Clip-Vault:轻量级跨平台剪贴板管理器

    Clip-Vault 是一个开源的轻量级跨平台剪贴板管理器,使用 Tauri 和 React 构建。它具备以下特点:

    • 无限历史记录:可访问所有复制的内容(包括文本和图片)。

    • 跨平台支持:兼容 Mac、Linux 和 Windows。

    • 快速搜索:能即时从历史记录中找到任何剪贴内容。

    • 隐私优先:完全离线、开源且加密,数据仅存储在本地。

    • 自定义快捷键:默认 Mac 快捷键为 ⌘ + ⇧ + C,可配置。

    • 永久免费开源:无广告、无订阅、无数据收集。

    仓库:https://github.com/densumesh/clip-vault

    教程:介绍 mise,一个强大的工具管理器,能够简化软件安装、管理和环境变量配置

    mise 支持多种语言的版本和包管理工具,如 asdf、nvm、pyenv 等。

    它通过 mise.toml 文件在不同目录中配置工具版本,支持项目级和全局安装。

    例如,通过 mise use jj 可快速安装并使用工具,且工具的可用性依赖于当前目录的配置文件。

    mise 还支持任务声明,允许用户定义和运行常见操作(如构建、测试等),确保团队成员和 CI/CD 流程使用一致的命令。

    此外,mise 的配置文件可以提交到代码仓库,方便团队成员和 CI/CD 流程自动获取和使用正确的工具版本。

    阅读:https://blog.vbang.dk/2025/06/29/tools-i-love-mise/

    mise 仓库:https://github.com/jdx/mise

    讨论:为什么 Rust Web 代码的依赖那么多?

    Reddit:https://www.reddit.com/r/rust/comments/1m28f8n/why_is_web_code_so_dependency_heavy/

    --

    From 日报小组 苦瓜小仔

    社区学习交流平台订阅:

    • Rustcc论坛: 支持rss

    • 微信公众号:Rust语言中文社区

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐