SlideShare a Scribd company logo
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

More Related Content

What's hot

Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
Ryuichi Sakamoto
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
Takuji Tahara
 
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
Yusuke Uchida
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Preferred Networks
 
画像認識と深層学習
画像認識と深層学習画像認識と深層学習
画像認識と深層学習
Yusuke Uchida
 
[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need
Deep Learning JP
 
CuPy解説
CuPy解説CuPy解説
CuPy解説
Ryosuke Okuta
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
 
型安全性入門
型安全性入門型安全性入門
型安全性入門
Akinori Abe
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
joisino
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
 
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
NTT DATA Technology & Innovation
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
Takahiro Kubo
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
 

What's hot (20)

Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
 
画像認識と深層学習
画像認識と深層学習画像認識と深層学習
画像認識と深層学習
 
[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need
 
CuPy解説
CuPy解説CuPy解説
CuPy解説
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
型安全性入門
型安全性入門型安全性入門
型安全性入門
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 

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

Rustで3D graphics programming
Rustで3D graphics programmingRustで3D graphics programming
Rustで3D graphics programming
KiyotomoHiroyasu
 
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
Netwalker lab kapper
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
Toru Yamaguchi
 
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC東京2020 #osc20tk Hacking Linux and *...
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC東京2020 #osc20tk Hacking Linux and *...WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC東京2020 #osc20tk Hacking Linux and *...
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC東京2020 #osc20tk Hacking Linux and *...
Netwalker lab kapper
 
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIAHacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Netwalker lab kapper
 
20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History
Kohei KaiGai
 
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Yoshifumi Kawai
 
GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較
NTT Communications Technology Development
 
第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 名古屋 #oscnagoya Hacking the third Sma...
第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 名古屋 #oscnagoya Hacking the third Sma...第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 名古屋 #oscnagoya Hacking the third Sma...
第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 名古屋 #oscnagoya Hacking the third Sma...
Netwalker lab kapper
 
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
Netwalker lab kapper
 
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
Web Technology Corp.
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
Drecom Co., Ltd.
 
FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)
Kunihiko HAYASHI
 
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Cocos2d-x(v3.x)で作るマルチプラットフォームゲームCocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Norio Akagi
 
Windows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみたWindows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみた
Hikari Morita
 
Opa - Cloud Language
Opa - Cloud LanguageOpa - Cloud Language
Opa - Cloud Language
Tozo Tanaka
 
unityゲーム開発基礎講座
unityゲーム開発基礎講座unityゲーム開発基礎講座
unityゲーム開発基礎講座
Yuki Tada
 
Intel graphics
Intel graphicsIntel graphics
Intel graphics
Yuichiro Naito
 
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.020210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0
Kohei KaiGai
 
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM,INC
 

Similar to RustによるGPUプログラミング環境 (20)

Rustで3D graphics programming
Rustで3D graphics programmingRustで3D graphics programming
Rustで3D graphics programming
 
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
 
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC東京2020 #osc20tk Hacking Linux and *...
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC東京2020 #osc20tk Hacking Linux and *...WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC東京2020 #osc20tk Hacking Linux and *...
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC東京2020 #osc20tk Hacking Linux and *...
 
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIAHacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
 
20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History
 
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
 
GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較
 
第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 名古屋 #oscnagoya Hacking the third Sma...
第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 名古屋 #oscnagoya Hacking the third Sma...第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 名古屋 #oscnagoya Hacking the third Sma...
第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 名古屋 #oscnagoya Hacking the third Sma...
 
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
 
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
 
FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)
 
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Cocos2d-x(v3.x)で作るマルチプラットフォームゲームCocos2d-x(v3.x)で作るマルチプラットフォームゲーム
Cocos2d-x(v3.x)で作るマルチプラットフォームゲーム
 
Windows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみたWindows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみた
 
Opa - Cloud Language
Opa - Cloud LanguageOpa - Cloud Language
Opa - Cloud Language
 
unityゲーム開発基礎講座
unityゲーム開発基礎講座unityゲーム開発基礎講座
unityゲーム開発基礎講座
 
Intel graphics
Intel graphicsIntel graphics
Intel graphics
 
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.020210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0
 
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
SORACOM UG 広島 #2 | SORACOM の紹介から SORACOM Conference "Discovery" 2018 SORACOM ...
 

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