JP2023157833A - 機械学習推論用のグラフィックス処理の最適化のためのシステムおよび方法 - Google Patents

機械学習推論用のグラフィックス処理の最適化のためのシステムおよび方法 Download PDF

Info

Publication number
JP2023157833A
JP2023157833A JP2022210466A JP2022210466A JP2023157833A JP 2023157833 A JP2023157833 A JP 2023157833A JP 2022210466 A JP2022210466 A JP 2022210466A JP 2022210466 A JP2022210466 A JP 2022210466A JP 2023157833 A JP2023157833 A JP 2023157833A
Authority
JP
Japan
Prior art keywords
machine learning
computing system
textures
learning model
shaders
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022210466A
Other languages
English (en)
Inventor
ラマン・サロキン
Sarokin Raman
チュヒョン・イ
Juhyun Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2023157833A publication Critical patent/JP2023157833A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

【課題】本開示のシステムおよび方法は、機械学習推論タスク用にグラフィックスプロセッサの使用を最適化するための方法を対象とする。【解決手段】方法は、1つまたは複数のコンピューティングデバイスを備えるコンピューティングシステムによって、機械学習型モデルへの入力からの複数のテクスチャを同時にレンダリングするステップを含む。方法は、コンピューティングシステムによって、複数のテクスチャのレイアウトに少なくとも部分的に基づいて複数のシェーダを生成するステップを含み、複数のシェーダの各々は、機械学習型モデルの複数のオペレータのうちの少なくとも1つのオペレータに対応する。方法は、グラフィックス処理ユニット(GPU)を使うコンピューティングシステムによって、複数のシェーダで複数のテクスチャを処理して、機械学習型モデル用の機械学習出力を取得するステップを含む。【選択図】図2

Description

