< 返回版块

苦瓜小仔 发表于 2025-07-20 16:50

Tags:日报

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

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

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

    • 引入了复杂的矩阵乘法内核引擎,性能与 cuBLAS 和 CUTLASS 相媲美,同时支持更广泛的 GPU。
    • 这是大量工作的成果,尽管许多人不推荐这样做,但团队坚信需要自主实现深度学习框架的核心部分以实现最佳性能。
    • 发布了详细的基准测试技术文章。见 https://burn.dev/blog/sota-multiplatform-matmul/
  2. 动态图灵活性与静态图融合能力

    • 优化了张量编译引擎,引入新的搜索机制以优化动态图。
    • 重新排序操作以最大化优化机会,包括死代码消除,提高了对不同张量操作序列的适应性。
    • 利用 Rust 的类型系统和所有权规则,实现了动态执行中的图操作和优化。
  3. 改进的可靠性

    • 扩展了 CI 测试套件,解决了多线程、延迟求值和异步执行问题。
    • 实施了自动性能回归测试,确保平台演变过程中的稳定性。
  4. 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 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页