blog.dopana

Back

Burn は、完全にRustで記述された包括的なディープラーニングフレームワークです。柔軟性、高パフォーマンス、ポータビリティを重視して設計されており、クラウドサーバーからWebAssembly (WASM) まで幅広い環境に対応します。

なぜディープラーニングにBurnを選ぶのか?#

PyTorchやTensorFlowが支配するPythonエコシステムに対し、Rustでの開発はプロダクション環境において強力な強みを提供します:

  • メモリ安全性と強力な型システム: コンパイル時にテンソル形状や型の不整合を検知。
  • C++依存関係からの脱却: 単一バイナリによる容易なビルドとデプロイ。
  • CubeCLコンパイラ: 多様なハードウェア向けにGPUカーネルを自動融合・最適化。

[!NOTE] BurnはNVIDIA (CUDA/WGPU)、Apple Silicon (Metal)、AMD GPU、およびCPUでの実行をサポートしています。

最初のBurnプロジェクトの作成#

Cargoコマンドで新しいプロジェクトを立ち上げます:

cargo new burn_hello_world
cd burn_hello_world
bash

Cargo.toml に依存関係を追加します:

Cargo.toml
[dependencies]
burn = { version = "0.14", features = ["wgpu"] }
toml
src/main.rs
use burn::tensor::Tensor;
use burn::backend::Wgpu;

fn main() {
    type MyBackend = Wgpu;
    
    // [!code focus]
    // WGPUバックエンド上で2次元テンソルを生成
    let tensor: Tensor<MyBackend, 2> = Tensor::from_data([[1.0, 2.0], [3.0, 4.0]]);
    println!("Tensor:\n{}", tensor);
}
rust

Burnの主な特徴#

  1. マルチバックエンド対応: WGPU、LibTorch、Candle、NdArrayの各バックエンドを柔軟に切替可能。
  2. 非同期実行モデル: CPUとGPU間の非同期処理によりスループットを最大化。
  3. WebAssembly対応: ブラウザ上でのモデル推論を容易に実現。

参考文献#