関連出願
本出願は、2022年4月15日に出願された米国仮特許出願第63/331,593号に対する優先権およびその利益を主張する。米国仮特許出願第63/331,593号は、その全体が参照により本明細書に組み込まれる。
本開示は概して、システムリソースの使用を最適化することに関する。より詳細には、本開示は、機械学習推論用のアプリケーションプログラミングインターフェースを介して、グラフィックス処理ハードウェアの使用を最適化することに関する。
最近、多くのアプリケーションが、様々なタスク(たとえば、テレビ会議、画像認識サービスなど)の実施を大幅に最適化するために、機械学習を活用し始めている。ただし、ウェブブラウザなど、いくつかの実行環境では、これらのアプリケーションには概して、機械学習推論タスクの処理のために特殊化ハードウェア(たとえば、グラフィックス処理ユニット)の帯域幅を効率的に使用するための容量が欠けている。
本開示の実施形態の態様および利点は、以下の説明において部分的に記載されるか、または説明から知ることができるか、または実施形態の実施を通して知ることができる。
本開示の1つの例示的態様は、機械学習推論タスク用にグラフィックスプロセッサの使用を最適化するためのコンピューティングシステムを対象とする。コンピューティングシステムは1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサはグラフィックス処理ユニット(GPU)を備える。コンピューティングシステムは、1つまたは複数のプロセッサによって実行されると、コンピューティングシステムに動作を実施させる命令をまとめて記憶する1つまたは複数の非一時的コンピュータ可読媒体を含む。動作は、機械学習型モデル(machine-learned model)への入力からの複数のテクスチャ(texture)を同時にレンダリングすることを含む。動作は、複数のテクスチャのレイアウトに少なくとも部分的に基づいて、複数のシェーダを生成することを含み、複数のシェーダの各々は、機械学習型モデルの複数のオペレータのうちの少なくとも1つのオペレータに対応する。動作は、GPUを使って、複数のシェーダで複数のテクスチャを処理して、機械学習型モデル用の機械学習出力を取得することを含む。
本開示の別の例示的態様は、機械学習推論タスク用にグラフィックスプロセッサの使用を最適化するための方法を対象とする。方法は、1つまたは複数のコンピューティングデバイスを備えるコンピューティングシステムによって、機械学習型モデルへの入力からの複数のテクスチャを同時にレンダリングするステップを含む。方法は、コンピューティングシステムによって、複数のテクスチャのレイアウトに少なくとも部分的に基づいて複数のシェーダを生成するステップを含み、複数のシェーダの各々は、機械学習型モデルの複数のオペレータのうちの少なくとも1つのオペレータに対応する。方法は、グラフィックス処理ユニット(GPU)を使うコンピューティングシステムによって、複数のシェーダで複数のテクスチャを処理して、機械学習型モデル用の機械学習出力を取得するステップを含む。
本開示の別の例示的態様は、命令をまとめて記憶する1つまたは複数の非一時的コンピュータ可読媒体を対象とし、これらの命令は、1つまたは複数のプロセッサによって実行されると、コンピューティングシステムに動作を実行させる。動作は、機械学習型モデルへの入力からの複数のテクスチャを同時にレンダリングすることを含む。動作は、複数のテクスチャのレイアウトに少なくとも部分的に基づいて、複数のシェーダを生成することを含み、複数のシェーダの各々は、機械学習型モデルの複数のオペレータのうちの少なくとも1つのオペレータに対応する。動作は、GPUを使って、複数のシェーダで複数のテクスチャを処理して、機械学習型モデル用の機械学習出力を取得することを含む。
本開示の他の態様は、様々なシステム、装置、非一時的コンピュータ可読媒体、ユーザインターフェース、および電子デバイスを対象とする。
本開示の様々な実施形態のこれらおよび他の特徴、態様、および利点は、以下の説明および添付の特許請求の範囲を参照すると、よりよく理解されよう。本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本開示の例示的な実施形態を示し、この説明とともに、関連する原理について説明するために役立つ。
当業者を対象とする実施形態の詳細な説明が本明細書に記載され、本明細書は添付の図を参照する。
本開示の例示的実施形態による、機械学習推論タスク用にグラフィックスプロセッサの使用を最適化する例示的コンピューティングシステムのブロック図である。 本開示の例示的実施形態による、機械学習推論タスク用にグラフィックスプロセッサの使用を実施する例示的コンピューティングデバイスのブロック図である。 本開示の例示的実施形態による、機械学習推論タスク用にグラフィックスプロセッサの使用を実施する例示的コンピューティングデバイスのブロック図である。 本開示の例示的実施形態による、機械学習推論タスク用にグラフィックスプロセッサの使用を最適化するためのデータフロー図である。 本開示のいくつかの実施形態による、実装されるデコーダブロックのためのデータフロー図である。 本開示のいくつかの実施形態による、アプリケーションプログラミングインターフェースの様々な実装における高品質セグメンテーションのための推論レイテンシについての結果を示す図である。 本開示のいくつかの実施形態による、高品質セグメンテーションモデルの評価についての結果を示す図である。 本開示のいくつかの実施形態に従って処理される2つのモデルを使用する画像セグメンテーション結果を示す図である。 本開示のいくつかの実施形態に従って処理される2つのモデルを使用する高品質セグメンテーション結果を示す図である。 本開示のいくつかの実施形態による、機械学習推論用にグラフィックス処理を最適化するための方法のためのデータフロー図である。
複数の図にわたって繰り返される参照番号は、様々な実装形態において同じ特徴を識別するものである。
概要
概して、本開示は、システムリソースの使用を最適化することを対象とする。より詳細には、本開示は、機械学習推論用のアプリケーションプログラミングインターフェースを介して、グラフィックス処理ハードウェアの使用を最適化することに関する。具体的には、たとえば、入力(たとえば、画像セグメンテーションタスク用の画像入力データなど)が、ウェブブラウザ内で実行されるアプリケーション(たとえば、テレビ会議アプリケーションなど)によって使用されるトレーニング済み機械学習型モデル向けに取得され得る。高品質の結果を取得するために、アプリケーションは、アプリケーションプログラミングインターフェースを介した機械学習型モデルの処理のためのグラフィックス処理ユニット(GPU)などの特殊化ハードウェアを活用してよい。ただし、いくつかの従来のアプリケーションプログラミングインターフェース(API)には、GPU(たとえば、WebGL APIなど)の帯域幅を最適に使用するための容量が欠けている。
したがって、本開示のシステムおよび方法は、機械学習推論タスク用にグラフィックスプロセッサの使用を最適化することを提案する。たとえば、入力を取得した後、複数のテクスチャが、機械学習型モデルへの入力から(たとえば、WebGL APIのMulti-Render Targets(MRT)プロセスなどを介して)同時にレンダリングされ得る。複数のシェーダ(たとえば、フラグメントシェーダなど)が次に、複数のテクスチャのレイアウト(たとえば、テクスチャの数、テクスチャの次元、など)に少なくとも部分的に基づいて生成され得る。複数のシェーダの各々は、機械学習型モデルの複数のオペレータのうちの少なくとも1つのオペレータに対応し得る。GPUを使用すると、複数のテクスチャは、機械学習型モデル用の機械学習出力を取得するように、複数のシェーダで処理され得る。
本開示のシステムおよび方法は、いくつかの技術的効果および利益を提供する。1つの例示的な技術的効果および利益として、GPUによって実施されるシェーダ演算は、ある程度のオーバーヘッドを招く。GPUは重く並列化されているので、シェーダ演算の複雑さがオーバーヘッド未満であるときに非効率性が生じ得る。したがって、WebGLのMRT特徴など、いくつかのAPIの既存の特徴を活用することによって、本開示の実施形態は、モデル入力を複数のテクスチャに変換することによってシェーダ演算を複雑にする可能性があり、したがって、GPU帯域幅の使用を(たとえば、並列化などにより)実質的に増大させる。対して、GPU帯域幅使用を増大させることによって、本開示の実施形態は、より効率的なモデル使用およびより高品質のモデル出力の提供を容易にするとともに、GPUにおけるいかなる処理ボトルネックも削減するか、またはなくす(たとえば、したがって、ボトルネックに関連付けられた電力使用、計算周期、メモリ使用などを削減する)。
ここで図面を参照して、本開示の例示的実施形態についてさらに詳しく論じる。
例示的デバイスおよびシステム
図1Aは、本開示の例示的実施形態による、機械学習推論タスク用にグラフィックスプロセッサの使用を最適化する例示的コンピューティングシステム100のブロック図を示す。システム100は、ネットワーク180を介して通信可能に結合されている、ユーザコンピューティングデバイス102、サーバコンピューティングシステム130、およびトレーニング用コンピューティングシステム150を含む。
ユーザコンピューティングデバイス102は、たとえば、パーソナルコンピューティングデバイス(たとえば、ラップトップもしくはデスクトップ)、モバイルコンピューティングデバイス(たとえば、スマートフォンもしくはタブレット)、ゲーム機もしくはコントローラ、装着可能コンピューティングデバイス、埋込み型コンピューティングデバイス、または任意の他のタイプのコンピューティングデバイスなど、どのタイプのコンピューティングデバイスであってもよい。
ユーザコンピューティングデバイス102は、1つまたは複数のプロセッサ112およびメモリ114を含む。1つまたは複数のプロセッサ112は、どの適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であってもよく、1つのプロセッサまたは動作可能に接続されている複数のプロセッサであってよい。たとえば、プロセッサ112は、1つまたは複数のグラフィックス処理ユニット(GPU)を含み得る。これらのGPUは、ユーザコンピューティングデバイス(102)および/または他のコンピューティングデバイス(たとえば、サーバコンピューティングシステム130など)によって実行されるアプリケーションによってアクセスされるアプリケーションプログラミングインターフェース(API)を介して活用され得る。メモリ114は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなどおよびそれらの組合せなど、1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。メモリ114は、データ116と、ユーザコンピューティングデバイス102に動作を実施させるようにプロセッサ112によって実行される命令118とを記憶することができる。
いくつかの実装形態では、ユーザコンピューティングデバイス102は、1つまたは複数のモデル120を記憶するか、または含むことができる。たとえば、モデル120は、ニューラルネットワーク(たとえば、深層ニューラルネットワーク)または非線形モデルおよび/もしくは線形モデルを含む他のタイプの機械学習型モデルなど、様々な機械学習型モデルであってよく、またはそうでなければ、それらの機械学習型モデルを含んでよい。ニューラルネットワークは、フィードフォワードニューラルネットワーク、回帰型ニューラルネットワーク(たとえば、長短期メモリ回帰型ニューラルネットワーク)、畳み込みニューラルネットワーク、または他の形のニューラルネットワークを含み得る。いくつかの例示的機械学習型モデルは、自己注意などの注意機構を活用することができる。たとえば、いくつかの例示的機械学習型モデルは、多頭自己注意モデル(たとえば、変圧器モデル)を含み得る。
いくつかの実装形態では、1つまたは複数のモデル120は、ネットワーク180を介してサーバコンピューティングシステム130から受信され、ユーザコンピューティングデバイスメモリ114内に記憶され、次いで、1つまたは複数のプロセッサ112によって使われ、またはそうでなければ実装され得る。いくつかの実装形態では、ユーザコンピューティングデバイス102は、単一のモデル120の複数の並列インスタンスを(たとえば、モデルの複数のインスタンスにわたる並列処理を実施するために)実装することができる。
追加または代替として、1つまたは複数のモデル140は、クライアント-サーバ関係に従ってユーザコンピューティングデバイス102と通信するサーバコンピューティングシステム130に含まれ、またはそうでなければ、サーバコンピューティングシステム130によって記憶され、実装され得る。たとえば、モデル140は、ウェブサービス(たとえば、画像セグメンテーションサービス、画像認識サービスなど)の一部分として、サーバコンピューティングシステム130によって実装され得る。したがって、1つまたは複数のモデル120が、ユーザコンピューティングデバイス102において記憶され、実装されてよく、かつ/または1つもしくは複数のモデル140が、サーバコンピューティングシステム130において記憶され、実装されてよい。
ユーザコンピューティングデバイス102は、ユーザ入力を受信する1つまたは複数のユーザ入力構成要素122を含むこともできる。たとえば、ユーザ入力構成要素122は、ユーザ入力オブジェクト(たとえば、指またはスタイラス)のタッチに敏感な、タッチ感応構成要素(たとえば、タッチ感応表示画面またはタッチパッド)であってよい。タッチ感応構成要素は、仮想キーボードを実装するのに役立つことができる。他の例示的なユーザ入力構成要素は、マイクロフォン、従来のキーボード、またはユーザがユーザ入力を提供することができる他の手段を含む。
サーバコンピューティングシステム130は、1つまたは複数のプロセッサ132およびメモリ134を含む。1つまたは複数のプロセッサ132は、どの適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であってもよく、1つのプロセッサまたは動作可能に接続されている複数のプロセッサであってよい。メモリ134は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなどおよびそれらの組合せなど、1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。メモリ134は、データ136と、サーバコンピューティングシステム130に動作を実施させるようにプロセッサ132によって実行される命令138とを記憶することができる。
いくつかの実装形態では、サーバコンピューティングシステム130は、1つまたは複数のサーバコンピューティングデバイスを含むか、またはそうでなければ、サーバコンピューティングデバイスによって実装される。サーバコンピューティングシステム130が複数のサーバコンピューティングデバイスを含む事例では、そのようなサーバコンピューティングデバイスは、順次コンピューティングアーキテクチャ、並列コンピューティングアーキテクチャ、またはそれらの何らかの組合せに従って動作することができる。
上述したように、サーバコンピューティングシステム130は、1つまたは複数のモデル140を記憶することができ、またはそうでなければ、モデル140を含むことができる。たとえば、モデル140は、様々な機械学習型モデルであってよく、または、そうでなければそれらを含んでよい。例示的機械学習型モデルは、ニューラルネットワークまたは他のマルチレイヤ非線形モデルを含む。例示的ニューラルネットワークは、フィードフォワードニューラルネットワーク、深層ニューラルネットワーク、回帰型ニューラルネットワーク、および畳み込みニューラルネットワークを含む。いくつかの例示的機械学習型モデルは、自己注意などの注意機構を活用することができる。たとえば、いくつかの例示的機械学習型モデルは、多頭自己注意モデル(たとえば、変圧器モデル)を含み得る。
ユーザコンピューティングデバイス102および/またはサーバコンピューティングシステム130は、ネットワーク180を介して通信可能に結合されるトレーニング用コンピューティングシステム150との対話により、モデル120および/または140をトレーニングすることができる。トレーニング用コンピューティングシステム150は、サーバコンピューティングシステム130とは別個であってよく、またはサーバコンピューティングシステム130の一部分であってよい。
トレーニング用コンピューティングシステム150は、1つまたは複数のプロセッサ152およびメモリ154を含む。1つまたは複数のプロセッサ152は、どの適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であってもよく、1つのプロセッサまたは動作可能に接続されている複数のプロセッサであってよい。メモリ154は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなどおよびそれらの組合せなど、1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。メモリ154は、データ156と、トレーニング用コンピューティングシステム150に動作を実施させるようにプロセッサ152によって実行される命令158とを記憶することができる。いくつかの実装形態では、トレーニング用コンピューティングシステム150は、1つまたは複数のサーバコンピューティングデバイスを含むか、またはそうでなければ、1つまたは複数のサーバコンピューティングデバイスによって実装される。
トレーニング用コンピューティングシステム150は、ユーザコンピューティングデバイス102および/またはサーバコンピューティングシステム130において記憶された機械学習型モデル120および/または140を、たとえば、誤差逆伝搬など、様々なトレーニングまたは学習技法を使ってトレーニングするモデル訓練器160を含み得る。たとえば、損失関数は、(たとえば、損失関数の勾配に基づいて)モデルの1つまたは複数のパラメータを更新するために、モデルを通して逆伝搬され得る。平均2乗誤差、尤度損失、交差エントロピー損失、ヒンジ損失、および/または様々な他の損失関数など、様々な損失関数が使用され得る。勾配降下技法は、いくつかのトレーニング反復に対してパラメータを反復的に更新するために使用され得る。
いくつかの実装形態では、誤差逆伝搬を実施することは、時間をかけて短縮逆伝搬を実施することを含み得る。モデル訓練器160は、トレーニングされるモデルの汎化能力を向上するために、いくつかの汎化技法(たとえば、重み減衰、ドロップアウトなど)を実施することができる。
いくつかの実装形態では、ユーザが同意を与えている場合、トレーニング例はユーザコンピューティングデバイス102によって与えられてよい。したがって、そのような実装形態では、ユーザコンピューティングデバイス102に提供されるモデル120は、ユーザコンピューティングデバイス102から受信されるユーザ固有データに対してトレーニング用コンピューティングシステム150によってトレーニングされ得る。いくつかの事例では、このプロセスは、モデルの個別化と呼ばれ得る。
モデル訓練器160は、所望の機能性を提供するのに使用されるコンピュータ論理を含む。モデル訓練器160は、汎用プロセッサを制御するハードウェア、ファームウェア、および/またはソフトウェアで実装することができる。たとえば、いくつかの実装形態では、モデル訓練器160は、記憶デバイス上に記憶され、メモリにロードされ、1つまたは複数のプロセッサによって実行されるプログラムファイルを含む。他の実装形態では、モデル訓練器160は、RAM、ハードディスクまたは光学もしくは磁気媒体などの有形コンピュータ可読記憶媒体に記憶されるコンピュータ実行可能命令の1つまたは複数のセットを含む。
ネットワーク180は、ローカルエリアネットワーク(たとえば、イントラネット)、ワイドエリアネットワーク(たとえば、インターネット)、またはそれらの何らかの組合せなど、どのタイプの通信ネットワークであってもよく、任意の数のワイヤードまたはワイヤレスリンクを含み得る。概して、ネットワーク180を介した通信は、多種多様な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTP)、符号化もしくはフォーマット(たとえば、HTML、XML)、および/または保護方式(たとえば、VPN、セキュアHTTP、SSL)を使って、どのタイプのワイヤードおよび/またはワイヤレス接続を介しても搬送することができる。
本明細書に記載する機械学習型モデルは、様々なタスク、アプリケーション、および/または使用ケースにおいて使われてよい。
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、画像データであってよい。機械学習型モデルは、画像データを処理して、出力を生成し得る。例として、機械学習型モデルは、画像データを処理して、画像認識出力(たとえば、画像データの認識、画像データの潜在性埋込み、画像データの符号化表現、画像データのハッシュなど)を生成し得る。別の例として、機械学習型モデルは、画像データを処理して、画像セグメンテーション出力を生成し得る。別の例として、機械学習型モデルは、画像データを処理して、画像分類出力を生成し得る。別の例として、機械学習型モデルは、画像データを処理して、画像データ変更出力(たとえば、画像データの改変など)を生成し得る。別の例として、機械学習型モデルは、画像データを処理して、符号化画像データ出力(たとえば、画像データの符号化および/または圧縮された表現など)を生成し得る。別の例として、機械学習型モデルは、画像データを処理して、アップスケールされた画像データ出力を生成し得る。別の例として、機械学習型モデルは、画像データを処理して、予測出力を生成し得る。
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、テキストまたは自然言語データであってよい。機械学習型モデルは、テキストまたは自然言語データを処理して、出力を生成し得る。例として、機械学習型モデルは、自然言語データを処理して、言語符号化出力を生成し得る。別の例として、機械学習型モデルは、テキストまたは自然言語データを処理して、潜在性テキスト埋込み出力を生成し得る。別の例として、機械学習型モデルは、テキストまたは自然言語データを処理して、変換出力を生成し得る。別の例として、機械学習型モデルは、テキストまたは自然言語データを処理して、分類出力を生成し得る。別の例として、機械学習型モデルは、テキストまたは自然言語データを処理して、テキストセグメンテーション出力を生成し得る。別の例として、機械学習型モデルは、テキストまたは自然言語データを処理して、意味論的意図出力を生成し得る。別の例として、機械学習型モデルは、テキストまたは自然言語データを処理して、アップスケールされたテキストまたは自然言語出力(たとえば、入力テキストまたは自然言語よりも高品質であるテキストまたは自然言語データ、など)を生成することができる。別の例として、機械学習型モデルは、テキストまたは自然言語データを処理して、予測出力を生成し得る。
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、音声データであってよい。機械学習型モデルは、音声データを処理して、出力を生成し得る。例として、機械学習型モデルは、音声データを処理して、音声認識出力を生成し得る。別の例として、機械学習型モデルは、音声データを処理して、音声変換出力を生成し得る。別の例として、機械学習型モデルは、音声データを処理して、潜在性埋込み出力を生成し得る。別の例として、機械学習型モデルは、音声データを処理して、符号化音声出力(たとえば、音声データの符号化および/または圧縮された表現など)を生成し得る。別の例として、機械学習型モデルは、音声データを処理して、アップスケーリングされた音声出力(たとえば、入力音声データよりも高品質の音声データなど)を生成し得る。別の例として、機械学習型モデルは、音声データを処理して、テキスト表現出力(たとえば、入力音声データのテキスト表現など)を生成し得る。別の例として、機械学習型モデルは、音声データを処理して、予測出力を生成し得る。
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、潜在性符号化データ(たとえば、入力の潜在性空間表現など)であってよい。機械学習型モデルは、潜在性符号化データを処理して、出力を生成し得る。例として、機械学習型モデルは、潜在性符号化データを処理して、認識出力を生成し得る。別の例として、機械学習型モデルは、潜在性符号化データを処理して、再構築出力を生成し得る。別の例として、機械学習型モデルは、潜在性符号化データを処理して、探索出力を生成し得る。別の例として、機械学習型モデルは、潜在性符号化データを処理して、再クラスタ化出力を生成し得る。別の例として、機械学習型モデルは、潜在性符号化データを処理して、予測出力を生成し得る。
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、統計データであってよい。統計データは、何らかの他のデータソースから計算および/もしくは算出されたデータであるか、これを表すか、またはそうでなければこれを含むことができる。機械学習型モデルは、統計データを処理して、出力を生成し得る。例として、機械学習型モデルは、統計データを処理して、認識出力を生成し得る。別の例として、機械学習型モデルは、統計データを処理して、予測出力を生成し得る。別の例として、機械学習型モデルは、統計データを処理して、分類出力を生成し得る。別の例として、機械学習済みモデルは、統計データを処理して、セグメンテーション出力を生成し得る。別の例として、機械学習型モデルは、統計データを処理して、視覚化出力を生成し得る。別の例として、機械学習型モデルは、統計データを処理して、診断出力を生成し得る。
いくつかの実装形態では、本開示の機械学習型モデルへの入力は、センサーデータであってよい。機械学習型モデルは、センサーデータを処理して、出力を生成し得る。例として、機械学習型モデルは、センサーデータを処理して、認識出力を生成し得る。別の例として、機械学習型モデルは、センサーデータを処理して、予測出力を生成し得る。別の例として、機械学習型モデルは、センサーデータを処理して、分類出力を生成し得る。別の例として、機械学習型モデルは、センサーデータを処理して、セグメンテーション出力を生成し得る。別の例として、機械学習型モデルは、センサーデータを処理して、視覚化出力を生成し得る。別の例として、機械学習型モデルは、センサーデータを処理して、診断出力を生成し得る。別の例として、機械学習型モデルは、センサーデータを処理して、検出出力を生成し得る。
いくつかの場合には、機械学習型モデルは、信頼できる、および/または効率的な送信もしくは記憶(および/または対応する復号)のために入力データを符号化することを含むタスクを実施するように構成することができる。たとえば、タスクは、オーディオ圧縮タスクであってよい。入力はオーディオデータを含んでよく、出力は圧縮オーディオデータを含んでよい。別の例では、入力は視覚データ(たとえば、1つまたは複数の画像またはビデオ)を含み、出力は圧縮視覚データを含み、タスクは視覚データ圧縮タスクである。別の例では、タスクは、入力データ(たとえば、入力オーディオまたは視覚データ)用の埋込みを生成することを含んでよい。
いくつかの場合には、入力は視覚データを含み、タスクはコンピュータビジョンタスクである。いくつかの場合には、入力は、1つまたは複数の画像用のピクセルデータを含み、タスクは画像処理タスクである。たとえば、画像処理タスクは画像分類であってよく、ここで、出力はスコアのセットであり、各スコアは、異なるオブジェクトクラスに対応し、オブジェクトクラスに属するオブジェクトを1つまたは複数の画像が示す見込みを表す。画像処理タスクはオブジェクト検出であってよく、ここで、画像処理出力は、1つまたは複数の画像の中の1つまたは複数の領域と、各領域について、対象のオブジェクトを領域が示す見込みとを識別する。別の例として、画像処理タスクは画像セグメンテーションであってよく、ここで、画像処理出力は、1つまたは複数の画像の中の各ピクセルについて、カテゴリの所定のセット中の各カテゴリについてのそれぞれの見込みを定義する。たとえば、カテゴリのセットは前景および背景であってよい。別の例として、カテゴリのセットはオブジェクトクラスであってよい。別の例として、画像処理タスクは深度推定であってよく、ここで、画像処理出力は、1つまたは複数の画像中の各ピクセルについて、それぞれの深度値を定義する。別の例として、画像処理タスクは動き推定であってよく、ここで、ネットワーク入力は複数の画像を含み、画像処理出力は、入力画像のうちの1つの、各ピクセルについて、ネットワーク入力における画像の間のピクセルにおいて示されるシーンの動きを定義する。
いくつかの場合には、入力は、発話を表現するオーディオデータを含み、タスクは音声認識タスクである。出力は、発話にマップされるテキスト出力を含んでよい。いくつかの場合には、タスクは、入力データを暗号化または解読することを含む。いくつかの場合には、タスクは、分岐予測またはメモリアドレス変換などのマイクロプロセッサ実施タスクを含む。
図1Aは、本開示を実装するのに使うことができる1つの例示的コンピューティングシステムを示す。他のコンピューティングシステムが使われてもよい。たとえば、いくつかの実装形態では、ユーザコンピューティングデバイス102は、モデル訓練器160およびトレーニングデータセット162を含み得る。そのような実装形態では、モデル120は、ユーザコンピューティングデバイス102においてローカルにトレーニングされることと使われることの両方が可能である。そのような実装形態のうちのいくつかでは、ユーザコンピューティングデバイス102は、ユーザ固有データに基づいてモデル120を個別化するために、モデル訓練器160を実装することができる。
図1Bは、本開示の例示的実施形態に従って実施する例示的コンピューティングデバイス10のブロック図を示す。コンピューティングデバイス10は、ユーザコンピューティングデバイスまたはサーバコンピューティングデバイスであってよい。
コンピューティングデバイス10は、いくつかのアプリケーション(たとえば、アプリケーション1~N)を含む。各アプリケーションは、それ自体の機械学習ライブラリおよび機械学習型モデルを含む。たとえば、各アプリケーションは、機械学習型モデルを含み得る。例示的アプリケーションは、テキストメッセージングアプリケーション、eメールアプリケーション、ディクテーションアプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどを含む。
図1Bに示すように、各アプリケーションは、コンピューティングデバイスのいくつかの他の構成要素、たとえば、1つもしくは複数のセンサー、コンテキストマネージャ、デバイス状態構成要素、および/または追加構成要素などと通信することができる。いくつかの実装形態では、各アプリケーションは、API(たとえば、パブリックAPI)を使って、各デバイス構成要素と通信することができる。いくつかの実装形態では、各アプリケーションによって使われるAPIは、そのアプリケーションに固有である。
図1Cは、本開示の例示的実施形態に従って実施する例示的コンピューティングデバイス50のブロック図を示す。コンピューティングデバイス50は、ユーザコンピューティングデバイスまたはサーバコンピューティングデバイスであってよい。
コンピューティングデバイス50は、いくつかのアプリケーション(たとえば、アプリケーション1~N)を含む。各アプリケーションは、中央インテリジェンスレイヤと通信する。例示的アプリケーションは、テキストメッセージングアプリケーション、eメールアプリケーション、ディクテーションアプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどを含む。いくつかの実装形態では、各アプリケーションは、API(たとえば、すべてのアプリケーションにわたる共通API)を使って、中央インテリジェンスレイヤ(およびその中に記憶されるモデル)と通信することができる。
中央インテリジェンスレイヤは、いくつかの機械学習型モデルを含む。たとえば、図1Cに示すように、それぞれの機械学習型モデルが、各アプリケーションに与えられ、中央インテリジェンスレイヤによって管理され得る。他の実装形態では、2つ以上のアプリケーションが、単一の機械学習型モデルを共有することができる。たとえば、いくつかの実装形態では、中央インテリジェンスレイヤは、アプリケーションすべてに単一モデルを提供することができる。いくつかの実装形態では、中央インテリジェンスレイヤは、コンピューティングデバイス50のオペレーティングシステムに含まれるか、またはそうでなければ、オペレーティングシステムによって実装される。
中央インテリジェンスレイヤは、中央デバイスデータレイヤと通信することができる。中央デバイスデータレイヤは、コンピューティングデバイス50向けのデータの集中型リポジトリであってよい。図1Cに示すように、中央デバイスデータレイヤは、コンピューティングデバイスのいくつかの他の構成要素、たとえば、1つもしくは複数のセンサー、コンテキストマネージャ、デバイス状態構成要素、および/または追加構成要素などと通信することができる。いくつかの実装形態では、中央デバイスデータレイヤは、API(たとえば、プライベートAPI)を使って、各デバイス構成要素と通信することができる。
図2は、本開示の例示的実施形態による、機械学習推論タスク用にグラフィックスプロセッサの使用を最適化するためのデータフロー図を示す。具体的には、前述したように、テレビ会議など、いくつかのアプリケーションの重要度が、近年、リモート参加者と一緒にバーチャルに行われるミーティングの数が増大するのに伴って増している。テレビ会議アプリケーションにとっては、このセッティングにおいてますます重要になっている1つの特徴は、背景の置換えまたはぼかしであり、これは通常、前景/背景セグメンテーションを通して達成される。従来の高品質(HQ)セグメンテーションネットワークにおいて、モデル容量は一般に、中央処理ユニット(CPU)推論が実現することができるものを超える重大な制限である。したがって、本開示の実施形態は、より重いネットワークの、リアルタイムのモデル推論用にGPUを活用する。ただし、WebGLアクセラレーションを特徴とするJavaScript推論エンジンなど、既存のエンジンおよび/またはアプリケーションプログラミングインターフェース(API)は、ネイティブアプリにおけるOpenGL推論など、他のものと比較して、相当な性能ギャップを呈する。
最大性能を遂行するために、本開示のいくつかの実施形態は、入力202の獲得(たとえば、画像獲得など)から、モデル(たとえば、ニューラルネットワーク)推論を介して、出力210を提供する(たとえば、セグメント化された結果をスクリーン上でレンダリングする)まで、GPU上でフルに実行される。
従来、GPU加速型ニューラルネットワーク推論エンジンの基本アーキテクチャは、ニューラルネットワークオペレータを、GPUシェーダの形で実装する。推論ループは本質的に、これらのシェーダプログラムを、ニューラルネットワークのトポロジカルソートされた順序で、非同期実行のためのGPUコマンドキューに入れている。そのようなカーネル実装をオーサリングするのは、計算シェーダをサポートする最新GPU APIがあるので、比較的簡単である。ただし、WebGLなど、いくつかの既存のAPIには、計算シェーダ向けのサポートが欠けている。したがって、いくつかの実施形態では、WebGL推論エンジン用のカーネル実装は、フラグメントシェーダの形で書かれ得る。
図2に移ると、機械学習型モデルへの入力202(たとえば、画像入力)を取得することができる。次に、いくつかの実施形態では、論理およびGPUオブジェクトを分離することができる。論理オブジェクトは、テンソル、テンソルバッファ、空間テンソル、重みテンソルなどのようなモデル(たとえば、ニューラルネットワーク)オブジェクトを指す。GPUオブジェクトは、2Dテクスチャ、2Dテクスチャアレイ、フレームバッファなどのような、API(たとえば、WebGL)において利用可能な記憶タイプを指す。これらの2つのタイプのオブジェクトを分離することにより、プログラマは、最も速いGPUビルディングブロックを特定の状況のために利用することができ、特定のGPUオブジェクトに束縛されなくてよい。
次に、レンダラ204は、APIの特徴を活用して複数のテクスチャ206をレンダリングしながら、入力202を処理する。たとえば、レンダラ204は、マルチレンダーターゲット(MRT)などのWebGL特徴を活用してよい。MRTとは、一度に複数のテクスチャへの画像のレンダリングを可能にする最新GPUの特徴である。プログラマが、各レンダーターゲット用の出力値を戻すシェーダを書くと、シェーダは、単一のドローコールですべてのレンダーターゲットにレンダリングし、複数のドローコールのオーバーヘッドを大幅に節約する。そのようにして、入力202は、テクスチャ206を生成するように、MRTを介してレンダラ204によってレンダリングすることができる。
シェーダ208は、複数のテクスチャ206に少なくとも部分的に基づいて生成することができる。具体的には、いくつかの実施形態では、柔軟なテンソルレイアウトおよびシェーダコード生成が、シェーダ208を生成するために活用されてよい。たとえば、最も単純な形では、形状[H, W, C]のテンソルが概して、サイズ
の4チャネル2Dテクスチャにマップされ得る。ただし、作業負荷とそのメモリアクセスパターンの並列化に依存して、x軸とy軸がスワップされた異なるレイアウトが、単純マッピングよりも効率的な場合がある。様々な使用ケースを最適化できるようにするために、本開示の実施形態は、ユーザによって指定すること、またはリアルタイムで判断することができる柔軟なテンソルレイアウトを容易にする。これは、異なる軸レイアウトを受け入れることができる複数のシェーダ実装によって伴われなければならないので、本開示の実施形態は、シェーダ208を生成するためのアクティブレイアウトに関して、オンザフライのシェーダコード生成をサポートする。シェーダ208は、テクスチャ206を処理して、機械学習出力210を取得することができる。
そのようにして、マルチターゲットレンダリングが、推論用のGPU処理の効率を実質的に増すために使用され得る。説明のための例を与えるために、畳み込みが、32×32×1から32×32×1に対して実施され得る。従来技術を使うと、32×32(1024)個のスレッドが稼動されるはずである。たとえば、ソーステンソルから入力値を読み取ると、スレッドごとに1つのフロート(合計1024フロート)を招き、重みテンソルから重み値を読み取ると、スレッドごとに1つのフロート(合計1024フロート)を招き、出力値を宛先テンソルに書き込むと、スレッドごとに1つのフロート(合計1024フロート)を招く。ただし、本開示の実施形態を使うと、各スレッドが4倍の値を処理する16×16個のスレッド(256)を稼動することが可能である。たとえば、MRTにより、ソーステンソルから入力値を読み取ると、スレッドごとに4つのフロート(合計1024フロート)を招き、重みテンソルから重み値を読み取ると、スレッドごとに1つのフロート(合計256)を招き、出力値を宛先テンソルに書き込むと、スレッドごとに4つのフロート(合計1024フロート)を招く。したがって、1024個の要求を、合計256個の要求に削減することができる。
より詳細には、従来の手法では、テンソルなどの論理オブジェクトが、1対1でGPUオブジェクト(たとえば、テクスチャ、バッファなど)とマップされる。たとえば、形状[H,W,3]をもつ3次元テンソル(たとえば、論理オブジェクト)は、GLテクスチャは4の深度を有するので、サイズ[H,W]のGLテクスチャ(たとえば、webGLなど)として表されてよい。したがって、テクスチャとしてのテンソルの表現は、ハードコードされて実施される。
逆に、本開示の実施形態は、論理およびGPUオブジェクトの間の分離を可能にし、したがって、ハードコードされた1対1方式以外での論理およびGPUオブジェクトのマッピングを容易にする。たとえば、入力テンソル202が、4つのGLテクスチャ206で表されてよい。したがって、論理および物理オブジェクトを分離することによって、シェーダ208の実行は、入力を表す複数のテクスチャを(たとえば、MRTなどを介して)読み取ることができる。レンダリングするとき、コンパイラは、論理オブジェクトの特性を十分意識し、GPUオブジェクト(たとえば、テクスチャなど)に自動的に変形することができる。したがって、ML演算(たとえば、畳み込み)の単一のソース表現は、入力としてのテンソルおよび出力としてのテンソルを使うことができる。ただし、これらのテンソルの記憶/レイアウトは、他の要件(たとえば、性能、メモリ消費、初期化時間、GPU能力など)に依存して後で判断され得る。
例として、機械学習型モデルのための推論時間処理は、アプリケーションプログラミングインターフェースを要求し得る。モデル処理は、input(512×512×3)>conv1>relu1>depth_wise_conv>conv2>relu2>resize>output(512×512×1)という演算を含み得る。入力202は、gpu_texture(512×512×3)(たとえば、幅×高さ×RGBチャネル)であってよい。初期化段階のために、GPUプログラムが、conv1+relu1、depth_wise_conv、conv2+relu2、およびresize用に作成され得る。いくつかの実施形態では、relu1は、メモリ帯域幅を節約するための畳み込みがある単一のパスで実施され得る。
前述の例に従うために、GPUオブジェクトtensor1(256×256×16)、tensor2(256×256×16)、tensor3(128×128×1)、およびtensor4(512×512×1)が作成され得る。いくつかの実施形態では、テンソルはメモリを再利用することができる。入力から始まり、処理は、tensor0(input)>conv1+relu1>tensor1>depth_wise_conv>tensor2>conv2+relu2>tensor3>resize>tensor4(output)のように起こり得る。この例では、tensor1は、conv1+relu1演算においてMRTをフルに使用するために、レイアウト/記憶のために4つのテクスチャを使用することができる。tensor2は、conv2+relu2用に性能を最適化するために、1つのテクスチャを使用することができる。tensor3は、conv2+relu2演算におけるMRT使用を容易にするために、4つのテクスチャを含むことができ、tensor4は、gpu_texture(512×512×1)の出力用の余分なコンバージョンを排除するために、1つのテクスチャを含むことができる。具体的には、tensor2はconv2+relu2演算向けの入力であり、tensor3は前記演算の出力なので、最良性能との組合せは、テンソル表現に使われるテクスチャの数において非対称であり得る。
例として、入力202は、5次元のテンソルであってよい。テクスチャ206は、レンダラ204において入力テンソル202を表すようにレンダリングされる4つのテクスチャを含み得る。
本開示の実施形態は、単に前記実施形態の機能性を説明するために、WebGL APIに関して記載されることに留意されたい。具体的には、画像セグメンテーションが説明されるが、これは、CPU推論は、より高容量の画像セグメンテーションネットワークを高フレームレートで稼動するのに十分でないからであり、したがって、いくつかのAPI(たとえば、WebGL)により利用可能なハードウェアアクセラレータを使って推論が実施されなければならない。デジタル信号プロセッサ(DSP)およびニューラル処理ユニット(NPU)など、より新しいアクセラレータがフラグメント化され、ウェブ規格を有していないが、グラフィックス処理ユニット(GPU)は、広く利用可能であり、ウェブ用の確立したAPIを有し、説明するのに自然な選択となる。
同様に、WebGLは、ウェブブラウザ内で実行されるとともに、すべての主要ウェブブラウザによってサポートされるアプリケーション向けのGPUレンダリング用の標準APIである。TensorFlowおよびONNXランタイムウェブなどのWebGLアクセラレーションをもつウェブ用に、一握りの他のML推論エンジンがあるが、既存ソリューションのWebGLアクセラレーションの性能は期待を満たさず、本来の性能よりも3~4倍遅かった。したがって、本開示の例は、WebGLアクセラレーションにより示される。
本開示のいくつかの態様は、テンソルフローなど、従来のエンジンに基づく。ただし、本開示のモデル(たとえば、ニューラルネットワーク)演算は、WebGLが計算シェーダをサポートしないので、シェーダ(たとえば、フラグメントシェーダ)により実装される。MRTは、これらのタスクを、レンダリングの用語で言い換えるために使用される。MRTは、一度に複数のテクスチャへの画像のレンダリングを単一のドローコマンドで可能にし、複数のドローコールのオーバーヘッドを大幅に削減する。いくつかの実施形態では、MRTを活用するために、TFLite GPUなど、既存のエンジン設計に修正が適用される。第1に、論理テンソルと物理GPUオブジェクトが分離される(たとえば、TFLite GPUでは1:1対応を有する)。次いで、テンソルは、MRTを効率的に利用するために、ハードコードされたレイアウトではなく、柔軟な形状をとることが認められる。
図3は、本開示のいくつかの実施形態による、実装されるデコーダブロックのためのデータフロー図を示す。具体的には、図3は、1×1畳み込み、バッチ正規化、およびアクティブ化レイヤが省かれた、セグメンテーションヘッドのためのデコーダブロックを示す。図示されるように、デコーダブロック300は、低解像度セグメンテーション結果および高解像度スキップ接続をとり、高解像度結果を次のレベルに出力する。次のレベルは、チャネルごとの注意を通して、スキップ接続から特徴を抽出し、それらを、前のレベルからのセグメンテーション結果に加える。強化されたセグメンテーションは、いくつかの畳み込みレイヤでさらに改良される。前景/背景セグメンテーションのために、ヘッドは、1チャネルマスクを出力する必要のみがある。デコーダブロック300を含むセグメンテーションヘッドの有効性を示すために、2つのモデルが、同じバックボーン(MobileNetV3-Small)およびトレーニング構成であるが、異なるヘッド、すなわち、LR-ASPPおよび図3に示されるヘッドで、トレーニングされる。以下のテーブルに示されるように、図3のセグメンテーションヘッドは、交差対合併比(IOU)および境界Fスコアの品質メトリックを大幅に強め、8%だけ多いパラメータを加える。
図4Aは、本開示のいくつかの実施形態による、アプリケーションプログラミングインターフェースの様々な実装形態における高品質セグメンテーションのための推論レイテンシについての結果を示す。具体的には、本開示の実施形態を評価するために、ウェブベースのテレビ会議およびAR効果などのブラウザ内アプリケーションに焦点が置かれ、ここで、MLソリューションは、デバイス上のGPUへの直接アクセスなしのサンドボックス環境において稼動している。図4Aは、本開示の実施形態(たとえば、MLドリフト)を使用する推論時間を、TensorFlow.js(TF.js)WebAssembly(Wasm)およびWebGLなど、他の推論エンジンと対比して示す。Wasmバックエンドは、SIMD命令によって加速され、TF.js WebGLバックエンドは、モデル推論を加速するのにGPUを使用し、同様の実装が、匹敵する性能をもつ他のエンジンにおいて利用可能である。
図4Bは、本開示のいくつかの実施形態による、高品質セグメンテーションモデルの評価についての結果を示す。具体的には、本開示の実施形態を使用すると、HQモデルは、ブラウザの中で、より大きい容量および画像サイズで稼動され得る。評価のために、セグメンテーションモデルの2つのグループ、すなわちHQ-MS、HQ-ML、およびHQ-E0~E4が、本開示のいくつかの実施形態に従ってトレーニングされる。最初の2つは、MobileNetV3の小型および大型バージョンに基づく。残りの5つは、モデルサイズが増大するEfficientNet-Liteに基づく。すべてのモデルが、我々のセグメンテーションヘッドを装備し、同じデータおよびハイパーパラメータでトレーニングされる。入力画像サイズは、512×288である。
図3に示されるように、HQ-MSモデルは、匹敵するモデルサイズをもつHQ-E0よりも高品質を示す。このことは、小型モデル用のSEの有効性を実証する。モデルサイズが増大すると、HQモデルの2つのグループは、同様の値の品質メトリックを示す。匹敵する推論時間のモデルに対して、HQ-Eモデルは、一貫して、HQ-Mモデルよりも、顕著な余裕で高品質を有する。これは、スクイーズおよび励起レイヤにおける大域プーリングに起因し、GPUアクセラレーションにとって難題である。
図5Aは、本開示のいくつかの実施形態に従って処理される2つのモデルを使用する画像セグメンテーション結果を示す。特に、図5Aは、従来技術と比較した画像セグメンテーションの改善を示す。たとえば、画像502は、特定の入力サイズ(たとえば、512×288ピクセルなど)の画像である。画像セグメンテーション結果504は、従来のCPUベースの画像セグメンテーションモデルの出力である。図示されるように、セグメンテーション結果は、細部の実質的損失を実証する。画像セグメンテーション結果506および508は、本開示の2つの特定の実装形態に従って構築された2つの機械学習型モデルの出力である。図示されるように、従来のモデルを使って生成された画像セグメンテーション結果504とは異なり、画像セグメンテーション結果506および508は、実質的により多くの細部を保持する。
図5Bは、本開示のいくつかの実施形態に従って処理される2つのモデルを使用する高品質セグメンテーション結果を示す。
図6は、本開示の例示的な実施形態に従って実施する例示的な方法のフローチャート図を示す。図6は、説明および考察のために、具体的順序で実施される動作を示すが、本開示の方法は、具体的に示す順序または並びには限定されない。方法600の様々な動作は、本開示の範囲から逸脱することなく、様々な方法で省略され、並べ替えられ、組み合わされ、かつ/または適応されてもよい。
動作602において、コンピューティングシステムは、グラフィックス処理ユニット(GPU)を含み得る。コンピューティングシステムは、機械学習型モデルへの入力からの複数のテクスチャを同時にレンダリングすることができる。たとえば、コンピューティングシステムは、WebGLアプリケーションプログラミングインターフェース(API)のMulti-Render Target(MRT)プロセスを介してテクスチャをレンダリングすることができる。機械学習型モデルは、WebGL APIを使うアプリケーションに関連付けられ得る。たとえば、アプリケーションは、WebGL APIを使ってテクスチャをレンダリングするゲーム用アプリケーションであってよく、機械学習型モデルは、ゲーム用アプリケーションに関連付けられたモデルであってよい。いくつかの実装形態では、アプリケーションは、ウェブブラウザの中で実行され得る。追加または代替として、いくつかの実装形態では、アプリケーションはテレビ会議アプリケーションであってよい。
いくつかの実装形態では、複数のテクスチャは、GPUを使って、コンピューティングシステムによって同時にレンダリングされ得る。たとえば、機械学習型モデルへの入力は画像であってよい。コンピューティングシステムは、画像を表すテクスチャを同時にレンダリングするために、GPUのレンダリングソフトウェアおよび/またはハードウェアを使用することができる。言い換えると、コンピューティングシステムは、いくつかの実装形態では、機械学習型モデルを表す複数のテクスチャ(たとえば、画像入力または入力画像から導出されたテンソルをまとめて表す複数のテクスチャ、など)を同時にレンダリングすることができる。
より詳細には、MRTプロセスは、一度に複数のテクスチャへの、画像などの入力のレンダリングを可能にするWebGL APIの特徴である。これは従来、レンダリングに使われているが、機械学習型推論に使うこともできる。たとえば、画像セグメンテーションタスク用に、複数のテクスチャが、セグメント化されるべき画像から同時にレンダリングされ得る。テクスチャは次いで、シェーダ(たとえば、フラグメントシェーダ)によって表される機械学習型モデルオブジェクトで処理され得る。こうすることにより、中央プロセッサではなく、GPUの使用が可能になり、機械学習型モデルの性能、効率、および正確さを実質的に増すように、並列処理も容易になる。
いくつかの実装形態では、複数のテクスチャを同時にレンダリングするのに先立って、コンピューティングシステムは、機械学習型モデルへの入力を取得することができる。機械学習型モデルは、入力に関連付けられたタスクを実施するようにトレーニングされ得る。たとえば、機械学習型モデルへの入力は、画像データであるか、またはそうでなければ含んでよく、機械学習型モデルが実施するようにトレーニングされるタスクは、画像セグメンテーションタスクであってよい。
動作604において、コンピューティングシステムは、複数のテクスチャのレイアウトに少なくとも部分的に基づいて、複数のシェーダを生成することができる。複数のシェーダの各々は、機械学習型モデルの複数のオペレータのうちの少なくとも1つのオペレータに対応し得る。たとえば、複数のシェーダは複数のフラグメントシェーダであってよい。
いくつかの実装形態では、複数のシェーダを生成するのに先立って、コンピューティングシステムは、GPUの利用可能な処理能力を示す複数のGPUオブジェクトを判断することができる。コンピューティングシステムは、複数のGPUオブジェクトに少なくとも部分的に基づいて、複数のテクスチャのレイアウトを判断することができる。言い換えると、複数のテクスチャのレイアウトは、GPUの処理能力に基づいて判断され得る。いくつかの実装形態では、テクスチャのレイアウトは、ユーザによって指定され得る。
動作606において、コンピューティングシステムは、複数のシェーダで複数のテクスチャを処理して、機械学習型モデル用の機械学習出力を取得することができる。いくつかの実装形態では、シェーダを処理するために、コンピューティングシステムは、機械学習出力を中間表現から抽出することができる。たとえば、機械学習出力は、機械学習出力を表す中間テクスチャ出力であるか、またはそうでなければ含み得る。コンピューティングシステムは、中間テクスチャ出力から機械学習出力を抽出することができる。
追加の開示
本明細書で説明する技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステム、ならびに取られるアクション、およびそのようなシステムとの間で送られる情報を参照する。コンピュータベースのシステムの固有の柔軟性は、構成要素の間でのタスクおよび機能の多種多様な可能な構成、組合せ、および分割を可能にする。たとえば、本明細書で説明するプロセスは、単一のデバイスもしくは構成要素、または組合せにおいて働く複数のデバイスもしくは構成要素を使用して実装され得る。データベースおよびアプリケーションは、単一のシステム上で実装されるか、または複数のシステムにわたって分散され得る。分散構成要素は、順次または並行して動作することができる。
本主題は、その様々な特定の例示的な実施形態に関して詳細に説明されてきたが、各例は、本開示の限定ではなく、説明として与えられる。当業者は、上記を理解すると、そのような実施形態の改変、変形、および均等物を容易に作り出すことができる。したがって、本開示は、当業者に容易に明らかになるように、本主題に対するそのような変更、変形、および/または追加の包含を排除しない。たとえば、ある実施形態の一部として例示または説明する特徴は、またさらなる実施形態を生じるために、別の実施形態とともに使用され得る。したがって、本開示がそのような改変、変形、および均等物をカバーすることが意図されている。
10 コンピューティングデバイス
50 コンピューティングデバイス
100 コンピューティングシステム
102 ユーザコンピューティングデバイス
112 プロセッサ
114 メモリ、コンピューティングデバイスメモリ
120 モデル、機械学習型モデル
122 ユーザ入力構成要素
130 サーバコンピューティングシステム
132 プロセッサ
134 メモリ
140 モデル、機械学習型モデル
150 トレーニング用コンピューティングシステム
152 プロセッサ
154 メモリ
160 モデル訓練器
180 ネットワーク
204 レンダラ
208 シェーダ

