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

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

▶ クンルンシン テクノロジー (ベイジン) カンパニー リミテッドの特許一覧

特開2024-159724データ処理装置、データ処理方法、電子機器、コンピュータプログラムおよび記憶媒体
<>
  • 特開-データ処理装置、データ処理方法、電子機器、コンピュータプログラムおよび記憶媒体 図1
  • 特開-データ処理装置、データ処理方法、電子機器、コンピュータプログラムおよび記憶媒体 図2A
  • 特開-データ処理装置、データ処理方法、電子機器、コンピュータプログラムおよび記憶媒体 図2B
  • 特開-データ処理装置、データ処理方法、電子機器、コンピュータプログラムおよび記憶媒体 図2C
  • 特開-データ処理装置、データ処理方法、電子機器、コンピュータプログラムおよび記憶媒体 図3
  • 特開-データ処理装置、データ処理方法、電子機器、コンピュータプログラムおよび記憶媒体 図4
  • 特開-データ処理装置、データ処理方法、電子機器、コンピュータプログラムおよび記憶媒体 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024159724
(43)【公開日】2024-11-08
(54)【発明の名称】データ処理装置、データ処理方法、電子機器、コンピュータプログラムおよび記憶媒体
(51)【国際特許分類】
   G06F 17/16 20060101AFI20241031BHJP
