IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧

特許7488322アクセス方法、装置、電子機器及びコンピュータ記憶媒体
<>
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図1
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図2
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図3
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図4A
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図4B
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図4C
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図5
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図6
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図7
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図8
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図9
  • 特許-アクセス方法、装置、電子機器及びコンピュータ記憶媒体 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-13
(45)【発行日】2024-05-21
(54)【発明の名称】アクセス方法、装置、電子機器及びコンピュータ記憶媒体
(51)【国際特許分類】
   G06N 3/10 20060101AFI20240514BHJP
   G06N 3/04 20230101ALI20240514BHJP
【FI】
G06N3/10
G06N3/04 100
【請求項の数】 19
(21)【出願番号】P 2022195289
(22)【出願日】2022-12-07
(65)【公開番号】P2023036634
(43)【公開日】2023-03-14
【審査請求日】2022-12-07
(31)【優先権主張番号】202111506921.1
(32)【優先日】2021-12-10
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】100118913
【弁理士】
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【弁理士】
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100201466
【弁理士】
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】マ, ヤンジュン
(72)【発明者】
【氏名】ワン, ハイフェン
(72)【発明者】
【氏名】フ, シャオグァン
(72)【発明者】
【氏名】ユ, ディアンハイ
(72)【発明者】
【氏名】ウ, ティアン
(72)【発明者】
【氏名】リ, キ
【審査官】青木 重徳
(56)【参考文献】
【文献】特表2021-528740(JP,A)
【文献】米国特許出願公開第2015/0074634(US,A1)
【文献】米国特許出願公開第2019/0392296(US,A1)
【文献】欧州特許出願公開第03836030(EP,A1)
【文献】中国特許出願公開第112529206(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/10
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
アクセス装置によって実行されるアクセス方法であって、
目標モデルにおける演算子表現に基づいて呼び出しアクセス機器の計算グラフを決定するステップと、
前記アクセス機器の情報に基づいて前記計算グラフを最適化するステップと、
前記アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェース及び最適化された計算グラフに基づいて、前記アクセス機器に対して前記目標モデルの実行に関する操作を実行するステップであって、前記アクセス機器が前記目標モデルのモデルフレームワークにアクセスするインタフェースは、前記アクセス機器のツールキットデータによって決定されるステップと、
を含むアクセス方法。
【請求項2】
前記ツールキットデータに基づいて、前記アクセス機器のタイプを決定するステップと、
前記アクセス機器のタイプに基づいて、前記アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェースを決定するステップと、
を含む請求項1に記載の方法。
【請求項3】
前記インタフェースが、前記アクセス機器の共通性に基づいて、前記アクセス機器の前記モデルフレームワークにおける対応する駆動及びランタイムインタフェースを抽象化及びパッケージ化して生成される請求項2に記載の方法。
【請求項4】
前記アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェース及び前記計算グラフに基づいて、前記アクセス機器に対して前記目標モデルの実行に関する操作を実行するステップが、
前記インタフェースに基づいて、前記アクセス機器のアクセス方式を決定するステップと、
前記アクセス方式及び前記計算グラフに基づいて、前記アクセス機器を呼び出すための指令データを生成するステップと、
前記指令データを実行し、前記実行に関する操作を実現するステップと、
を含む請求項1に記載の方法。
【請求項5】
前記アクセス方式が演算子アクセスである場合、前記計算グラフが前記目標モデルのモデルフレームワークの第1の計算グラフを含み、前記アクセス方式及び前記計算グラフに基づいて、前記アクセス機器を呼び出すための指令データを生成するステップが、
前記第1の計算グラフをフレームワーク演算子にマッピングするステップと、
前記フレームワーク演算子及び前記アクセス機器の機器演算子に基づいて、前記アクセス機器の指令データを生成するステップと、
を含む請求項4に記載の方法。
【請求項6】
前記アクセス方式が計算グラフアクセスである場合、前記計算グラフが前記目標モデルのモデルフレームワークの第1の計算グラフ及び前記アクセス機器の第2の計算グラフを含み、前記アクセス方式及び前記計算グラフに基づいて、前記アクセス機器を呼び出すための指令データを生成するステップが、
前記第1の計算グラフ及び予め設定された演算子中間表現定義に基づいて、グラフ中間表現を生成するステップと、
前記グラフ中間表現及び前記第2の計算グラフに基づいて、前記指令データを生成するステップと、
を含む請求項4に記載の方法。
【請求項7】
前記アクセス機器の情報に基づいて、前記計算グラフを最適化するステップが、
アクセス機器の情報に基づいて、前記計算グラフに対して実行された最適化操作及び最適化された計算グラフユニットを決定するステップと、
前記最適化された計算グラフユニットに対して前記最適化された操作を実行するステップと、
を含む請求項1に記載の方法。
【請求項8】
前記目標モデルのモデル部分にアクセスするステップと、
前記モデル部分及びモデルフレームワークに基づいて、前記目標モデルを生成するステップと、
を含む請求項1に記載の方法。
【請求項9】
目標モデルにおける演算子表現に基づいて呼び出しアクセス機器の計算グラフを決定するように構成される計算グラフ決定モジュールと、
前記アクセス機器の情報に基づいて前記計算グラフを最適化するように構成されるグラフ最適化モジュールと、
前記アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェース及び最適化された計算グラフに基づいて、前記アクセス機器に対して前記目標モデルの実行に関する操作を実行するように構成される実行モジュールであって、前記アクセス機器が前記目標モデルのモデルフレームワークにアクセスするインタフェースは、前記アクセス機器のツールキットデータによって決定される実行モジュールと、
を備えるアクセス装置。
【請求項10】
前記ツールキットデータに基づいて前記アクセス機器のタイプを決定するように構成されるタイプ決定モジュールと、
前記アクセス機器のタイプに基づいて、前記アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェースを決定するように構成される汎用インタフェースモジュールと、
を備える請求項9に記載の装置。
【請求項11】
前記インタフェースが、前記アクセス機器の共通性に基づいて、前記アクセス機器の前記モデルフレームワークにおける対応する駆動及びランタイムインタフェースを抽象化及びパッケージ化して生成される請求項10に記載の装置。
【請求項12】
前記実行モジュールが、
前記インタフェースに基づいて、前記アクセス機器のアクセス方式を決定するように構成されるアクセス方式ユニットと、
前記アクセス方式及び前記計算グラフに基づいて、前記アクセス機器を呼び出すための指令データを生成するように構成される指令データユニットと、
前記指令データを実行し、前記実行に関する操作を実現するように構成される実行実現ユニットと、
を備える請求項9に記載の装置。
【請求項13】
前記アクセス方式が演算子アクセスである場合、前記計算グラフが前記目標モデルのモデルフレームワークの第1の計算グラフを含み、前記指令データユニットが、
前記第1の計算グラフをフレームワーク演算子にマッピングし、
前記フレームワーク演算子及び前記アクセス機器の機器演算子に基づいて、前記アクセス機器の指令データを生成するように構成される請求項12に記載の装置。
【請求項14】
前記アクセス方式が計算グラフアクセスである場合、前記計算グラフが前記目標モデルのモデルフレームワークの第1の計算グラフ及び前記アクセス機器の第2の計算グラフを含み、前記指令データユニットが、
前記第1の計算グラフ及び予め設定された演算子中間表現定義に基づいて、グラフ中間表現を生成し、
前記グラフ中間表現及び前記第2の計算グラフに基づいて、前記指令データを生成するように構成される請求項12に記載の装置。
【請求項15】
前記グラフ最適化モジュールが、
アクセス機器の情報に基づいて、前記計算グラフに対して実行された最適化操作及び最適化された計算グラフユニットを決定するように構成される決定ユニットと、
前記最適化された計算グラフユニットに対して前記最適化された操作を実行するように構成される実行ユニットと、
を含む請求項9に記載の装置。
【請求項16】
前記目標モデルのモデル部分にアクセスするように構成されるアクセスモジュールと、
前記モデル部分及びモデルフレームワークに基づいて、前記目標モデルを生成するように構成されるモデル生成モジュールと、
を備える請求項9に記載の装置。
【請求項17】
少なくとも1つのプロセッサと、
該少なくとも1つのプロセッサに通信可能に接続されるメモリと、
を備え、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な指令が記憶されており、前記指令が、前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサが請求項1から8のいずれか一項に記載の方法を実行できる電子機器。
【請求項18】
コンピュータ指令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ指令が、コンピュータに請求項1から8のいずれか一項に記載の方法を実行させることに用いられる非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項19】
プロセッサによって実行される場合、請求項1から8のいずれか一項に記載の方法のステップが実現されるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータ技術分野に関し、特に、チップ、深層学習などの人工知能技術分野に関する。
【背景技術】
【0002】
コンピュータ技術の発展に伴って、深層学習などの人工知能技術も急速に発展している。深層学習モデル又は機械学習モデルなどの人工知能分野のモデルは、人工知能技術において中心的な位置にある。
【0003】
モデルの実行は、一般的にハードウェアのサポートが必要であるが、ハードウェア機器の差異によってモデルの実行にある程度の適合問題が存在する。
【発明の概要】
【0004】
本開示は、アクセス方法、装置、電子機器及びコンピュータ記憶媒体を提供する。
【0005】
本開示の一態様によれば、アクセス方法が提供され、前記アクセス方法は、目標モデルにおける演算子表現に基づいて呼び出しアクセス機器の計算グラフを決定するステップと、アクセス機器の情報に基づいて計算グラフを最適化するステップと、アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェース及び計算グラフに基づいてアクセス機器に対して目標モデルの実行に関する操作を実行するステップであって、アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェースは、アクセス機器のツールキットデータによって決定されるステップと、を含む。
【0006】
本開示の他の態様によれば、アクセス装置が提供され、前記アクセス装置は、目標モデルにおける演算子表現に基づいて呼び出しアクセス機器の計算グラフを決定するように構成される計算グラフ決定モジュールと、アクセス機器の情報に基づいて計算グラフを最適化するように構成されるグラフ最適化モジュールと、アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェース及び計算グラフに基づいてアクセス機器に対して目標モデルの実行に関する操作を実行するように構成される実行モジュールであって、アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェースは、アクセス機器のツールキットデータによって決定される実行モジュールと、を備える。
【0007】
本開示の他の態様によれば、電子機器が提供され、前記電子機器は、少なくとも1つのプロセッサと、当該少なくとも1つのプロセッサに通信可能に接続されるメモリと、を備え、当該メモリには、当該少なくとも1つのプロセッサによって実行可能な指令が記憶されており、当該指令は、当該少なくとも1つのプロセッサによって実行される場合、当該少なくとも1つのプロセッサが本開示のいずれかの実施例における方法を実行できる。
【0008】
本開示の他の態様によれば、コンピュータ指令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体が提供され、当該コンピュータ指令は、コンピュータに本開示のいずれかの実施例における方法を実行させることに用いられる。
【0009】
本開示の他の態様によれば、コンピュータプログラムが提供され、当該コンピュータプログラムがプロセッサによって実行される場合、本開示のいずれかの実施例における方法が実現される。
【0010】
本開示の技術によれば、目標モデルにおける演算子表現、目標モデルのアクセス機器の状況に基づいて目標モジュールの実行に関する計算グラフを最適化することができ、計算グラフの最適化及びインタフェースへのアクセスを別々に実行することにより、インタフェースにアクセスする時にアクセスに関する改善を行うだけでよく、改善されたインタフェースがより多く異なるアクセス機器に適合するようになり、異なるアクセス機器に適合する難度及びデータ変更量を低減することができる。
【0011】
なお、本部分に記載された内容は、本開示の実施例の肝心または重要な特徴を限定することを意図するものではなく、本開示の範囲を限定するものでもない。本開示の他の特徴は、以下の説明によって容易に理解されやすくなる。
【図面の簡単な説明】
【0012】
図面は、本技術案をよりよく理解するために使用され、本開示を限定するものではない。
図1】本開示の一実施例に係るアクセス方法の概略図である。
図2】本開示の他の実施例に係るアクセス方法の概略図である。
図3】本開示の別の実施例に係るアクセス方法の概略図である。
図4A】本開示の一実施例に係るアクセス方法のフレームワークの概略図である。
図4B】本開示の一実施例に係る演算子アクセスのアクセス方法の概略フローチャートである。
図4C】本開示の一実施例に係る計算グラフアクセスのアクセス方法の概略フローチャートである。
図5】本開示の一実施例に係るアクセス装置の概略図である。
図6】本開示の他の実施例に係るアクセス装置の概略図である。
図7】本開示の別の実施例に係るアクセス装置の概略図である。
図8】本開示の別の実施例に係るアクセス装置の概略図である。
図9】本開示の別の実施例に係るアクセス装置の概略図である。
図10】本開示の実施例のアクセス方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【0013】
以下、図面を組み合わせて本開示の例示的な実施例を説明し、理解を容易にするためにその中には本開示の実施例の様々な詳細事項が含まれ、それらは単なる例示的なものと見なされるべきである。したがって、当業者は、本開示の範囲及び精神から逸脱することなく、ここで説明される実施例に対して様々な変更と修正を行うことができる。同様に、わかりやすくかつ簡潔にするために、以下の説明では、周知の機能及び構造の説明を省略する。
【0014】
本開示の実施例によれば、アクセス方法が提供され、図1は、本開示の実施例に係るアクセス方法の概略フローチャートであり、当該方法は、モデルのアクセス機器の実行に適用することができ、例えば、当該装置は、端末、サーバ又は他の処理機器に配置されて実行する場合、アクセス機器の計算グラフの決定、計算グラフの最適化などのステップを実行することができる。ここで、端末は、ユーザ機器(UE、User Equipment)、モバイル機器、携帯電話、コードレス電話、PDA(Personal Digital Assistant)、ハンドヘルド機器、計算機器、車載機器、ウェアラブルデバイスなどであってもよい。いくつかの可能な実現形態では、当該方法は、プロセッサがメモリに記憶されたコンピュータ読み取り可能な指令を呼び出すことによって実現することもできる。図1に示すように、アクセス方法は、以下のステップを含む。
【0015】
ステップS11において、目標モデルにおける演算子表現に基づいて呼び出しアクセス機器の計算グラフを決定し、ステップS12において、アクセス機器の情報に基づいて計算グラフを最適化し、ステップS13において、アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェース及び計算グラフに基づいてアクセス機器に対して目標モデルの実行に関する操作を実行し、アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェースは、アクセス機器のツールキットデータによって決定される。
【0016】
本実施例において、目標モデルは、深層学習モデル、機械学習モデルなど、アクセス機器で実行できる任意のモデルであってもよく、データ処理又はデータ伝送などの操作を実行するために使用することができる。
【0017】
本実施例におけるアクセス機器は、端末、サーバなど、チップを利用して実行可能な任意の機器であってもよい。アクセス機器は、CUDA(Compute Unified Device Architecture、コンピュータ統合デバイスアーキテクチャ)などのチップであってもよい。
【0018】
例えば、目標モデルは、画像処理のためのモデル、テキスト処理のためのモデル、ビデオデータ又は音声データ処理のためのモデル、天気予測のためのモデル、交通データ予測のためのモデル、自然環境データ予測のためのモデル、人間行動データ予測のためのモデルなどであってもよい。
【0019】
目標モデルは、モデルフレームワーク及びモデル部分を含むことができる。モデルフレームワークは、深層学習フレームワークであってもよく、深層学習の初期段階では、各深層学習の研究者は、大量の重複コードをコーディングする必要がある。仕事の効率を向上させるために、すべての研究者が同時に使用できるようにこれらのコードを1つのフレームワークにして開示する研究者がいる。そして、様々な異なるフレームワークが出てきた。時間の経過につれて、最も使いやすいいくつかのフレームワークが多くの人に使われて流行してきたが、これらの主流のフレームワークを深層学習フレームワークと呼ぶことができる。
【0020】
深層学習フレームワーク(Deep Learning Framework)は、人工知能技術体系の重要な位置にあり、スマートチップ(AI Chip)及び大型コンピュータシステム資源を管理し、様々な業務モデル及び業界適用を引き受ける。同時に世界のスマートチップ産業が盛んに発展し、スマートチップ製品は、現在爆発的な成長段階にある。より多くのハードウェアを適合して基礎ソフト・ハードウェア機器の不一致による高額な研究開発コストを回避することは、深層学習フレームワークが解決すべき中心的な問題である。
【0021】
深層学習フレームワークが多種類の異種ハードウェアに適合する主な難点は、異なるスマートチップ自体の指令セットIP(IPコア)及びチップアーキテクチャでの異なる設計により、異なるハードウェアプラットフォームが外部に提供するSDKにある程度の差異が存在することである。一般的に、1つのスマートチップのSDKは、最も基礎的な機器駆動及びランタイムモジュール、深層学習タスクに対応するDNN演算子ライブラリ、BLAS数学ライブラリ(基礎線形代数サブプログラム)、通信ライブラリなどのモジュールに分けることができ、グラフコンパイルモジュールは、深層学習モデルの構築、最適化及び実行をサポートする(一部のハードウェアサポートは、通常、ニューラルネットワークコンパイラ又はハードウェアプラットフォーム自身のグラフコンパイルエンジンを介して行われる)。深層学習フレームワークに低コストで多種類の異種ハードウェアにアクセス能力を持たせるために、フレームワークは、基礎となるハードウェア(Software Development Kit、ソフトウェア開発キット)の不一致による高額な開発コストを回避するように汎用的なハードウェアアクセス設計を備える必要がある。同時に、深層学習フレームワークのハードウェアでの実行効率を最適化するために、フレームワークは、ハードウェア機器が自身の特徴に基づいて調整するためのカスタマイズ可能なグラフ最適化ポリシーを備える必要があり、フレームワークがハードウェア自身の性能のメリットを十分に発揮できることになる。
【0022】
具体的には、深層学習フレームワークは、例えば、PaddlePaddle(パドル)、Tensorflow、Caffe(Convolutional Architecture for Fast Feature Embedding、クイックフィーチャー埋め込み用の畳み込みフレームワーク)、Theano、MXNet、Torch、PyTorchなどの深層学習フレームワークであってもよい。
【0023】
他の可能な実現形態において、モデルフレームワークは、機械学習フレームワークであってもよい。
【0024】
目標モデルにおける演算子表現は、目標モデルのモデルフレームワークの演算子表現であってもよい。
【0025】
アクセス機器の情報は、アクセス機器のタイプ、実行可能な最適化操作などの情報であってもよい。最適化操作は、重複する操作の統合、不要な操作の削除、デフォルトの操作の追加、変更が必要な内容又はパラメータの変更などであってもよい。アクセス機器の情報に基づいて計算グラフを最適化することは、アクセス機器の情報に基づいて計算グラフに対して実行可能な最適化操作、例えば、計算グラフにおけるN個のプラス操作に対して統合を行う最適化操作が実行できるか否かを決定することであってもよい。
【0026】
本実施例において、アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェース及び計算グラフに基づいてアクセス機器に対して目標モデルの実行に関する操作を実行するステップは、目標モデルのモデルフレームワークのインタフェースに基づいてアクセス機器の実行データを取得し、アクセス機器の実行データ及び目標モデル変換によって得られた計算グラフに基づいてアクセス機器に対して操作を実行し、目標モデルのアクセス機器での実行を実現するステップを含むことができる。
【0027】
本実施例において、アクセス機器は、様々な種類が存在することができる。異なるアクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェースが異なる場合があり、アクセス機器のタイプによってモデルフレームワークのインタフェースを決定し、インタフェース機器のツールキットデータに基づいてアクセス機器のタイプを決定することができる。
【0028】
アクセス機器が利用可能な任意のハードウェアである場合、アクセス機器のツールキットデータは、SDKであってもよい。
【0029】
現在、主流の深層学習フレームワークの異種ハードウェアへのアクセス方法は、初期の汎用CPU及びNVIDIA GPU(Graphics Processing Unit、グラフィックスプロセッサ)向けのハードウェア適合方案を踏襲し、タイトカップリングのアクセス方式である。同時に、深層学習フレームワークは、フレームワーク自身の技術最適化及び革新に注目し、フレームワーク自身は、個別型式のスマートチップなどのアクセス機器製品のみをメンテナンスする。他の異種アクセス機器のサポート及び適合開発のための作業は、通常、アクセス機器のメーカーが自ら実現する。
【0030】
本実施例において、目標モデルにおける演算子表現、目標モデルのアクセス機器の状況に基づいて目標モジュールの実行に関する計算グラフを最適化することができ、計算グラフの最適化及びインタフェースへのアクセスを別々に実行することにより、インタフェースにアクセスする時にアクセスに関する改善を行うだけでよく、改善されたインタフェースがより多く異なるアクセス機器に適合するようになり、異なるアクセス機器に適合する難度及びデータ変更量を低減することができる。
【0031】
一実施形態において、アクセス方法は、ツールキットデータに基づいてアクセス機器のタイプを決定するステップと、アクセス機器のタイプに基づいてアクセス機器のモデルフレームワークにおける汎用インタフェースを決定するステップと、をさらに含む。
【0032】
本実施例において、ツールキットデータに基づいてアクセス機器のタイプを決定することは、アクセス機器のメーカー、型式、実行条件、最適化条件又は他のアクセス機器と異なるカスタマイズ情報などを決定することであってもよい。
【0033】
アクセス機器のタイプに基づいて、モデルフレームワークにおけるアクセス機器の、アクセス機器に対応するある大規模な汎用インタフェースであってもよい汎用インタフェースを決定する。例えば、アクセス機器がチップであり、1つの分類方法に基づいてチップを第1の種別、第2の種別、第3の種別などに分けることができる。第1の種別は、また異なるブランド、型式に分けることができ、第1の種別のチップに対して第1の汎用インタフェースを設定し、第2の種別のチップに対して第2の汎用インタフェースを設定し、第3の種別のチップに対して第3の汎用インタフェースを設定することができ、このように類推する。
【0034】
本実施例において、チップの種別に対して汎用インタフェースを設定することにより、インタフェースの構築を分類して行い、インタフェースの設定及び構築の作業量を最小化することができる。
【0035】
一実施形態において、汎用インタフェースは、アクセス機器の共通性に基づいて、アクセス機器のモデルフレームワークにおける対応する駆動及びランタイムインタフェースを抽象化及びパッケージ化して生成される。
【0036】
本実施例において、アクセス機器の共通性に基づいて抽象化及びパッケージ化し、汎用インタフェースを生成することは、すべてのアクセス機器又はある種別のアクセス機器の共通性に基づいて抽象化及びパッケージ化して汎用インタフェースを生成することを指すことができる。
【0037】
アクセス機器の共通性は、アクセス機器がインタフェースに接続するために必要又は関する情報の共通特性であってもよい。
【0038】
本実施例において、駆動及びランタイムインタフェースは、個別の駆動インタフェース及び個別のランタイムインタフェースを含むことができ、駆動インタフェースとランタイムインタフェースを組み合わせたインタフェースを含むこともできる。
【0039】
アクセス機器の共通性に基づいてインタフェースの抽象化及びパッケージ化を行うことによって、インタフェースの汎用性を向上させることができる。
【0040】
一実施形態において、図2に示すように、アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェース及び計算グラフに基づいてアクセス機器に対して目標モデルの実行に関する操作を実行するステップは、以下のステップを含む。
【0041】
ステップS21において、インタフェースに基づいてアクセス機器のアクセス方式を決定し、ステップS22において、アクセス方式及び計算グラフに基づいてアクセス機器を呼び出すための指令データを生成し、ステップS23において、指令データを実行し、実行に関する操作を実現する。
【0042】
アクセスのタイプに基づいてアクセス機器に対応するインタフェースを決定することができるため、インタフェースに基づいてアクセス方式を決定することは、アクセス機器のタイプに基づいてアクセス機器に対応するアクセス方式を決定することであってもよい。アクセス機器のSDKにおける情報に基づいてアクセス機器に対応するアクセス方式を決定することであってもよい。
【0043】
本実施例において、異なるアクセス機器に対して異なるアクセス方式を採用することにより、異なるタイプ、型式、ブランド又はメーカーのアクセス機器に対する目標モデルの汎用性をさらに向上させることができる。
【0044】
一実施形態において、アクセス方式が演算子アクセスである場合、計算グラフが目標モデルのモデルフレームワークの第1の計算グラフを含み、アクセス方式及び計算グラフに基づいてアクセス機器を呼び出すための指令データを生成するステップは、第1の計算グラフをフレームワーク演算子にマッピングするステップと、フレームワーク演算子及びアクセス機器の機器演算子に基づいてアクセス機器の指令データを生成するステップと、を含む。
【0045】
計算グラフは、モデルフレームワークの第1の計算グラフのほか、モデル部分の計算グラフを含むこともできる。
【0046】
第1の計算グラフをフレームワーク演算子にマッピングすることは、最適化された第1の計算グラフをフレームワーク演算子にマッピングすることであってもよい。
【0047】
計算グラフのマッピングの時に、予め設定されたマッピングテーブルを参照してマッピングすることができる。
【0048】
フレームワーク演算子及びアクセス機器の機器演算子に基づいてアクセス機器の指令データを生成することは、フレームワーク演算子と機器演算子を融合し、融合された演算子を、アクセス機器を呼び出し又は駆動可能なコードに変換することであってもよい。
【0049】
本実施例において、計算グラフを演算子にマッピングし、演算子に基づいて指令データを生成することにより、目標モデルがアクセス機器で実行されるようにアクセス機器を実行することができる。同時に、本実施例は、演算子アクセスをサポートすることができる機器がアクセスするように、演算子アクセスの方式を提供する。
【0050】
一実施形態において、アクセス方式が計算グラフアクセスである場合、計算グラフが目標モデルのモデルフレームワークの第1の計算グラフ及びアクセス機器の第2の計算グラフを含み、アクセス方式及び計算グラフに基づいてアクセス機器を呼び出すための指令データを生成するステップは、第1の計算グラフ及び予め設定された演算子中間表現定義に基づいてグラフ中間表現を生成するステップと、グラフ中間表現及び第2の計算グラフに基づいて指令データを生成するステップと、を含む。
【0051】
本実施例において、グラフ中間表現は、画像数、有向グラフデータなどであってもよい。
【0052】
本実施例は、計算グラフアクセスのアクセス方式を提供することができることにより、計算グラフのみを介してアクセス可能なアクセス機器も目標モデルを実行することができる。
【0053】
本実施例において、計算グラフを最適化することは、第1の計算グラフ、第2の計算グラフのうちの少なくともいずれかを最適化することであってもよい。
【0054】
第1の計算グラフ及び予め設定された演算子中間表現定義に基づいてグラフ中間表現を生成することは、予め設定された演算子中間表現定義に基づいて第1の計算グラフにおける少なくとも1つの計算グラフユニットをグラフ中間表現ユニットに生成し、生成されたグラフ中間表現ユニットにおける少なくとも1つに基づいて第1の計算グラフのグラフ中間表現を生成することであってもよい。
【0055】
可能な一実現形態において、目標モデルは、アクセス機器のSDKであってもよく、計算グラフに由来するアクセス又は演算子に由来するアクセスを選択する。
【0056】
一実現形態において、アクセス機器の情報に基づいて計算グラフを最適化するステップは、アクセス機器の情報に基づいて計算グラフに対して実行された最適化操作及び最適化された計算グラフユニットを決定するステップと、最適化された計算グラフユニットに対して最適化操作を実行するステップと、を含む。
【0057】
本実施例において、計算グラフは、複数の計算グラフユニットを備えることができる。各計算グラフユニットは、1つの計算操作、例えば、畳み込み操作、加算操作、活性化操作などに対応することができる。複数の計算グラフユニットは、重複する計算グラフユニット又は内容が異なる計算グラフユニットを備えることができる。
【0058】
最適化された計算グラフユニットは、内容が重複する計算グラフユニット、統合して実行可能又は相殺可能な計算グラフユニットなどであってもよい。例えば、最適化された計算グラフユニットにおける1つは、加算操作であってもよく、もう1つは、減算操作であってもよく、加算操作のパラメータと減算操作のパラメータが同じである場合、両者は互いに相殺することができ、加算の計算グラフユニット及び減算の計算グラフユニットを削除することができる。
【0059】
本実施例において、計算グラフユニットに対して最適化操作を実行することにより、目標モデルの実行時に、冗長な実行ステップを回避し、実行効率を向上させることができる。
【0060】
一実施形態において、図3に示すように、アクセス方法は、以下のステップをさらに含む。
【0061】
ステップS31において、目標モデルのモデル部分にアクセスし、ステップS32において、モデル部分及びモデルフレームワークに基づいて目標モデルを生成する。
【0062】
本実施例において、目標モデルのモデル部分は、非汎用コードからなる部分であってもよく、トレーニング、最適化されたモデルであってもよく、最適化対象のモデルであってもよい。
【0063】
モデル部分及びモデルフレームワークに基づいて目標モデルを生成することは、モデル部分をモデルフレームワークに入力し、モデル部分とモデルフレームワークを結合して目標モデルを得ることであってもよい。
【0064】
本実施例において、アクセス機器は、目標モデルのモデルフレームワークによって目標モデルにアクセスすることができる。
【0065】
本実施例の目標モデルは、モデル部分及びモデルフレームワークを含み、アクセス機器に接続された部分は、モデルフレームワーク部分を最適化することにより、目標モデルの汎用性を向上させることができる。
【0066】
先ず、深層学習モデルは、深層学習フレームワークのAPIによって深層学習フレームワークの計算グラフ(例えば、有向グラフであってもよい)表現に変換し、深層学習フレームワークは、計算グラフの実行及びスケジューリングを行う前に計算グラフの分析及び最適化を行い、ここでの最適化は、ハードウェアと関係のない汎用の最適化ポリシーのみを指す。そして異なるタイプのハードウェアSDK又は同一のハードウェアSDKに対して異なるアクセス方式を提供する。具体的には、単一演算子アクセス方法及び計算グラフアクセス方法を含む。
【0067】
図4Aを参照し、準備段階において、モデル部分は、深層学習フレームワークを入力し、深層学習フレームワークと融合し、深層学習フレームワークのインタフェースから目標モデルを出力し、目標モデルに対してアクセス機器のハードウェアと関係のない汎用的な最適化を実行することができる。汎用的な最適化が実行された後、アクセス機器の演算子アクセス又は計算グラフアクセスに対して異なる階層処理を採用する。依然として図4Aを参照すると、この例は、単一演算子アクセス方法に対して3つの異なる階層のアクセスモジュールを設定する。
【0068】
機器管理層は、ハードウェアSDKの駆動及びランタイムモジュールのアクセスのために使用され、ハードウェアが計算リソースフレームワークによって認識され、機器(Device)、記憶(Memory)、ストリーム(Stream)、イベント(Events)などの情報を管理する。
【0069】
演算子適合層は、スマートチップの深層学習の関連モジュールのアクセスのために使用され、関連モジュールは、DNN(Deep Neural Networks、深層ニューラルネットワーク)演算子ライブラリ、BLAS(Basic Linear Algebra Subroutine、基礎線形代数サブプログラム)数学ライブラリ、通信ライブラリなどを含むことができ、フレームワーク演算子は、目標ハードウェアにおけるハードウェアSDKによってパッケージ化された実行可能なコードにマッピングすることができる。
【0070】
グラフ最適化層は、異種ハードウェアが自身のハードウェア特性に基づいてカスタマイズできるように、カスタマイズされた最適化ポリシーを提供するために使用され得る。グラフ最適化層は、フレームワーク演算子実行スケジューラを含み、フレームワークカスタマイズグラフ最適化ポリシー又はアクセス機器自身のハードウェアに対するカスタマイズポリシーに基づいて最適化することができる。
【0071】
この例において、機器管理層及び演算子適合層は、主にハードウェア適合の共通性に力を入れ、多種のハードウェアに対して共通性を備えるアクセス設計を提供し、あるハードウェアと深く結合して他の異種ハードウェアへの適合が困難になることを回避する。一方、グラフ最適化層は、主に差別化に力を入れ、ハードウェアが深層学習フレームワークで自身のハードウェア性能向上に役立つ最適化ポリシーにアクセスことをサポートし、深層学習フレームワークにおいてハードウェアの実行効率を十分に発揮することができる。
【0072】
計算グラフのアクセス方法については、依然として図4Aを参照し、機器管理層、演算子IR(Interim Representation、中間表現)適合層の順である4つの異なる階層のアクセスモジュールによってアクセス機器のアクセスを行うことができる。
【0073】
機器管理層は、計算リソースフレームワーク(すなわち、前記実施例のモデルフレームワーク)によって認識されるハードウェアSDKの駆動及びランタイムモジュールのアクセスのことに用いられる。計算グラフのアクセス方式において、機器管理層は演算子アクセス方式と共用することができ、少なくとも1つの異種のアクセス機器40又はアクセス機器40のモジュールにアクセスすることができる。
【0074】
演算子IR適合層は、機器又はコンパイラに基づく演算子ライブラリに適用することができ、フレームワーク演算子のIR(中間表現)演算子へのマッピングによって、深層学習フレームワークの演算子をスマートチップの機器グラフコンパイルエンジン(Model Builder)のIR演算子又はニューラルネットワークコンパイラのIR演算子にマッピングすることができる。
【0075】
グラフコンパイル最適化層は、モデルフレームワーク計算グラフを中間表現に変換するために使用することができ、すなわち、「演算子IR適合層」のマッピングに基づいて、アクセス機器のコンパイラ又はニューラルネットワークコンパイラによって、深層学習フレームワークの計算グラフを機器グラフコンパイルエンジン又はニューラルネットワークコンパイラのグラフ中間表現(ニューラルネットワークコンパイラ)に変換する。ここで、機器グラフコンパイルエンジン又はニューラルネットワークコンパイラ自身が備える最適化ポリシーは、計算グラフの中間表現を最適化し、最終的にハードウェア機器で動作できる実行可能なコードに変換する。
【0076】
グラフ実行管理層は、モデルフレームワークのグラフ実行エンジン又はニューラルネットワークアクチュエータが計算グラフのライフサイクルを管理して最終的な出力結果を得ることができるように、ハードウェアSDKにおけるモデルスケジューリング及び実行機能のアクセスのために使用することができる。
【0077】
この例において、4つの階層設計は、いずれもハードウェアアクセスの汎用性に向けて設計し、ハードウェア関連の最適化ポリシーは、機器グラフコンパイルエンジン又はニューラルネットワークコンパイラによって自ら実現され、深層学習フレームワークは、ハードウェアと関係のない汎用的な最適化ポリシーのみを提供する。
【0078】
一般的な深層学習フレームワークによるハードウェア適合の設計は、主に汎用CPU及びNVIDIA GPUのSDKに基づいて実現され、スマートチップのハードウェアメーカーに適合開発を指導するための比較的汎用的なアクセス機器のハードウェアアクセス方法及びシステムを形成していない。異種ハードウェアのメーカーは、強制的にCUDAのAPI(Application Programming Interface、アプリケーションプログラミングインタフェース)を模倣してハードウェアのアクセスを行う必要があり、CUDAと大きく異なる他の異種ハードウェアのSDKには非常に不親切であり、ハードウェアとフレームワークの適合の複雑度が高く、コード量が多く、深層学習フレームワークは、性能最適化ポリシーの設計において、ハードウェアと関係のない汎用的な最適化ポリシーに加えて、ハードウェア特性に関連する最適化ポリシーも同様に主に汎用CPU及びNVIDIA GPUのSDKを対象に設計されており、異種ハードウェアの深層学習フレームワークでの実行効率を十分に発揮することができない。
【0079】
この例は、異なるハードウェアアクセス方式に対する2種類の多層設計を提出し、多層異種ハードウェアアクセス機器を利用してアクセスするという概念は、複数の異種ハードウェアに異なる階層のインタフェースによって深層学習フレームワークへのアクセスを実現するように指導するという2種類のアクセス方式での多層設計をそれぞれ与えており、ハードウェアアクセス方式は、従来の単一アクセス機器のみに設計されたアクセス方式と比べて汎用性を有し、あるハードウェアと深く結合することにより、その他の差異の大きいハードウェアへのアクセスが困難になるのを回避し、ハードウェア最適化ポリシーは、従来の単一アクセス機器のみに設計されたポリシー設計と比べてカスタマイズ可能な特性を有し、複数の異種ハードウェアが自身の特性に基づいて最適化ポリシーをカスタマイズすることをサポートすることにより、ハードウェアのフレームワークでの実行効率を確保する。
【0080】
本開示の一例は、アクセスモデルフレームワーク又は目標モデルのアクセス機器を最適化することができるアクセス方法を提供し、アクセス機器は、ハードウェア機器であってもよい。
【0081】
本開示の別の例において、図4Bを参照し、アクセス方式が演算子アクセスである場合、アクセス方法は、以下のステップを含むことができる。
【0082】
ステップS41において、ニューラルネットワークモデルを生成する。具体的には、深層ニューラルネットワークモデルフレームワーク(前記実施例のモデルフレームワークに相当)とモデル部分を融合することができる。ニューラルネットワークモデルは、ニューラルネットワークを含む任意のモデルであってもよい。ニューラルネットワークモデルをPython(パイソン) APIインタフェースによって出力し、ニューラルネットワークは、前記実施例の目標モデルに相当する。
【0083】
ステップS42において、ニューラルネットワークモデルのモデルフレームワークの計算グラフに基づいて汎用グラフの最適化及びカスタマイズグラフの最適化をそれぞれ行い、フレームワークが最適化された計算グラフを生成する。
【0084】
ステップS43において、フレームワーク演算子スケジューラを利用してフレームワーク演算子を生成する。
【0085】
ステップS44において、演算子の適合によって機器演算子を生成する。
【0086】
ステップS45において、フレームワーク演算子及び機器演算子に基づいて、ニューラルネットワークモデルを実行するようにアクセス機器の各実行モジュールを呼び出す。
【0087】
図4Cを参照し、アクセス方式が計算グラフアクセスである場合、アクセス方法は、以下のステップを含むことができる。
【0088】
ステップS46において、ニューラルネットワークモデルを生成する。具体的には、深層ニューラルネットワークモデルフレームワーク(前記実施例のモデルフレームワークに相当)とモデル部分を融合することができる。ニューラルネットワークモデルは、ニューラルネットワークを含む任意のモデルであってもよい。ニューラルネットワークモデルをPython(パイソン) APIインタフェースによって出力し、ニューラルネットワークは、前記実施例の目標モデルに相当する。
【0089】
ステップS47において、ニューラルネットワークモデルのモデルフレームワークの計算グラフに基づいて汎用グラフの最適化を実行し、フレームワークが最適化された計算グラフを生成する。
【0090】
ステップS48において、フレームワークが最適化された計算グラフとアクセス機器の計算グラフを融合し、呼び出し指令を生成する。
【0091】
ステップS49において、呼び出し指令に基づいてアクセス機器の各実行モジュールを呼び出してニューラルネットワークモデルを実行する。
【0092】
本開示の実施例は、アクセス装置をさらに提供し、図5に示すように、前記アクセス装置は、目標モデルにおける演算子表現に基づいて、呼び出しアクセス機器の計算グラフを決定するように構成される計算グラフ決定モジュール51と、
アクセス機器の情報に基づいて、計算グラフを最適化するように構成されるグラフ最適化モジュール52と、アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェース及び計算グラフに基づいて、アクセス機器に対して目標モデルの実行に関する操作を実行するように構成される実行モジュール53であって、アクセス機器が目標モデルのモデルフレームワークにアクセスするインタフェースは、アクセス機器のツールキットデータによって決定される実行モジュール53と、を備える。
【0093】
一実施形態において、図6に示すように、アクセス装置は、ツールキットデータに基づいてアクセス機器のタイプを決定するように構成されるタイプ決定モジュール61と、アクセス機器のタイプに基づいてアクセス機器のモデルフレームワークにおける汎用インタフェースを決定するように構成される汎用インタフェースモジュール62と、をさらに備える。
【0094】
一実施形態において、汎用インタフェースは、アクセス機器の共通性に基づいて、アクセス機器のモデルフレームワークにおける対応する駆動及びランタイムインタフェースを抽象化及びパッケージ化して生成される。
【0095】
一実施形態において、図7に示すように、実行モジュールは、インタフェースに基づいてアクセス機器のアクセス方式を決定するように構成されるアクセス方式ユニット71と、アクセス方式及び計算グラフに基づいてアクセス機器を呼び出すための指令データを生成するように構成される指令データユニット72と、指令データを実行し、実行に関する操作を実現するように構成される実行実現ユニット73と、を備える。
【0096】
一実施形態において、アクセス方式が演算子アクセスである場合、計算グラフが目標モデルのモデルフレームワークの第1の計算グラフを含み、指令データユニットは、さらに、第1の計算グラフをフレームワーク演算子にマッピングし、フレームワーク演算子及びアクセス機器の機器演算子に基づいてアクセス機器の指令データを生成するように構成される。
【0097】
一実施形態において、アクセス方式が計算グラフアクセスである場合、計算グラフが目標モデルのモデルフレームワークの第1の計算グラフ及びアクセス機器の第2の計算グラフを含み、指令データユニットは、さらに、第1の計算グラフ及び予め設定された演算子中間表現定義に基づいてグラフ中間表現を生成し、
グラフ中間表現及び第2の計算グラフに基づいて指令データを生成するように構成される。
【0098】
一実施形態において、図8に示すように、グラフ最適化モジュールは、アクセス機器の情報に基づいて計算グラフに対して実行された最適化操作及び最適化された計算グラフユニットを決定するように構成される決定ユニット81と、最適化された計算グラフユニットに対して最適化操作を実行するように構成される実行ユニット82と、をさらに備える。
【0099】
一実施形態において、図9に示すように、アクセス装置は、目標モデルのモデル部分にアクセスするように構成されるアクセスモジュール91と、モデル部分及びモデルフレームワークに基づいて目標モデルを生成するように構成されるモデル生成モジュール92と、をさらに備える。
【0100】
本開示の技術案において、係るユーザ個人情報の取得、記憶及び適用などは、いずれも関連法律法規の規定に適合しており、公序良俗に反するものではない。
【0101】
本開示の実施例によれば、本開示は、電子機器、読み取り可能な記憶媒体及びコンピュータプログラムをさらに提供する。
【0102】
図10には、本開示の実施例を実施するために使用され得る例示的な電子機器100の概略ブロック図が示されている。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタルプロセッサ、携帯電話、スマートフォン、ウェアラブルデバイス、他の同様のコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本出願の実現を制限するものではない。
【0103】
図10に示すように、機器100は、リードオンリーメモリ(ROM)102に記憶されているコンピュータプログラム、又は記憶ユニット108からランダムアクセスメモリ(RAM)103にロッドされたコンピュータプログラムに基づいて、様々な適切な実行及び処理を実行することができる計算ユニット101を備える。RAM103には、機器100の実行に必要な様々なプログラム及びデータが記憶されていてもよい。計算ユニット101、ROM102及びRAM103は、バス104を介して互いに接続されている。入出力(I/O)インタフェース105もバス104に接続されている。
【0104】
機器100における、キーボード、マウスなどの入力ユニット106と、様々なタイプのディスプレイ、スピーカなどの出力ユニット107と、磁気ディスク、光ディスクなどの記憶ユニット108と、ネットワークカード、モデム、無線通信トランシーバなどの通信ユニット109と、を備える複数のコンポーネントは、入出力(I/O)インタフェース105に接続されている。通信ユニット109は、機器100がインタネットなどのコンピュータネットワーク及び/又は様々な電気通信ネットワークを介して他のデバイスと情報/データを交換することを可能にする。
【0105】
計算ユニット101は、各種の処理及び計算能力を有する汎用及び/又は専用処理コンポーネントであってもよい。計算ユニット101のいくつかの例は、セントラルプロセッシングユニット(CPU)、グラフィックスプロセッシングユニット(GPU)、各種の専用人工知能(AI)計算チップ、各種の機械学習モデルアルゴリズムを運行する計算ユニット、デジタルシグナルプロセッサ(DSP)、及びいずれかの適宜なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。計算ユニット101は、上述したそれぞれの方法及び処理、例えば、アクセス方法を実行する。例えば、いくつかの実施例で、アクセス方法は、記憶ユニット108のような機械読み取り可能な媒体に具体的に含まれるコンピュータソフトウェアプログラムとして実装されてもよい。いくつかの実施例で、コンピュータプログラムの一部又は全部は、ROM102及び/又は通信ユニット109を介して機器100にロッド及び/又はインストールすることができる。コンピュータプログラムがRAM103にロッドされて計算ユニット101によって実行された場合、上述したアクセス方法の1つ又は複数のステップを実行することができる。あるいは、他の実施例で、計算ユニット101は、他の任意の適切な形態で(例えば、ファームウェアにより)アクセス方法を実行するように構成されてもよい。
【0106】
本明細書で上述したシステム及び技術の各種の実施方式は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックス・プログラマブル・ロジック・デバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア及び/又はそれらの組合せにおいて実現してもよい。これらの各種の実施方式は、少なくとも1つのプログラマブルプロセッサを備えるプログラマブルシステムにおいて実行及び/又は解釈することができる1つ又は複数のコンピュータプログラムにおいて実現されてもよく、当該プログラマブルプロセッサは、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、当該記憶システム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置にデータ及び命令を伝送することができる専用及び/又は汎用プログラマブルプロセッサであってもよい。
【0107】
本開示の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで書くことができる。これらのプログラムコードは、プロセッサ又はコントローラによって実行された際に、フローチャート及び/又はブロック図に規定された機能/実行が実施されるように、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供されてもよい。プログラムコードは、完全に機械上で実行され、部分的に機械上で実行され、スタンドアロンパッケージとして、部分的に機械上で実行され、かつ部分的にリモート機械上で実行され、又は完全にリモート機械又はサーバ上で実行されてもよい。
【0108】
本開示の文脈では、機械読み取り可能な媒体は、命令実行システム、装置、又はデバイスによって使用されるために、又は命令実行システム、装置、又はデバイスと組み合わせて使用するためのプログラムを含むか、又は格納することができる有形の媒体であってもよい。機械読み取り可能な媒体は、機械読み取り可能な信号媒体又は機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体は、電子的、磁気的、光学的、電磁気的、赤外線的、又は半導体システム、装置又はデバイス、又はこれらの任意の適切な組み合わせを含むことができるが、これらに限定されない。機械読み取り可能な記憶媒体のより具体的な例は、1つ又は複数のラインに基づく電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROM)又はフラッシュメモリ、光ファイバ、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又はこれらの任意の適切な組み合わせを含む。
【0109】
ユーザとのインタラクションを提供するために、コンピュータ上でここで説明されているシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
【0110】
ここで説明されるシステム及び技術は、バックエンドユニットを備えるコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアユニットを備えるコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドユニットを備えるコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータであり、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施方式とインタラクションする)、又はこのようなバックエンドユニットと、ミドルウェアユニットと、フロントエンドユニットの任意の組み合わせを備えるコンピューティングシステムで実施することができる。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットとを含む。
【0111】
コンピュータシステムは、クライアントとサーバとを備えることができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、且つ互いにクライアント-サーバ関係を有するコンピュータプログラムによって、クライアントとサーバとの関係が生成される。サーバは、クラウドサーバであってもよく、分散システムのサーバであってもよく、又はブロックチェーンを組み合わせたサーバであってもよい。
【0112】
なお、上記に示される様々な形式のフローを使用して、ステップを並べ替え、追加、又は削除することができる。例えば、本開示に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案が所望の結果を実現することができれば、本明細書では限定しない。
【0113】
上記の具体的な実施形態は、本開示の保護範囲を制限するものではない。当業者は、設計要件と他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。本開示の精神と原則内で行われる任意の修正、同等の置換、及び改善などは、いずれも本開示の保護範囲内に含まれるべきである。
図1
図2
図3
図4A
図4B
図4C
図5
図6
図7
図8
図9
図10