Claims (20)

  1. 機械学習推論タスク用にグラフィックスプロセッサの使用を最適化するためのコンピューティングシステムであって、
    グラフィックス処理ユニット(GPU)を備える1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムに動作を実施させる命令をまとめて記憶する1つまたは複数の非一時的コンピュータ可読媒体と
    を備え、前記動作は、
    機械学習型モデルへの入力からの複数のテクスチャを同時にレンダリングすることと、
    前記複数のテクスチャのレイアウトに少なくとも部分的に基づいて、複数のシェーダを生成することであって、前記複数のシェーダの各々は、前記機械学習型モデルの複数のオペレータのうちの少なくとも1つのオペレータに対応する、生成することと、
    前記GPUを使って、前記複数のシェーダで前記複数のテクスチャを処理して、前記機械学習型モデル用の機械学習出力を取得することと
    を含む、コンピューティングシステム。
  2. 前記複数のテクスチャを同時にレンダリングすることは、WebGLアプリケーションプログラミングインターフェースのMulti-Render Targetプロセスを介して前記コンピューティングシステムによって、前記機械学習型モデルへの前記入力からの前記複数のテクスチャを同時にレンダリングすることを含む、請求項1に記載のコンピューティングシステム。
  3. 前記機械学習型モデルは、前記WebGLアプリケーションプログラミングインターフェースを使用するアプリケーションに関連付けられる、請求項2に記載のコンピューティングシステム。
  4. 前記アプリケーションはウェブブラウザの中で実行される、請求項3に記載のコンピューティングシステム。
  5. 前記アプリケーションはテレビ会議アプリケーションである、請求項4に記載のコンピューティングシステム。
  6. 前記複数のテクスチャは、前記GPUを使って同時にレンダリングされる、請求項1に記載のコンピューティングシステム。
  7. 前記複数のテクスチャは前記機械学習型モデルへの前記入力を表す、請求項1に記載のコンピューティングシステム。
  8. 前記複数のシェーダを生成するのに先立って、前記動作は、
    前記コンピューティングシステムによって、前記GPUの利用可能な処理能力を示す複数のGPUオブジェクトを判断することと、
    前記複数のGPUオブジェクトに少なくとも部分的に基づいて、前記コンピューティングシステムによって、前記複数のテクスチャの前記レイアウトを判断することと
    を含む、請求項1に記載のコンピューティングシステム。
  9. 前記複数のテクスチャの前記レイアウトはユーザによって指定される、請求項1に記載のコンピューティングシステム。
  10. 前記複数のシェーダは複数のフラグメントシェーダを含む、請求項1に記載のコンピューティングシステム。
  11. 前記機械学習型モデルへの前記入力は、
    画像、または
    前記画像から導出されたテンソル
    を含む、請求項1に記載のコンピューティングシステム。
  12. 前記機械学習出力は、前記機械学習出力を表す中間テクスチャ出力を含み、
    前記複数のシェーダを処理することは、前記コンピューティングシステムによって、前記中間テクスチャ出力から前記機械学習出力を抽出することをさらに含む、請求項1に記載のコンピューティングシステム。
  13. 前記複数のテクスチャを同時にレンダリングするのに先立って、前記動作は、
    前記コンピューティングシステムによって、前記機械学習型モデルへの前記入力を取得することを含み、
    前記機械学習型モデルは、前記入力に関連付けられたタスクを実施するようにトレーニングされる、請求項12に記載のコンピューティングシステム。
  14. 前記機械学習型モデルへの前記入力は画像データを含み、
    前記機械学習型モデルが実施するようにトレーニングされる前記タスクは、画像セグメンテーションタスクを含む、請求項13に記載のコンピューティングシステム。
  15. 機械学習推論タスク用にグラフィックスプロセッサの使用を最適化するためのコンピュータ実装方法であって、
    1つまたは複数のコンピューティングデバイスを備えるコンピューティングシステムによって、機械学習型モデルへの入力からの複数のテクスチャを同時にレンダリングするステップと、
    前記コンピューティングシステムによって、前記複数のテクスチャのレイアウトに少なくとも部分的に基づいて複数のシェーダを生成するステップであって、前記複数のシェーダの各々は、前記機械学習型モデルの複数のオペレータのうちの少なくとも1つのオペレータに対応する、ステップと、
    グラフィックス処理ユニット(GPU)を使う前記コンピューティングシステムによって、前記複数のシェーダで前記複数のテクスチャを処理して、前記機械学習型モデル用の機械学習出力を取得するステップと
    を含む、方法。
  16. 前記複数のテクスチャを同時にレンダリングするステップは、WebGLアプリケーションプログラミングインターフェースのMulti-Render Targetプロセスを介して前記コンピューティングシステムによって、前記機械学習型モデルへの前記入力からの前記複数のテクスチャを同時にレンダリングするステップを含む、請求項15に記載のコンピュータ実装方法。
  17. 前記機械学習型モデルは、前記WebGLアプリケーションプログラミングインターフェースを使用するアプリケーションに関連付けられる、請求項16に記載のコンピュータ実装方法。
  18. 前記アプリケーションはウェブブラウザの中で実行される、請求項17に記載のコンピュータ実装方法。
  19. 前記アプリケーションはテレビ会議アプリケーションである、請求項18に記載のコンピュータ実装方法。
  20. 命令をまとめて記憶する1つまたは複数の非一時的コンピュータ可読媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに動作を実施させ、前記動作は、
    機械学習型モデルへの入力からの複数のテクスチャを同時にレンダリングすることと、
    前記複数のテクスチャのレイアウトに少なくとも部分的に基づいて、複数のシェーダを生成することであって、前記複数のシェーダの各々は、前記機械学習型モデルの複数のオペレータのうちの少なくとも1つのオペレータに対応する、生成することと、
    グラフィックス処理ユニット(GPU)を使って、前記複数のシェーダで前記複数のテクスチャを処理して、前記機械学習型モデル用の機械学習出力を取得することと
    を含む、非一時的コンピュータ可読媒体。
JP2022210466A 2022-04-15 2022-12-27 機械学習推論用のグラフィックス処理の最適化のためのシステムおよび方法 Pending JP2023157833A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202263331593P 2022-04-15 2022-04-15
US63/331,593 2022-04-15

Publications (1)

Publication Number Publication Date
JP2023157833A true JP2023157833A (ja) 2023-10-26

Family

ID=84888566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022210466A Pending JP2023157833A (ja) 2022-04-15 2022-12-27 機械学習推論用のグラフィックス処理の最適化のためのシステムおよび方法

Country Status (5)

Country Link
US (1) US20230334747A1 (ja)
EP (1) EP4261769A1 (ja)
JP (1) JP2023157833A (ja)
KR (1) KR20230148088A (ja)
CN (1) CN115829824A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116739090B (zh) * 2023-05-12 2023-11-28 北京大学 基于Web浏览器的深度神经网络推理度量方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10339443B1 (en) * 2017-02-24 2019-07-02 Gopro, Inc. Systems and methods for processing convolutional neural network operations using textures

Also Published As

Publication number Publication date
EP4261769A1 (en) 2023-10-18
KR20230148088A (ko) 2023-10-24
CN115829824A (zh) 2023-03-21
US20230334747A1 (en) 2023-10-19

Similar Documents

Publication Publication Date Title
US11682199B2 (en) Style-based architecture for generative neural networks
US10922793B2 (en) Guided hallucination for missing image content using a neural network
US11580395B2 (en) Generative adversarial neural network assisted video reconstruction
US10169084B2 (en) Deep learning via dynamic root solvers
US10970816B2 (en) Motion blur and depth of field reconstruction through temporally stable neural networks
CN105404889B (zh) 用于在图形处理单元(gpu)上实现最近邻搜索的方法和装置
US11450096B2 (en) Systems and methods for progressive learning for machine-learned models to optimize training speed
US11734890B2 (en) Three-dimensional model recovery from two-dimensional images
US20210287096A1 (en) Microtraining for iterative few-shot refinement of a neural network
US11954830B2 (en) High dynamic range support for legacy applications
US11615602B2 (en) Appearance-driven automatic three-dimensional modeling
US11475549B1 (en) High dynamic range image generation from tone mapped standard dynamic range images
JP2020102195A (ja) グラフィックスフレームの効率的な分散型ノイズ除去のための装置及び方法
CN113762461A (zh) 使用可逆增强算子采用有限数据训练神经网络
JP2023157833A (ja) 機械学習推論用のグラフィックス処理の最適化のためのシステムおよび方法
CN114529443A (zh) 以目标采样率的自适应采样
US20240127067A1 (en) Sharpness-aware minimization for robustness in sparse neural networks
CN113408694A (zh) 用于生成式神经网络的权重解调
JP7325775B2 (ja) 画像処理システム、方法、及びプログラム
US20230229916A1 (en) Scalable tensor network contraction using reinforcement learning
US20240046422A1 (en) Pseudoinverse guidance for data restoration with diffusion models
US20240135630A1 (en) Image synthesis using diffusion models created from single or multiple view images
US20240112308A1 (en) Joint neural denoising of surfaces and volumes
US20230360278A1 (en) Table dictionaries for compressing neural graphics primitives
WO2022251602A1 (en) Systems and methods for machine-learned models having convolution and attention

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240415