项目介绍
Burn 是一个使用 Rust 构建的新型深度学习框架,旨在提供极高的灵活性、计算效率和可移植性。项目主要关注于优化计算性能,确保深度学习模型在多种硬件和软件环境中高效运行。
性能特性
自动内核融合
Burn 提供一种自动动态创建自定义内核的方法,以最小化在不同内存空间之间的数据传输。通过这种方法,自定义的低级内核将自动为特定实现生成,并与人工编写的 GPU 实现相媲美。
异步执行
Burn 的自研后端使用异步执行风格,允许实现各种优化策略。异步执行确保框架的正常执行不会阻塞模型计算,从而显著提高运行效率。
线程安全模块
Burn 强调线程安全,每个模块均拥有其独立的权重,可以在无需多线程同步机制的情况下实现多设备训练。
智能内存管理
Burn 通过内存池减少了内存的分配和释放开销,同时通过所有权系统跟踪变量何时可以就地修改,提高了内存使用效率。
自动内核选择
通过自动运行基准测试,Burn 根据当前硬件和矩阵大小选择最佳内核配置,以确保模型在所有硬件上顺畅运行。
硬件特定特性
Burn 支持如 Tensor Cores 的专用硬件特性,进一步提升矩阵计算的效率,特别是在 CUDA 和 WGPU/SPIR-V 后端中。
自定义后端扩展
Burn 提供扩展后端功能的能力,支持自定义操作,以满足特定建模需求。
训练与推理
Burn 通过用户友好的仪表盘简化了深度学习的整体工作流程,从嵌入式设备到大型 GPU 集群皆可运行推理。Burn 的设计不仅适合训练,也易于部署,减少了从训练到部署的代码更改。
训练仪表盘
Burn 提供一个基于终端 UI 的仪表盘接口,用户可以在训练过程中实时查看和分析指标的变化。
ONNX 支持
Burn 支持 ONNX 标准格式的模型导入,使得用户能够轻松迁移其它框架(如 TensorFlow 或 PyTorch)中的模型至 Burn。
导入 PyTorch 模型
用户可以将 PyTorch 模型的权重无缝加载到 Burn 的本地模型结构中。
浏览器中推理
Burn 的多个后端支持编译为 Web Assembly,可以实现直接在浏览器中进行模型推理。
嵌入式及无操作系统支持
Burn 的核心组件支持无操作系统环境的运行,如嵌入式设备。
后端支持
Burn 设计支持多种后端,例如 WGPU、Candle、LibTorch、NdArray 和 Autodiff 等,通过可替换的后端机制,灵活适应不同计算环境和需求。
入门指南
Burn 提供详细的文档和示例代码,帮助用户快速上手,了解其核心组件及使用哲学,以便其在 AI 领域进行创新。
社区与贡献
Burn 鼓励贡献者加入社区,并提供详细的贡献指南及代码的架构概述,以促进项目的共同发展。
Burn 目前处于积极开发中,会有不时的变动,但项目团队致力于保持技术的前沿性和开发的便捷性。项目采用 MIT 和 Apache-2.0 许可证分发。