【FI】
G06F17/16 M
【審査請求】有
【請求項の数】22
【出願形態】OL
(21)【出願番号】P 2024072356
(22)【出願日】2024-04-26
(31)【優先権主張番号】202310484290.0
(32)【優先日】2023-04-28
(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)【代理人】
【識別番号】110000914
【氏名又は名称】弁理士法人WisePlus
(72)【発明者】
【氏名】シャン リァン
(72)【発明者】
【氏名】ガオ ダーホン
(72)【発明者】
【氏名】リー ユーポン
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB71
5B056FF05
(57)【要約】      (修正有)
【課題】行列乗算においてアクセスメモリ量を効果的に低減し、データ処理装置の効率を向上させる装置、データ処理方法、電子機器、コンピュータプログラム及び記憶媒体を提供する。
【解決手段】データ処理装置は、複数の記憶空間を含むキャッシュユニットとプロセッサとを含み、プロセッサは、複数の記憶空間から、I個の記憶空間群を決定し、各記憶空間群に対して、第1行列の規模および第1記憶空間の容量に基づいて、複数の第1初期規模情報を決定する操作、複数の第1初期規模情報の各々に基づいて、第2行列に関連する少なくとも1つの第2規模情報を決定する操作、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1初期アクセスメモリ量を決定する操作を実行し、各記憶空間群に対応する複数の第1初期アクセスメモリ量を取得し、I個の記憶空間群のすべての第1初期アクセスメモリ量から、目標アクセスメモリ量を決定する。
【選択図】図4
【特許請求の範囲】
【請求項1】
データ処理装置であって、
複数の記憶空間を含むキャッシュユニットと、
プロセッサと、を含み、
前記プロセッサは、
前記複数の記憶空間から、それぞれが第1記憶空間と第2記憶空間とを含むI(Iは1以上の整数である)個の記憶空間群を決定し、
前記各記憶空間群に対して、
前記第1記憶空間に対応する行列である第1行列の規模および前記第1記憶空間の容量に基づいて、複数の第1初期規模情報を決定する操作、
前記複数の第1初期規模情報の各々に基づいて、前記第2記憶空間に対応する行列である第2行列に関連する少なくとも1つの第2規模情報を決定する操作、
複数の前記第2規模情報及び複数の前記第1初期規模情報に基づいて、前記複数の第1初期アクセスメモリ量を決定する操作を実行することで、
前記各記憶空間群に対応する複数の第1初期アクセスメモリ量を取得し、
前記I個の記憶空間群のすべての第1初期アクセスメモリ量から、目標アクセスメモリ量を決定するように構成されている、
データ処理装置。
【請求項2】
前記プロセッサは、さらに、前記各記憶空間群に対して、
複数の前記第2規模情報、及び、少なくとも1つの第1目標規模情報に対応する複数の前記第1初期規模情報に基づいて、複数の第1目標規模情報を決定する操作、
複数の前記第1目標規模情報に基づいて、前記各記憶空間群に対応する複数の第1初期アクセスメモリ量から少なくとも1つの第2初期アクセスメモリ量を決定する操作を実行するように構成されている、
請求項1に記載の装置。
【請求項3】
前記プロセッサは、さらに、前記各記憶空間群に対して、
複数の前記第2規模情報及び複数の前記第1目標規模情報に基づいて、前記各記憶空間群における第3記憶空間に対応する行列である第3行列に関連する複数の第3規模情報を決定する操作、
複数の前記第1目標規模情報および複数の前記第3規模情報に基づいて、前記複数の第1初期アクセスメモリ量から前記少なくとも1つの第2初期アクセスメモリ量を決定する操作を実行するように構成されている、
請求項2に記載の装置。
【請求項4】
前記プロセッサは、さらに、前記I個の記憶空間群のすべての第2初期アクセスメモリ量から前記目標アクセスメモリ量を決定するように構成されている、
請求項3に記載の装置。
【請求項5】
前記プロセッサは、さらに、
前記目標アクセスメモリ量に対応する前記第1目標規模情報、前記第2規模情報及び前記第3規模情報に基づいて、行列乗算操作を実行するように構成されている、
請求項4に記載の装置。
【請求項6】
前記複数の行列は、乗数行列、被乗数行列および結果行列を含み、
前記目標アクセスメモリ量に対応する前記第1行列、前記第2行列および前記第3行列は、それぞれ、第1目標行列、第2目標行列および第3目標行列である、
請求項5に記載の装置。
【請求項7】
前記プロセッサは、さらに、
前記第3目標行列が前記結果行列である場合、
前記目標アクセスメモリ量に対応する前記第1目標規模情報に従って、前記第1目標行列の第1サブ行列を前記第1記憶空間にロードし、
前記目標アクセスメモリ量に対応する前記第2規模情報に従って、前記第2目標行列の第2サブ行列を前記第2記憶空間にロードし、
前記第1サブ行列及び前記第2サブ行列に対して行列乗算操作を実行し、前記第3目標行列の第3サブ行列を取得し、
前記第3サブ行列を前記第3記憶空間に書き込むように構成されている、
請求項6に記載の装置。
【請求項8】
前記プロセッサは、さらに、
前記第1目標行列が前記結果行列である場合、
前記目標アクセスメモリ量に対応する前記第3規模情報に従って、前記第3目標行列の第3サブ行列を前記第3記憶空間にロードし、
前記目標アクセスメモリ量に対応する前記第2規模情報に従って、前記第2目標行列の第2サブ行列を前記第2記憶空間にロードし、
前記第3サブ行列及び前記第2サブ行列に対して行列乗算操作を実行して、前記第1目標行列の第1サブ行列を取得し、
前記第1サブ行列を前記第1記憶空間に書き込むように構成されている、
請求項6に記載の装置。
【請求項9】
前記プロセッサは、さらに、
前記第2目標行列が前記結果行列である場合、
前記目標アクセスメモリ量に対応する前記第1目標規模情報に従って、前記第1目標行列の第1サブ行列を前記第1記憶空間にロードし、
前記目標アクセスメモリ量に対応する前記第3規模情報に従って、前記第3目標行列の第3サブ行列を前記第3記憶空間にロードし、
前記第1サブ行列及び前記第3サブ行列に対して行列乗算操作を実行し、前記第2目標行列の第2サブ行列を取得し、
前記第2サブ行列を前記第2記憶空間に書き込むように構成されている、
請求項6に記載の装置。
【請求項10】
請求項1~9のいずれか1項に記載のデータ処理装置を含む電子機器。
【請求項11】
データ処理方法であって、
キャッシュユニットの複数の記憶空間から、それぞれが第1記憶空間と第2記憶空間とを含むI(Iは1以上の整数である)個の記憶空間群を決定することと、
前記各記憶空間群に対して、
前記第1記憶空間に対応する行列である第1行列の規模および前記第1記憶空間の容量に基づいて、複数の第1初期規模情報を決定する操作、
前記複数の第1初期規模情報の各々に基づいて、前記第2記憶空間に対応する行列である第2行列に関連する少なくとも1つの第2規模情報を決定する操作、
複数の前記第2規模情報及び複数の前記第1初期規模情報に基づいて、前記複数の第1初期アクセスメモリ量を決定する操作を実行することで、前記各記憶空間群に対応する複数の第1初期アクセスメモリ量を取得することと、
前記I個の記憶空間群のすべての第1初期アクセスメモリ量から目標アクセスメモリ量を決定することと、を含む
データ処理方法。
【請求項12】
前記各記憶空間群に対して、さらに、
複数の前記第2規模情報、及び、少なくとも1つの第1目標規模情報に対応する複数の前記第1初期規模情報に基づいて、複数の第1目標規模情報を決定する操作、
複数の前記第1目標規模情報に基づいて、前記各記憶空間群に対応する複数の第1初期アクセスメモリ量から少なくとも1つの第2初期アクセスメモリ量を決定する操作も実行する
請求項11に記載の方法。
【請求項13】
前記各記憶空間群に対応する複数の第1初期アクセスメモリ量から少なくとも1つの第2初期アクセスメモリ量を決定することは、
複数の前記第2規模情報及び複数の前記第1目標規模情報に基づいて、前記各記憶空間群における第3記憶空間に対応する行列である第3行列に関連する複数の第3規模情報を決定することと、
複数の前記第1目標規模情報および複数の前記第3規模情報に基づいて、前記複数の第1初期アクセスメモリ量から前記少なくとも1つの第2初期アクセスメモリ量を決定することと、を含む、
請求項12に記載の方法。
【請求項14】
前記I個の記憶空間群のすべての第1初期アクセスメモリ量から目標アクセスメモリ量を決定することは、
前記I個の記憶空間群のすべての第2初期アクセスメモリ量から前記目標アクセスメモリ量を決定することを含む、
請求項13に記載の方法。
【請求項15】
前記目標アクセスメモリ量に対応する前記第1目標規模情報、前記第2規模情報及び前記第3規模情報に基づいて、行列乗算操作を実行することをさらに含む
請求項14に記載の方法。
【請求項16】
前記複数の行列は、乗数行列、被乗数行列および結果行列を含み、前記目標アクセスメモリ量に対応する前記第1行列、前記第2行列および前記第3行列は、それぞれ、第1目標行列、第2目標行列および第3目標行列である、
請求項15に記載の方法。
【請求項17】
行列乗算を実行する操作は、
前記第3目標行列が前記結果行列である場合、
前記目標アクセスメモリ量に対応する前記第1目標規模情報に従って、前記第1目標行列の第1サブ行列を前記第1記憶空間にロードすることと、
前記目標アクセスメモリ量に対応する前記第2規模情報に従って、前記第2目標行列の第2サブ行列を前記第2記憶空間にロードすることと、
前記第1サブ行列及び前記第2サブ行列に対して行列乗算操作を実行し、前記第3目標行列の第3サブ行列を取得することと、
前記第3サブ行列を前記第3記憶空間に書き込むことと、を含む、
請求項16に記載の方法。
【請求項18】
行列乗算を実行する操作は、
前記第1目標行列が前記結果行列である場合、
前記目標アクセスメモリ量に対応する前記第3規模情報に従って、前記第3目標行列の第3サブ行列を前記第3記憶空間にロードすることと、
前記目標アクセスメモリ量に対応する前記第2規模情報に従って、前記第2目標行列の第2サブ行列を前記第2記憶空間にロードすることと、
前記第3サブ行列及び前記第2サブ行列に対して行列乗算操作を実行して、前記第1目標行列の第1サブ行列を取得することと、
前記第1サブ行列を前記第1記憶空間に書き込むことと、を含む、
請求項16に記載の方法。
【請求項19】
前記行列乗算を実行する操作は、
前記第2目標行列が前記結果行列である場合、
前記目標アクセスメモリ量に対応する前記第1目標規模情報に従って、前記第1目標行列の第1サブ行列を前記第1記憶空間にロードすることと、
前記目標アクセスメモリ量に対応する前記第3規模情報に従って、前記第3目標行列の第3サブ行列を前記第3記憶空間にロードすることと、
前記第1サブ行列及び前記第3サブ行列に対して行列乗算操作を実行し、前記第2目標行列の第2サブ行列を取得することと、
前記第2サブ行列を前記第2記憶空間に書き込むことと、を含む、
請求項16に記載の方法。
【請求項20】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信接続されたメモリと、を含み、
前記メモリは、前記少なくとも1つのプロセッサによって実行可能な命令を記憶し、前記命令は、前記少なくとも1つのプロセッサが請求項11~19のいずれか1項に記載の方法を実行できるように、前記少なくとも1つのプロセッサによって実行される、
電子機器。
【請求項21】
コンピュータ命令が記憶されている非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ命令は、前記コンピュータに請求項11~19のいずれか一項に記載の方法を実行させる、
非一時的なコンピュータ可読記憶媒体。
【請求項22】
プロセッサによって実行されると、請求項11~19のいずれか一項に記載の方法を実現するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能技術分野に関し、特に、チップ技術分野に関する。より具体的には、本開示は、データ処理装置、データ処理方法、電子機器、コンピュータプログラム及び記憶媒体を提供する。
【背景技術】
【0002】
人工知能技術の発展に伴い、人工知能チップのハードウェア資源に基づいて深層学習モデルの演算子を調整することができる。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示は、データ処理装置、データ処理方法、電子機器、コンピュータプログラム及び記憶媒体を提供する。
【0004】
本開示の一態様によれば、データ処理装置を提供し、当該装置は、複数の記憶空間を含むキャッシュユニットと、プロセッサと、を含み、プロセッサは、前記複数の記憶空間から、それぞれが第1記憶空間と第2記憶空間とを含むI個の記憶空間群を決定し、前記各記憶空間群に対して、前記第1記憶空間に対応する行列である第1行列の規模および前記第1記憶空間の容量に基づいて、複数の第1初期規模情報を決定する操作、前記複数の第1初期規模情報の各々に基づいて、前記第2記憶空間に対応する行列である第2行列に関連する少なくとも1つの第2規模情報を決定する操作、複数の前記第2規模情報及び複数の前記第1初期規模情報に基づいて、前記複数の第1初期アクセスメモリ量を決定する操作を実行し、前記各記憶空間群に対応する複数の第1初期アクセスメモリ量を取得し、前記I個の記憶空間群のすべての第1初期アクセスメモリ量から、目標アクセスメモリ量を決定するように構成され、ここで、Iは1以上の整数である。
【0005】
本開示の別の態様によれば、本開示に係るデータ処理装置を含む電子機器を提供する。
【0006】
本開示の別の態様によれば、データ処理方法を提供し、当該方法は、キャッシュユニットの複数の記憶空間から、それぞれが第1記憶空間と第2記憶空間とを含むI個の記憶空間群を決定することと、前記各記憶空間群に対して、前記第1記憶空間に対応する行列である第1行列の規模および前記第1記憶空間の容量に基づいて、複数の第1初期規模情報を決定する操作、前記複数の第1初期規模情報の各々に基づいて、前記第2記憶空間に対応する行列である第2行列に関連する少なくとも1つの第2規模情報を決定する操作、複数の前記第2規模情報及び複数の前記第1初期規模情報に基づいて、前記複数の第1初期アクセスメモリ量を決定する操作を実行し、前記各記憶空間群に対応する複数の第1初期アクセスメモリ量を取得することと、前記I個の記憶空間群のすべての第1初期アクセスメモリ量から目標アクセスメモリ量を決定することと、を含み、ここで、Iが1以上の整数である。
【0007】
本開示の別の態様によれば、電子機器を提供し、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサと通信接続されたメモリと、を含み、前記メモリは、前記少なくとも1つのプロセッサによって実行可能な命令を記憶し、前記命令は、前記少なくとも1つのプロセッサが本開示に係る方法を実行できるように、前記少なくとも1つのプロセッサによって実行される。
【0008】
本開示の別の態様によれば、コンピュータ命令が記憶されている非一時的なコンピュータ可読記憶媒体を提供し、前記コンピュータ命令は、前記コンピュータに本開示に係る方法を実行させる。
【0009】
本開示の別の態様によれば、コンピュータプログラムを提供し、プロセッサによって実行されると、本開示に係る方法を実現する。
【0010】
理解すべきように、本部分に記載された内容は、本開示の実施例の重要な特徴を識別するためのものではなく、本開示の範囲を制限するものでもない。本開示のその他の特徴は、以下の明細書によって容易に理解されるであろう。
【0011】
図面は、本発明をより良く理解するためのものであり、本開示を限定するものではない。
【図面の簡単な説明】
【0012】
図1図1は、本開示の一実施例に係るデータ処理装置の概略ブロック図である。
図2A図2Aは、本開示の一実施例に係る第1初期規模情報の模式図である。
図2B図2Bは、本開示の一実施例に係る第2規模情報の模式図である。
図2C図2Cは、本開示の一実施例に係る第3規模情報の模式図である。
図3図3は、本開示の一実施例に係る電子機器の模式図である。
図4図4は、本開示の一実施例に係るデータ処理方法のフローチャートである。
図5図5は、本開示の一実施例に係るデータ処理方法を適用可能な電子機器のブロック図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本開示の例示的な実施例を説明し、理解を容易にするために、本開示の実施例の様々な詳細を含み、これらが例示的なものに過ぎないと理解されるべきである。したがって、当業者は、ここに記載された実施例に対して、本開示の範囲及び精神から逸脱することなく、様々な変更及び修正を行うことができることを認識すべきである。同様に、明確かつ簡潔にするために、以下の説明では、公知の機能及び構造についての説明を省略する。
【0014】
ディープラーニングモデルのいくつかの演算子は、アクセスメモリ集中型演算子であってもよい。アクセスメモリ集中型演算子は、例えば、一般行列乗算(General Matrix Multiplication、GEMM)演算子を含んでもよい。
【0015】
一般行列乗算演算子は、被乗数行列A、乗数行列B、結果行列Cに対応することができる。一般行列乗算演算子の計算プロセスは以下のように実現できる。
【数1】
【0016】
被乗数行列Aの規模(shape)は、m×kであってもよく、乗数行列Bの規模は、k×nであってもよく、結果行列Cの規模は、m×nであってもよい。被乗数行列Aおよび乗数行列Bは、それぞれ、一般行列乗算演算子の2つの入力行列とすることができる。
【0017】
いくつかの実施例では、2つの入力行列のうちのいずれかの入力行列を分解し、当該入力行列の複数のサブ行列を得ることができる。
【0018】
例えば、被乗数行列Aを複数のサブ行列に分解してもよい。レベル一のキャッシュユニット(Level 1 Cache、L1 Cache)において、複数の記憶空間が決定され、それぞれ被乗数行列Aのサブ行列、乗数行列Bと結果行列Cを記憶する。これにより、レベル一のキャッシュ手段の利用率を向上させ、外部記憶ユニット(例えばビデオメモリ)におけるオリジナル行列へのアクセスを低減することができる。
【0019】
被乗数行列Aのサブ行列の規模は、例えば、l_m×kであってもよい。被乗数行列Aのサブ行列は、レベル一のキャッシュ手段の一つの記憶空間に記憶されてもよい。複数のサブ行列をそれぞれ乗数行列Bに乗算し、アクセスメモリ量パラメータ値LS_Aは、以下のようなものであってもよい。
【数2】
【0020】
行列内の各要素のデータ量を決定する場合、アクセスメモリ量パラメータ値と当該データ量との積は、アクセスメモリ量であることが理解される。各要素のデータ量は、例えば32ビット(bit)であってもよい。
【0021】
例えば、乗数行列Bを複数のサブ行列に分解してもよい。レベル一のキャッシュユニットにおいて複数の記憶空間を決定し、それぞれ被乗数行列A、乗数行列Bのサブ行列と結果行列Cを記憶する。これにより、レベル一のキャッシュユニットの利用率を向上させ、外部記憶手段(例えばビデオメモリ)におけるオリジナル行列へのアクセスを低減することもできる。
【0022】
乗数行列Bのサブ行列の規模は、例えば、k×l_nであってもよい。乗数行列Bのサブ行列は、レベル一のキャッシュユニットの1つの記憶空間に記憶されてもよい。複数のサブ行列をそれぞれ被乗数行列Aに乗算し、アクセスメモリ量パラメータ値LS_Bは、以下のようなものであってもよい。
【数3】
【0023】
これにより、1つの入力行列を分解する場合、最小のアクセスメモリ量パラメータ値LS_AorBは、以下のようなものであってもよい。
【数4】
【0024】
しかしながら、1つの入力行列のみを分解する場合、分解されていない行列がレベル一のキャッシュユニットに記憶されにくい可能性があり、この分解されていない行列へのアクセスを外部記憶手段から複数回繰り返す必要があり、アクセスメモリ量が増大してしまう。また、結果行列に対応する記憶空間を十分に利用せず、記憶空間が十分に利用されない。
【0025】
図1は、本開示の一実施例に係るデータ処理装置の概略ブロック図である。
【0026】
図1に示すように、装置100は、キャッシュユニット110及びプロセッサ120を含んでもよい。
【0027】
キャッシュユニット110は、複数の記憶空間を含んでもよい。本開示の実施例において、複数の記憶空間は、それぞれ複数の行列に対応してもよい。例えば、複数の記憶空間は、記憶空間L1A、記憶空間L1B及び記憶空間L1Cを含んでもよく、上記の被乗数行列A、乗数行列B及び結果行列Cにそれぞれ対応してもよい。
【0028】
プロセッサ120は、複数の記憶空間からI個の記憶空間群を決定するように構成されてもよい。本開示の実施例において、I個の記憶空間群における各記憶空間は、第1記憶空間と第2記憶空間とを含んでもよい。Iは1以上の整数であってもよい。例えば、複数の行列が3つの行列である場合、Iは6であってもよい。行列数が3であることが例示であることが理解される。複数の行列は、2つ、4つまたはより多くの行列であってもよい。
【0029】
プロセッサ120は、各記憶空間群に対して、第1行列の規模および第1記憶空間の容量に基づいて、複数の第1初期規模情報を決定する操作、複数の第1初期規模情報のうちの各第1初期規模情報に基づいて、少なくとも1つの第2規模情報を決定する操作、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1初期アクセスメモリ量を決定する操作を実行することにより、各記憶空間群に対応する複数の第1初期アクセスメモリ量を取得するように構成されてもよい。
【0030】
本開示の実施例において、第1行列は、第1記憶空間に対応する行列である。第1記憶空間に対応する行列は、例えば被乗数行列Aであり、第1記憶空間は、記憶空間L1Aであってもよい。被乗数行列Aの規模と記憶空間L1Aの容量に基づいて、複数の第1初期規模情報を決定することができる。第1初期規模情報に対応するサブ行列のデータ量は、第1記憶空間の容量以下である。第1初期規模情報は、第1初期行数と第1初期列数とを含んでもよい。例えば、被乗数行列Aについて、行数m=20かつ列数k=20であれば、少なくとも2つの第1初期規模情報を決定することができる。第1初期規模情報large_A1は、第1初期行数large_am1及び第1初期列数large_ak1を含んでもよい。第1初期行数large_am1は、4であってもよく、第1初期列数large_ak1は、5であってもよい。第1初期規模情報large_A2は、第1初期行数large_am2及び第1初期列数large_ak2を含んでもよい。第1初期行数large_am2は、2であってもよく、第1初期列数large_ak2は、10であってもよい。
【0031】
本開示の実施例において、第2規模情報は第2行列に関連し、第2行列は第2記憶空間に対応する行列である。第2記憶空間に対応する行列が乗数行列Bであることを例とし、第2記憶空間は記憶空間L1Bであってもよい。乗数行列Bの規模と、記憶空間L1Bの容量とに基づいて、複数の第2規模情報を決定してもよい。第2規模情報に対応するサブ行列のデータ量は、第2記憶空間の容量以下である。第2規模情報は、第2行数と第2列数とを含んでもよい。例えば、乗数行列Bについて、行数k=20かつ列数n=20であれば、第1初期規模情報large_A2に基づいて、少なくとも2つの第2規模情報を決定することができる。第2規模情報little_B1は、第2行数little_bk1と、第2列数little_bn1とを含んでもよい。第2行数little_bk1は、2であってもよく、第2列数little_bn1は、5であってもよい。第2規模情報little_B2は、第2行数little_bk2と、第2列数little_bn2とを含んでもよい。第2行数little_bk2は、5であってもよく、第2列数little_bn2は、4であってもよい。
【0032】
本開示の実施例において、第1行列の規模、第2行列の規模、第3行列の規模、第1初期規模情報及び第2規模情報に基づいて、第1初期アクセスメモリ量を取得する。例えば、第1行列が上述の被乗数行列Aであり、第2行列が上述の乗数行列Bである場合、第3行列は、上記結果行列Cであってもよい。3つの行列それぞれの規模、第1初期規模情報large_A2及び第2規模情報little_B1に基づいて、1つのアクセスメモリ量パラメータ値LS_A2B1を決定することができる。当該アクセスメモリ量パラメータ値に基づいて、アクセスメモリ量を決定することができる。
【0033】
プロセッサ120は、I個の記憶空間群のすべての第1初期アクセスメモリ量から目標アクセスメモリ量を決定するように構成されてもよい。例えば、I=6である場合、異なる記憶空間群によって決定されたアクセスメモリ量は異なってもよい。最小アクセスメモリ量を目標アクセスメモリ量としてもよい。
【0034】
本開示の実施例によれば、行列乗算演算子に関連する複数の行列のうちの少なくとも2つの行列を分割し、アクセスメモリ量を効果的に低減することができ、行列乗算演算子の実行効率を提供し、データ処理装置の効率を向上させることに役立つ。
【0035】
理解されるように、以上、本開示のデータ処理装置について説明したが、以下、図2A図2Cを参照して本開示のプロセッサをさらに説明する。
【0036】
図2Aは、本開示の一実施例に係る第1初期規模情報の模式図である。
【0037】
図2Aに示すように、被乗数行列A210の規模はm×kであり、乗数行列B220の規模はk×nであり、結果行列C230の規模はm×nであってもよい。例えば、m=10、n=10、k=10である。
【0038】
本開示の実施例において、プロセッサは、各記憶空間群に対して、第1行列の規模及び第1記憶空間の容量に基づいて、複数の第1初期規模情報を決定する操作を実行するように構成されてもよい。第1行列が被乗数行列A210であることを例として、第1初期規模情報large_A3は、第1初期行数large_am3及び第1初期列数large_ak3を含んでもよい。第1初期行数large_am3は、例えば、2であってもよく、第1初期列数large_ak3は、例えば、5であってもよい。第1初期規模情報large_A3に対応する第1初期サブ行列211及び第1初期サブ行列212は、図2Aに示される。第1初期サブ行列のデータ量は、例えば、記憶空間L1Aと一致してもよく、元の行列に設定されたキャッシュ空間として十分に利用されてもよい。本開示の実施例によれば、第1行列に設定されたキャッシュ空間として十分に利用されることができ、キャッシュ空間の利用率を向上させることに有利である。
【0039】
図2Aに示すように、第1初期規模情報large_A3に基づいて、乗数行列B220の第2初期サブ行列の第2行数は、最大でlarge_ak3であってもよく、第2列数は、最大でnであってもよい。当該第2初期サブ行列のデータ量は、第2記憶空間の容量よりも大きくてもよく、キャッシュユニットの記憶リソースをさらに効率的に使用するために、第2行列に関連する第2規模情報を決定してもよく、以下、図2Bを参照して説明する。
【0040】
図2Bは、本開示の一実施例に係る第2規模情報の模式図である。
【0041】
本開示の実施例において、プロセッサは、各記憶空間群に対して、各第1初期規模情報に基づいて、少なくとも1つの第2規模情報を決定する操作を実行するように構成されてもよい。例えば、各第1初期規模情報及び第2記憶空間の容量に基づいて、少なくとも1つの第2規模情報を決定することができる。第2行列が乗数行列B220であることを例として、第1初期規模情報large_A3の第1初期列数large_ak3と第2記憶空間の容量とに基づいて、第2規模情報little_B3を決定することができる。第2規模情報little_B3は、第2行数little_bk3と、第2列数little_bn3とを含んでもよい。第2行数little_bk3は、5であってもよく、第2列数little_bn3は、2であってもよい。第2規模情報little_B3に対応する第2サブ行列221を図2Bに示す。
【0042】
次に、本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1初期アクセスメモリ量を決定する操作を実行するように構成されてもよい。例えば、第1行列が被乗数行列A210である場合、第1初期規模情報large_A3に基づいて第1サブ行列をそれぞれ複数回ロードすると、第1行列のアクセスメモリ量は変化せず、アクセスメモリ量パラメータ値Load_Aは、以下のようなものであってもよい。
【数5】
【0043】
上述したように、m=k=10であり、アクセスメモリ量パラメータ値Load_Aは100であってもよい。
【0044】
第2行列が乗数行列B220である場合、第2規模情報little_B3に従って第2サブ行列をロードすると、行列乗算規則に基づいて、第1初期サブ行列は第2サブ行列221に乗算されてもよく、第2初期サブ行列212は第2サブ行列221に乗算されてもよい。これにより、第2サブ行列221を多重化することができる。この場合、アクセスメモリ量パラメータ値Load_Bは、以下のようなものであってもよい。
【数6】
【0045】
little_kが第2行数little_bk3であり、little_nが第2列数little_bn3であり、large_mが第1初期行数large_am3であり、large_kが第1初期列数large_ak3であることを例として、m=k=n=10、little_bk3=5、little_bn3=2、large_am3=2、large_ak3=5であれば、アクセスメモリ量パラメータ値Load_Bは420であってもよい。
【0046】
第3行列が結果行列C230であり、第3記憶空間の容量が十分である場合、第3行列の総アクセスメモリ量は変化せず、アクセスメモリ量パラメータ値Store_Cは、以下のようなものであってもよい。
【数7】
【0047】
上述したように、m=n=10であり、アクセスメモリ量パラメータ値Store_Cは100であってもよい。
【0048】
第1行列A210、第2行列B220及び第3行列C230について、総アクセスメモリ量パラメータ値LS_ABCは、以下のようなものであってもよい。
【数8】
【0049】
Load_A=100、Load_B=420、Store_C=100の場合、総アクセスメモリ量パラメータ値LS_ABCは620であってもよい。総アクセスメモリ量パラメータ値及び行列の各要素のデータ量に基づいて、初期アクセスメモリ量を決定することができる。
【0050】
また、例えば、被乗数行列Aのみを分解し、上記の式2により、m=k=n=10、l_m=2である場合、総アクセスメモリ量パラメータ値LS_Aが700であると決定することができる。これにより、少なくとも2つの行列を分解し、アクセスメモリ量を効果的に低減し、メモリアクセス効率を向上させることができる。
【0051】
理解されるように、上記では、第1初期規模情報large_A3及び第2規模情報little_B3に基づいて、第1初期アクセスメモリ量が決定される。本開示の実施例において、複数の第1初期規模情報及び複数の第2規模情報に基づいて、複数の第1初期アクセスメモリ量を決定することができる。
【0052】
行列乗算の実行効率をさらに向上させるために、行列乗算操作を並行して実行するように、第1初期サブ行列をさらに分割してもよい。以下、図2Cを参照してさらに説明する。
【0053】
図2Cは、本開示の一実施例に係る第3規模情報の模式図である。
【0054】
本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1目標規模情報を決定する操作をさらに実行するように構成される。例えば、第1初期規模情報は、少なくとも1つの第1目標規模情報に対応する。第1初期規模情報に対応する第2規模情報及び当該第1初期規模情報に基づいて、当該第1初期規模情報に対応する第1目標規模情報を決定することができる。図2Cに示すように、第2規模情報little_B3の第2行数little_bk3が5である場合、第1初期規模情報large_A3の少なくとも1つの第1目標規模情報を決定することができる。当該少なくとも1つの第1目標規模情報は、例えば、第1目標規模情報little_A31及び第1目標規模情報little_A32を含んでもよい。第1目標規模情報little_A31は、第1目標行数little_am31(例えば1)と第1目標列数little_aka31(例えば5)とを含んでもよい。第1目標規模情報little_A32は、第1目標行数little_am32(例えば、2)と、第1目標列数little_ak32(例えば、5)とを含んでもよい。第1目標規模情報little_A31に対応する第1目標サブ行列2111は、図2Cに示される。本開示の実施例によれば、第1サブ行列をさらに分割することができ、ロード計算記憶(load_compute_store)並列技術に基づいて行列乗算操作の並行を実現することができ、データ処理装置の運行効率の向上に役立つ。
【0055】
本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第1目標規模情報に基づいて、各記憶空間群に対応する複数の第1初期アクセスメモリ量から少なくとも1つの第2初期アクセスメモリ量を決定する操作をさらに実行するように構成されてもよい。
【0056】
例えば、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1目標規模情報に基づいて、複数の第3規模情報を決定する操作を実行するように構成されてもよい。複数の第3規模情報は第3行列に関連し、第3行列は、各記憶空間群における第3記憶空間に対応する行列である。第3行列が結果行列C230である場合、第2規模情報little_B3及び第1目標規模情報little_A32に基づいて、第3規模情報little_C32を決定することができる。第3規模情報little_C32に対応する第3サブ行列2311は、図2Cに示される。
【0057】
例えば、プロセッサは、各記憶空間群に対して、複数の第1目標規模情報及び複数の第3規模情報に基づいて、複数の第1初期アクセスメモリ量から少なくとも1つの第2初期アクセスメモリ量を決定する操作を実行するように構成されてもよい。記憶手段のパラメータ、第1目標規模情報及び複数の第3規模情報に基づいて、複数の第1初期アクセスメモリ量から少なくとも1つの第2初期アクセスメモリ量を決定して、記憶アライメント制限を満たし、記憶特性を満たし、記憶チャネル競合を回避する。記憶手段は、例えば、ビデオメモリであってもよい。本開示の実施例によれば、第2アクセスメモリ量に対応する行列の規模を記憶手段とマッチングさせることができ、データ処理装置の安定性の向上に役立つ。
【0058】
理解できるように、上記では、第1行列が被乗数行列Aであり、第2行列が乗数行列Bであることを例として、本開示を説明した。しかしながら、本開示はこれに限定されず、第1行列が被乗数行列Aである場合、第2行列は結果行列Cであってもよく、以下にさらに説明する。
【0059】
本開示の実施例において、例えば、上記第1初期規模情報large_A3が決定された後、プロセッサは、各記憶空間群に対して、複数の第1初期規模情報の各々に基づいて、少なくとも1つの第2規模情報を決定する操作を実行するように構成されてもよい。例えば、第2行列が結果行列Cである場合、第1初期規模情報large_A3の第1初期行数large_am3に基づいて、結果行列Cの第2サブ行列の第2行数は最大でlarge_am3であってもよく、第2列数は最大でnであってもよい。第1初期規模情報large_A3の第1初期行数large_am3及び第2記憶空間の容量に基づいて、第2規模情報little_C3を決定してもよい。第2規模情報little_C3は、第2行数little_cm3と、第2列数little_cn3とを含んでもよい。第2行数little_cm3は、第1初期行数large_am3以下であってもよい。第2列数little_cn3は、nよりも小さくてもよい。
【0060】
第1初期規模情報large_A3及び第2規模情報little_C3に基づいて、第1初期アクセスメモリ量を決定することができる。
【0061】
次に、行列乗算操作を並行して実行するために、第1初期サブ行列をさらに分割してもよい。本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1目標規模情報を決定する操作を実行するように構成される。例えば、第2規模情報little_C3の第2行数little_cm3に基づいて、第1初期規模情報large_A3の少なくとも1つの第1目標規模情報を決定することができる。当該少なくとも1つの第1目標規模情報は、例えば、第1目標規模情報little_A33及び第1目標規模情報little_A34を含んでもよい。第1目標規模情報little_A33は、第1目標行数little_am33と、第1目標列数little_ak33とを含んでもよい。第1目標規模情報little_A34は、第1目標行数little_am34と、第1目標列数little_ak34とを含んでもよい。第1目標行数は第2行数以下であってもよい。第1目標列数は、第1初期列数より小さくてもよい。
【0062】
本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1目標規模情報に基づいて、複数の第3規模情報を決定する操作を実行するように構成されてもよい。例えば、第3行列が乗数行列Bである場合、第2規模情報little_C3と第1目標規模情報little_A34とに基づいて、第3規模情報little_B34を決定してもよい。第3規模情報little_B34の第3行数little_bk34は、例えば、第1目標規模情報little_A34の第1目標列数little_ak34と一致してよい。第3規模情報little_B34の第3列数little_bn34は、例えば、第2規模情報little_C3の第2列数little_cn3と一致してよい。
【0063】
理解できるように、上記では、第1行列が被乗数行列Aであることを例として、本開示を説明した。しかしながら、本開示はこれに限定されず、第1行列は、乗数行列Bまたは結果行列Cであってもよく、以下、第1行列が乗数行列Bであることを例として、本開示をさらに説明する。
【0064】
本開示の実施例において、プロセッサは、各記憶空間群に対して、第1行列の規模及び第1記憶空間の容量に基づいて、複数の第1初期規模情報を決定する操作を実行するように構成されてもよい。第1行列が乗数行列Bである場合、第1初期規模情報large_B4は、第1初期行数large_bk4と、第1初期列数large_bn4とを含んでもよい。第1初期規模情報large_B4に対応する第1初期サブ行列のデータ量は、例えば、記憶空間L1Bと一致してもよく、元の行列に設定されたキャッシュ空間として十分に利用されてもよい。
【0065】
本開示の実施例において、プロセッサは、各記憶空間群に対して、各第1初期規模情報に基づいて、少なくとも1つの第2規模情報を決定する操作を実行するように構成されてもよい。例えば、各第1初期規模情報及び第2記憶空間の容量に基づいて、少なくとも1つの第2規模情報を決定することができる。第2行列が被乗数行列Aであることを例として、第1初期規模情報large_B4に基づいて、被乗数行列Aの第2サブ行列の第2行数は最大でmであってもよく、第2列数は最大でlarge_bk4であってもよい。第1初期規模情報large_B4の第1初期行数large_bk4及び第2記憶空間の容量に基づいて、第2規模情報little_A4を決定してもよい。第2規模情報little_A4は、第2行数little_am4と、第2列数little_ak4とを含んでもよい。第2列数little_ak4は、第1初期行数large_bk4以下であってもよい。第2行数little_am3は、mより小さくてもよい。
【0066】
次に、行列乗算操作を並行して実行するために、第1初期サブ行列をさらに分割してもよい。本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1目標規模情報を決定する操作を実行するように構成される。例えば、第2規模情報little_A4の第2列数little_ak4に基づいて、第1初期規模情報large_B4の少なくとも1つの第1目標規模情報を決定してもよい。当該少なくとも1つの第1目標規模情報は、例えば、第1目標規模情報little_B41及び第1目標規模情報little_B42を含んでもよい。第1目標規模情報little_B41は、第1目標行数little_bk41と、第1目標行数little_bn41とを含んでもよい。第1目標規模情報little_B42は、第1目標行数little_bk42と、第1目標列数little_bn42とを含んでもよい。第1目標列数は、第1初期列数より小さくてもよい。第1目標行数は第2列数以下であってもよい。
【0067】
本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1目標規模情報に基づいて、複数の第3規模情報を決定する操作を実行するように構成されてもよい。例えば、第3行列が結果行列Cである場合、第2規模情報little_A4及び第1目標規模情報little_B41に基づいて、第3規模情報little_C41を決定することができる。第3規模情報little_C41の第3列数little_cn41は、例えば、第1目標規模情報little_B41の第1目標列数little_bn41と一致してよい。第3規模情報little_C41の第3行数little_cm41は、例えば、第2規模情報little_A4の第2行数little_am4と一致してもよい。
【0068】
理解できるように、上記では、第1行列が乗数行列Bであり、第2行列が被乗数行列Aであることを例として、本開示をさらに説明する。しかしながら、本開示はこれに限定されず、第1行列が乗数行列Bである場合、第2行列は結果行列Cであってもよく、以下、さらに説明する。
【0069】
本開示の実施例において、例えば、上記第1初期規模情報large_B4が決定された後、プロセッサは、各記憶空間群に対して、複数の第1初期規模情報の各々に基づいて、少なくとも1つの第2規模情報を決定する操作を実行するように構成されてもよい。例えば、第2行列が結果行列Cである場合、第1初期規模情報large_B4の第1初期列数large_bn4に基づいて、結果行列Cの第2サブ行列の第2行数は最大でmであってもよく、第2列数は最大でlarge_bn4であってもよい。第1初期規模情報large_B4の第1初期列数large_bn4及び第2記憶空間の容量に基づいて、第2規模情報little_C4を決定してもよい。第2規模情報little_C4は、第2行数little_cm4および第2列数little_cn4を含んでもよい。第2行数little_cm3は、mより小さくてもよい。第2列数little_cn3は、第2列数little_cn4以下であってもよい。
【0070】
第1初期規模情報large_B4及び第2規模情報little_C4に基づいて、第1初期アクセスメモリ量を決定することができる。
【0071】
次に、行列乗算操作を並行して実行するために、第1初期サブ行列をさらに分割してもよい。本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1目標規模情報を決定する操作を実行するように構成される。例えば、第2規模情報little_C4の第2列数little_cn4に基づいて、第1初期規模情報large_B4の少なくとも1つの第1目標規模情報を決定することができる。当該少なくとも1つの第1目標規模情報は、例えば、第1目標規模情報little_B43及び第1目標規模情報little_B44を含んでもよい。第1目標規模情報little_B43は、第1目標行数little_bk43と、第1目標列数little_bn43とを含んでもよい。第1目標規模情報little_B44は、第1目標行数little_bk44と、第1目標行数little_bn44とを含んでもよい。第1目標列数は、第2列数以下であってもよい。第1目標行数は第1初期行数より小さくてもよい。
【0072】
本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1目標規模情報に基づいて、複数の第3規模情報を決定する操作を実行するように構成されてもよい。例えば、第3行列が被乗数行列Aである場合、第2規模情報little_C4及び第1目標規模情報little_B44に基づいて、第3規模情報little_A44を決定してもよい。第3規模情報little_A44の第3行数little_am44は、例えば、第2規模情報little_C4の第2行数little_cm4と一致してもよい。第3規模情報little_A44の第3列数little_ak44は、例えば、第1目標規模情報little_B44の第1目標行数little_bk44と一致してよい。
【0073】
理解できるように、上記では、第1行列が被乗数行列Aまたは乗数行列Bであることを例として、本開示を説明した。しかしながら、本開示はこれに限定されず、第1行列は結果行列Cであってもよく、以下、さらに説明する。
【0074】
本開示の実施例において、プロセッサは、各記憶空間群に対して、第1行列の規模及び第1記憶空間の容量に基づいて、複数の第1初期規模情報を決定する操作を実行するように構成されてもよい。第1行列が結果行列Cである場合、第1初期規模情報large_C5は、第1初期行数large_cm5及び第1初期列数large_cnt5を含んでもよい。結果行列Cの第1初期サブ行列のデータ量は、例えば、記憶空間L1Cと一致してもよく、元の行列に設定されたキャッシュ空間として十分に利用されてもよい。
【0075】
本開示の実施例において、プロセッサは、各記憶空間群に対して、各第1初期規模情報に基づいて、少なくとも1つの第2規模情報を決定する操作を実行するように構成されてもよい。例えば、各第1初期規模情報及び第2記憶空間の容量に基づいて、少なくとも1つの第2規模情報を決定することができる。第2行列が被乗数行列Aであることを例として、第1初期規模情報large_C5に基づいて、被乗数行列Aの第2サブ行列の第2行数は、最大でlarge_cm5であってもよく、第2列数は、最大でkであってもよい。第1初期規模情報large_C5の第1初期行数large_cm5及び第2記憶空間の容量に基づいて、第2規模情報little_A5を決定してもよい。第2規模情報little_A5は、第2行数little_am5と、第2列数little_ak5とを含んでもよい。第2行数little_am5は、第1初期行数large_cm5以下であってもよい。第2列数little_aka5は、kよりも小さくてもよい。
【0076】
次に、行列乗算操作を並行して実行するために、第1初期サブ行列をさらに分割してもよい。本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1目標規模情報を決定する操作を実行してもよい。例えば、第2規模情報little_A5の第2行数little_am5に基づいて、第1初期規模情報large_C5の少なくとも1つの第1目標規模情報を決定することができる。当該少なくとも1つの第1目標規模情報は、例えば、第1目標規模情報little_C51及び第1目標規模情報little_C52を含んでもよい。第1目標規模情報little_C51は、第1目標行数little_cm51と、第1目標列数little_cn51とを含んでもよい。第1目標規模情報little_C52は、第1目標行数little_cm52と、第1目標行数little_cn52とを含んでもよい。第1目標列数は、第1初期列数より小さくてもよい。第1目標行数は第2行数以下であってもよい。
【0077】
本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1目標規模情報に基づいて、複数の第3規模情報を決定する操作を実行するように構成されてもよい。例えば、第3行列が乗数行列Bである場合、第2規模情報little_A5および第1目標規模情報little_C51に基づいて、第3規模情報little_B51を決定してもよい。第3規模情報little_B51の第3列数little_bn51は、例えば、第1目標規模情報little_C51の第1目標列数little_cn51と一致してよい。第3規模情報little_B51の第3行数little_bk51は、例えば、第2規模情報little_A5の第2列数little_ak5と一致してもよい。
【0078】
理解できるように、上記では、第1行列が結果行列Cであり、第2行列が被乗数行列Aであることを例として、本開示をさらに説明する。しかしながら、本開示はこれに限定されず、第1行列が結果行列Cである場合、第2行列は乗数行列Bであってもよく、以下、さらに説明する。
【0079】
本開示の実施例において、例えば、上記第1初期規模情報large_C5が決定された後、プロセッサは、各記憶空間群に対して、複数の第1初期規模情報の各々に基づいて、少なくとも1つの第2規模情報を決定する操作を実行するように構成されてもよい。例えば、第2行列が乗数行列Bである場合、第1初期規模情報large_C5の第1初期列数large_cn5に基づいて、乗数行列Bの第2サブ行列の第2行数は最大でkであってもよく、第2列数は最大でlarge_cn5であってもよい。第1初期規模情報large_C5の第1初期列数large_cn5及び第2記憶空間の容量に基づいて、第2規模情報little_B5を決定してもよい。第2規模情報little_B5は、第2行数little_bk5と、第2列数little_bn5とを含んでもよい。第2行数little_bk5は、kより小さくてもよく、第2列数little_bn5は、第1初期列数large_cn5以下であってもよい。
【0080】
第1初期規模情報large_C5及び第2規模情報little_B5に基づいて、第1初期アクセスメモリ量を決定してもよい。
【0081】
次に、行列乗算操作を並行して実行するために、第1初期サブ行列をさらに分割してもよい。本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1目標規模情報を決定する操作を実行するように構成される。例えば、第2規模情報little_B5の第2列数little_bn5に基づいて、第1初期規模情報large_C5の少なくとも1つの第1目標規模情報を決定することができる。当該少なくとも1つの第1目標規模情報は、例えば、第1目標規模情報little_C53及び第1目標規模情報little_C54を含んでもよい。第1目標規模情報little_C53は、第1目標行数little_cm53と、第1目標列数little_cn53とを含んでもよい。第1目標規模情報little_C54は、第1目標行数little_cm54と、第1目標列数little_cn54とを含んでもよい。第1目標列数は、第2列数以下であってもよい。第1目標行数は第1初期行数より小さくてもよい。
【0082】
本開示の実施例において、プロセッサは、各記憶空間群に対して、複数の第2規模情報及び複数の第1目標規模情報に基づいて、複数の第3規模情報を決定する操作を実行するように構成されてもよい。例えば、第3行列が被乗数行列Aである場合、第2規模情報little_B5及び第1目標規模情報little_C54に基づいて、第3規模情報little_A54を決定してもよい。第3規模情報little_A54の第3列数little_ak54は、例えば、第2規模情報little_B5の第2行数little_bk5と一致してもよい。第3規模情報little_A54の第3行数little_am54は、例えば、第1目標規模情報little_C54の第1目標行数little_cm54と一致してよい。
【0083】
理解できるように、上記では、各行列の規模を決定するいくつかの形態を説明したが、以下では、関連する実施例を参照して、目標アクセスメモリ量を決定するいくつかの形態について説明する。
【0084】
いくつかの実施例では、プロセッサは、I個の記憶空間群の全ての第2初期アクセスメモリ量から目標アクセスメモリ量を決定するように構成されてもよい。例えば、最小の第2初期アクセスメモリ量を目標アクセスメモリ量としてもよい。
【0085】
理解できるように、上記では、目標アクセスメモリ量を決定するいくつかの形態について説明したが、以下、行列乗算を実行するいくつかの形態について説明する。
【0086】
本開示の実施例において、目標アクセスメモリ量に対応する第1目標規模情報、第2規模情報及び第3規模情報に基づいて、行列乗算操作を実行する。目標アクセスメモリ量に対応する第1行列は、第1目標行列とすることができる。目標アクセスメモリ量に対応する第2行列は、第2目標行列とすることができる。目標アクセスメモリ量に対応する第3行列は、第3目標行列とすることができる。
【0087】
本開示の実施例において、プロセッサは、第3目標行列が結果行列である場合、目標アクセスメモリ量に対応する第1目標規模情報に従って、第1目標行列の第1サブ行列を第1記憶空間にロードするように構成されてもよい。目標アクセスメモリ量に対応する第2規模情報に従って、第2目標行列の第2サブ行列を第2記憶空間にロードする。第1サブ行列及び第2サブ行列に対して行列乗算操作を実行し、第3目標行列の第3サブ行列を取得する。第3サブ行列を第3記憶空間に書き込む。
【0088】
例えば、目標アクセスメモリ量に対応する第1目標規模情報、第2規模情報及び第3規模情報は、それぞれ、上述の第1目標規模情報little_A32、第2規模情報little_B3及び第3規模情報little_C32である。目標アクセスメモリ量に対応する第1目標規模情報little_A32に従って、被乗数行列Aの第1サブ行列を記憶空間L1Aにロードする。当該第1サブ行列の規模は、第1目標規模情報little_A32と一致してもよい。目標アクセスメモリ量に対応する第2規模情報little_B3に従って、第2目標行列の第2サブ行列を記憶空間L1Bにロードする。当該第2サブ行列の規模は、第2規模情報little_B3と一致してもよい。第1サブ行列及び第2サブ行列に対して行列乗算を実行することにより、結果行列Cの第3サブ行列が得られ、当該第3サブ行列の規模は、第3規模情報little_C32と一致してもよい。第3サブ行列を記憶空間L1Cに書き込んでもよい。
【0089】
また、例えば、目標アクセスメモリ量に対応する第1目標規模情報、第2規模情報及び第3規模情報は、それぞれ、上述の第1目標規模情報little_B41、第2規模情報little_A4及び第3規模情報little_C41である。目標アクセスメモリ量に対応する第1目標規模情報little_B41に従って、乗数行列Bの第1サブ行列を記憶空間L1Bにロードする。当該第1サブ行列の規模は、第1目標規模情報little_B41と一致してもよい。目標アクセスメモリ量に対応する第2規模情報little_A4に従って、第2目標行列の第2サブ行列を記憶空間L1Aにロードする。当該第2サブ行列の規模は、第2規模情報little_A4と一致してもよい。第1サブ行列及び第2サブ行列に対して行列乗算操作を実行することにより、結果行列Cの第3サブ行列が得られ、当該第3サブ行列の規模は、第3規模情報little_C41と一致してもよい。第3サブ行列を記憶空間L1Cに書き込んでもよい。
【0090】
本開示の実施例において、プロセッサは、さらに、第1目標行列が結果行列である場合、目標アクセスメモリ量に対応する第3規模情報に従って、第3目標行列の第3サブ行列を第3記憶空間にロードするように構成される。目標アクセスメモリ量に対応する第2規模情報に従って、第2目標行列の第2サブ行列を第2記憶空間にロードする。第3サブ行列及び第2サブ行列に対して行列乗算操作を実行して、第1目標行列の第1サブ行列を得る。第1サブ行列を第1記憶空間に書き込む。
【0091】
例えば、目標アクセスメモリ量に対応する第1目標規模情報、第2規模情報及び第3規模情報は、それぞれ、上述の第1目標規模情報little_C51、第2規模情報little_A5及び第3規模情報little_B51である。目標アクセスメモリ量に対応する第3規模情報little_B51に従って、乗数行列Bの第3サブ行列を記憶空間L1Bにロードする。当該第3サブ行列の規模は、第3規模情報little_B51と一致してもよい。目標アクセスメモリ量に対応する第2規模情報little_A5に従って、被乗数行列Aの第2サブ行列を記憶空間L1Aにロードする。当該第2サブ行列の規模は、第2規模情報little_A5と一致してもよい。第1サブ行列及び第2サブ行列に対して行列乗算操作を実行し、結果行列Cの第1サブ行列を取得し、当該第1サブ行列の規模は第1目標規模情報little_C51と一致してもよい。第1サブ行列を記憶空間L1Cに書き込んでもよい。
【0092】
例えば、目標アクセスメモリ量に対応する第1目標規模情報、第2規模情報及び第3規模情報は、それぞれ、上述の第1目標規模情報little_C54、第2規模情報little_B5及び第3規模情報little_A54である。目標アクセスメモリ量に対応する第3規模情報little_A54に従って、被乗数行列Aの第3サブ行列を記憶空間L1Aにロードする。当該第3サブ行列の規模は、第3規模情報little_A54と一致してもよい。目標アクセスメモリ量に対応する第2規模情報little_B5に従って、乗数行列Bの第2サブ行列を記憶空間L1Bにロードする。当該第2サブ行列の規模は、第2規模情報little_B5と一致してもよい。第1サブ行列及び第2サブ行列に対して行列乗算操作を実行し、結果行列Cの第1サブ行列を取得し、当該第1サブ行列の規模は第1目標規模情報little_C54と一致してもよい。第1サブ行列を記憶空間L1Cに書き込んでもよい。
【0093】
本開示の実施例において、プロセッサは、さらに、第2目標行列が結果行列である場合、目標アクセスメモリ量に対応する第1目標規模情報に従って、第1目標行列の第1サブ行列を第1記憶空間にロードするように構成されてもよい。目標アクセスメモリ量に対応する第3規模情報に従って、第3目標行列の第3サブ行列を第3記憶空間にロードする。第1サブ行列及び第3サブ行列に対して行列乗算操作を実行し、第2目標行列の第2サブ行列を得る。第2サブ行列を第2記憶空間に書き込む。
【0094】
例えば、目標アクセスメモリ量に対応する第1目標規模情報、第2規模情報及び第3規模情報は、それぞれ、上述の第1目標規模情報little_A34、第2規模情報little_C3及び第3規模情報little_B34である。目標アクセスメモリ量に対応する第1目標規模情報little_A34に従って、被乗数行列Aの第1サブ行列を記憶空間L1Aにロードする。当該第1サブ行列の規模は、第1目標規模情報little_A34と一致してもよい。目標アクセスメモリ量に対応する第3規模情報little_B34に従って、乗数行列の第3サブ行列を記憶空間L1Bにロードする。当該第3サブ行列の規模は、第3規模情報little_B34と一致してもよい。第1サブ行列及び第3サブ行列に対して行列乗算操作を実行することにより、結果行列Cの第2サブ行列が得られ、当該第2サブ行列の規模は第2規模情報little_C3と一致してもよい。第2サブ行列を記憶空間L1Cに書き込んでもよい。
【0095】
例えば、目標アクセスメモリ量に対応する第1目標規模情報、第2規模情報及び第3規模情報は、それぞれ、上述の第1目標規模情報little_B44、第2規模情報little_C4及び第3規模情報little_A44である。目標アクセスメモリ量に対応する第1目標規模情報little_B44に従って、乗数行列Bの第1サブ行列を記憶空間L1Bにロードする。当該第1サブ行列の規模は、第1目標規模情報little_B44と一致してもよい。目標アクセスメモリ量に対応する第3規模情報little_A44に従って、乗数行列の第3サブ行列を記憶空間L1Bにロードする。当該第3サブ行列の規模は、第3規模情報little_A44と一致してもよい。第1サブ行列及び第3サブ行列に対して行列乗算操作を実行することにより、結果行列Cの第2サブ行列が得られ、当該第2サブ行列の規模は第2規模情報little_C4と一致してもよい。第2サブ行列を記憶空間L1Cに書き込んでもよい。
【0096】
理解できるように、上記では、本開示のデータ処理装置について説明したが、以下、データ処理装置を含む電子機器について説明する。
【0097】
図3は、本開示の一実施例に係る電子機器の模式図である。
【0098】
図3に示すように、電子機器30は、本開示に提供されるデータ処理装置300を含んでもよい。データ処理装置300は、例えば、上述した装置100であってもよい。
【0099】
理解できるように、上記では、本開示の電子機器について説明したが、以下、本開示のデータ処理方法について説明する。
【0100】
図4は、本開示の一実施例に係るデータ処理方法のフローチャートである。
【0101】
図4に示すように、当該方法400は、操作S410~操作S430を含んでもよい。
【0102】
操作S410において、キャッシュユニットの複数の記憶空間からI個の記憶空間群を決定する。本開示の実施例において、I個の記憶空間群の各々は、第1記憶空間及び第2記憶空間を含む。
【0103】
操作S420において、各記憶空間群に対して以下の操作を実行し、各記憶空間群に対応する複数の第1初期アクセスメモリ量を取得する。
【0104】
操作S421において、第1行列の規模及び第1記憶空間の容量に基づいて、複数の第1初期規模情報を決定する。本開示の実施例において、第1行列は、第1記憶空間に対応する行列である。
【0105】
操作S422において、複数の第1初期規模情報の各々に基づいて、少なくとも1つの第2規模情報を決定する。本開示の実施例において、第2規模情報は第2行列に関連し、第2行列は第2記憶空間に対応する行列である。
【0106】
操作S423において、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1初期アクセスメモリ量を決定する。
【0107】
操作S430において、I個の記憶空間群のすべての第1初期アクセスメモリ量から目標アクセスメモリ量を決定する。Iは1以上の整数である。
【0108】
理解できるように、上記のプロセッサ120によって方法400を実行することができる。
【0109】
いくつかの実施例では、各記憶空間群に対して実行する操作は、複数の第2規模情報及び複数の第1初期規模情報に基づいて、複数の第1目標規模情報を決定することをさらに含む。例えば、第1初期規模情報は、少なくとも1つの第1目標規模情報に対応する。複数の第1目標規模情報に基づいて、各記憶空間群に対応する複数の第1初期アクセスメモリ量から少なくとも1つの第2初期アクセスメモリ量を決定する。
【0110】
いくつかの実施例において、各記憶空間群に対応する複数の第1初期アクセスメモリ量から少なくとも1つの第2初期アクセスメモリ量を決定することは、複数の第2規模情報及び複数の第1目標規模情報に基づいて、複数の第3規模情報を決定することを含む。例えば、複数の第3規模情報は、第3行列に関連し、第3行列は各記憶空間群における第3記憶空間に対応する行列である。複数の第1目標規模情報及び複数の第3規模情報に基づいて、複数の第1初期アクセスメモリ量から少なくとも1つの第2初期アクセスメモリ量を決定する。
【0111】
いくつかの実施例において、I個の記憶空間群のすべての第1初期アクセスメモリ量から目標アクセスメモリ量を決定することは、I個の記憶空間群のすべての第2初期アクセスメモリ量から目標アクセスメモリ量を決定することを含む。
【0112】
いくつかの実施例において、方法400は、目標アクセスメモリ量に対応する第1目標規模情報、第2規模情報及び第3規模情報に基づいて、行列乗算操作を実行することをさらに含む。
【0113】
いくつかの実施例において、複数の行列は、乗数行列、被乗数行列および結果行列を含み、目標アクセスメモリ量に対応する第1行列、第2行列および第3行列は、それぞれ、第1目標行列、第2目標行列および第3目標行列である。
【0114】
いくつかの実施例において、行列乗算を実行する操作は、第3目標行列が結果行列である場合、目標アクセスメモリ量に対応する第1目標規模情報に従って、第1目標行列の第1サブ行列を第1記憶空間にロードすることを含む。目標アクセスメモリ量に対応する第2規模情報に従って、第2目標行列の第2サブ行列を第2記憶空間にロードする。第1サブ行列及び第2サブ行列に対して行列乗算操作を実行し、第3目標行列の第3サブ行列を得る。第3サブ行列を第3記憶空間に書き込む。
【0115】
いくつかの実施例において、行列乗算を実行する操作は、第1目標行列が結果行列である場合、目標アクセスメモリ量に対応する第3規模情報に従って、第3目標行列の第3サブ行列を第3記憶空間にロードすることを含む。目標アクセスメモリ量に対応する第2規模情報に従って、第2目標行列の第2サブ行列を第2記憶空間にロードする。第3サブ行列及び第2サブ行列に対して行列乗算操作を実行して、第1目標行列の第1サブ行列を得る。第1サブ行列を第1記憶空間に書き込む。
【0116】
いくつかの実施例において、行列乗算を実行する操作は、第2目標行列が結果行列である場合、目標アクセスメモリ量に対応する第1目標規模情報に従って、第1目標行列の第1サブ行列を第1記憶空間にロードすることを含む。目標アクセスメモリ量に対応する第3規模情報に従って、第3目標行列の第3サブ行列を第3記憶空間にロードする。第1サブ行列及び第3サブ行列に対して行列乗算操作を実行し、第2目標行列の第2サブ行列を得る。第2サブ行列を第2記憶空間に書き込む。
【0117】
本開示の技術案において、かかるユーザ個人情報の収集、記憶、使用、加工、伝送、提供及び公開などの処理は、いずれも関連法律の規定に適合し、公序良俗に反しない。
【0118】
本開示の実施例によれば、本開示は、電子機器、可読記憶媒体及びコンピュータプログラム製品をさらに提供する。
【0119】
図5は、本開示の実施例の例示電子機器500を実施するための例示的なブロック図を示す。電子機器500は、例えば、ラップトップ型コンピュータ、デスクトップコンピュータ、作業台、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータという様々な形式のデジタルコンピュータを表示することを意図する。電子機器は、さらに、例えば、パーソナルデジタルアシスタント、携帯電話、スマートフォン、ウェアラブルデバイス及び他の類似の計算装置という様々な形式の移動装置を表示してもよい。本明細書に示された部材、それらの接続及び関係、及びそれらの機能は例示に過ぎず、本明細書に記載された及び/又は要求された本開示の実現を限定するものではない。
【0120】
図5に示すように、電子機器500は、計算手段501を含み、それはリードオンリーメモリ(ROM)502に記憶されたコンピュータプログラム又は記憶手段508からランダムアクセスメモリ(RAM)503にロードされたコンピュータプログラムに基づいて、様々な適切な動作及び処理を実行することができる。RAM 503には、さらに電子機器500の操作に必要な様々なプログラム及びデータを記憶することができる。計算手段501、ROM 502、およびRAM 503は、バス504を介して相互に接続されている。バス504には、入出力(I/O)インタフェース505も接続されている。
【0121】
電子機器500における複数の部品は、I/Oインタフェース505に接続され、例えばキーボード、マウス等の入力手段506と、例えば様々な種別のディスプレイ、スピーカ等の出力手段507と、例えば磁気ディスク、光ディスク等の記憶手段508と、例えばネットワークカード、モデム、無線通信トランシーバ等の通信手段509とを含む。通信手段509は、電子機器500がインターネット等のコンピュータネットワーク及び/又は各種の電気通信網を介して他のデバイスと情報/データをやり取りすることを可能にする。
【0122】
計算手段501は、処理及び計算能力を有する各種の汎用及び/又は専用の処理モジュールであってもよい。計算手段501の幾つかの例としては、中央処理装置(CPU)、GPU(Graphics Processing Unit)、各種専用の人工知能(AI)演算チップ、各種機械学習モデルアルゴリズムの計算手段、DSP(Digital Signal Processor)、並びに任意の適切なプロセッサ、コントローラ、マイクロコントローラ等が挙げられるが、これらに限定されない。計算手段501は、例えばデータ処理方法のような前記記載された各方法と処理を実行する。例えば、いくつかの実施例において、データ処理方法は、例えば記憶手段508のような機械可読媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施例において、コンピュータプログラムの一部又は全部は、ROM1002及び/又は通信手段509を介して電子機器500にロード及び/又はインストールされてもよい。コンピュータプログラムがRAM1003にロードされて計算手段501により実行される場合、前記記載されたデータ処理方法の1つ又は複数のステップを実行してもよい。代替的に、別の実施例において、計算手段501は、他の任意の適切な形態(例えば、ファームウェアを介する)によりデータ処理方法を実行するように構成されてもよい。
【0123】
本明細書で説明されたシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジックデバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実現されてもよい。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムにおいて実施され、該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラムブルプロセッサを含むプログラムブルシステムで実行され及び/又は解釈されることが可能であり、該プログラムブルプロセッサは、専用又は汎用のプログラムブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、かつデータ及び命令を該記憶システム、該少なくとも1つの入力装置、及び該少なくとも1つの出力装置に伝送することができることを含んでもよい。
【0124】
本開示の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで作成されてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ又は他のプログラムブルデータ処理装置のプロセッサ又はコントローラに提供されてもよく、それによって、プログラムコードがプロセッサ又はコントローラにより実行される時に、フローチャート及び/又はブロック図に規定された機能/操作が実施される。プログラムコードは、機器に完全に実行されてもよく、部分的に機器で実行されてもよく、独立したソフトウェアパッケージとして部分的に機器で実行され、かつ部分的に遠隔機器で実行されるか又は完全に遠隔機器又はサーバで実行されてもよい。
【0125】
本開示のコンテキストにおいて、機械可読媒体は、有形の媒体であってもよく、命令実行システム、装置又は電子デバイスに使用され、又は命令実行システム、装置又は機器と組み合わせて使用されるプログラムを含んで又は記憶してもよい。機械可読媒体は、機械可読信号媒体又は機械可読記憶媒体であってもよい。機械可読媒体は、電子の、磁気的、光学的、電磁的、赤外線の、又は半導体システム、装置又は電子デバイス、又は前記内容の任意の適切な組み合わせを含んでもよいが、それらに限定されない。機械可読記憶媒体のより具体的な例としては、1つ以上の線による電気的接続、携帯式コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は前記内容の任意の適切な組み合わせを含む。
【0126】
ユーザとのインタラクションを提供するために、コンピュータにここで説明されたシステム及び技術を実施させてもよく、該コンピュータは、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)ディスプレイ又はLCD(液晶ディスプレイ))と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを備え、ユーザは、該キーボード及び該ポインティングデバイスを介して入力をコンピュータに提供することができる。他の種別の装置は、さらにユーザとのインタラクションを提供してもよく、例えば、ユーザに提供されたフィードバックは、いかなる形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、かついかなる形式(音声入力、語音入力又は触覚入力を含む)でユーザからの入力を受信してもよい。
【0127】
ここで説明されたシステム及び技術は、バックグラウンド部品を含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェア部品を含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンド部品を含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザが該グラフィカルユーザインタフェース又は該ネットワークブラウザを介してここで説明されたシステム及び技術の実施形態とインタラクションすることができる)、又はこのようなバックグラウンド部品、ミドルウェア部品、又はフロントエンド部品のいずれかの組み合わせを含むコンピューティングシステムに実施されることが可能である。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によりシステムの部品を互いに接続することができる。通信ネットワークの例としては、局所エリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及びインターネットを例示的に含む。
【0128】
コンピュータシステムは、クライアント及びサーバを含んでよい。クライアントとサーバ同士は、一般的に離れており、通常、通信ネットワークを介してインタラクションする。クライアントとサーバとの関係は、該当するコンピュータ上でランニングし、クライアント-サーバの関係を有するコンピュータプログラムによって生成される。
【0129】
理解されるべきこととして、以上に示された様々な形式のフローを使用してもよく、ステップを改めてソーティングしたり、付加したり又は削除してもよい。例えば、本発明に記載の各ステップは、並列的に実行されたり、順次に実行されたり、又は異なる順序で実行されてもよく、本開示の技術案の所望の結果を実現することができれば、本明細書はここで限定されない。
【0130】
前記具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者であれば、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション及び代替を行うことが可能であると理解すべきである。本開示の精神と原則内で行われた任意の修正、均等置換及び改良などは、いずれも本開示の保護範囲内に含まれるべきである。
図1
図2A
図2B
図2C
図3
図4
図5