WebGPU
[Wikipedia|▼Menu]

WebGPU作者W3C
開発元W3CAppleMozillaMicrosoftGoogle、オープンソースコミュニティ(英語版)
初版リリース前
リポジトリ

github.com/gpuweb/gpuweb

プラットフォームウェブプラットフォーム(英語版)
種別API
公式サイトwebgpu.io
テンプレートを表示

WebGPU(ウェブジーピーユー[1])は、画像処理と計算処理アクセラレーションのための将来のウェブ標準およびJavaScript APIのためのワーキングネームである。「モダンな3D画像処理と計算機能」を提供することを目的としている。AppleMozillaMicrosoftGoogleを含むさまざまな組織のエンジニアが協力して、W3CのGPU for the Webコミュニティグループで開発されている[2]

WebGLとは違い、WebGPUは既存のネイティブAPIを直接ポートするものではない。VulkanMetalDirect3D 12にある概念をベースにしており、これらのモダンなグラフィックAPI上で高性能を提供することを目指している。

2017年初頭、Chromiumチームは、NXTと呼ばれる最初のコンセプトのプロトタイプを発表した。
歴史

2016年6月8日、GoogleはWebGLワーキンググループの2年ごとにオフラインで行われるミーティングで「Explicit web graphics API(明示的なウェブグラフィックAPI)」というタイトルのプレゼンテーションを行った[3]。プレゼンテーションは最終的にWebGLを置き換える新しいAPI(別名:WebGL Next)の基本的な概念と原則について検討するものであった。

2017年1月24日、Khronosは「WebGL Next」の概念について議論を行うためにIP-free(知的財産とは無関係)のミーティングを主催し、バンクーバーで開催されたWebGLワーキンググループのミーティングと共催した[4]。Googleチームは、OpenGLを使用したChromium上またはOpenGLとMetalを使用したスタンドアローンで実行可能な、新しいAPIを実装するNXTのプロトタイプを披露した。NXTはVulkan、Direct3D 12、MetalのネイティブAPIの全てから概念を取り入れていた。AppleとMozillaの代表もそれぞれSafariとServo上に構築したプロトタイプを紹介した。これらはMetal APIの複製したものに近かった。
W3Cのワーキンググループ

2017年2月7日、AppleのWebKitチームは、APIを設計するためのW3Cのコミュニティグループの設立を提案した。同時に、技術的なproof of conceptとAppleのMetalをベースとした「WebGPU」という名称の提案を発表した[5][6][7]。WebGPUという名称は、後にコミュニティグループにより、Appleの最初の提案に加えて、将来の標準の仮称としても採用された。Appleによる最初の提案は、さらなる混同を避けるために「WebMetal」に改名された[8]

W3Cの「GPU for the Web」コミュニティグループは2017年2月16日に設立された。この時点で、Apple、Google、Mozillaのすべてがこの領域で実験を行っていたが、Appleの提案だけが公式に「gpuweb-proposals」リポジトリに提出された[9][10]。その直後の2017年3月21日、MozillaはKhronosリポジトリ内で、Vulkanの設計をベースにしたWebGL Next向けの提案を提出した[11][12]

2018年6月1日、クロスブラウザの標準化の取り組みの中で、GoogleのChromeチームは「最も高レベルな問題の解決(resolution on most-high level issues)」について触れ、将来のWebGPU標準を実装を開始する意向を発表した[13]
技術

WebGPUは、SPIR-V(英語版)へ簡単に翻訳可能なWGSLと呼ばれる独自のシェーディング言語を使用している。この選択は、Appleによるtextual WebMetal、Apple Safariによるtextual WebHLSL / WSL、MozillaによるバイナリSPIR-Vという3つの提案の妥協案である。
実装

下記ブラウザで実装されている。

Google Chrome - 113以降で対応している[14]

Mozilla Firefox - SPIR-Vを使用したWebGPUをサポートしており、WGSLフロントエンドのための作業が進行中である。

Safari - Web Shading Language (WSL) を使用したWebGPUをSafari Technology Previewでサポートしている[15]

関連項目

Direct3D 12

Khronos Group

Metal (API)

OpenGL

Vulkan (API)

WebCL

WebGL

ウェブプラットフォーム(英語版)

出典[脚注の使い方]^ .mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}WebGPU: Next-generation 3D graphics on the web (DevFest 2019). Google Developer Groups. 4 March 2020. 2022年11月1日閲覧。
^ “GPU for the Web Community Group”. w3.org. 2018年9月11日閲覧。
^ Wallez. “Explicit web graphics API”. 2019年6月25日閲覧。
^ Wallez. “WebGL Next investigations”. 2019年6月25日閲覧。
^ “Next-generation 3D Graphics on the Web”. WebKit. (2017年2月7日). https://webkit.org/blog/7380/next-generation-3d-graphics-on-the-web/ 2018年8月13日閲覧。 
^ “ ⇒Apple seeks to position Metal as part of new 3D graphics standard for web” (英語). AppleInsider. 2018年8月13日閲覧。
^ Claburn (2017年2月8日). “Web-standards-allergic Apple unveils WebGPU, a web graphics standard”. 2017年8月14日閲覧。
^ “WebGPU Prototype and Demos”. WebKit (2017年4月5日). 2019年1月10日閲覧。
^ Jackson. “Add Apple's WebGPU proposal”. 2019年3月8日閲覧。
^ Malyshau. “Prototyping a new 3D API for the Web”. 2016年12月16日閲覧。
^ Malyshau, Dzmitry (2017年3月21日). “Defining the Web platform”. https://kvark.github.io/web/3d/api/mozilla/2017/03/21/web-platform.html 2018年9月11日閲覧。 
^ Malyshau. “Mozilla's contribution: Obsidian API”. 2019年3月8日閲覧。
^ Wallez, Corentin (31 May 2018). "Intent to Implement: WebGPU". blink-dev (Mailing list). 2018年8月13日閲覧。
^ Chrome ships WebGPU - Chrome Developers
^ “Implementation Status” (英語). GitHub. gpuweb. 2022年9月20日閲覧。

外部リンク

公式ウェブサイト


WebGPU 仕様書

gpuweb - GitHub

WebGPU API Proposal for Apple Webkit in 2017

GPU on the Web Community Group at W3C
.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox{font-size:90%}.mw-parser-output .asbox-note{font-size:90%}.mw-parser-output .asbox .navbar{position:absolute;top:-0.90em;right:1em;display:none}

この項目は、ソフトウェアに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPJ:コンピュータ/P:コンピュータ)。
.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ・\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:21 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef