Mobility Technologies Co., Ltd.
RustによるGPUプログラミング環境
Kiyotomo Hiroyasu
2020/12/17 MoT.rs #3
Mobility Technologies Co., Ltd.
● これから話す内容
○ Rust GPUプロジェクトについて
○ shader開発用IDE”SHADERed”の紹介
○ 今後の展望
はじめに
2
Mobility Technologies Co., Ltd.
Rust GPUプロジェクトについて
3
Mobility Technologies Co., Ltd.
Rust GPUプロジェクトについて
● Rustでシェーダ言語を記述し、GPUプログラミングを行う事を目的
○ CPU/GPUで同じ言語で開発できる
○ 安全で高性能
○ マルチプラットフォーム(Windows/Mac/Linux/Android)
● ゲーム会社のEmbarkStudioが中心となって推進
● rust-gpu crateを中心として公開開発
4
Mobility Technologies Co., Ltd.
● 長い間ゲーム開発においてGPUプログラミングではHLSL/GLSLのいずれかが
使われていた
○ ゲームエンジンの進化により陳腐化、大規模開発に不向き
● CUDA/OpenCLのような代替手段もある
○ ベンダ依存であったりサポートが行き届いてないといった問題あり
● 以下のような特徴を持つRustをshader言語として採用し、開発開始
○ 低レイヤで高性能
○ 優れたパッケージ/モジュールシステム
○ 競合状態や範囲外メモリアクセスに対する安定性
○ さまざまなツールとユーティリティ
Rust GPUプロジェクトの背景
5
Mobility Technologies Co., Ltd.
rust-gpu crateの仕組み
6
※SPIR-Vとは
環境非依存のシェーダ中間表現
OpenGLやVulkanといった
Graphics API上で動作
NOTE: 開発中プロジェクトのため、今後構成が変わる可能性があります
Mobility Technologies Co., Ltd.
Rust GPUプロジェクトについて
● コード例(SHADERedのサイトより)
7
Mobility Technologies Co., Ltd.
”SHADERed”の紹介
8
Mobility Technologies Co., Ltd.
● Embarkが提供しているshaderプログラム用IDE
● マルチプラットフォーム(Windows/Linux)、ブラウザで動作するLite版もある
● ライブプレビュー対応、高度なデバッグ機能あり
● シェーダ言語としてRustに加え、従来のGLSL/HLSLも選択可
● オープンソース
SHADERed
https://shadered.org/
Mobility Technologies Co., Ltd.
● SHADERedのページから各shader言語のサンプルが見れる
○ ブラウザ上でコードを改変して動作確認も可
SHADERed
10
Mobility Technologies Co., Ltd.
今後の展望
11
Mobility Technologies Co., Ltd.
● Rust GPUはまだ開発初期段階
○ 2020/10に最初期版(v0.1)がリリースされたばかり(現在の最新はv0.2)
○ 後方互換性も保証されてないのでプロダクションには不向き
● IDE含め、開発しやすい体制はこれからも発展していく事が期待できる
○ Embarkの自社のゲーム開発に使われているので開発は当面続く
○ これから普及していくかどうかは未知数だがwatchしていく
今後の展望
12

RustによるGPUプログラミング環境

  • 1.
    Mobility Technologies Co.,Ltd. RustによるGPUプログラミング環境 Kiyotomo Hiroyasu 2020/12/17 MoT.rs #3
  • 2.
    Mobility Technologies Co.,Ltd. ● これから話す内容 ○ Rust GPUプロジェクトについて ○ shader開発用IDE”SHADERed”の紹介 ○ 今後の展望 はじめに 2
  • 3.
    Mobility Technologies Co.,Ltd. Rust GPUプロジェクトについて 3
  • 4.
    Mobility Technologies Co.,Ltd. Rust GPUプロジェクトについて ● Rustでシェーダ言語を記述し、GPUプログラミングを行う事を目的 ○ CPU/GPUで同じ言語で開発できる ○ 安全で高性能 ○ マルチプラットフォーム(Windows/Mac/Linux/Android) ● ゲーム会社のEmbarkStudioが中心となって推進 ● rust-gpu crateを中心として公開開発 4
  • 5.
    Mobility Technologies Co.,Ltd. ● 長い間ゲーム開発においてGPUプログラミングではHLSL/GLSLのいずれかが 使われていた ○ ゲームエンジンの進化により陳腐化、大規模開発に不向き ● CUDA/OpenCLのような代替手段もある ○ ベンダ依存であったりサポートが行き届いてないといった問題あり ● 以下のような特徴を持つRustをshader言語として採用し、開発開始 ○ 低レイヤで高性能 ○ 優れたパッケージ/モジュールシステム ○ 競合状態や範囲外メモリアクセスに対する安定性 ○ さまざまなツールとユーティリティ Rust GPUプロジェクトの背景 5
  • 6.
    Mobility Technologies Co.,Ltd. rust-gpu crateの仕組み 6 ※SPIR-Vとは 環境非依存のシェーダ中間表現 OpenGLやVulkanといった Graphics API上で動作 NOTE: 開発中プロジェクトのため、今後構成が変わる可能性があります
  • 7.
    Mobility Technologies Co.,Ltd. Rust GPUプロジェクトについて ● コード例(SHADERedのサイトより) 7
  • 8.
    Mobility Technologies Co.,Ltd. ”SHADERed”の紹介 8
  • 9.
    Mobility Technologies Co.,Ltd. ● Embarkが提供しているshaderプログラム用IDE ● マルチプラットフォーム(Windows/Linux)、ブラウザで動作するLite版もある ● ライブプレビュー対応、高度なデバッグ機能あり ● シェーダ言語としてRustに加え、従来のGLSL/HLSLも選択可 ● オープンソース SHADERed https://shadered.org/
  • 10.
    Mobility Technologies Co.,Ltd. ● SHADERedのページから各shader言語のサンプルが見れる ○ ブラウザ上でコードを改変して動作確認も可 SHADERed 10
  • 11.
    Mobility Technologies Co.,Ltd. 今後の展望 11
  • 12.
    Mobility Technologies Co.,Ltd. ● Rust GPUはまだ開発初期段階 ○ 2020/10に最初期版(v0.1)がリリースされたばかり(現在の最新はv0.2) ○ 後方互換性も保証されてないのでプロダクションには不向き ● IDE含め、開発しやすい体制はこれからも発展していく事が期待できる ○ Embarkの自社のゲーム開発に使われているので開発は当面続く ○ これから普及していくかどうかは未知数だがwatchしていく 今後の展望 12