(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024015239
(43)【公開日】2024-02-01
(54)【発明の名称】データ処理装置、データ処理方法、電子機器および記憶媒体
(51)【国際特許分類】
G06F 9/50 20060101AFI20240125BHJP
【FI】
G06F9/50 150Z
【審査請求】有
【請求項の数】22
【出願形態】OL
【公開請求】
(21)【出願番号】P 2023206152
(22)【出願日】2023-12-06
(31)【優先権主張番号】202310341253.4
(32)【優先日】2023-03-31
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】521457387
【氏名又は名称】クンルンシン テクノロジー (ベイジン) カンパニー リミテッド
【氏名又は名称原語表記】Kunlunxin Technology (Beijing) Company Limited
【住所又は居所原語表記】CW Section, F/4, Building 1, No.10, Shangdi 10th Street, Haidian District, 100101, Beijing, China
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】李 潤 沢
(72)【発明者】
【氏名】朱 時 ▲ユィ▼
(72)【発明者】
【氏名】周 保 玉
(57)【要約】
【課題】
本開示は、データ処理装置を提供し、人工知能技術分野に関し、特に、チップ技術分野及びマルチスレッド並列技術分野に関する。
【解決手段】
当該装置は、第1目標記憶手段と、プロセッサと、を含み、前記プロセッサは、処理すべき入力データ、処理すべき重みデータ及び出力データを含む目標データのデータ量が前記第1目標記憶手段の容量以下であると決定したことに応答して、前記目標データのデータ量と前記第1目標記憶手段の容量に基づいて、初期スレッド数を決定し、前記初期スレッド数が所定のスレッド数以上であると決定したことに応答して、前記初期スレッド数に基づいて、第1実行可能タスク数を決定するように構成される。本開示は、データ処理方法、電子機器及び記憶媒体をさらに提供する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
データ処理装置であって、
第1目標記憶手段と、
処理すべき入力データ、処理すべき重みデータ及び出力データを含む目標データのデータ量が前記第1目標記憶手段の容量以下であると決定したことに応答して、前記目標データのデータ量と前記第1目標記憶手段の容量に基づいて、初期スレッド数を決定し、
前記初期スレッド数が所定のスレッド数以上であると決定したことに応答して、前記初期スレッド数に基づいて、第1実行可能タスク数を決定するように構成されるプロセッサと、を含む
データ処理装置。
【請求項2】
前記プロセッサは、さらに、
前記第1実行可能タスク数個の、前記処理すべき入力データと前記処理すべき重みデータとを含む処理すべきデータを前記第1目標記憶手段に書き込み、
前記第1実行可能タスク数個の、前記処理すべき重みデータを用いて前記処理すべき入力データを処理することを含むタスクを並行して実行して、前記第1実行可能タスク数個の前記出力データを取得し、
前記第1実行可能数個の前記出力データを前記第1目標記憶手段に書き込む
ように構成される
請求項1に記載の装置。
【請求項3】
前記第1目標記憶手段の容量よりも大きい容量を有する第2目標記憶手段をさらに含む
請求項1に記載の装置。
【請求項4】
前記プロセッサは、さらに、
前記初期スレッド数が所定のスレッド数に等しいと決定したことに応答して、前記プロセッサが前記目標データを処理するために必要なリソース量に基づいて、第1タスク数を決定し、
前記第1タスク数と前記初期スレッド数に基づいて、第2実行可能タスク数を決定する
ように構成される
請求項3に記載の装置。
【請求項5】
前記プロセッサは、さらに、
前記初期スレッド数個の、前記処理すべき入力データと前記処理すべき重みデータとを含む処理すべきデータを前記第1目標記憶手段に書き込み、
前記第1タスク数個の前記処理すべきデータを前記第2目標記憶手段に書き込み、
前記第2実行可能タスク数個の、前記処理すべき重みデータを用いて前記処理すべき入力データを処理することを含むタスクを並行して実行し、前記第2実行可能タスク数個の前記出力データを取得し、
前記初期スレッド数個の前記出力データを第1目標記憶手段に書き込み、
前記第1タスク数個の前記出力データを前記第2目標記憶手段に書き込む
ように構成される
請求項4に記載の装置。
【請求項6】
前記プロセッサは、さらに、
前記目標データのデータ量が第1目標記憶手段の容量よりも大きいと決定したことに応答して、前記プロセッサが前記目標データを処理するために必要なリソース量に基づいて、第3実行可能タスク数を決定する
ように構成される
請求項3に記載の装置。
【請求項7】
前記プロセッサは、さらに、
前記第3実行可能タスク数個の、前記処理すべき入力データと前記処理すべき重みデータとを含む処理すべきデータを前記第2目標記憶手段に書き込み、
前記第3実行可能タスク数個の、前記処理すべき重みデータを用いて前記処理すべき入力データを処理することを含むタスクを並行して実行し、前記第3実行可能タスク数個の前記出力データを取得し、
前記第3実行可能数個の前記出力データを前記第2目標記憶手段に書き込む
ように構成される
請求項6に記載の装置。
【請求項8】
前記プロセッサは、さらに、
前記処理すべき入力データと前記出力データのデータ量の合計が前記第1目標記憶手段の容量より大きいと決定したことに応答して、前記処理すべき入力データを複数の処理すべきサブ入力データに分割し、
前記プロセッサが前記処理すべきサブ入力データを処理するために必要なリソース量に基づいて、第4実行可能タスク数を決定する
ように構成される
請求項3に記載の装置。
【請求項9】
前記プロセッサは、
前記処理すべき重みデータと前記第4実行可能タスク数個の前記処理すべきサブ入力データを前記第2目標記憶手段に書き込み、
前記第4実行可能タスク数個の、前記処理すべき重みデータを用いて前記処理すべきサブ入力データを処理することを含むタスクを並行して実行して、前記第4実行可能タスク数個の前記出力サブデータを取得し、
前記第4実行可能数個の前記出力サブデータを前記第2目標記憶手段に書き込み、
複数の前記出力サブデータを出力データにステッチする
ように構成される
請求項8に記載の装置。
【請求項10】
データ処理方法であって、
処理すべき入力データ、処理すべき重みデータ及び出力データを含む目標データのデータ量が第1目標記憶手段の容量以下であると決定したことに応答して、前記目標データのデータ量と前記第1目標記憶手段の容量に基づいて、初期スレッド数を決定することと、
前記初期スレッド数が所定のスレッド数以上であると決定したことに応答して、前記初期スレッド数に基づいて、第1実行可能タスク数を決定することと、を含む
データ処理方法。
【請求項11】
前記第1実行可能タスク数個の、前記処理すべき入力データと前記処理すべき重みデータとを含む処理すべきデータを前記第1目標記憶手段に書き込むことと、
前記第1実行可能タスク数個の、前記処理すべき重みデータを用いて前記処理すべき入力データを処理することを含むタスクを並行して実行して、前記第1実行可能タスク数個の前記出力データを取得することと、
前記第1実行可能数個の前記出力データを前記第1目標記憶手段に書き込むことと、をさらに含む
請求項10に記載の方法。
【請求項12】
前記第1目標記憶手段の容量は、第2目標記憶手段の容量以下である
請求項10に記載の方法。
【請求項13】
前記初期スレッド数が所定のスレッド数に等しいと決定したことに応答して、前記プロセッサが前記目標データを処理するために必要なリソース量に基づいて、第1タスク数を決定することと、
前記第1タスク数と前記初期スレッド数に基づいて、第2実行可能タスク数を決定することと、をさらに含む
請求項12に記載の方法。
【請求項14】
前記初期スレッド数個の、前記処理すべき入力データと前記処理すべき重みデータとを含む処理すべきデータを前記第1目標記憶手段に書き込むことと、
前記第1タスク数個の前記処理すべきデータを前記第2目標記憶手段に書き込むことと、
前記第2実行可能タスク数個の、前記処理すべき重みデータを用いて前記処理すべき入力データを処理することを含むタスクを並行して実行し、前記第2実行可能タスク数個の前記出力データを取得することと、
前記初期スレッド数個の前記出力データを第1目標記憶手段に書き込むことと、
前記第1タスク数個の前記出力データを前記第2目標記憶手段に書き込むことと、をさらに含む
請求項12に記載の方法。
【請求項15】
前記目標データのデータ量が第1目標記憶手段の容量よりも大きいと決定したことに応答して、前記プロセッサが前記目標データを処理するために必要なリソース量に基づいて、第3実行可能タスク数を決定することをさらに含む
請求項12に記載の方法。
【請求項16】
前記第3実行可能タスク数個の、前記処理すべき入力データと前記処理すべき重みデータとを含む処理すべきデータを前記第2目標記憶手段に書き込むことと、
前記第3実行可能タスク数個の、前記処理すべき重みデータを用いて前記処理すべき入力データを処理することを含むタスクを並行して実行し、前記第3実行可能タスク数個の前記出力データを取得することと、
前記第3実行可能数個の前記出力データを前記第2目標記憶手段に書き込むことと、をさらに含む
請求項15に記載の方法。
【請求項17】
前記処理すべき入力データと前記出力データのデータ量の合計が前記第1目標記憶手段の容量より大きいと決定したことに応答して、前記処理すべき入力データを複数の処理すべきサブ入力データに分割することと、
前記プロセッサが前記処理すべきサブ入力データを処理するために必要なリソース量に基づいて、第4実行可能タスク数を決定することと、をさらに含む
請求項12に記載の方法。
【請求項18】
前記処理すべき重みデータと前記第4実行可能タスク数個の前記処理すべきサブ入力データを前記第2目標記憶手段に書き込むことと、
前記第4実行可能タスク数個の、前記処理すべき重みデータを用いて前記処理すべきサブ入力データを処理することを含むタスクを並行して実行して、前記第4実行可能タスク数個の前記出力サブデータを取得することと、
前記第4実行可能数個の前記出力サブデータを前記第2目標記憶手段に書き込むことと、
複数の前記出力サブデータを出力データにステッチすることと、をさらに含む
請求項17に記載の方法。
【請求項19】
請求項1から9のいずれか1項に記載のデータ処理装置を含む
電子機器。
【請求項20】
少なくとも1つのプロセッサと、
少なくとも1つのプロセッサと通信接続されたメモリと、を含み、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサが請求項10から18のいずれか1項に記載の方法を実行できるように、前記少なくとも1つのプロセッサによって実行される
電子機器。
【請求項21】
コンピュータ命令が記憶されている非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ命令により、前記コンピュータに請求項10から18のいずれか一項に記載の方法を実行させる
非一時的なコンピュータ可読記憶媒体。
【請求項22】
コンピュータプログラムであって、
プロセッサによって実行される際に、請求項10から18のいずれか一項に記載の方法を実現する
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能技術分野に関し、特に、チップ技術分野及びマルチスレッド並列技術分野に関する。より具体的には、本開示は、データ処理装置、データ処理方法、電子機器及び記憶媒体を提供する。
【背景技術】
【0002】
人工知能技術の発展に伴い、モデル推論又はモデル訓練タスクを並行して実行することができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示は、データ処理装置、データ処理方法、電子機器及び記憶媒体を提供する。
【課題を解決するための手段】
【0004】
本開示の一態様によれば、データ処理装置であって、第1目標記憶手段と、処理すべき入力データ、処理すべき重みデータ及び出力データを含む目標データのデータ量が第1目標記憶手段の容量以下であると決定したことに応答して、目標データのデータ量と第1目標記憶手段の容量に基づいて、初期スレッド数を決定し、初期スレッド数が所定のスレッド数以上であると決定したことに応答して、初期スレッド数に基づいて、第1実行可能タスク数を決定するように構成されるプロセッサと、を含むデータ処理装置を提供している。
【0005】
本開示の他の態様によれば、データ処理方法であって、処理すべき入力データ、処理すべき重みデータ及び出力データを含む目標データのデータ量が第1目標記憶手段の容量以下であると決定したことに応答して、目標データのデータ量と第1目標記憶手段の容量に基づいて、初期スレッド数を決定することと、初期スレッド数が所定のスレッド数以上であると決定したことに応答して、初期スレッド数に基づいて、第1実行可能タスク数を決定することと、を含むデータ処理方法を提供している。
【0006】
本開示の他の態様によれば、本開示に係るデータ処理装置を含む電子機器を提供している。
【0007】
本開示の他の態様によれば、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと通信接続されたメモリと、を含み、メモリには、少なくとも1つのプロセッサによって実行可能な命令が記憶され、命令は、少なくとも1つのプロセッサが本開示に提供される方法を実行できるように、少なくとも1つのプロセッサによって実行される、電子機器を提供している。
【0008】
本開示の他の態様によれば、コンピュータ命令が記憶されている非一時的なコンピュータ可読記憶媒体であって、前記コンピュータ命令により、コンピュータに本開示に提供される方法を実行させる、非一時的なコンピュータ可読記憶媒体を提供している。
【0009】
本開示の他の態様によれば、プロセッサによって実行される際に、本開示に提供される方法を実現するコンピュータプログラムを提供している。
理解されるように、本部分に記載された内容は、本開示の実施例のキー特徴又は重要な特徴を識別するためのものではなく、本開示の範囲を制限するものでもない。本開示のその他の特徴は、以下の明細書によって容易に理解されるであろう。
【0010】
図面は、本発明をより良く理解するためのものであり、本開示を限定するものではない。
【図面の簡単な説明】
【0011】
【
図1】
図1は、本開示の一実施例によるデータ処理装置の概略ブロック図である。
【
図2】
図2は、本開示の一実施例によるデータ処理装置の原理図である。
【
図3】
図3は、本開示の一実施例に係るデータ処理方法のフローチャートである。
【
図4】
図4は、本開示の一実施例による電子機器の概略ブロック図である。
【
図5】
図5は、本開示の一実施例によるデータ処理方法を適用可能な電子機器のブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本開示の例示的な実施例を説明し、理解を容易にするために、本開示の実施例の様々な詳細を含み、これらが例示的なものに過ぎないと理解される。したがって、当業者として理解されるように、本開示の範囲及び精神から逸脱することなく、ここに記載された実施例に対して、様々な変更及び修正を行うことができる。同様に、明確かつ簡潔にするため、以下の説明では、公知の機能及び構造についての説明を省略する。
【0013】
深層学習モデルを利用して推論を行う過程において、有循環無向グラフ(Direction Asyclic Grap、DAG)のタスクマッピングポリシーに基づいて、モデル推論タスクを複数のサブタスクに分割することができる。異なるサブタスクを異なるタスクキューに設置して、当該複数のサブタスクを並行して実行することができる。複数のサブタスクの実行が完了した後、モデル推論タスクの実行結果を得ることができる。
【0014】
モデル推論タスクは、中央処理ユニット(CentralProcessingUnit、CPU)及びグラフィックスプロセッシングユニット(GraphicProcessingUnit、GPU)を含む異種ハードウェアプラットフォームを利用して実行されてもよい。異なるタスクの実行関係情報に基づいて、有循環無向グラフを決定して、グラフィックスプロセッサの並列処理能力を有循環無向グラフに結合して、異種デバイスの使用効率を向上させることができる。例えば、モデル推論タスクは、多数の行列演算を含む。グラフィックスプロセッシングユニットは、行列計算の時間を著しく減少させることができ、モデル推論タスクの実行効率を向上させることができる。
【0015】
異なるデータ間の依存関係に基づいて異種ハードウェアプラットフォームのリソースをスケジューリングすることができる。しかしながら、異種ハードウェアプラットフォームについて、モデル推論タスクをより細く分割することが困難である。例えば、大規模なバッチ(batchsize)のデータを効率的に処理することが難しい。
【0016】
異種ハードウェアプラットフォームにおいて、中央処理装置をホスト(host)とし、グラフィックプロセッサをデバイス(device)としてもよい。ホスト側からデバイス側にデータを送信することができる。例えば、データをデバイス側の複数のグラフィックプロセッサコアにそれぞれ伝送し、グラフィックプロセッサを利用して行列計算の並列加速を実現することができる。グラフィックスプロセッサは、異なるレベルの高速ダイナミックランダムアクセスメモリ(DRAM)を含んでもよい。例えば、グラフィックプロセッサは、レベル0の高速ダイナミックランダムアクセスメモリ(L0)、レベル1の高速ダイナミックランダムアクセスメモリ(L1)、レベル2の高速ダイナミックランダムアクセスメモリ(L2)、レベル3の高速ダイナミックランダムアクセスメモリ(L3)及びレベル4の高速ダイナミックランダムアクセスメモリ(L4)を含んでもよい。レベル4の高速ダイナミックランダムアクセスメモリは容量が最大である。すべてのプロセッサコアはいずれもレベル4の高速ダイナミックランダムアクセスメモリからデータを読み書きすることができる。レベル0の高速ダイナミックランダムアクセスメモリからレベル2の高速ダイナミックランダムアクセスメモリまでの容量が小さく、深層学習モデルの重みデータ又は入力データを記憶することが困難である。
【0017】
レベル3の高速ダイナミックランダムアクセスメモリの帯域幅は、例えば、レベル4の高速ダイナミックランダムアクセスメモリの2倍であってもよい。レベル3の高速ダイナミックランダムアクセスメモリの容量及び帯域幅を十分に利用するために、本開示は、データ処理装置を提供し、以下に説明する。
【0018】
図1は、本開示の一実施例によるデータ処理装置の概略ブロック図である。
図1に示すように、データ処理装置100は、第1目標記憶手段110及びプロセッサ120を含んでもよい。
【0019】
第1目標記憶手段110は、レベル3の高速ダイナミックランダムアクセスメモリであってもよい。
【0020】
プロセッサ120は、目標データのデータ量が第1目標記憶手段の容量以下であると決定したことに応答して、目標データのデータ量と第1目標記憶手段の容量とに基づいて、初期スレッド数を決定するように構成されてもよい。初期スレッド数が所定のスレッド数以上であると決定したことに応答して、初期スレッド数に基づいて、第1実行可能タスク数を決定する。
【0021】
本開示の実施例において、プロセッサは、複数のプロセッサコアを含んでもよい。プロセッサは、グラフィックスプロセッサ、ニューラルネットワークプロセッサ(NeuralnetworkProcessingUnit、NPU)などのプロセッサのうちの少なくとも1つであってもよい。
【0022】
本開示の実施例において、目標データは、処理すべき入力データ、処理すべき重みデータ及び出力データを含む。例えば、処理すべき入力データは、深層学習モデルの入力データであってもよい。処理すべき重みデータは、深層学習モデルの複数の演算子のそれぞれの重みデータを含んでもよい。出力データは、深層学習モデルの出力データを含んでもよい。
【0023】
本開示の実施例において、目標データのデータ量が第1目標記憶手段の容量以下であるか否かを決定することができる。例えば、目標データのデータ量が16メガバイト(Mbyte)であることを例示とする。第1目標記憶手段の容量は64メガバイトであってもよい。目標データのデータ量が第1目標記憶手段の容量よりも小さいと決定することができる。次に、目標データのデータ量と第1目標記憶手段の容量に基づいて、初期スレッド数を4として決定することができる。すなわち、第1記憶手段は、4つの目標データを記憶することができる。
【0024】
本開示の実施例において、所定のスレッド数が1であってもよい。初期スレッド数が4である場合、初期スレッド数が所定のスレッド数より大きいと決定することができる。初期スレッド数を第1実行可能タスク数とすることができる。
【0025】
本開示の実施例によれば、モデル訓練又は推論過程において、データ量が小さい場合、複数の目標データを第1目標記憶手段に記憶すれば、第1目標記憶手段の帯域幅及び容量を十分に利用し、データ処理効率を向上させることができる。
【0026】
実行可能タスク数を決定した後、実行可能タスク数個のタスクを並行して実行することができ、以下、さらに説明する。
【0027】
いくつかの実施例において、プロセッサ120は、さらに、第1実行可能タスク数個の処理すべきデータを第1目標記憶手段に書き込むように構成されてもよい。本開示の実施例において、処理すべきデータは、処理すべき入力データ及び処理すべき重みデータを含む。例えば、第1実行可能タスク数が4である場合、4組の処理すべき入力データ及び処理すべき重みデータを第1目標記憶手段に書き込むことができる。
【0028】
いくつかの実施例において、プロセッサ120は、第1実行可能タスク数個のタスクを並行して実行し、第1実行可能タスク数個の出力データを取得するようにさらに構成されてもよい。本開示の実施例において、タスクは、処理すべき重みデータを用いて処理すべき入力データを処理することを含んでもよい。例えば、第1実行可能タスク数が4である場合、4つのタスクを並行して実行し、4つの出力データを得ることができる。
【0029】
いくつかの実施例において、プロセッサ120は、さらに、第1実行可能数個の出力データを第1目標記憶手段に書き込むように構成されてもよい。例えば、4つの出力データを第1目標記憶手段に書き込んでもよい。本開示の実施例において、第1目標記憶手段に記憶された処理すべき入力データを並行して処理することができ、人工知能チップの並列処理能力を十分に発揮させ、データ処理効率を向上させることができる。
【0030】
理解できるように、上記には、目標データのデータ量が第1目標記憶手段の容量以下であることを例として説明したが、本開示はこれに限定されない。以下、さらに説明する。
【0031】
図2は、本開示の一実施例に係るデータ処理装置の原理図である。
図2に示すように、プロセッサは、操作S201を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S201において、処理すべき入力データと処理すべき出力データのデータ量の合計が第1目標記憶手段の容量以下であるか否かを決定する。例えば、第1目標データを例とすると、第1目標データのデータ量は16メガバイトである。第1目標記憶手段の容量は64メガバイトであってもよい。第1目標データの処理すべき入力データと処理すべき重みデータのデータ量との和が第1目標記憶手段の容量より小さいと決定してもよく、以下、操作S202と組み合わせてさらに説明する。
【0032】
いくつかの実施例において、プロセッサは、処理すべき入力データと処理すべき出力データのデータ量の合計が第1目標記憶手段の容量以下であると決定したことに応答して、少なくとも1つの命令を実行して、操作S202を実現するように構成されてもよい。操作S202において、目標データのデータ量が第1目標記憶手段の容量以下であるか否かを決定する。例えば、第1目標データのデータ量が第1目標記憶手段の容量よりも小さいと決定することができる。
【0033】
本開示の実施例において、プロセッサは、目標データの数が第1目標記憶手段の容量以下であると決定したことに応答して、少なくとも1つの命令を実行して、操作S210を実現するように構成されてもよい。操作S210において、目標データのデータ量と第1目標記憶手段の容量に基づいて、初期スレッド数を決定する。例えば、第1目標データのデータ量と第1目標記憶手段の容量に基づいて、初期スレッド数が4であると決定することができる。第1記憶手段は、4つの第1目標データを記憶することができる。
【0034】
次に、本開示の実施例において、プロセッサは、操作S221を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S221において、初期スレッド数が所定のスレッド数より大きいか否かを決定する。所定のスレッド数が1であることを例として、初期スレッド数が4である場合、初期スレッド数が所定のスレッド数より大きいと決定することができる。
【0035】
本開示の実施例において、プロセッサは、初期スレッド数が所定のスレッド数より大きいと決定したことに応答して、少なくとも1つの命令を実行して、操作S222を実現するように構成されてもよい。操作S222において、初期スレッド数に基づいて、第1実行可能タスク数を決定する。例えば、初期スレッド数を第1実行可能タスク数としてもよい。第1実行可能タスク数は4であってもよい。
【0036】
理解されるように、上記では、実行可能タスク数を決定する方式について説明したが、以下では、タスクを実行するいくつかの方式について説明する。
【0037】
本開示の実施例において、プロセッサは、さらに、第1実行可能タスク数個の処理すべきデータを第1目標記憶手段に書き込むように構成されてもよい。例えば、処理すべきデータは、処理すべき入力データ及び処理すべき重みデータを含んでもよい。第1実行可能タスク数が4である場合、4つの第1目標データのそれぞれの処理すべき入力データ及び処理すべき重みデータをそれぞれ第1目標記憶手段に書き込むことができる。
【0038】
本開示の実施例において、プロセッサは、第1実行可能タスク数個のタスクを並行して実行し、第1実行可能タスク数個の出力データを取得するようにさらに構成されてもよい。例えば、タスクは、処理すべき重みデータによって処理すべき入力データを処理することを含んでもよい。第1実行可能タスク数が4である場合、4つのタスクを並行して実行し、4つの出力データを得ることができる。
【0039】
本開示の実施例において、プロセッサは、さらに、第1実行可能数個の出力データを第1目標記憶手段に書き込むように構成されてもよい。例えば、4つの出力データを第1目標記憶手段に書き込むことができる。
【0040】
理解できるように、上記では、第1目標データを例として本開示を説明し、以下、第2目標データを例として本開示をさらに説明する。第2目標データのデータ量は64メガバイトであってもよい。
【0041】
いくつかの実施例において、データ処理装置は、第2目標記憶手段をさらに含んでもよく、第2目標記憶手段の容量は、第1目標記憶手段の容量よりも大きくてもよい。例えば、第2目標記憶手段は、グローバルメモリ(GlobalMemory、GM)ユニットであってもよく、上記のレベル4の高速ダイナミックランダムアクセスメモリであってもよい。
【0042】
図2に示すように、プロセッサは、操作S201を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S201において、処理すべき入力データと処理すべき出力データのデータ量の合計が第1目標記憶手段の容量以下であるか否かを決定する。例えば、第2目標データのデータ量は64メガバイトであり、第1目標記憶手段の容量は64メガバイトであってもよい。第2目標データは、処理すべき入力データ、処理すべき重みデータ及び出力データを含んでもよい。第2目標データの処理すべき入力データと出力データのデータ量の合計は、第1目標記憶手段の容量より小さくてもよい。
【0043】
いくつかの実施例において、プロセッサは、さらに、処理すべき入力データと処理すべき出力データのデータ量の合計が第1目標記憶手段の容量以下であると決定したことに応答して、少なくとも1つの命令を実行して、操作S202を実現するように構成されてもよい。操作S202において、目標データのデータ量が第1目標記憶手段の容量以下であるか否かを決定する。例えば、第2目標データのデータ量が第1目標記憶手段の容量に等しいと決定することができる。
【0044】
本開示の実施例において、プロセッサは、さらに、目標データの数が第1目標記憶手段の容量以下であると決定したことに応答して、少なくとも1つの命令を実行して、操作S210を実現するように構成されてもよい。操作S210において、目標データのデータ量と第1目標記憶手段の容量に基づいて、初期スレッド数を決定する。例えば、第2目標データのデータ量と第1目標記憶手段の容量とに基づいて、初期スレッド数が1であると決定することができる。第1記憶手段は、1つの第2目標データを記憶してもよい。
【0045】
次に、本開示の実施例において、プロセッサは、操作S221を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S221において、初期スレッド数が所定のスレッド数より大きいか否かを決定する。所定のスレッド数が1であることを例として、初期スレッド数が1である場合、初期スレッド数が所定のスレッド数に等しいと決定することができる。
【0046】
本開示の実施例において、プロセッサは、初期スレッド数が所定のスレッド数以下であると決定したことに応答して、操作S231を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S231において、プロセッサが目標データを処理するために必要なリソース量に基づいて、第1タスク数を決定する。例えば、第1の第2目標データの第1の処理すべき入力データ及び第1の処理すべき重みデータを第1目標記憶手段に書き込む。第2の第2目標データの第2の処理すべき入力データ及び第2の処理すべき重みデータを第2目標記憶手段に書き込む。プロセッサによって第1の処理すべき入力データ及び第2の処理すべき入力データをそれぞれ処理し、テスト実行に基づいてプロセッサが目標データを処理するために必要なリソース量を決定することができる。次に、テスト実行を複数回行うことができる。i回目のテスト実行において、第2目標記憶手段における処理すべき入力データの数はi個であってもよい。i+1回目のテスト実行において、第2目標記憶手段における処理すべき入力データの数はi+1個であってもよい。I回目のテスト実行時に、第2目標記憶手段における処理すべき入力データの数はI個であってもよい。I回目のテスト実行時に、プロセッサの使用率が100%に近づくと、第1タスクの数がIであると決定することができる。Iは1より大きい整数であってもよく、iは1以上I未満の整数であってもよい。
【0047】
本開示の実施例において、プロセッサは、操作S232を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S232において、第1タスク数と初期スレッド数に基づいて、第2実行可能タスク数を決定する。例えば、第1タスク数がIであり、且つ初期スレッド数が1である場合、第2実行可能タスク数がI+1であると決定することができる。本開示の実施例によれば、データ量が大きい場合、複数の目標データをそれぞれ第1目標記憶手段及び第2目標記憶手段に記憶し、第1目標記憶手段の帯域幅を十分に利用でき、第2目標記憶手段の容量を十分に利用でき、データ処理効率の更なる向上に役立つ。
【0048】
理解されるように、上記では、実行可能タスク数を決定する方式について説明したが、以下では、タスクを実行するいくつかの方式について説明する。
【0049】
本開示の実施例において、プロセッサは、さらに、初期スレッド数個の処理すべきデータを第1目標記憶手段に書き込むように構成されてもよい。処理すべきデータは、処理すべき入力データ及び処理すべき重みデータを含む。例えば、1つの第2目標データの処理すべき入力データ及び処理すべき重みデータを第1目標記憶手段に書き込むことができる。
【0050】
本開示の実施例において、プロセッサは、さらに、第1タスク数個の処理すべきデータを第2目標記憶手段に書き込むように構成されてもよい。例えば、I個の第2目標データのそれぞれの処理すべき入力データ及び処理すべき重みデータを第2目標記憶手段に書き込むことができる。
【0051】
本開示の実施例において、プロセッサは、第2実行可能タスク数個のタスクを並行して実行し、第2実行可能タスク数個の出力データを取得するようにさらに構成されてもよい。タスクは、処理すべき重みデータを用いて処理すべき入力データを処理することを含む。例えば、I+1個のタスクを並行して実行して、I+1個の出力データを得ることができる。
【0052】
本開示の実施例において、プロセッサは、初期スレッド数個の出力データを第1目標記憶手段に書き込むように構成されてもよい。例えば、1つの出力データを第1目標記憶手段に書き込んでもよく、当該出力データは、第1目標記憶手段における処理すべき入力データに対応してもよい。
【0053】
本開示の実施例において、プロセッサは、さらに、第1タスク数個の出力データを第2目標記憶手段に書き込むように構成されてもよい。例えば、I個の出力データを第2目標記憶手段に書き込んでもよく、当該I個の出力データは、それぞれ第2目標記憶手段におけるI個の処理すべき入力データに対応してもよい。本開示の実施例によれば、第1目標記憶手段と第2目標記憶手段に記憶された処理すべき入力データを並行して処理することができ、人工知能チップの並列処理能力をさらに発揮させ、データ処理効率を向上させることができる。
【0054】
理解されるように、上記では、第2目標データを例として本開示を説明し、以下、第3目標データを例として本開示をさらに説明する。第3目標データのデータ量は64メガバイトよりも大きくてもよい。
【0055】
図2に示すように、プロセッサは、操作S201を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S201において、処理すべき入力データと処理すべき出力データのデータ量の合計が第1目標記憶手段の容量以下であるか否かを決定する。例えば、第3目標データのデータ量は64メガバイトよりも大きくてもよく、第1目標記憶手段の容量は64メガバイトであってもよい。第3目標データは、処理すべき入力データと、処理すべき重みデータと、出力データとを含む。第3目標データの処理すべき入力データと出力データのデータ量の合計は、第1目標記憶手段の容量より小さくてもよい。
【0056】
いくつかの実施例において、プロセッサは、処理すべき入力データと処理すべき出力データのデータ量の合計が第1目標記憶手段の容量以下であると決定したことに応答して、操作S202を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S202において、目標データのデータ量が第1目標記憶手段の容量以下であるか否かを決定する。例えば、第3目標データのデータ量が第1目標記憶手段の容量よりも大きいと決定することができる。
【0057】
本開示の実施例において、プロセッサは、目標データの数が第1目標記憶手段の容量より大きいと決定したことに応答して、操作S240を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S240において、プロセッサが目標データを処理するために必要なリソース量に基づいて、第3実行可能タスク数を決定する。例えば、第3目標データを例として、3つの第3目標データの処理すべき入力データ及び処理すべき重みデータを第2目標記憶手段に書き込むことができる。プロセッサによって3つの第3目標データの処理すべき入力データをそれぞれ処理し、プロセッサが第3目標データを処理するために必要なリソース量を決定する。プロセッサが1つの第3目標データを処理するために必要なプロセッサ使用率が5%である場合、第3実行可能タスク数が20であると決定することができる。理解されるように、第3実行可能タスク数個の第3目標データを処理するために必要なリソース量は、プロセッサのすべてのリソースの量を超えない。例えば、第3実行可能タスク数個の第3目標データを処理するために必要なプロセッサ使用率は100%を超えない。本開示の実施例によれば、データ量が大きい場合、複数の目標データを第2目標記憶手段に記憶すれば、第2目標記憶手段の容量を十分に利用でき、データ処理効率を向上させることができる。
【0058】
理解されるように、上記では、実行可能タスク数を決定する方式について説明したが、以下では、タスクを実行するいくつかの方式について説明する。
【0059】
本開示の実施例において、プロセッサは、さらに、第3実行可能タスク数個の処理すべきデータを第2目標記憶手段に書き込むように構成されてもよい。処理すべきデータは、処理すべき入力データ及び処理すべき重みデータを含む。例えば、第3実行可能タスク数が20である場合、20個の第3目標データのそれぞれの処理すべき入力データ及び処理すべき重みデータを第2目標記憶手段に書き込むことができる。
【0060】
本開示の実施例において、プロセッサは、さらに、第3実行可能タスク数個のタスクを並行して実行し、第3実行可能タスク数個の出力データを取得するように構成されてもよい。タスクは、処理すべき重みデータを用いて処理すべき入力データを処理することを含む。例えば、20個のタスクを並行して実行し、20個の出力データを得ることができる。
【0061】
本開示の実施例において、プロセッサは、さらに、第3実行可能数個の出力データを第2目標記憶手段に書き込むように構成されてもよい。例えば、20個の出力データを第2目標記憶手段に書き込んでもよい。本開示の実施例によれば、第2目標記憶手段に記憶された処理すべき入力データを並行して処理することができ、人工知能チップの並列処理能力を十分に発揮させ、データ処理効率を向上させることができる。
【0062】
理解されるように、上記では、第3目標データを例として本開示を説明し、以下、第4目標データを例として本開示をさらに説明する。第4目標データの処理すべき入力データと処理すべき重みデータのデータ量の合計は64メガバイトよりも大きくてもよい。
【0063】
図2に示すように、プロセッサは、操作S201を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S201において、処理すべき入力データと処理すべき出力データのデータ量の合計が第1目標記憶手段の容量以下であるか否かを決定する。例えば、第1目標記憶手段の容量は64メガバイトであってもよい。第4目標データの処理すべき入力データと出力データのデータ量の合計は、第1目標記憶手段の容量よりも大きくてもよい。
【0064】
いくつかの実施例において、プロセッサは、処理すべき入力データと処理すべき出力データのデータ量の合計が第1目標記憶手段の容量よりも大きいと決定したことに応答して、操作S202を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S202において、目標データのデータ量が第1目標記憶手段の容量以下であるか否かを決定する。例えば、第3目標データのデータ量が第1目標記憶手段の容量よりも大きいと決定することができる。
【0065】
本開示の実施例において、プロセッサは、目標データの数が第1目標記憶手段の容量より大きいと決定したことに応答して、操作S251を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S251において、処理すべき入力データを複数の処理すべきサブ入力データに分割する。例えば、第4目標データの処理すべき入力データは、処理すべき入力画像データであってもよい。処理すべき入力画像データの規模(shape)は[n、c、h、w]であってもよい。nはバッチサイズ(Batchsize)であり、処理すべき入力画像データにおける画像の数を示してもよい。cは画像のチャンネル数であり、例えば3であってもよい。hは画像の高さであってもよく、wは画像の幅であってもよい。処理すべき入力画像データのバッチサイズに基づいて、処理すべき入力画像データを複数の処理すべき入力画像サブデータに分割することができる。nが64である場合、処理すべき入力画像データは64個の画像を含んでもよい。処理すべき入力画像データは、16個の処理すべき入力画像サブデータに分割されてもよい。各処理すべき入力画像サブデータのバッチサイズは4である。
【0066】
本開示の実施例において、プロセッサは、操作S252を実現するように、少なくとも1つの命令を実行するように構成されてもよい。操作S252において、プロセッサが処理すべき入力サブデータを処理するために必要なリソース量に基づいて、第4実行可能タスク数を決定する。例えば、処理すべき重みデータと3つの処理すべき入力画像サブデータを第2目標記憶手段に書き込んでもよい。プロセッサによって3つの処理すべき入力画像サブデータをそれぞれ処理して、プロセッサが処理すべき入力画像サブデータを処理するために必要なリソース量を決定する。プロセッサが1つの処理すべき入力画像サブデータを処理するために必要なプロセッサ使用率が6%である場合、第4実行可能タスク数が16であると決定することができる。理解されるように、第4実行可能タスク数個の処理すべき入力画像サブデータを処理するために必要なリソース量は、プロセッサの全てのリソース量を超えなくてもよい。例えば、第4実行可能タスク数個の処理すべき入力画像サブデータを処理するために必要なプロセッサ使用率は100%を超えない。本開示の実施例によれば、データ量がより大きい場合、処理すべき入力データを分割することにより、第2目標記憶手段の容量を十分に利用し、データ処理効率を向上させることができる。
【0067】
理解されるように、上記では、実行可能タスク数を決定する方式について説明したが、以下では、タスクを実行するいくつかの方式について説明する。
【0068】
本開示の実施例において、プロセッサは、処理すべき重みデータ及び第4実行可能タスク数個の処理すべきサブ入力データを第2目標記憶手段に書き込むように構成されてもよい。例えば、処理すべき重みデータを第2目標記憶手段に書き込んでもよく、16個の処理すべき入力画像サブデータを第2目標記憶手段に書き込んでもよい。
【0069】
本開示の実施例において、プロセッサは、さらに、第4実行可能タスク数個のタスクを並行して実行し、第4実行可能タスク数個の出力サブデータを取得するように構成されてもよい。タスクは、処理すべき重みデータを用いて処理すべきサブ入力データを処理することを含む。例えば、16個のタスクを並行して実行し、16個の出力サブデータを得ることができる。
【0070】
本開示の実施例において、プロセッサは、さらに、第4実行可能数個の出力サブデータを第2目標記憶手段に書き込むように構成されてもよい。例えば、16個の出力サブデータを第2目標記憶手段に書き込んでもよい。
【0071】
本開示の実施例において、プロセッサは、複数の出力サブデータを出力データにステッチするように構成されてもよい。例えば、16個の出力サブデータを処理すべき入力データに対応する出力データにステッチしてもよい。本開示の実施例によれば、データ量がより大きい場合、処理すべき入力画像データのバッチサイズに基づいて、データを分割することができ、動的な分流を実現し、データを効率的に並行して処理することができる。
【0072】
理解されるように、プロセッサのプロセッサコアは、レベル1高速ダイナミックランダムアクセスメモリにおけるデータに基づいて、第2タスク数個のタスクを実行するようにさらに構成されてもよい。
【0073】
理解されるように、上記では、本開示のデータ処理装置について説明したが、以下、本開示のデータ処理方法について説明する。
【0074】
図3は、本開示の一実施例に係るデータ処理方法のフローチャートである。
図3に示すように、当該方法300は、操作S310~操作S320を含んでもよい。
【0075】
操作S310において、目標データのデータ量が第1目標記憶手段の容量以下であると決定したことに応答して、目標データのデータ量と第1目標記憶手段の容量とに基づいて、初期スレッド数を決定する。
【0076】
本開示の実施例において、目標データは、処理すべき入力データ、処理すべき重みデータ及び出力データを含む。
【0077】
操作S320において、初期スレッド数が所定のスレッド数以上であると決定したことに応答して、初期スレッド数に基づいて、第1実行可能タスク数を決定する。
【0078】
理解されるように、上記したプロセッサ120によって方法300を実行することができる。
【0079】
いくつかの実施例において、方法300は、第1実行可能タスク数個の処理すべきデータを第1目標記憶手段に書き込むことをさらに含んでもよい。例えば、処理すべきデータは、処理すべき入力データ及び処理すべき重みデータを含む。第1実行可能タスク数個のタスクを並行して実行し、第1実行可能タスク数個の出力データを取得する。例えば、タスクは、処理すべき重みデータを用いて処理すべき入力データを処理することを含む。第1実行可能数個の出力データを第1目標記憶手段に書き込む。
【0080】
いくつかの実施例において、第1目標記憶手段の容量は、第2目標記憶手段の容量以下である。
【0081】
いくつかの実施例において、方法300は、初期スレッド数が所定のスレッド数に等しいと決定したことに応答して、プロセッサが目標データを処理するために必要なリソース量に基づいて、第1タスク数を決定することをさらに含んでもよい。第1タスク数及び初期スレッド数に基づいて、第2実行可能タスク数を決定する。
【0082】
いくつかの実施例において、方法300は、初期スレッド数個の処理すべきデータを第1目標記憶手段に書き込むことをさらに含んでもよい。例えば、処理すべきデータは、処理すべき入力データ及び処理すべき重みデータを含む。第1タスク数個の処理すべきデータを第2目標記憶手段に書き込む。第2実行可能タスク数個のタスクを並行して実行し、第2実行可能タスク数個の出力データを取得する。例えば、タスクは、処理すべき重みデータを用いて処理すべき入力データを処理することを含む。初期スレッド数個の出力データを第1目標記憶手段に書き込む。第1タスク数個の出力データを第2目標記憶手段に書き込む。
【0083】
いくつかの実施例において、方法300は、目標データのデータ量が第1目標記憶手段の容量よりも大きいと決定したことに応答して、プロセッサが目標データを処理するために必要なリソース量に基づいて、第3実行可能タスク数を決定することをさらに含んでもよい。
【0084】
いくつかの実施例において、方法300は、第3実行可能タスク数個の処理すべきデータを第2目標記憶手段に書き込むことをさらに含んでもよい。例えば、処理すべきデータは、処理すべき入力データ及び処理すべき重みデータを含む。第3実行可能タスク数個のタスクを並行して実行し、第3実行可能タスク数個の出力データを取得する。例えば、タスクは、処理すべき重みデータを用いて処理すべき入力データを処理することを含む。第3実行可能数個の出力データを第2目標記憶手段に書き込む。
【0085】
いくつかの実施例において、方法300は、処理すべき入力データと出力データのデータ量の合計が第1目標記憶手段の容量よりも大きいと決定したことに応答して、処理すべき入力データを複数の処理すべきサブ入力データに分割することをさらに含んでもよい。プロセッサが処理すべきサブ入力データを処理するために必要なリソース量に基づいて、第4実行可能タスク数を決定する。
【0086】
いくつかの実施例において、方法300は、処理すべき重みデータ及び第4実行可能タスク数個の処理すべきサブ入力データを第2目標記憶手段に書き込むことをさらに含んでもよい。第4実行可能タスク数個のタスクを並行して実行し、第4実行可能タスク数個の出力サブデータを取得する。例えば、タスクは、処理すべき重みデータを用いて処理すべきサブ入力データを処理することを含む。第4実行可能数個の出力サブデータを第2目標記憶手段に書き込む。複数の出力サブデータを出力データにステッチする。
【0087】
図4は、本開示の一実施例に係る電子機器のブロック図である。
図4に示すように、当該機器40は、本開示に係るデータ処理装置400を含んでもよい。例えば、データ処理装置400は、上述したデータ処理装置100であってもよい。
【0088】
本開示の技術案において、かかるユーザ個人情報の収集、記憶、使用、加工、伝送、提供、公開および適用などの処理は、いずれも関連法規制の規定に適合し、必要な秘密保持を採用し、公序良俗に反しない。本開示の技術案において、ユーザ個人情報を取得や採集する前に、いずれもユーザの許可または同意を取得した。
【0089】
本開示の実施例によれば、本開示は、電子機器、可読記憶媒体及びコンピュータプログラム製品をさらに提供する。
【0090】
図5は、本開示の実施例の例示電子機器500を実施するための例示的なブロック図を示す。電子機器は、例えば、ラップトップ型コンピュータ、デスクトップコンピュータ、作業台、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータという様々な形式のデジタルコンピュータを表示することを意図する。電子機器は、さらに、例えば、パーソナルデジタルアシスタント、携帯電話、スマートフォン、ウェアラブルデバイス及び他の類似の計算装置という様々な形式の移動装置を表示してもよい。本明細書に示された部材、それらの接続及び関係、及びそれらの機能は例示に過ぎず、本明細書に記載された及び/又は要求された本開示の実現を限定するものではない。
【0091】
図5に示すように、電子機器500は、計算手段501を含み、それはリードオンリーメモリ(ROM)502に記憶されたコンピュータプログラム又は記憶手段508からランダムアクセスメモリ(RAM)503にロードされたコンピュータプログラムに基づいて、様々な適切な動作及び処理を実行することができる。RAM 503には、さらに電子機器500の操作に必要な様々なプログラム及びデータを記憶することができる。計算手段501、ROM 502、およびRAM 503は、バス504を介して相互に接続されている。バス504には、入出力(I/O)インタフェース505も接続されている。
【0092】
電子機器500における複数の部品は、I/Oインタフェース505に接続され、例えばキーボード、マウス等の入力手段506と、例えば様々な種別のディスプレイ、スピーカ等の出力手段507と、例えば磁気ディスク、光ディスク等の記憶手段508と、例えばネットワークカード、モデム、無線通信トランシーバ等の通信手段509とを含む。通信手段509は、電子機器500がインターネット等のコンピュータネットワーク及び/又は各種の電気通信網を介して他のデバイスと情報/データをやり取りすることを可能にする。
【0093】
計算手段501は、処理及び計算能力を有する各種の汎用及び/又は専用の処理モジュールであってもよい。計算手段501の幾つかの例としては、中央処理装置(CPU)、GPU(Graphics Processing Unit)、各種専用の人工知能(AI)演算チップ、各種機械学習モデルアルゴリズムの計算手段、DSP(Digital Signal Processor)、並びに任意の適切なプロセッサ、コントローラ、マイクロコントローラ等が挙げられるが、これらに限定されない。計算手段501は、例えばデータ処理方法のような前記記載された各方法と処理を実行する。例えば、いくつかの実施例において、データ処理方法は、例えば記憶手段508のような機械可読媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施例において、コンピュータプログラムの一部又は全部は、ROM1002及び/又は通信手段509を介して電子機器500にロード及び/又はインストールされてもよい。コンピュータプログラムがRAM1003にロードされて計算手段501により実行される場合、前記記載されたデータ処理方法の1つ又は複数のステップを実行してもよい。代替的に、別の実施例において、計算手段501は、他の任意の適切な形態(例えば、ファームウェアを介する)によりデータ処理方法を実行するように構成されてもよい。
【0094】
本明細書で説明されたシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジックデバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実現されてもよい。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムにおいて実施され、該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラムブルプロセッサを含むプログラムブルシステムで実行され及び/又は解釈されることが可能であり、該プログラムブルプロセッサは、専用又は汎用のプログラムブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、かつデータ及び命令を該記憶システム、該少なくとも1つの入力装置、及び該少なくとも1つの出力装置に伝送することができることを含んでもよい。
【0095】
本開示の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで作成されてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ又は他のプログラムブルデータ処理装置のプロセッサ又はコントローラに提供されてもよく、それによって、プログラムコードがプロセッサ又はコントローラにより実行される時に、フローチャート及び/又はブロック図に規定された機能/操作が実施される。プログラムコードは、機器に完全に実行されてもよく、部分的に機器で実行されてもよく、独立したソフトウェアパッケージとして部分的に機器で実行され、かつ部分的に遠隔機器で実行されるか又は完全に遠隔機器又はサーバで実行されてもよい。
【0096】
本開示のコンテキストにおいて、機械可読媒体は、有形の媒体であってもよく、命令実行システム、装置又は電子機器に使用され、又は命令実行システム、装置又は機器と組み合わせて使用されるプログラムを含んで又は記憶してもよい。機械可読媒体は、機械可読信号媒体又は機械可読記憶媒体であってもよい。機械可読媒体は、電子の、磁気的、光学的、電磁的、赤外線の、又は半導体システム、装置又は電子機器、又は前記内容の任意の適切な組み合わせを含んでもよいが、それらに限定されない。機械可読記憶媒体のより具体的な例としては、1つ以上の線による電気的接続、携帯式コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は前記内容の任意の適切な組み合わせを含む。
【0097】
ユーザとのインタラクションを提供するために、コンピュータにここで説明されたシステム及び技術を実施させてもよく、該コンピュータは、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)ディスプレイ又はLCD(液晶ディスプレイ))と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを備え、ユーザは、該キーボード及び該ポインティングデバイスを介して入力をコンピュータに提供することができる。他の種別の装置は、さらにユーザとのインタラクションを提供してもよく、例えば、ユーザに提供されたフィードバックは、いかなる形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、かついかなる形式(音声入力、語音入力又は触覚入力を含む)でユーザからの入力を受信してもよい。
【0098】
ここで説明されたシステム及び技術は、バックグラウンド部品を含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェア部品を含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンド部品を含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザが該グラフィカルユーザインタフェース又は該ネットワークブラウザを介してここで説明されたシステム及び技術の実施形態とインタラクションすることができる)、又はこのようなバックグラウンド部品、ミドルウェア部品、又はフロントエンド部品のいずれかの組み合わせを含むコンピューティングシステムに実施されることが可能である。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によりシステムの部品を互いに接続することができる。通信ネットワークの例としては、局所エリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及びインターネットを例示的に含む。
【0099】
コンピュータシステムは、クライアント及びサーバを含んでよい。クライアントとサーバ同士は、一般的に離れており、通常、通信ネットワークを介してインタラクションする。クライアントとサーバとの関係は、該当するコンピュータ上でランニングし、クライアント-サーバの関係を有するコンピュータプログラムによって生成される。サーバは、クラウドサーバであってもよく、分散システムのサーバ、またはブロックチェーンと組み合わせたサーバであってよい。
【0100】
理解されるべきこととして、以上に示された様々な形式のフローを使用してもよく、ステップを改めてソーティングしたり、付加したり又は削除してもよい。例えば、本発明に記載の各ステップは、並列的に実行されたり、順次に実行されたり、又は異なる順序で実行されてもよく、本開示の技術案の所望の結果を実現することができれば、本明細書はここで限定されない。
【0101】
前記具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者であれば、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション及び代替を行うことが可能であると理解すべきである。本開示の精神と原則内で行われた任意の修正、均等置換及び改良などは、いずれも本開示の保護範囲内に含まれるべきである。