(57)【要約】    データ処理装置及び関連製品を提供する。製品は、人工ニューラルネットワーク演算に関連した計算命令を記憶するための命令キャッシュユニットと、計算命令を解析して複数の演算命令を得るための命令処理ユニットと、キューの順序に従って実行を待機している複数の演算命令または計算命令を含む命令キューを記憶するための記憶キューユニットと、を含む制御モジュールを備える。これにより、関連製品がニューラルネットワークモデルを演算するときの演算効率を向上させることができる。
2021520592.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置であって、
制御ユニットと実行ユニットとを備え、前記制御ユニットは、テンソル制御モジュールを備え、ここで、前記制御ユニットは、
復号化後の第１の処理命令のオペランドが、テンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子に対応する記述子記憶空間を確定し、
前記記述子記憶空間から前記記述子の内容を取得し、
前記実行ユニットが前記記述子の内容に基づいて前記第１の処理命令を実行するように、前記記述子の内容および前記第１の処理命令を前記実行ユニットに送信する  ことを特徴とするデータ処理装置。
【請求項２】
前記実行ユニットは、
受信された記述子の内容および第１の処理命令に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記制御ユニットは、さらに、
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令中の記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得し、
前記記述子の登録パラメータに基づいて、前記テンソル制御モジュールを使用して前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定し、
前記記述子の登録パラメータおよび前記第２の記憶領域に基づいて、前記記述子の内容を確定することによって、前記記述子と前記第２の記憶領域との間の対応関係を構築し、
前記記述子の内容を前記第１の記憶領域に記憶する
ことを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記制御ユニットは、さらに、
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令中の記述子の識別子を取得し、
前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記制御ユニットは、さらに、
前記第１の処理命令が記述子変更命令である場合、前記第１の処理命令中の記述子の、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む変更パラメータを取得し、
前記記述子の変更パラメータに基づいて、前記テンソル制御モジュールを使用して前記記述子の更新待ち内容を確定し、
更新待ち内容に基づいて、前記テンソル制御モジュールを使用して前記記述子記憶空間における前記記述子の内容を更新する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
前記制御ユニットは、依存関係判断モジュールをさらに備え、ここで、前記制御ユニットは、さらに、
前記記述子の識別子に基づいて、依存関係判断モジュールを使用して、依存関係を有する第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランド中に前記記述子の識別子を有する処理命令を含む第２の処理命令が存在するか否かを確定し、
依存関係を有する第２の処理命令が存在する場合、前記第１の処理命令をブロックまたはキャッシュする
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項７】
前記制御ユニットは、さらに、
前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して操作可能状態または操作不可状態を含む、前記記述子の現在の状態を、確定し、
前記記述子が現在操作不可状態にある場合、前記第１の処理命令をブロックまたはキャッシュする
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項８】
人工知能チップであって、前記チップは、請求項１-７の中のいずれか１項に記載のデータ処理装置を備えることを特徴とする人工知能チップ。
【請求項９】
電子デバイスであって、前記電子デバイスは、請求項８に記載の人工知能チップを備えることを特徴とする電子デバイス。
【請求項１０】
ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項８に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用されることを特徴とするボードカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術の分野に関し、特に、データ処理装置及び関連製品に関する。
【背景技術】
【０００２】
人工知能技術の継続的な発展に伴って、処理する必要のあるデータ量とデータ次元とがいずれも継続的に増加している。関連技術において、プロセッサは、一般的に、命令のパラメータを取得してデータアドレスを確定し、次に、データアドレスに基づいてデータの読み取りと使用を完成する。これにより、技術者は、パラメータを設定するときに、データアクセスの関連パラメータ（例えば、データ間またはデータ次元間の相互関係など）を設定することによって、命令を生成してプロセッサに伝送してデータのアクセスを完成する必要があり、当該方式はプロセッサの処理効率を低下させた。
【発明の概要】
【０００３】
本発明は、これに鑑みて、データ処理技術案を提案した。
【０００４】
本発明の一態様によれば、データ処理装置が提供され、前記装置は、制御ユニットと実行ユニットとを備え、前記制御ユニットが、テンソル制御モジュールを備え、ここで、前記制御ユニットが、
【０００５】
復号化後の第１の処理命令のオペランドが、テンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子に対応する記述子記憶空間を確定し、
前記記述子記憶空間から前記記述子の内容を取得し、
【０００６】
前記実行ユニットが前記記述子の内容に基づいて前記第１の処理命令を実行するように、前記記述子の内容および前記第１の処理命令を前記実行ユニットに送信する。
本発明のもう一態様によれば、人工知能チップが提供され、前記チップは、上記のデータ処理装置を備える。
【０００７】
本発明のもう一態様によれば、電子デバイスが提供され、前記電子デバイスは、上記の人工知能チップを備える。
【０００８】
本発明のもう一態様によれば、ボードカードが提供され、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
【０００９】
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【００１０】
本発明の実施例のデータ処理装置によれば、テンソル形状を示す記述子を導入して、制御ユニットの中にテンソル制御モジュールを設置することにより、復号化された処理命令のオペランドの中に記述子識別子が含まれる場合、テンソル制御モジュールを使用して対応する記述子記憶空間を確定し、実行ユニットが記述子内容に基づいて命令を実行するように、当該空間から記述子内容を取得して当該内容および処理命令を実行ユニットに送信することにより、データアクセスの複雑度を低下させ、データアクセスの効率を向上させる。
【００１１】
以下の図面を参照しながら例示的な実施例に対する詳細な説明によれば、本発明の他の特徴および態様が明らかになる。
【図面の簡単な説明】
【００１２】
明細書に含まれて明細書の一部を構成する図面は、明細書と一緒に本発明の例示的な実施例、特徴、および、態様を示し、本発明の原理を解釈するために使用される。
【図１ａ】図１ａは、本発明の一実施例に係るデータ処理装置を示すブロック図である。
【図１ｂ】図１ｂは、本発明の一実施例に係るデータ処理装置を示すブロック図である。
【図１ｃ】図１ｃは、本発明の一実施例に係るデータ処理方法を示すフローチャートである。
【図１ｄ１】図１ｄ１は、本発明の実施例に係るデータ同期方法の処理システムを示す模式図である。
【図１ｄ２】図１ｄ２は、本発明の一実施例に係るデータ同期方法を示すフローチャートである。
【図１ｅ】図１ｅは、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【図１ｆ】図１ｆは、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【図１ｇ】図１ｇは、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【図１ｈ】図１ｈは、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【００１３】
【図２】図２は、本発明の実施例に係るデータ記憶空間を示す模式図である。
【図３ａ】図３ａは、本発明の実施例に係るデータ処理方法を示すブロック図である。
【図３ｂ１】図３ｂ１は、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【図３ｂ２】図３ｂ２は、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【図３ｂ３】図３ｂ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｂ４】図３ｂ４は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｂ５】図３ｂ５は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｃ１】図３ｃ１は、本発明の実施例に係るデータ同期方法を示すフローチャートである。
【図３ｃ２】図３ｃ２は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｃ３】図３ｃ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【００１４】
【図３ｄ１】図３ｄ１は、本発明の一実施例に係るデータ同期方法を示すフローチャートである。
【図３ｄ２】図３ｄ２は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｄ３】図３ｄ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｅ１】図３ｅ１は、本発明の一実施例に係るデータ同期方法を示すフローチャートである。
【図３ｅ２】図３ｅ２は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｅ３】図３ｅ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｆ１】図３ｆ１は、本発明の一実施例に係るデータ同期方法を示すフローチャートである。
【図３ｆ２】図３ｆ２は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図３ｆ３】図３ｆ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。
【図４】図４は、本発明の実施例に係るボードカードの構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明の様々な例示的な実施例、特徴、および、態様を詳細に説明する。図面中の同じ記号は、機能が同じまたは類似の要素を示す。図面に実施例の様々な態様が示されているが、特に明記しない限り、図面は必ずしも比例して描かれているわけではない。
【００１６】
ここでの「例示的」という専門の単語は、「例、実施例、または、説明性として役立つ」ことを意味する。ここで「例示的」として説明されているいかなる実施例は、他の実施例よりも優れているまたはより優れていると解釈される必要はない。
【００１７】
また、本発明をよりよく説明するために、以下の具体的な実施形態では、多くの具体的な細かいところが与えられている。当業者は、いくつかの具体的な細かいところがないでも、本発明を同様に実施できることを理解すべきである。いくつかの実例では、当業者にとって周知の方法、手段、要素、および、回路は、本発明の要旨を強調するために詳細には説明されていない。
本発明の実施例によると、データ処理装置が提供される。
【００１８】
図１ａは、本発明の一実施例に係るデータ処理装置を示すブロック図である。図１ａに示されたように、当該データ処理装置は、制御ユニット１１ａと実行ユニット１２ａとを備え、前記制御ユニット１１ａが、テンソル制御モジュール１１１ａを備え、ここで、前記制御ユニット１１ａが、
【００１９】
復号化後の第１の処理命令のオペランドが、テンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子に対応する記述子記憶空間を確定し、
前記記述子記憶空間から前記記述子の内容を取得し、
【００２０】
前記実行ユニットが前記記述子の内容に基づいて前記第１の処理命令を実行するように、前記記述子の内容および前記第１の処理命令を前記実行ユニットに送信する。
【００２１】
本発明の実施例のデータ処理装置によると、テンソル形状を示す記述子を導入して、制御ユニットの中にテンソル制御モジュールを設置することで、復号化された処理命令のオペランドの中に記述子識別子が含まれる場合、テンソル制御モジュールを使用して対応する記述子記憶空間を確定し、実行ユニットが記述子内容に基づいて命令を実行するように、当該空間から記述子内容を取得して当該内容および処理命令を実行ユニットに送信することにより、データアクセスの複雑度を低下させ、データアクセスの効率を向上させる。
【００２２】
例を挙げると、当該データ処理装置は、例えば、プロセッサであってもよく、ここで、プロセッサは、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）と、専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサ、または、デジタル信号プロセッサなど）を含んでもよい。本発明は、プロセッサのタイプに対して限定しない。
【００２３】
可能な一実現形態において、データ処理装置は、制御ユニット１１ａと実行ユニット１２ａとを備えてもよく、制御ユニット１１ａが、装置を制御するために使用され、例えば、メモリまたは外部から導入される命令を読み取って、命令を復号化（デコード）し、該当する部品にマイクロ操作制御信号などを送信し、実行ユニット１２ａが、具体的な命令を実行するために使用され、例えば、算術論理ユニット（ａｒｉｔｈｍｅｔｉｃ ａｎｄ ｌｏｇｉｃ ｕｎｉｔ、ＡＬＵ）、メモリアクセスユニット（ｍｅｍｏｒｙ ａｃｃｅｓｓ ｕｎｉｔ、ＭＡＵ）、人工知能演算ユニット（ｎｅｕｒａｌ ｆｕｎｃｔｉｏｎａｌ ｕｎｉｔ、ＮＦＵ）などであってもよい。本発明は、実行ユニット１２ａの具体的なハードウェアタイプに対して限定しない。
【００２４】
可能な一実現形態において、データ処理装置によって処理されるデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよく、データ処理装置のメモリの中にテンソルデータを記憶する場合、そのデータアドレス（または記憶領域）によってはテンソルデータの形状、データ間またはデータ次元間の相互関係などの関連情報を確定できず、プロセッサのテンソルデータのアクセス効率が低くなる。
【００２５】
この場合、記述子（テンソル記述子）を導入して、テンソル（Ｎ次元のテンソルデータ）の形状を示すことができる。ここで、Ｎの値は、テンソルデータの次元数（回数）に基づいて確定してもよいし、テンソルデータの使用の必要性に基づいて設定してもよい。例えば、Ｎの値が３である場合、テンソルデータは３次元データであり、記述子は、当該３次元のテンソルデータの、三つの次元方向上の形状（例えば、オフセット量、サイズなど）を示すために使用できる。当業者は、実際の必要によってＮの値を設置でき、本発明はこれに対して限定しないことを理解すべきである。
【００２６】
可能な一実現形態において、記述子は、識別子や内容などを含んでもよい。記述子の識別子は、記述子を区別するために使用でき、例えば、記述子の識別子は番号である。記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータ（例えば、テンソルの各次元方向上のサイズなど）を含んでもよく、さらに、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータ（例えば、データ基準点の基準アドレス）を含んでもよい。本発明は、記述子の内容に含まれる具体的なパラメータに対して限定しない。
【００２７】
記述子を使用してテンソルデータを示す方式によって、テンソルデータの形状、位置、データ間またはデータ次元間の相互関係などの関連情報を表現でき、テンソルデータに対するアクセス効率を向上させる。
【００２８】
可能な一実現形態において、制御ユニット１１ａの中にテンソル制御モジュール１１１ａが設置されていてもよく、例えば、記述子の登録、変更、および、取り消し、記述子内容の書き込みなどの、記述子に関連した操作を実現することができる。テンソル制御モジュール１１１ａは、例えば、テンソルインターフェースユニット（Ｔｅｎｓｏｒ ｉｎｔｅｒｆａｃｅ Ｕｎｉｔ、ＴＩＵ）であり、本発明は、テンソル制御モジュールの具体的なハードウェアタイプに対して限定しない。このような方式によって、専用のハードウェアによって記述子に関連した操作を実現することによって、テンソルデータのアクセス効率をさらに向上させることができる。
【００２９】
可能な一実現形態において、データ処理装置は、処理命令が受信されると、まず、制御ユニット１１ａを使用して処理命令に対して復号化（デコード）を実行できる。ここで、前記制御ユニット１１ａが、さらに、受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得、
【００３０】
ここで、復号化後の第１の処理命令が、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードが、前記第１の処理命令に対応する処理タイプを示すために使用される。
【００３１】
この場合、第１の処理命令は、制御ユニット１１ａによって復号化された後、復号化後の第１の処理命令（マイクロ命令）が得られる。ここで、第１の処理命令は、データアクセス命令、演算命令、記述子管理命令、同期命令などを含んでもよい。本発明は、第１の処理命令の具体的なタイプ、および、復号化の具体的な方式に対して限定しない。
【００３２】
当該復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含んでもよく、オペレーションコードが、第１の処理命令に対応する処理タイプを示すために使用され、オペランドが、処理待ちのデータを示すために使用される。例えば、当該命令は、Ａｄｄ；Ａ；Ｂのように表されることができ、Ａｄｄがオペレーションコードであり、ＡとＢがオペランドであり、当該命令はＡとＢの加算に使用される。本発明は、復号化後の命令のオペランドの数および命令の表示形式に対して限定しないことを命令する。
【００３３】
可能な一実現形態において、制御ユニット１１ａの復号化後の第１の処理命令のオペランドが記述子の識別子を含むと、テンソル制御モジュールによって記述子に対応する記述子記憶空間を確定でき、記述子記憶空間を確定した後、記述子記憶空間から記述子の内容（形状、アドレスなどの情報）を取得できる。その後、実行ユニットが記述子の内容に基づいて第１の処理命令を実行するように、制御ユニット１１ａは、記述子の内容および第１の処理命令を実行ユニットに送信することができる。
可能な一実現形態において、前記実行ユニットは、
【００３４】
受信された記述子の内容および第１の処理命令に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行する。
【００３５】
つまり、実行ユニット１２ａは、記述子の内容および第１の処理命令を受信した場合、記述子の内容に基づいて、第１の処理命令中の記述子識別子を含むオペランドに対応するデータのデータ記憶空間におけるデータアドレスを計算し、さらに、当該データアドレスに基づいて対応する処理を実行することができる。
【００３６】
例えば、命令Ａｄｄ；Ａ；Ｂの場合、オペランドＡとＢにそれぞれ記述子の識別子ＴＲ１とＴＲ２が含まれていると、制御ユニットは、テンソル制御モジュールを使用してＴＲ１とＴＲ２に対応する記述子記憶空間を確定し、記述子記憶空間における内容（例えば、形状パラメータとアドレスパラメータ）を読み取って実行ユニットに送信することができる。実行ユニットは、記述子の内容を受信した後、データＡとＢのデータアドレスを計算することができる。例えば、Ａのメモリにおけるアドレス１はＡＤＤＲ６４〜ＡＤＤＲ１２７であり、Ｂのメモリにおけるアドレス２はＡＤＤＲ１０２３〜ＡＤＤＲ１０８７である。その後、実行ユニットは、アドレス１とアドレス２からそれぞれデータを読み取って、加算（Ａｄｄ）演算を実行して、演算結果（Ａ＋Ｂ）を得ることができる。
【００３７】
このような方式によって、記述子記憶空間から記述子内容を取得し、さらにデータアドレスを取得できて、アクセスするたびに命令によってアドレスを導入する必要がなく、プロセッサのデータアクセス効率を向上させた。
【００３８】
可能な一実現形態において、記述子の識別子と内容が、記述子記憶空間に記憶でき、当該記述子記憶空間は、制御ユニットの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなど）の中の記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、前記制御ユニットの内部メモリ（例えば、オンチップキャッシュ）、または、前記制御ユニットと接続された外部メモリ（オフチップメモリ）の中の記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【００３９】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同一の領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスがＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１が記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３が記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３が記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【００４０】
可能な一実現形態において、記述子の識別子、内容および記述子が指すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタの中に記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が指すテンソルデータを記憶する。
【００４１】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子の中のデータは、即時値にすることも、専用レジスタの中から取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタの中の記述子が有効であると、記述子が指すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータの記憶に使用してもよい。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【００４２】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶でき、記述子が指すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が指すテンソルデータを記憶するの方式を使用できる。
【００４３】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、実行ユニットは、記述子の内容に基づいて、オペランドに対応するデータのデータアドレスを確定し、その後、第１の処理命令を実行できる。
【００４４】
可能な一実現形態において、記述子の識別子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【００４５】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記データ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【００４６】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスはデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間中の１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスは当該データブロックのデータ記憶空間における物理アドレスである。
【００４７】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記テンソルデータのＮ個の次元方向の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が指すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含んでもよい。ここで、データ記述位置は記述子が指すテンソルデータの中の点または領域のマッピング位置、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータは３次元空間における点または領域の位置にマッピングすることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【００４８】
図２は、本発明の一実施例に係るデータ処理装置を示すデータ記憶空間の模式図である。図２に示されたように、データ記憶空間２１は、行優先の方式を使用して一つの２次元データを記憶し、（ｘ、ｙ）によって（ここで、Ｘ軸は水平方向に右向きであり、Ｙ軸は垂直方向に下向きである）表すことができ、Ｘ軸方向におけるサイズ（各行のサイズ）がｏｒｉ_ｘ（図示せず）であり、Ｙ軸方向上のサイズ（全行数）がｏｒｉ_ｙ（図示せず）であり、データ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔ（基準アドレス）が１番目のデータブロック２２の物理アドレスである。データブロック２３は、データ記憶空間２１の中の一部のデータであり、Ｘ軸方向におけるオフセット量２５がｏｆｆｓｅｔ_ｘで表し、Ｙ軸方向におけるオフセット量２４がｏｆｆｓｅｔ_ｙで表し、Ｘ軸方向におけるサイズがｓｉzｅ_ｘで表し、Ｙ軸方向におけるサイズがｓｉzｅ_ｙで表す。
【００４９】
可能な一実現形態において、記述子を使用してデータブロック２３を定義する場合、記述子のデータ基準点はデータ記憶空間２１の１番目のデータブロックを使用でき、記述子の基準アドレスがデータ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔであり、その後、データ記憶空間２１のＸ軸におけるサイズｏｒｉ_ｘ、Ｙ軸におけるサイズｏｒｉ_ｙ、および、データブロック２３のＹ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｙ、Ｘ軸方向におけるオフセット量ｏｆｆｓｅｔ_ｘ、Ｘ軸方向におけるサイズｓｉzｅ_ｘおよびＹ軸方向上のサイズｓｉzｅ_ｙと組み合わせて、データブロック２３の記述子の内容を確定できる。
2021520592.tif 000003
【００５０】
上記の例では記述子が記述したのは２次元空間であるが、当業者は実際の状況に従って記述子の内容が表す次元を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【００５１】
可能な一実現形態において、前記記述子のデータ基準点の前記データ記憶空間における基準アドレス、および、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置に基づいて、前記テンソルデータの記述子の内容を確定できる。
【００５２】
例を挙げると、記述子のデータ基準点のデータ記憶空間における基準アドレスＰＡ_ｂａｓｅ、および、対角位置の二つの頂点のデータ基準点に対する位置を使用して、図２の中のデータブロック２３の記述子の内容を確定できる。まず、記述子のデータ基準点およびそのデータ記憶空間における基準アドレスＰＡ_ｂａｓｅを確定し、例えば、データ記憶空間２１の中で一つのデータ（例えば、位置が（２、２）であるデータである）をデータ基準点として選択し、当該データのデータ記憶空間における物理アドレスを基準アドレスＰＡ_ｂａｓｅとし、その後、データブロック２３の対角位置の少なくとも二つの頂点のデータ基準点に対する位置を確定できる。例えば、左上から右下への方向の対角位置頂点のデータ基準点に対する位置を使用し、ここで、左上の頂点の相対位置は（ｘ_ｍｉｎ、ｙ_ｍｉｎ）であり、右下の頂点の相対位置は（ｘ_ｍａｘ、ｙ_ｍａｘ）であり、その後、基準アドレスＰＡ_ｂａｓｅ、左上の頂点の相対位置（ｘ_ｍｉｎ、ｙ_ｍｉｎ）、および、右下の頂点の相対位置（ｘ_ｍａｘ、ｙ_ｍａｘ）に基づいて、データブロック２３の記述子の内容を確定できる。
可能な一実現形態において、以下の式（２）を使用して記述子の内容を表すことができる。
2021520592.tif 000004
【００５３】
上記の例では左上と右下の二つの頂点を使用して記述子の内容を確定したが、当業者は実際の必要に従って少なくとも二つの頂点の具体的な頂点を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【００５４】
可能な一実現形態において、前記記述子のデータ基準点の前記データ記憶空間における基準アドレス、および、前記記述子が指すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係に基づいて、前記テンソルデータの記述子の内容を確定できる。ここで、データ記述位置とデータアドレスとの間のマッピング関係は、実際の必要に従って設定でき、例えば、記述子が指すテンソルデータが３次元空間データである場合、関数ｆ(ｘ、ｙ、z)を使用してデータ記述位置とデータアドレスとの間のマッピング関係を定義できる。
可能な一実現形態において、以下の式（３）を使用して記述子の内容を表すことができる。
2021520592.tif 000005
【００５５】
当業者は、実際の状況に従ってデータ記述位置とデータアドレスとの間のマッピング関係を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【００５６】
式（１）を使用して記述子の内容を表す場合、テンソルデータの中の任意の一つのデータ点に対して、そのデータ記述位置を
2021520592.tif 000006
に設定すると、当該データ点のデータ記憶空間におけるデータアドレス
2021520592.tif 000007
は、以下の式（４）を使用して確定できる。
2021520592.tif 000008
【００５７】
このような方式によって、実行ユニットは、記述子の内容に基づいて記述子が指すテンソルデータのデータ記憶空間におけるデータアドレスを計算し、さらに当該アドレスに基づいて処理命令に対応する処理を実行できる。
【００５８】
可能な一実現形態において、記述子の管理命令に基づいて記述子の登録、変更、および、取り消しなどの管理を実現し、且つ、これら管理命令に対して該当するオペレーションコードを設定できる。例えば、記述子登録命令（ＴＲＣｒｅａｔ）に基づいて記述子を登録（作成）し、記述子変更命令に基づいて記述子の各パラメータ（形状、アドレスなど）を変更し、記述子取り消し命令（ＴＲＲｅｌｅａｓｅ）に基づいて記述子を取り消し（削除）できる。本発明は、記述子の管理命令の種類およびオペレーションコードの具体的な設定に対して限定しない。
可能な一実現形態において、前記制御ユニットは、さらに、
【００５９】
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令の中の記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを取得し、
【００６０】
前記記述子の登録パラメータに基づいて、前記テンソル制御モジュールを使用して前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定し、
【００６１】
前記記述子の登録パラメータおよび前記第２の記憶領域に基づいて、前記記述子の内容を確定することによって、前記記述子と前記第２の記憶領域との間の対応関係を構築し、
前記記述子の内容を前記第１の記憶領域に記憶する。
【００６２】
例を挙げると、記述子登録命令は、記述子を登録するために使用でき、当該命令には記述子の登録パラメータを含んでもよい。当該登録パラメータは、記述子の識別子（ＩＤ）、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含んでもよい。例えば、当該登録パラメータは、識別子ＴＲ０、および、テンソル形状（次元数、各次元のサイズ、オフセット量、開始データアドレスなど）を含んでもよい。本発明は、登録パラメータの具体的な内容に対して限定しない。
【００６３】
可能な一実現形態において、復号化後の第１の処理命令のオペレーションコードに基づいて当該命令が記述子登録命令であると確定する場合、第１の処理命令中の登録パラメータに基づいて、制御ユニットは、前記テンソル制御モジュールを使用して該当する記述子を作成できる。
【００６４】
可能な一実現形態において、まず記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定できる。
【００６５】
例を挙げると、記憶領域の中の少なくとも一つを既に予め設定したとすると、第１の記憶領域及び／又は第２の記憶領域を直接確定できる。例えば、記述子内容とテンソルデータ内容とを同一の記憶空間に記憶すると予め設定し、記述子の識別子ＴＲ０に対応する記述子の内容の記憶アドレスがＡＤＤＲ３２〜ＡＤＤＲ６３であり、テンソルデータの内容の記憶アドレスがＡＤＤＲ６４〜ＡＤＤＲ１０２３であると、この二つのアドレスは第１の記憶領域および第２の記憶領域であると直接確定できる。
【００６６】
可能な一実現形態において、記憶領域を予め設定しないと、テンソル制御モジュールを使用して記述子内容に対して記述子記憶空間中で第１の記憶領域を割り当て、且つ、テンソルデータ内容に対してデータ記憶空間中で第２の記憶領域を割り当てることができる。本発明はこれに対して限定しない。
【００６７】
可能な一実現形態において、登録パラメータ中のテンソル形状および前記第２の記憶領域のデータアドレスに基づいて、テンソル形状とアドレスとの間の対応関係を構築し、さらに記述子内容を確定することによって、データ処理の際に記述子内容に基づいて対応するデータアドレスを確定することができる。記述子内容を確定した後、それを第１の記憶領域中に記憶して、記述子の登録過程を完成できる。
【００６８】
例えば、図２に示されたテンソルデータ２３について、登録パラメータは、データ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔ（基準アドレス）、Ｘ軸方向におけるオフセット量２５（ｏｆｆｓｅｔ_ｘで表す）、Ｙ軸方向におけるオフセット量２４（ｏｆｆｓｅｔ_ｙで表す）、Ｘ軸方向におけるサイズ（ｓｉzｅ_ｘで表す）、および、Ｙ軸方向におけるサイズ（ｓｉzｅ_ｙで表す）を含んでもよい。これらのパラメータに基づいて、記述子の内容を式（１）で表すことができ、それを第１の記憶領域中に記憶することによって、記述子の登録過程を完成できる。
【００６９】
このような方式によって、記述子登録命令に基づいて記述子を自動的に作成して、記述子が示すテンソルとデータアドレスとの間の対応を実現することによって、データ処理の際に記述子内容に基づいてデータアドレスを取得できて、プロセッサのデータアクセス効率を向上させる。
可能な一実現形態において、前記制御ユニットは、さらに、
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令の中の記述子の識別子を取得し、
【００７０】
前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放する。
【００７１】
例を挙げると、記述子によって占用された空間を解放するために、記述子取り消し命令は記述子を取り消し（削除）するために使用できる。当該命令は、記述子の識別子を少なくとも含んでもよい。
【００７２】
可能な一実現形態において、復号化後の第１の処理命令のオペレーションコードに基づいて当該命令が記述子取り消し命令であると確定する場合、第１の処理命令の中の記述子識別子に基づいて、制御ユニットは、テンソル制御モジュールを使用して該当する記述子を取り消すことができる。
【００７３】
可能な一実現形態において、記述子の識別子に基づいて、テンソル制御モジュールは当該記述子の記述子記憶空間における記憶領域、および、記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域を解放することによって、当該記述子の各記憶領域に対する占用を解除できる。
【００７４】
このような方式によって、記述子の使用が終了した後に記述子によって占用された空間を解放して、限られた記憶リソースを繰り返して利用できて、リソースの利用効率を向上させた。
可能な一実現形態において、前記制御ユニットは、さらに、
【００７５】
前記第１の処理命令が記述子変更命令である場合、前記第１の処理命令の中の記述子の、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む変更パラメータを取得し、
前記記述子の変更パラメータに基づいて、前記テンソル制御モジュールを使用して前記記述子の更新待ち内容を確定し、
更新待ち内容に基づいて、前記テンソル制御モジュールを使用して前記記述子記憶空間における前記記述子の内容を更新する。
【００７６】
例を挙げると、記述子変更命令は、記述子の例えば識別子、テンソル形状などの様々なパラメータを変更するために使用できる。当該命令は、変更パラメータを含んでもよく、当該変更パラメータは、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含んでもよい。本発明は、変更パラメータの具体的な内容に対して限定しない。
【００７７】
可能な一実現形態において、復号化後の第１の処理命令のオペレーションコードに基づいて当該命令が記述子変更命令であると確定する場合、第１の処理命令の中の変更パラメータに基づいて、制御ユニットは、テンソル制御モジュールを使用して記述子の更新待ち内容を確定でき、例えば、テンソルの次元を３次元から２次元へ変更し、テンソルの一つまたは複数の次元方向におけるサイズを変更する。
【００７８】
可能な一実現形態において、更新待ち内容を確定した後、テンソル制御モジュールは記述子記憶空間における記述子内容を更新することによって、更新後の記述子内容が変更後のテンソルデータの形状を表すようにすることができる。本発明は、更新待ち内容の範囲および具体的な更新方式に対して限定しない。
【００７９】
このような方式によって、記述子が示すテンソルデータに変更が発生された場合、記述子を直接変更することによって、記述子とテンソルデータとの間の対応が維持できて、リソースの利用効率が向上される。
可能な一実現形態において、前記制御ユニットは、依存関係判断モジュールをさらに備え、ここで、前記制御ユニットは、さらに、
【００８０】
前記記述子の識別子に基づいて、依存関係判断モジュールを使用して、依存関係を有する第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランド中に前記記述子の識別子を有する処理命令を含む第２の処理命令が存在するか否かを確定し、
依存関係を有する第２の処理命令が存在する場合、前記第１の処理命令をブロックまたはキャッシュする。
【００８１】
例を挙げると、記述子を設定した後、記述子に基づいて命令間の依存関係の判断するために、制御ユニットの中に依存関係判断モジュールを設置できる。復号化後の第１の処理命令のオペランドが記述子の識別子を含むと、制御ユニットは、依存関係判断モジュールを使用して当該第１の処理命令のプリアンブル命令の中に依存関係を有する命令が存在するか否かを確定する。
【００８２】
この場合、依存関係判断モジュールは、命令キュー中の第１の処理命令の前の命令（プリアンブル命令）に対して、オペランド中に前記記述子の識別子を有する第２の処理命令を検索し、第２の処理命令が第１の処理命令と依存関係を有するか否かを判断する。
【００８３】
例えば、第１の処理命令が記述子ＴＲ０に対する演算命令であり、第２の処理命令が記述子ＴＲ０に対する書き込み命令であると、当該第２の処理命令の実行期間に、第１の処理命令を実行することができない、第２の処理命令と第１の処理命令との間に依存関係が有する。第２の処理命令が第１の処理命令に対する同期命令（ｓｙｎｃ）を含むと、当該第２の処理命令の実行が完成された後に、第１の処理命令を実行する必要がある、第２の処理命令と第１の処理命令との間に依存関係が有する。
【００８４】
可能な一実現形態において、依存関係を有する第２の処理命令が存在すると、第１の処理命令をブロックし、すなわち、第２の処理命令の実行が完成されるまでに、第１の処理命令およびその後の他の命令の実行を一時停止してから、第２の処理命令の実行が完成された後に、第１の処理命令およびその後の他の命令を実行できる。
【００８５】
可能な一実現形態において、依存関係を有する第２の処理命令が存在すると、第１の処理命令をキャッシュすることができ、すなわち、第１の処理命令を予め設定したキャッシュ空間に記憶して、他の命令の実行に影響を及ぼさないようにする。第２の処理命令の実行が完成された後に、キャッシュ空間中の第１の処理命令を実行する。本発明は、依存関係が存在する場合の第１の処理命令に対する処理方式に対して限定しない。
【００８６】
このような方式によって、依存関係判断モジュールを導入して、命令間のタイプによって発生された依存関係、および、同期命令によって発生された依存関係を確定することによって、命令の実行順序を保証し、データ処理の正確性を確保できる。
可能な一実現形態において、前記制御ユニットは、さらに、
前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して操作可能状態または操作不可状態を含む、前記記述子の現在の状態を、確定し、
前記記述子が現在操作不可状態にある場合、前記第１の処理命令をブロックまたはキャッシュする。
【００８７】
例を挙げると、テンソル制御モジュールに記述子の状態の対応表を記憶することによって、記述子の状態は操作可能状態または操作不可状態を含む、記述子の現在の状態を、表すことができる。
【００８８】
可能な一実現形態において、第１の処理命令のプリアンブル命令が現在記述子に対して操作を実行している（例えば、書き込みまたは読み取り）場合、テンソル制御モジュールは記述子の現在状態を操作不可状態に設定できる。当該状態において、第１の処理命令を実行することができなく、第１の処理命令をブロックまたはキャッシュできる。逆に、プリアンブル命令が現在記述子に対して操作していない場合、テンソル制御モジュールは記述子の現在状態を操作可能状態に設定できる。当該状態において、第１の処理命令を実行できる。
【００８９】
可能な一実現形態において、記述子内容がレジスタＴＲ（テンソルレジスタ、Ｔｅｎｓｏｒ Ｒｅｇｉｓｔｅｒ）に記憶されている場合、テンソル制御モジュールの記述子の状態対応表にＴＲの使用状況をさらに記憶することによって、ＴＲが占用されているか解放されているかを確定し、限られたレジスタリソースの管理を実現できる。
このような方式によって、記述子の状態に基づいて命令間の依存関係を判断することによって、命令の実行順序を保証し、データ処理の正確性を確保できる。
可能な一実現形態において、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
ここで、前記制御ユニットは、
【００９０】
前記ソースデータおよび前記目的データの中の少なくとも一つが記述子の識別子を含む場合、前記テンソル制御モジュールを使用して前記記述子の記述子記憶空間を確定し、
前記記述子記憶空間から前記記述子の内容を取得し、
前記記述子の内容および前記第１の処理命令を前記実行ユニットに送信し、
ここで、前記実行ユニットは、
【００９１】
受信された前記記述子の内容および前記第１の処理命令に基づいて、前記ソースデータの第１のデータアドレス、及び／又は、前記目的データの第２のデータアドレスをそれぞれ確定し、
前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込む。
【００９２】
例を挙げると、データアクセス命令のオペランドは、ソースデータと目的データを含み、ソースデータのデータアドレスからデータを読み取って目的データのデータアドレスに書込むために使用される。第１の処理命令がデータアクセス命令である場合、記述子に基づいてテンソルデータのアクセスを実現できる。データアクセス命令のソースデータと目的データの中の少なくとも一つが記述子の識別子を含む場合、テンソル制御モジュールを使用して記述子の記述子記憶空間を確定できる。
【００９３】
可能な一実現形態において、ソースデータが第１の記述子の識別子を含み、且つ、目的データが第２の記述子の識別子を含むと、制御ユニットは、テンソル制御モジュールを使用して第１の記述子の第１の記述子記憶空間および第２の記述子の第２の記述子記憶空間をそれぞれ確定し、その後、第１の記述子記憶空間および第２の記述子記憶空間から第１の記述子の内容および第２の記述子の内容をそれぞれ読み取り、且つ、第１の記述子および第２の記述子の内容を実行ユニットに送信する。実行ユニットは、第１の記述子および第２の記述子の内容を受信した後、ソースデータの第１のデータアドレスおよび目的データの第２のデータアドレスをそれぞれ計算でき、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって、アクセス過程全体を完成できる。
【００９４】
例えば、ソースデータは、オフチップの読み取り待ちデータであり、その第１の記述子の識別子は１であり、目的データはオンチップの一つの記憶空間であり、その第２の記述子の識別子は２であってもよい。制御ユニット１１ａはソースデータ中の第１の記述子の識別子１および目的データ中第２の記述子の識別子２に基づいて、記述子記憶空間から第１の記述子の内容Ｄ１および第２の記述子の内容Ｄ２をそれぞれ取得でき、并将第１の記述子の内容Ｄ１、第２の記述子の内容Ｄ２および第１の処理命令を実行ユニット１２ａに送信する。ここで、第１の記述子の内容Ｄ１および第２の記述子の内容は、それぞれ以下のように表すことができる。
2021520592.tif 000009
【００９５】
実行ユニット１２ａは、受信された第１の記述子の内容Ｄ１および第１の記述子の内容Ｄ２に基づいて、ソースデータの開始物理アドレスＰＡ３および目的データの開始物理アドレスＰＡ４をそれぞれ取得して、それぞれ以下のように表すことができる。
2021520592.tif 000010
【００９６】
実行ユニット１２ａは、ソースデータの開始物理アドレスＰＡ３および目的データの開始物理アドレスＰＡ４、および、第１の記述子の内容Ｄ１および第２の記述子の内容Ｄ２に基づいて、第１のデータアドレスおよび第２のデータアドレスをそれぞれ確定し、且つ、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって（ＩＯチャンネルを介することができる）、Ｄ１が指すテンソルデータをＤ２が指す記憶空間にロードすることを完成させる。
【００９７】
可能な一実現形態において、ソースデータのみが第１の記述子の識別子を含むと、制御ユニットは、テンソル制御モジュールを使用して第１の記述子の第１の記述子記憶空間を確定し、その後、第１の記述子記憶空間から第１の記述子の内容を読み取り、且つ、当該記述子の内容を実行ユニットに送信する。実行ユニットは、第１の記述子の内容を受信した後、ソースデータの第１のデータアドレスを計算でき、命令のオペランド中の目的データの第２のデータアドレスに基づいて、実行ユニットは第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって、アクセス過程全体を完成できる。
【００９８】
可能な一実現形態において、目的データのみが第２の記述子の識別子を含むと、制御ユニットは、テンソル制御モジュールを使用して第２の記述子の第２の記述子記憶空間を確定し、その後、第２の記述子記憶空間から第２の記述子の内容を読み取って、当該第２の記述子の内容を実行ユニットに送信する。実行ユニットは、第２の記述子の内容を受信した後、目的データの第２のデータアドレスを計算でき、命令のオペランド中のソースデータの第１のデータアドレスに基づいて、実行ユニットは第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって、アクセス過程全体を完成できる。
【００９９】
このような方式によって、記述子を使用してデータのアクセスを完成できて、アクセスするたびに命令によってデータアドレスを導入する必要がなく、データアクセス効率を向上させた。
可能な一実現形態において、前記第１の処理命令は、演算命令を含み、ここで、前記実行ユニットは、
【０１００】
受信された記述子の内容および第１の処理命令に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、
前記データアドレスに基づいて、前記第１の処理命令に対応する演算を実行する。
【０１０１】
例を挙げると、第１の処理命令が演算命令である場合、記述子に基づいてテンソルデータの演算を実現できる。演算命令のオペランド中に記述子の識別子が含まれている場合、テンソル制御モジュールを使用して記述子の記述子記憶空間を確定できる、その後、記述子記憶空間から記述子の内容を読み取り、当該記述子の内容を実行ユニットに送信する。実行ユニットは、記述子の内容を受信した後、オペランドに対応するデータのアドレスを計算でき、さらにデータアドレスからデータを読み取って演算を実行することによって、演算過程全体を完成できる。このような方式によって、演算の際に記述子を使用してデータの読み取りを完成できて、命令によってデータアドレスを導入する必要がなく、データ演算効率を向上させた。
【０１０２】
本発明の実施例に係るデータ処理装置によると、テンソル形状を示すことができる記述子を導入することによって、データ処理命令の運行過程で記述子に基づいてデータのアドレスを確定できるようになって、ハードウェアの観点から命令生成方式が簡略化され、データアクセスの複雑度を低下させ、且つ、プロセッサアクセスデータの効率を向上させた。
可能な一実現形態において、人工知能チップをさらに開示し、当該人工知能チップは上記のデータ処理装置を備える。
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは上記の人工知能チップを備える。
【０１０３】
図４は、本発明の実施例に係るボードカードの構成を示すブロック図であり、図４を参照すると、上記のボードカードは、上記の人工知能チップ３８９に加えて、他のサポート部品を備えてもよく、当該サポート部品は、記憶デバイス３９０と、インターフェース装置３９１と、制御デバイス３９２と、を含むが、これらに限定されなく、
【０１０４】
前記記憶デバイス３９０は、前記人工知能チップとバスを介して接続され、データを記憶するために使用される。前記記憶デバイスは、複数グループの記憶ユニット３９３を含んでもよい。各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続される。各グループの前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭ（英語：Ｄｏｕｂｌｅ Ｄａｔａ Ｒａｔｅ ＳＤＲＡＭ、ダブルレート同期ダイナミックランダムアクセスメモリ）であってもよいことを理解できる。
【０１０５】
ＤＤＲは、クロック周波数を上げずにＳＤＲＡＭの速度を２倍にすることができる。ＤＤＲは、クロックパルスの上がりエンジと下がりエンジでデータを読み取ることができる。ＤＤＲの速度は、標準ＳＤＲＡＭの２倍である。一つの実施例において、前記記憶装置は、４グループの前記記憶ユニットを備えてもよい。各グループの前記記憶ユニットは、複数のＤＤＲ４粒子（チップ）を備えてもよい。一つの実施例において、前記人工知能チップの内部は、４個の７２ビットのＤＤＲ４コントローラを備えてもよく、上記の７２ビットのＤＤＲ４コントローラ中の６４ｂｉｔが、データ伝送に使用され、８ｂｉｔが、ＥＣＣ検証に使用される。各グループの前記記憶ユニットでＤＤＲ４-３２００粒子を使用する場合、データ伝送する理論上の帯域幅が２５６００ＭＢ/ｓに達することを理解できる。
【０１０６】
一つの実施例において、各グループの前記記憶ユニットは、複数の並列に配置されたダブルレート同期ダイナミックランダムアクセスメモリを備える。ＤＤＲは、一つのクロックサイクルでデータを２回伝送することができる。在前記人工知能チップにおいて、ＤＤＲを制御するコントローラを設置し、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用する。
【０１０７】
前記インターフェース装置は、前記人工知能チップと電気的に接続される。前記インターフェース装置は、前記人工知能チップと外部デバイス（例えば、サーバまたはコンピュータ）との間のデータ伝送を実現するために使用される。例えば、一つの実施例において、前記インターフェース装置は、標準ＰＣＩＥインターフェースであってもよい。例えば、処理待ちのデータが、サーバによって標準ＰＣＩＥインターフェースを介して前記人工知能チップに伝送され、データ移送を実現する。好もしくは、ＰＣＩＥ ３.０ Ｘ １６インターフェースを使用して伝送する場合、理論上の帯域幅が１６０００ＭＢ/ｓに達することができる。もう一つの実施例において、前記インターフェース装置は、さらに、他のインターフェースであってもよく、前記インターフェースユニットが中継接続機能を実現できる限り、本願は上記の他のインターフェースの具体的な表現形式に対して限定しない。また、前記人工知能チップの計算結果は、依然として、前記インターフェース装置によって外部デバイス（例えば、サーバ）に伝送し返す。
【０１０８】
前記制御デバイスは、前記人工知能チップと電気的に接続される。前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。具体的に、前記人工知能チップは、前記制御デバイスとＳＰＩインターフェース介して電気的に接続できる。前記制御デバイスは、シングルチップマイクロコンピュータ（Ｍｉｃｒｏ Ｃｏｎｔｒｏｌｌｅｒ Ｕｎｉｔ、ＭＣＵ）を含んでもよい。前記人工知能チップは、複数の処理チップ、複数の処理コア、または、複数の処理回路を含んでもよく、複数の負荷を駆動できる。したがって、前記人工知能チップは、複数の負荷や軽負荷などの異なる作業状態にいることができる。前記制御装置によって前記人工知能チップの中の複数の処理チップ、複数の処理、または、複数の処理回路の作業状態に対する調整制御を実現できる。
いくつかの実施例において、電子デバイスを申し込み、当該電子デバイスは、上記の人工知能チップを備える。
【０１０９】
電子デバイスは、データ処理装置、ロボット、コンピュータ、プリンター、スキャナー、タブレットコンピュータ、スマート端末、携帯電話、ドライビングレコーダー、ナビゲーター、センサ、Ｗｅｂカメラ、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクター、腕時計、ヘッドセット、モバイルストレージ、ウェアラブルデバイス、交通ツール、家電製品、及び／又は、医療機器を含む。
【０１１０】
前記交通ツールは、飛行機、船、及び／又は、車両を含み、前記家電製品は、テレビ、エアコン、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスストーブ、および、レンジフードを含み、前記医療機器は、核磁気共鳴装置、Ｂ超音波装置、及び／又は、心電計を含む。
【０１１１】
Ａ１、データ処理装置であって、前記装置は、制御ユニットと実行ユニットとを備え、前記制御ユニットが、テンソル制御モジュールを備え、ここで、前記制御ユニットが、
【０１１２】
復号化後の第１の処理命令のオペランドが、テンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子に対応する記述子記憶空間を確定し、
前記記述子記憶空間から前記記述子の内容を取得し、
【０１１３】
前記実行ユニットが前記記述子の内容に基づいて前記第１の処理命令を実行するように、前記記述子の内容および前記第１の処理命令を前記実行ユニットに送信する。
Ａ２、請求項Ａ１に記載の装置であって、前記実行ユニットは、
【０１１４】
受信された記述子の内容および第１の処理命令に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、
前記データアドレスに基づいて、前記第１の処理命令に対応するデータ処理を実行する。
Ａ３、請求項Ａ２に記載の装置であって、前記制御ユニットは、さらに、
【０１１５】
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令中の記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得し、
【０１１６】
前記記述子の登録パラメータに基づいて、前記テンソル制御モジュールを使用して前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定し、
【０１１７】
前記記述子の登録パラメータおよび前記第２の記憶領域に基づいて、前記記述子の内容を確定することによって、前記記述子と前記第２の記憶領域との間の対応関係を構築し、
前記記述子の内容を前記第１の記憶領域に記憶する。
Ａ４、請求項Ａ１乃至Ａ３の中のいずれか１項に記載の装置であって、前記制御ユニットは、さらに、
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令中の記述子の識別子を取得し、
【０１１８】
前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放する。
Ａ５、請求項Ａ１乃至Ａ４の中のいずれか１項に記載の装置であって、前記制御ユニットは、さらに、
【０１１９】
前記第１の処理命令が記述子変更命令である場合、前記第１の処理命令中の記述子の、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む変更パラメータを取得し、
前記記述子の変更パラメータに基づいて、前記テンソル制御モジュールを使用して前記記述子の更新待ち内容を確定し、
更新待ち内容に基づいて、前記テンソル制御モジュールを使用して前記記述子記憶空間における前記記述子の内容を更新する。
【０１２０】
Ａ６、請求項Ａ１乃至Ａ５の中のいずれか１項に記載の装置であって、前記制御ユニットは、依存関係判断モジュールをさらに備え、ここで、前記制御ユニットは、さらに、
【０１２１】
前記記述子の識別子に基づいて、依存関係判断モジュールを使用して、依存関係を有する第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランド中に前記記述子の識別子を有する処理命令を含む第２の処理命令が、が存在するか否かを確定し、
依存関係を有する第２の処理命令が存在する場合、前記第１の処理命令をブロックまたはキャッシュする。
Ａ７、請求項Ａ１乃至Ａ５の中のいずれか１項に記載の装置であって、前記制御ユニットは、さらに、
前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して操作可能状態または操作不可状態を含む、前記記述子の現在の状態を、確定し、
前記記述子が現在操作不可状態にある場合、前記第１の処理命令をブロックまたはキャッシュする。
Ａ８、請求項Ａ２に記載の装置であって、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
ここで、前記制御ユニットは、
【０１２２】
前記ソースデータおよび前記目的データの中の少なくとも一つが記述子の識別子を含む場合、前記テンソル制御モジュールを使用して前記記述子の記述子記憶空間を確定し、
前記記述子記憶空間から前記記述子の内容を取得し、
前記記述子の内容および前記第１の処理命令を前記実行ユニットに送信し、
ここで、前記実行ユニットは、
【０１２３】
受信された前記記述子の内容および前記第１の処理命令に基づいて、前記ソースデータの第１のデータアドレス、及び／又は、前記目的データの第２のデータアドレスをそれぞれ確定し、
前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込む。
Ａ９、請求項２に記載の装置であって、前記第１の処理命令は、演算命令を含み、ここで、前記実行ユニットは、
【０１２４】
受信された記述子の内容および第１の処理命令に基づいて、前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、
前記データアドレスに基づいて、前記第１の処理命令に対応する演算を実行する。
【０１２５】
Ａ１０、請求項Ａ１乃至Ａ９の中のいずれか１項に記載の装置であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０１２６】
Ａ１１、請求項Ａ１０に記載の装置であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０１２７】
Ａ１２、請求項Ａ１１に記載の装置であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記データ記憶空間における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０１２８】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が指すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ１３、請求項Ａ１乃至Ａ１２の中のいずれか１項に記載の装置であって、前記制御ユニットは、さらに、
受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得、
【０１２９】
ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードが、前記第１の処理命令に対応する処理タイプを示すために使用される。
【０１３０】
Ａ１４、請求項Ａ２乃至Ａ１３の中のいずれか１項に記載の装置であって、前記記述子記憶空間は、前記制御ユニットの内部メモリ中の記憶空間であり、前記データ記憶空間は、前記制御ユニットの内部メモリまたは前記制御ユニットと接続された外部メモリ中の記憶空間である。
Ａ１５、人工知能チップであって、前記チップは、請求項Ａ１乃至Ａ１４の中のいずれか１項に記載のデータ処理装置を備える。
Ａ１６、電子デバイスであって、前記電子デバイスは、請求項Ａ１５に記載の人工知能チップを備える。
【０１３１】
Ａ１７、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ１５に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
Ａ１８、請求項Ａ１７に記載のボードカードであって、
【０１３２】
前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用され、
前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０１３３】
人工知能技術の継続的な発展に伴って、処理する必要のあるデータ量とデータ次元とがいずれも継続的に増加している。関連技術において、プロセッサは、一般的に、命令のパラメータを取得してデータアドレスを確定し、次に、データアドレスに基づいてデータの読み取りと使用を完成する。これにより、技術者は、パラメータを設定するときに、データアクセスの関連パラメータ（例えば、データ間またはデータ次元間の相互関係など）を設定することによって、命令を生成してプロセッサに伝送してデータのアクセスを完成する必要があり、当該方式はプロセッサの処理効率を低下させた。
【０１３４】
本発明の実施例によると、データ処理装置が提供される。図１ｂは、本発明の一実施例に係るデータ処理装置を示すブロック図である。図１ｂに示されたように、当該データ処理装置は、制御ユニット１１ｂと実行ユニット１２ｂとを備え、前記制御ユニット１１ｂが、テンソル制御モジュール１１１ｂを備え、ここで、前記制御ユニット１１ｂが、
【０１３５】
復号化後の第１の処理命令のオペランドが、テンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子に対応する記述子記憶空間を確定し、
前記記述子記憶空間から前記記述子の内容を取得し、
【０１３６】
前記記述子の内容に基づいて、前記テンソル制御モジュールを使用して前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、
前記データアドレスに基づいて、前記テンソル制御モジュールを使用して前記第１の処理命令に対応するデータ処理を実行する。
【０１３７】
本発明の実施例のデータ処理装置によると、テンソル形状を示す記述子を導入して、制御ユニットの中にテンソル制御モジュールを設置することで、復号化された処理命令のオペランドの中に記述子識別子が含まれる場合、テンソル制御モジュールを使用して記述子内容を取得し、テンソル制御モジュールを使用してデータアドレスを確定し、さらに処理命令を実行することによって、データアクセスの複雑度を低下させ、データアクセスの効率を向上させる。
【０１３８】
例を挙げると、当該データ処理装置は、例えば、プロセッサであってもよく、ここで、プロセッサは、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）と、専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサ、または、デジタル信号プロセッサなど）を含んでもよい。本発明は、プロセッサのタイプに対して限定しない。
【０１３９】
可能な一実現形態において、データ処理装置は、制御ユニット１１ｂと実行ユニット１２ｂとを備えてもよく、制御ユニット１１ｂが、装置を制御するために使用され、例えば、メモリまたは外部から導入される命令を読み取って、命令を復号化（デコード）し、該当する部品にマイクロ操作制御信号などを送信する。実行ユニット１２ｂは、具体的な演算命令を実行するために使用され、例えば、算術論理ユニット（ａｒｉｔｈｍｅｔｉｃ ａｎｄ ｌｏｇｉｃ ｕｎｉｔ、ＡＬＵ）、メモリアクセスユニット（ｍｅｍｏｒｙ ａｃｃｅｓｓ ｕｎｉｔ、ＭＡＵ）、人工知能演算ユニット（ｎｅｕｒａｌ ｆｕｎｃｔｉｏｎａｌ ｕｎｉｔ、ＮＦＵ）などであってもよい。本発明は、実行ユニット１２ｂの具体的なハードウェアタイプに対して限定しない。
【０１４０】
可能な一実現形態において、データ処理装置に処理されたデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよい。この場合、記述子（テンソル記述子）を導入して、テンソル（Ｎ次元のテンソルデータ）の形状を示すことができる。ここで、Ｎの値は、テンソルデータの次元数（回数）に基づいて確定してもよいし、テンソルデータの使用の必要性に基づいて設定してもよい。例えば、Ｎの値が３である場合、テンソルデータは３次元のテンソルデータであり、記述子は当該テンソルデータの三つの次元方向上の形状（例えば、オフセット量、サイズなど）を示すために使用できる。当業者は、実際の必要によってＮの値を設置でき、本発明はこれに対して限定しないことを理解すべきである。
【０１４１】
可能な一実現形態において、記述子は、識別子や内容などを含んでもよい。記述子の識別子は、記述子を区別するために使用でき、例えば、記述子の識別子は番号である。記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータ（例えば、テンソルの各次元方向上のサイズなど）を含んでもよく、さらに、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータ（例えば、データ基準点の基準アドレス）を含んでもよい。本発明は、記述子の内容に含まれる具体的なパラメータに対して限定しない。
【０１４２】
記述子を使用してテンソルデータを示す方式によって、テンソルデータの形状を表現でき、さらに、複数のテンソルデータ間の相互関係などの関連情報も確定できるので、テンソルデータに対するアクセス効率を向上させる。
【０１４３】
可能な一実現形態において、制御ユニット１１ｂの中にテンソル制御モジュール１１１ｂが設置されていることによって、記述子に関連する操作および命令の実行を実現でき、例えば、記述子の登録、変更、および、取り消し、記述子内容の書き込み、データアドレスの計算、および、データアクセス命令の実行などの実行を実現できる。テンソル制御モジュール１１１ｂは、例えば、テンソルインターフェースユニット（Ｔｅｎｓｏｒ ｉｎｔｅｒｆａｃｅ Ｕｎｉｔ、ＴＩＵ）であり、本発明は、テンソル制御モジュールの具体的なハードウェアタイプに対して限定しない。このような方式によって、専用のハードウェアによって記述子に関連する操作を実現することによって、テンソルデータのアクセス効率をさらに向上させることができる。
【０１４４】
可能な一実現形態において、データ処理装置は、処理命令が受信されると、まず、通過制御ユニット１１ｂを使用して処理命令に対して復号化（デコード）を実行できる。ここで、前記制御ユニット１１ｂは、さらに、受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得、
【０１４５】
ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードが、前記第１の処理命令に対応する処理タイプを示すために使用される。
【０１４６】
この場合、第１の処理命令は、制御ユニット１１ｂによって復号化された後、復号化後の第１の処理命令（マイクロ命令）が得られる。ここで、第１の処理命令は、データアクセス命令、演算命令、記述子管理命令、同期命令などを含んでもよい。本発明は、第１の処理命令の具体的なタイプ、および、復号化の具体的な方式に対して限定しない。
【０１４７】
当該復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含んでもよく、オペレーションコードが、第１の処理命令に対応する処理タイプを示すために使用され、オペランドが、処理待ちのデータを示すために使用される。例えば、当該命令は、Ａｄｄ；Ａ；Ｂのように表されることができ、Ａｄｄがオペレーションコードであり、ＡとＢがオペランドであり、当該命令はＡとＢの加算に使用される。本発明は、復号化後の命令のオペランドの数および命令の表示形式に対して限定しないことを命令する。
【０１４８】
可能な一実現形態において、制御ユニット１１ｂによって復号化された後の第１の処理命令のオペランドが記述子の識別子を含むと、テンソル制御モジュールによって記述子に対応する記述子記憶空間を確定でき、記述子記憶空間を確定した後、記述子記憶空間から記述子の内容（テンソルデータを表す形状、アドレスなどの情報を含む）を取得できる。その後、記述子の内容に基づいて、テンソル制御モジュールを使用してオペランドに対応するデータ記憶空間におけるデータアドレス確定し、データアドレスに基づいて、テンソル制御モジュールを使用して第１の処理命令に対応するデータ処理を実行できる。
【０１４９】
つまり、テンソル制御モジュールは、第１の処理命令のオペランド中の記述子の識別子を含む場合、記述子の識別子に基づいて記述子記憶空間から記述子の内容を取得し、記述子の内容に基づいて、第１の処理命令中の記述子識別子を含むオペランドに対応するデータのデータ記憶空間におけるデータアドレスを計算し、さらに、当該データアドレスに基づいて対応する処理を実行することができる。
【０１５０】
このような方式によって、記述子記憶空間から記述子内容を取得し、さらにデータアドレスを取得できて、アクセスするたびに命令によってアドレスを導入する必要がなく、プロセッサのデータアクセス効率を向上させた。
【０１５１】
可能な一実現形態において、記述子の識別子と内容が、記述子記憶空間に記憶でき、当該記述子記憶空間は、制御ユニットの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなど）の中の記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、前記制御ユニットの内部メモリ（例えば、オンチップキャッシュ）、または、前記制御ユニットと接続された外部メモリ（オフチップメモリ）の中の記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【０１５２】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同一の領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスがＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１が記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３が記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３が記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０１５３】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタの中に記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０１５４】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子の中のデータは、即時値にすることも、専用レジスタ中から取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタの中の記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０１５５】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０１５６】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、制御ユニットは、記述子の内容に基づいて、テンソル制御モジュールを使用してオペランドに対応するデータのデータアドレスを確定し、その後、第１の処理命令を実行する。
【０１５７】
可能な一実現形態において、記述子の識別子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０１５８】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０１５９】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスはデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間中の１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスは当該データブロックのデータ記憶空間における物理アドレスである。
【０１６０】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータの中の点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータは３次元空間における点または領域の位置にマッピングすることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０１６１】
可能な一実現形態において、記述子の管理命令に基づいて記述子の登録、変更、および、取り消しなどの管理を実現し、且つ、これら管理命令に対して該当するオペレーションコードを設定できる。例えば、記述子登録命令（ＴＲＣｒｅａｔ）に基づいて記述子を登録（作成）し、記述子変更命令に基づいて記述子の各パラメータ（形状、アドレスなど）を変更し、記述子取り消し命令（ＴＲＲｅｌｅａｓｅ）に基づいて記述子を取り消し（削除）できる。本発明は、記述子の管理命令の種類およびオペレーションコードの具体的な設定に対して限定しない。
可能な一実現形態において、前記制御ユニットは、さらに、
【０１６２】
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令中の記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得し、
【０１６３】
前記記述子の登録パラメータに基づいて、前記テンソル制御モジュールを使用して前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定し、
【０１６４】
前記記述子の登録パラメータおよび前記第２の記憶領域に基づいて、前記記述子の内容を確定することによって、前記記述子と前記第２の記憶領域との間の対応関係を構築し、
前記記述子の内容を前記第１の記憶領域に記憶する。
【０１６５】
例を挙げると、記述子登録命令は、記述子を登録するために使用でき、当該命令には記述子の登録パラメータを含んでもよい。当該登録パラメータは、記述子の識別子（ＩＤ）、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含んでもよい。例えば、当該登録パラメータは、識別子ＴＲ０、および、テンソル形状（次元数、各次元のサイズ、オフセット量、開始データアドレスなど）を含んでもよい。本発明は、登録パラメータの具体的な内容に対して限定しない。
【０１６６】
可能な一実現形態において、復号化後の第１の処理命令のオペレーションコードに基づいて当該命令が記述子登録命令であると確定する場合、第１の処理命令中の登録パラメータに基づいて、制御ユニットは、前記テンソル制御モジュールを使用して該当する記述子を作成できる。
【０１６７】
可能な一実現形態において、まず記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定できる。
【０１６８】
例を挙げると、記憶領域の中の少なくとも一つを既に予め設定したとすると、第１の記憶領域及び／又は第２の記憶領域を直接確定できる。例えば、記述子内容とテンソルデータ内容とを同一の記憶空間に記憶すると予め設定し、記述子の識別子ＴＲ０に対応する記述子の内容の記憶アドレスがＡＤＤＲ３２〜ＡＤＤＲ６３であり、テンソルデータの内容の記憶アドレスがＡＤＤＲ６４〜ＡＤＤＲ１０２３であると、この二つのアドレスは第１の記憶領域および第２の記憶領域であると直接確定できる。
【０１６９】
可能な一実現形態において、記憶領域を予め設定しないと、テンソル制御モジュールを使用して記述子内容に対して記述子記憶空間中で第１の記憶領域を割り当て、テンソルデータ内容に対してデータ記憶空間中で第２の記憶領域を割り当てることができる。本発明はこれに対して限定しない。
【０１７０】
可能な一実現形態において、登録パラメータ中のテンソル形状および前記第２の記憶領域のデータアドレスに基づいて、テンソル形状とアドレスとの間の対応関係を構築し、さらに記述子内容を確定することによって、データ処理の際に記述子内容に基づいて対応するデータアドレスを確定することができる。記述子内容を確定した後、それを第１の記憶領域中に記憶して、記述子の登録過程を完成できる。
【０１７１】
例えば、図２に示されたテンソルデータ２３について、登録パラメータは、データ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔ（基準アドレス）、Ｘ軸方向におけるオフセット量２５（ｏｆｆｓｅｔ_ｘで表す）、Ｙ軸方向におけるオフセット量２４（ｏｆｆｓｅｔ_ｙで表す）、Ｘ軸方向におけるサイズ（ｓｉzｅ_ｘで表す）、および、Ｙ軸方向におけるサイズ（ｓｉzｅ_ｙで表す）を含んでもよい。これらのパラメータに基づいて、記述子の内容を式（１）で表すことができ、それを第１の記憶領域中に記憶することによって、記述子の登録過程を完成できる。
【０１７２】
このような方式によって、記述子登録命令に基づいて記述子を自動的に作成して、記述子が示すテンソルとデータアドレスとの間の対応を実現することによって、データ処理の際に記述子内容に基づいてデータアドレスを取得できて、プロセッサのデータアクセス効率を向上させる。
可能な一実現形態において、前記制御ユニットは、さらに、
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令中の記述子の識別子を取得し、
【０１７３】
前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放する。
【０１７４】
例を挙げると、記述子によって占用された空間を解放するために、記述子取り消し命令は記述子を取り消し（削除）するために使用できる。当該命令は、記述子の識別子を少なくとも含んでもよい。
【０１７５】
可能な一実現形態において、復号化後の第１の処理命令のオペレーションコードに基づいて当該命令が記述子取り消し命令であると確定する場合、第１の処理命令中の記述子識別子に基づいて、制御ユニットは、テンソル制御モジュールを使用して該当する記述子を取り消すことができる。
【０１７６】
可能な一実現形態において、記述子の識別子に基づいて、テンソル制御モジュールは当該記述子の記述子記憶空間における記憶領域、および、記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域を解放することによって、当該記述子の各記憶領域に対する占用を解除できる。
【０１７７】
このような方式によって、記述子の使用が終了した後に記述子によって占用された空間を解放して、限られた記憶リソースを繰り返して利用できて、リソースの利用効率を向上させた。
可能な一実現形態において、前記制御ユニットは、さらに、
【０１７８】
前記第１の処理命令が記述子変更命令である場合、前記第１の処理命令中の記述子の、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む変更パラメータを取得し、
前記記述子の変更パラメータに基づいて、前記テンソル制御モジュールを使用して前記記述子の更新待ち内容を確定し、
【０１７９】
更新待ち内容に基づいて、前記テンソル制御モジュールを使用して前記記述子記憶空間における前記記述子の内容、及び／又は、データ記憶空間におけるテンソルデータの内容を更新する。
【０１８０】
例を挙げると、記述子変更命令は、記述子の例えば識別子、テンソル形状などの様々なパラメータを変更するために使用できる。当該命令は、変更パラメータを含んでもよく、当該変更パラメータが、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含んでもよい。本発明は、変更パラメータの具体的な内容に対して限定しない。
【０１８１】
可能な一実現形態において、復号化後の第１の処理命令のオペレーションコードに基づいて当該命令が記述子変更命令であると確定する場合、第１の処理命令の中の変更パラメータに基づいて、制御ユニットは、テンソル制御モジュールを使用して記述子の更新待ち内容を確定でき、例えば、テンソルの次元を３次元から２次元へ変更し、テンソルの一つまたは複数の次元方向におけるサイズを変更する。
【０１８２】
可能な一実現形態において、更新待ち内容を確定した後、テンソルデータを変更して更新後の記述子内容が変更後のテンソルデータの形状を示すようにするために、テンソル制御モジュールは、記述子記憶空間における記述子内容、及び／又は、データ記憶空間におけるテンソルデータの内容を更新できる。本発明は、更新待ち内容の範囲および具体的な更新方式に対して限定しない。
【０１８３】
このような方式によって、記述子が示すテンソルデータに変更が発生された場合、記述子を直接変更することによって、記述子とテンソルデータとの間の対応が維持できて、リソースの利用効率が向上される。
可能な一実現形態において、前記制御ユニットは、依存関係判断モジュールをさらに備え、ここで、前記制御ユニットは、さらに、
【０１８４】
前記記述子の識別子に基づいて、依存関係判断モジュールを使用して、依存関係を有する第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランド中に前記記述子の識別子を有する処理命令を含む第２の処理命令が、が存在するか否かを確定し、
依存関係を有し且つ処理未完成の第２の処理命令が存在する場合、前記第１の処理命令をブロックまたはキャッシュする。
【０１８５】
例を挙げると、記述子を設定した後、記述子に基づいて命令間の依存関係の判断するために、制御ユニットの中に依存関係判断モジュールを設置できる。復号化後の第１の処理命令のオペランドが記述子の識別子を含むと、制御ユニットは、依存関係判断モジュールを使用して当該第１の処理命令のプリアンブル命令の中に依存関係を有する命令が存在するか否かを確定する。
【０１８６】
この場合、依存関係判断モジュールは、命令キュー中の第１の処理命令の前の命令（プリアンブル命令）に対して、オペランド中に前記記述子の識別子を有する第２の処理命令を検索し、検索された第２の処理命令を第１の処理命令と依存関係を有する処理命令とする。第１の処理命令のオペランド中に複数の記述子の識別子が有する場合、各々の記述子に対応する依存関係をそれぞれ判断でき、つまり、オペランド中に有する複数の記述子の中の少なくとも一つの記述子の識別子のプリアンブル命令を、依存関係を有する第２の処理命令とする。
【０１８７】
例えば、第１の処理命令が記述子ＴＲ０に対する演算命令であり、第２の処理命令が記述子ＴＲ０に対する書き込み命令であると、第２の処理命令と第１の処理命令との間に依存関係を有し、当該第２の処理命令の実行期間に、第１の処理命令を実行することができない。第２の処理命令が第１の処理命令に対する同期命令（ｓｙｎｃ）を含むと、第２の処理命令と第１の処理命令との間に依存関係を有し、当該第２の処理命令の実行が完成された後に、第１の処理命令を実行する必要がある。
【０１８８】
可能な一実現形態において、依存関係を有し、且つ、処理未完成の第２の処理命令が存在すると、第１の処理命令をブロックし、すなわち、第２の処理命令の実行が完成されるまでに、第１の処理命令およびその後の他の命令の実行を一時停止してから、第２の処理命令の実行が完成された後に、第１の処理命令およびその後の他の命令を実行できる。
【０１８９】
可能な一実現形態において、依存関係を有し、且つ、処理未完成の第２の処理命令が存在すると、第１の処理命令をキャッシュすることができ、すなわち、第１の処理命令を予め設定したキャッシュ空間に記憶して、他の命令の実行に影響を及ぼさないようにする。第２の処理命令の実行が完成された後に、キャッシュ空間中の第１の処理命令を実行する。本発明は、当該場合の第１の処理命令の処理方式に対して限定しない。
【０１９０】
このような方式によって、依存関係判断モジュールを導入して、命令間のタイプによって発生された依存関係、および、同期命令によって発生された依存関係を確定することによって、命令の実行順序を保証し、データ処理の正確性を確保できる。
可能な一実現形態において、前記制御ユニットは、さらに、
前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して操作可能状態または操作不可状態を含む、前記記述子の現在の状態を、確定し、
前記記述子が現在操作不可状態にある場合、前記第１の処理命令をブロックまたはキャッシュする。
【０１９１】
例を挙げると、テンソル制御モジュールに記述子の状態の対応表を記憶することによって、記述子の状態は操作可能状態または操作不可状態を含む、記述子の現在の状態を、表すことができる。
【０１９２】
可能な一実現形態において、第１の処理命令のプリアンブル命令が当前記述子に対して操作を実行している（例えば、書き込みまたは読み取り）場合、テンソル制御モジュールは記述子の現在状態を操作不可状態に設定できる。当該状態において、第１の処理命令を実行することができなく、第１の処理命令をブロックまたはキャッシュできる。逆に、当前記述子に対して操作を実行するプリアンブル命令がない場合、テンソル制御モジュールは記述子の現在状態を操作可能状態に設定できる。当該状態において、第１の処理命令を実行できる。
【０１９３】
可能な一実現形態において、記述子内容がレジスタＴＲ（テンソルレジスタ、Ｔｅｎｓｏｒ Ｒｅｇｉｓｔｅｒ）に記憶されている場合、テンソル制御モジュールの記述子の状態対応表にＴＲの使用状況をさらに記憶することによって、ＴＲが占用されているか解放されているかを確定し、限られたレジスタリソースの管理を実現できる。
このような方式によって、記述子の状態に基づいて命令間の依存関係を判断することによって、命令の実行順序を保証し、データ処理の正確性を確保できる。
可能な一実現形態において、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
ここで、前記制御ユニットは、
【０１９４】
前記ソースデータおよび前記目的データの中の少なくとも一つが記述子の識別子を含む場合、前記テンソル制御モジュールを使用して前記記述子の記述子記憶空間を確定し、
前記記述子記憶空間から前記記述子の内容を取得し、
【０１９５】
前記記述子の内容に基づいて、前記テンソル制御モジュールを使用して前記ソースデータの第１のデータアドレス及び／又は前記目的データの第２のデータアドレスを確定し、
前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込む。
【０１９６】
例を挙げると、データアクセス命令のオペランドは、ソースデータと目的データを含み、ソースデータのデータアドレスからデータを読み取って目的データのデータアドレスに書込むために使用される。第１の処理命令がデータアクセス命令である場合、記述子に基づいてテンソルデータのアクセスを実現できる。データアクセス命令のソースデータと目的データの中の少なくとも一つが記述子の識別子を含む場合、テンソル制御モジュールを使用して記述子の記述子記憶空間を確定できる。
【０１９７】
可能な一実現形態において、ソースデータが第１の記述子の識別子を含み、且つ、目的データが第２の記述子の識別子を含むと、制御ユニットは、テンソル制御モジュールを使用して第１の記述子の第１の記述子記憶空間および第２の記述子の第２の記述子記憶空間をそれぞれ確定し、その後、第１の記述子記憶空間および第２の記述子記憶空間から第１の記述子の内容および第２の記述子の内容をそれぞれ読み取り、且つ、第１の記述子および第２の記述子の内容に基づいて、テンソル制御モジュールを使用してソースデータの第１のデータアドレスおよび目的データの第２のデータアドレスをそれぞれ計算し、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって、アクセス過程全体を完成できる。
【０１９８】
例えば、ソースデータは、オフチップの読み取り待ちデータであり、その第１の記述子の識別子がＴＲ１であり、目的データはオンチップの一つの記憶空間であり、その第２の記述子の識別子がＴＲ２である。制御ユニット１１ｂは、ソースデータ中の第１の記述子の識別子ＴＲ１および目的データ中第２の記述子の識別子ＴＲ２に基づいて、記述子記憶空間から第１の記述子の内容Ｄ１および第２の記述子の内容Ｄ２をそれぞれ取得できる。ここで、第１の記述子の内容Ｄ１および第２の記述子の内容Ｄ２をそれぞれ以下のように表すことができる。
2021520592.tif 000011
【０１９９】
制御ユニット１１ｂは、得られた第１の記述子の内容Ｄ１および第２の記述子の内容Ｄ２に基づいて、テンソル制御モジュールを使用してソースデータの開始物理アドレスＰＡ３および目的データの開始物理アドレスＰＡ４をそれぞれ取得でき、それぞれ以下のように表すことができる。
2021520592.tif 000012
【０２００】
制御ユニット１１ｂは、ソースデータの開始物理アドレスＰＡ３および目的データの開始物理アドレスＰＡ４、および、第１の記述子の内容Ｄ１および第２の記述子の内容Ｄ２に基づいて、テンソル制御モジュールを使用して第１のデータアドレスおよび第２のデータアドレスをそれぞれ確定し、且つ、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって（ＩＯチャンネルを介することができる）、Ｄ１が示すテンソルデータをＤ２が示す記憶空間にロードすることを完成できる。
【０２０１】
可能な一実現形態において、ソースデータのみが第１の記述子の識別子を含むと、制御ユニットは、テンソル制御モジュールを使用して第１の記述子の第１の記述子記憶空間を確定し、その後、第１の記述子記憶空間から第１の記述子の内容を読み取り、且つ、第１の記述子の内容に基づいて、テンソル制御モジュールを使用してソースデータの第１のデータアドレスを計算してから命令のオペランド中の目的データの第２のデータアドレスに基づいて、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって、アクセス過程全体を完成できる。
【０２０２】
可能な一実現形態において、目的データのみが第２の記述子の識別子を含むと、制御ユニットは、テンソル制御モジュールを使用して第２の記述子の第２の記述子記憶空間を確定し、その後、第２の記述子記憶空間から第２の記述子の内容を読み取り、且つ、第２の記述子の内容に基づいて、テンソル制御ユニットを使用して目的データの第２のデータアドレスを計算してから命令のオペランド中のソースデータの第１のデータアドレスに基づいて、第１のデータアドレスからデータを読み取って第２のデータアドレスに書込むことによって、アクセス過程全体を完成できる。
【０２０３】
このような方式によって、記述子を使用してデータのアクセスを完成できて、アクセスするたびに命令によってデータアドレスを導入する必要がなく、データアクセス効率を向上させた。
可能な一実現形態において、前記第１の処理命令は、演算命令を含み、ここで、前記制御ユニット１１は、
前記第１の処理命令が演算命令である場合、前記データアドレスおよび前記第１の処理命令を前記実行ユニットに送信し、
ここで、前記実行ユニットは、
受信された前記データアドレスに基づいて、前記第１の処理命令に対応する演算を実行する。
【０２０４】
例を挙げると、第１の処理命令が演算命令である場合、記述子に基づいてテンソルデータの演算を実現できる。演算命令のオペランドに記述子の識別子が含まれている場合、制御ユニットは、テンソル制御モジュールを使用して記述子の記述子記憶空間を確定し、その後、記述子記憶空間から記述子の内容を読み取り、記述子の内容に基づいて、テンソル制御モジュールを使用してオペランドに対応するデータのアドレスを計算してからデータをアドレスおよび第１の処理命令を実行ユニットに送信し、実行ユニットは、受信されたデータアドレスに基づいて、データアドレスからデータを読み取って演算を実行することによって、演算過程全体を完成できる。
【０２０５】
例えば、演算命令Ａｄｄ；Ａ；Ｂについて、オペランドＡとＢに記述子の識別子ＴＲ３およびＴＲ４がそれぞれ含まれていると、制御ユニットは、テンソル制御モジュールを使用してＴＲ３およびＴＲ４に対応する記述子記憶空間を確定し、記述子記憶空間における内容（例えば、形状パラメータとアドレスパラメータ）を読み取って記述子の内容に基づいて、テンソル制御モジュールを使用してデータＡとＢのデータアドレスを計算し、例えば、データＡのメモリにおけるデータアドレス１がＡＤＤＲ６４〜ＡＤＤＲ１２７であり、データＢのメモリにおけるデータアドレス２がＡＤＤＲ１０２３〜ＡＤＤＲ１０８７であり、その後、データアドレス１、データアドレス２、および、Ａｄｄ命令を実行ユニットに送信し、実行ユニットは、データアドレス１とデータアドレス２からそれぞれデータを読み取り、加算（Ａｄｄ）演算を実行して、演算結果（Ａ＋Ｂ）を得ることができる。
【０２０６】
このような方式によって、演算の際に記述子を使用してデータの読み取りを完成できて、命令によってデータアドレスを導入する必要がなく、データ演算効率を向上させた。
【０２０７】
本発明の実施例に係るデータ処理装置によると、テンソル形状を示すことができる記述子を導入することによって、データ処理命令の運行過程で記述子に基づいてデータのアドレスを確定できるようになって、ハードウェアの観点から命令生成方式が簡略化され、データアクセスの複雑度を低下させ、プロセッサアクセスデータの効率を向上させた。
可能な一実現形態において、人工知能チップをさらに開示し、当該人工知能チップは上記のデータ処理装置を備える。
【０２０８】
Ａ１、データ処理装置であって、前記装置は、制御ユニットと実行ユニットとを備え、前記制御ユニットが、テンソル制御モジュールを備え、ここで、前記制御ユニットが、
【０２０９】
復号化後の第１の処理命令のオペランドが、テンソルの形状を示すための記述子の識別子を含む場合、前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子に対応する記述子記憶空間を確定し、
前記記述子記憶空間から前記記述子の内容を取得し、
【０２１０】
前記記述子の内容に基づいて、前記テンソル制御モジュールを使用して前記第１の処理命令のオペランドに対応するデータのデータ記憶空間におけるデータアドレスを確定し、
前記データアドレスに基づいて、前記テンソル制御モジュールを使用して前記第１の処理命令に対応するデータ処理を実行する。
Ａ２、請求項Ａ１に記載の装置であって、前記制御ユニットは、さらに、
【０２１１】
前記第１の処理命令が記述子登録命令である場合、前記第１の処理命令中の記述子の登録パラメータであって、前記記述子の識別子、テンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む登録パラメータを、取得し、
【０２１２】
前記記述子の登録パラメータに基づいて、前記テンソル制御モジュールを使用して前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定し、
【０２１３】
前記記述子の登録パラメータおよび前記第２の記憶領域に基づいて、前記記述子の内容を確定することによって、前記記述子と前記第２の記憶領域との間の対応関係を構築し、
前記記述子の内容を前記第１の記憶領域に記憶する。
Ａ３、請求項Ａ１またはＡ２に記載の装置であって、前記制御ユニットは、さらに、
前記第１の処理命令が記述子取り消し命令である場合、前記第１の処理命令中の記述子の識別子を取得し、
【０２１４】
前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放する。
Ａ４、請求項Ａ１乃至Ａ３の中のいずれか１項に記載の装置であって、前記制御ユニットは、さらに、
【０２１５】
前記第１の処理命令が記述子変更命令である場合、前記第１の処理命令中の記述子の、前記記述子の識別子、変更待ちのテンソル形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含む変更パラメータを取得し、
前記記述子の変更パラメータに基づいて、前記テンソル制御モジュールを使用して前記記述子の更新待ち内容を確定し、
【０２１６】
更新待ち内容に基づいて、前記テンソル制御モジュールを使用して前記記述子記憶空間における前記記述子の内容、及び／又は、データ記憶空間におけるテンソルデータの内容を更新する。
【０２１７】
Ａ５、請求項Ａ１乃至Ａ４の中のいずれか１項に記載の装置であって、前記制御ユニットは、依存関係判断モジュールをさらに備え、ここで、前記制御ユニットは、さらに、
【０２１８】
前記記述子の識別子に基づいて、依存関係判断モジュールを使用して、依存関係を有する第２の処理命令であって、命令キュー中で前記第１の処理命令の前に位置し、且つ、オペランド中に前記記述子の識別子を有する処理命令を含む第２の処理命令が、が存在するか否かを確定し、
依存関係を有し且つ処理未完成の第２の処理命令が存在する場合、前記第１の処理命令をブロックまたはキャッシュする。
Ａ６、請求項Ａ１乃至Ａ５の中のいずれか１項に記載の装置であって、前記制御ユニットは、さらに、
前記記述子の識別子に基づいて、前記テンソル制御モジュールを使用して操作可能状態または操作不可状態を含む、前記記述子の現在の状態を、確定し、
前記記述子が現在操作不可状態にある場合、前記第１の処理命令をブロックまたはキャッシュする。
【０２１９】
Ａ７、請求項Ａ１乃至Ａ６の中のいずれか１項に記載の装置であって、前記第１の処理命令はデータアクセス命令を含み、前記オペランドはソースデータと目的データとを含み、
ここで、前記制御ユニットは、
【０２２０】
前記ソースデータおよび前記目的データの中の少なくとも一つが記述子の識別子を含む場合、前記テンソル制御モジュールを使用して前記記述子の記述子記憶空間を確定し、
前記記述子記憶空間から前記記述子の内容を取得し、
【０２２１】
前記記述子の内容に基づいて、前記テンソル制御モジュールを使用して前記ソースデータの第１のデータアドレス及び／又は前記目的データの第２のデータアドレスを確定し、
前記第１のデータアドレスからデータを読み取って前記第２のデータアドレスに書込む。
Ａ８、請求項Ａ１乃至Ａ７の中のいずれか１項に記載の装置であって、前記第１の処理命令は、演算命令を含み、
ここで、前記制御ユニットは、さらに、
前記第１の処理命令が演算命令である場合、前記データアドレスおよび前記第１の処理命令を前記実行ユニットに送信し、
ここで、前記実行ユニットは、
受信された前記データアドレスに基づいて、前記第１の処理命令に対応する演算を実行する。
【０２２２】
Ａ９、請求項Ａ１乃至Ａ８の中のいずれか１項に記載の装置であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０２２３】
Ａ１０、請求項Ａ９に記載の装置であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０２２４】
Ａ１１、請求項Ａ１０に記載の装置であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含み、
ここで、前記テンソルデータの形状パラメータは、
【０２２５】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ１２、請求項Ａ１乃至Ａ１１の中のいずれか１項に記載の装置であって、前記制御ユニットは、さらに、
受信された第１の処理命令に対して復号化処理を行って、復号化後の第１の処理命令を得ることをさらに含み、
【０２２６】
ここで、復号化後の第１の処理命令は、オペレーションコードと一つまたは複数のオペランドとを含み、前記オペレーションコードが、前記第１の処理命令に対応する処理タイプを示すために使用される。
【０２２７】
Ａ１３、請求項Ａ１乃至Ａ１２の中のいずれか１項に記載の装置であって、前記記述子記憶空間は、前記制御ユニットの内部メモリ中の記憶空間であり、前記データ記憶空間は、前記制御ユニットの内部メモリまたは前記制御ユニットに接続された外部メモリ中の記憶空間である。
Ａ１４、人工知能チップであって、前記チップは、請求項Ａ１乃至Ａ１３の中のいずれか１項に記載のデータ処理装置を備える。
Ａ１５、電子デバイスであって、前記電子デバイスは、請求項Ａ１４に記載の人工知能チップを備える。
【０２２８】
Ａ１６、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ１４に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０２２９】
Ａ１７、請求項Ａ１６に記載のボードカードであって、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、
前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０２３０】
人工知能技術の継続的な発展に伴って、処理する必要のあるデータ量とデータ次元とがいずれも継続的に増加している。関連技術において、プロセッサは、一般的に、命令のパラメータを取得してデータアドレスを確定し、次に、データアドレスに基づいてデータの読み取りと使用を完成することによって、当該方式はプロセッサの処理効率を低下させた。
【０２３１】
本発明の実施例によると、データ処理方法が提供される。図１ｃは、本発明の一実施例に係るデータ処理方法を示すフローチャートである。当該データ処理方法は、プロセッサに適用でき、当該プロセッサは、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）と、専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサ、または、デジタル信号プロセッサなど）を含んでもよい。本発明は、プロセッサのタイプに対して限定しない。図１ｃに示されたように、当該データ処理方法は、以下のステップを含む。
【０２３２】
ステップＳ１１ｃにおいて、既に復号化された処理命令が記述子管理命令である場合、前記処理命令中の、テンソルの形状を示すための記述子の管理パラメータを取得する。
【０２３３】
ここで、テンソルは、様々な形式のデータ構成方式を含んでもよい。テンソルは、異なる次元のものであってもよく、例えば、スカラーは０次元のテンソル、ベクトルは１次元のテンソル、行列は２次元または２次元以上のテンソルと見なしてもよい。テンソルの形状は、テンソルの次元やテンソルの各次元のサイズなどの情報を含む。例を挙げると、以下のテンソルの場合、
2021520592.tif 000013
【０２３４】
当該テンソルの形状は、記述子によって（２、４）として記述されてもよく、すなわち、二つのパラメータによって当該テンソルが２次元テンソルであることを示し、且つ、当該テンソルの第１の次元（列）のサイズは２であり、第２の次元（行）のサイズは４である。本発明は、記述子がテンソル形状を示す方式に対して限定しないことを説明する必要がある。メモリにテンソルデータを記憶する場合、そのデータアドレス（または記憶領域）によってはテンソルデータの形状を確定できず、さらに複数のテンソルデータ間の相互関係などの関連情報も確定できないので、プロセッサのテンソルデータのアクセス効率が低くなる。この場合、記述子を導入してテンソルの形状を示すことができる。
【０２３５】
可能な一実現形態において、記述子は、識別子や内容などを含んでもよい。記述子の識別子は、記述子を区別するために使用でき、例えば、記述子の識別子は番号である。記述子の内容は、テンソルデータの形状を記述するために使用でき、記述子の内容は、テンソルデータの形状を示す形状パラメータ（例えば、テンソルの各次元方向上のサイズなど）含んでもよく、テンソルデータのアドレスを表すアドレスパラメータ（例えば、データ基準点の基準アドレス）をさらに含んでもよい。本発明は、記述子の内容の具体的なパラメータに対して限定しない。
【０２３６】
可能な一実現形態において、記述子管理命令に基づいて記述子の登録、変更、および、取り消しなどの管理を実現し、これら管理命令に対して該当するオペレーションコードを設定できる。例えば、記述子登録命令（ＴＲＣｒｅａｔ）に基づいて記述子を登録（作成）し、記述子変更命令に基づいて記述子の各パラメータ（形状、アドレスなど）を変更し、記述子取り消し命令（ＴＲＲｅｌｅａｓｅ）に基づいて記述子を取り消し（削除）できる。本発明は、記述子管理命令の種類およびオペレーションコードの具体的な設定に対して限定しない。
【０２３７】
可能な一実現形態において、既に復号化された処理命令は、オペレーションコードと一つまたは複数のオペランドとを含んでもよく、オペレーションコードが、処理命令に対応する処理タイプを示すために使用され、オペランドが、処理待ちのデータを示すために使用される。既に復号化された処理命令に対して、そのオペレーションコードに基づいて処理命令の処理タイプを確定できる。既に復号化された処理命令が記述子管理命令である場合、処理命令中の記述子の管理パラメータを取得できる。ここで、管理パラメータは、記述子管理命令の操作パラメータを示すことができる。例えば、記述子登録命令の管理パラメータは、記述子の識別子、記述子が示すテンソルデータの内容などを含んでもよい。本発明は、管理パラメータの具体的な内容に対して限定しない。
ステップＳ１２ｃにおいて、前記管理パラメータに基づいて、前記処理命令を実行する。
【０２３８】
つまり、取得した管理パラメータに基づいて、処理命令を実行できる。例えば、処理命令が記述子登録命令である場合、記述子登録命令の管理パラメータを取得した後、管理パラメータに基づいて記述子登録命令を実行して、該当する記述子を作成できる。
【０２３９】
本発明の実施例によると、既に復号化された処理命令が記述子管理命令である場合、命令中の管理パラメータを取得し、管理パラメータに基づいて、処理命令を実行できることによって、記述子管理命令に基づいて記述子を管理して、プロセッサの記述子に対する処理効率を向上させることができる。
【０２４０】
可能な一実現形態において、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用でき、Ｎは、ゼロ以上の整数であり、ここで、前記記述子の内容が、テンソルデータの形状を示す少なくとも一つの形状パラメータを含んでもよい。
【０２４１】
可能な一実現形態において、記述子は、Ｎ次元のテンソルデータの形状を示すために使用できる。ここで、Ｎの値は、テンソルデータの次元数（回数）に基づいて確定してもよいし、テンソルデータの使用の必要性に基づいて設定してもよい。例えば、テンソルデータは３次元データであり、Ｎの値は３（次元数に基づいて確定する）であってもよいし、記述子は当該テンソルデータの三つの次元方向上の形状（例えば、オフセット量、サイズなど）を示すために使用できる。当業者は、実際の必要によってＮの値を設置でき、本発明はこれに対して限定しないことを理解すべきである。
【０２４２】
可能な一実現形態において、記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータ（例えば、テンソルの各次元方向上のサイズなど）を含んでもよい。本発明は、記述子の内容に含まれる具体的な形状パラメータに対して限定しない。
【０２４３】
本実施例において、記述子を使用してテンソルデータを示す方式によって、テンソルデータの形状を表現でき、さらに、複数のテンソルデータ間の相互関係などの関連情報も確定できるので、テンソルデータに対するアクセス効率を向上させる。
【０２４４】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、制御ユニットの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなど）の中の記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、前記制御ユニットの内部メモリ（例えば、オンチップキャッシュ）、または、前記制御ユニットと接続された外部メモリ（オフチップメモリ）の中の記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【０２４５】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同一の領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスがＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１が記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３が記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３が記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０２４６】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタ中に記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０２４７】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子中のデータは、即時値にすることも、専用レジスタ中から取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタ中の記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０２４８】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０２４９】
可能な一実現形態において、記述子の識別子に対応する記憶領域のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに対して単独の記憶空間を区分けすることができ、各テンソルデータの記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、記述子の識別子および対応関係に基づいて、記述子が示すテンソルデータのデータアドレスを直接確定できる。
【０２５０】
当業者は、実際の必要に従って記述子の識別子、内容、および、記述子が示すテンソルデータの記憶方式を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０２５１】
実施例において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同一の領域に位置することができ、別々に記憶することもでき、また、内部メモリ及び／又は外部メモリに記憶でき、記述子とテンソルデータの記憶が便利で柔軟にして、処理効率を向上させることができる。
【０２５２】
可能な一実現形態において、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。
【０２５３】
可能な一実現形態において、記述子の識別子に対応する記憶領域のデータアドレスが可変アドレスである場合、記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、記述子の内容が、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例を挙げると、テンソルデータは３次元データであり、記述子を使用して当該テンソルデータのアドレスを示すことができ、記述子の内容が、当該テンソルデータのアドレスを表す一つのアドレスパラメータ（例えば、テンソルデータの開始アドレス）を含んでもよいし、当該テンソルデータのアドレスの複数のアドレスパラメータ（例えば、テンソルデータの開始アドレス＋アドレスオフセット量、または、テンソルデータの各次元に基づくアドレスパラメータである）を含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０２５４】
本実施例において、記述子を使用してテンソルデータのアドレスを示し、記述子が示すテンソルデータのアドレスに基づいて、複数のテンソルデータ間の相互関係を確定できて、プロセッサのアクセス効率を向上させることができる。
【０２５５】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０２５６】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスがデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間中の１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスが当該データブロックのデータ記憶空間における物理アドレスである。
【０２５７】
本実施例において、テンソルデータのアドレスパラメータは、記述子のデータ基準点に対応する基準アドレスを含んでもよく、操作及び／又は使用の必要性に従って異なるデータ基準点を確定し、記述子の内容中で対応する基準アドレスを使用することによって、記述子の内容が操作及び／又は使用の必要性にさらに合致するようにして、データ処理効率を向上させることができる。
【０２５８】
可能な一実現形態において、テンソルデータの形状パラメータは、前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
【０２５９】
ここで、データ記述位置は、記述子が示すテンソルデータ中の点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータは３次元空間における点または領域の位置にマッピングする。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０２６０】
本実施例において、テンソルデータの形状パラメータは、サイズ、オフセット量、位置、マッピング関係の中の少なくとも一つを含んでもよく、操作及び／又は使用の必要性に従って記述子の内容中で異なる形状パラメータを使用することによって、記述子の内容が操作及び／又は使用の必要性にさらに合致するようにして、データ処理効率を向上させることができる。
【０２６１】
可能な一実現形態において、前記記述子管理命令は、記述子登録命令を含み、前記管理パラメータは、記述子の識別子、記述子が示すテンソルデータの形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含み、
【０２６２】
ステップＳ１２ｃにおいて、前記処理命令が記述子登録命令である場合、前記記述子の識別子に基づいて、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つ記述子を登録することを含んでもよい。
【０２６３】
可能な一実現形態において、記述子登録命令は、記述子を登録するために使用でき、記述子登録命令の管理パラメータは、記述子の識別子（ＩＤ）、記述子が示すテンソルデータの形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含んでもよい。例えば、記述子登録命令の管理パラメータは、記述子識別子ＴＲ０、記述子が示すテンソルデータの形状（次元数、各次元のサイズ、オフセット量、開始データアドレスなど）である。本発明は、管理パラメータの具体的な内容に対して限定しない。
【０２６４】
可能な一実現形態において、記述子の識別子に基づいて、記述子が示すテンソルデータの形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つ記述子を登録できる。
【０２６５】
例を挙げると、記述子登録命令の管理パラメータが記述子の識別子ＴＲ０を含む場合、ＴＲ０に基づいて、記述登録命令を実行して、記述子ＴＲ０を登録し、記述子ＴＲ０をＴＲ０に対応する記述子記憶空間（例えば、レジスタ）に記憶できる。
【０２６６】
可能な一実現形態において、記述子登録命令の管理パラメータが記述子が示すテンソルデータの形状を含む場合、記述子が示すテンソルデータの形状に基づいて、当該記述子の内容を確定し、且つ、当該記述子の内容を記述子記憶空間に記憶して、記述子の登録を完成できる。記述子登録命令の管理パラメータが記述子の識別子をさらに含む場合、記述子の内容を確定した後、記述子の内容を記述子の識別子に対応する記述子記憶空間に記憶して、記述子の登録を完成できる。記述子の識別子が対応する記述子記憶空間を有さないと、当該記述子の内容を記述子記憶空間に記憶し、当該記述子の識別子と記述子記憶空間との対応関係を構築して、記述子の登録を完成できる。
【０２６７】
可能な一実現形態において、記述子登録命令の管理パラメータが記述子が示すテンソルデータの内容を含む場合、記述子が示すテンソルデータの内容に基づいて、当該記述子の内容を確定し、テンソルデータの内容と記述子の内容との対応関係を構築し、且つ、当該記述子の内容を記述子記憶空間に記憶して、当該記述子の登録を完成できる。管理パラメータが記述子の識別子をさらに含む場合、記述子の内容を確定した後、記述子の内容を記述子の識別子に対応する記述子記憶空間に記憶して、記述子の登録を完成できる。記述子の識別子が対応する固定記述子記憶空間を有さないと、当該記述子の内容を記述子記憶空間に記憶し、当該記述子の識別子と記述子記憶空間との対応関係を構築し、記述子の登録を完成できる。
【０２６８】
可能な一実現形態において、さらに、記述子が示すテンソルデータの形状および記述子が示すテンソルデータの内容に基づいて記述子を登録するか、または、記述子の識別子に基づいて、記述子が示すテンソルデータの形状および記述子が示すテンソルデータの内容に基づいて記述子を登録できる。本発明は、記述子登録命令中の管理パラメータの組み合わせ方式および具体的な値に対して限定しない。
【０２６９】
可能な一実現形態において、記述子登録命令は、複数の記述子の管理パラメータを含むことができ、例えば、命令が記述子の識別子ＴＲ０、ＴＲ１、および、ＴＲ２を含むと、管理パラメータ（記述子の識別子、記述子が示すテンソルデータの形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つ）に基づいて記述子ＴＲ０、ＴＲ１、および、ＴＲ２をそれぞれ登録できる。各々のＴＲの登録過程は、上記の登録過程と同一または類似である。このように、一つの命令に基づいて複数の記述子を一括登録でき、記述子の登録効率をさらに向上させることができる。
【０２７０】
本実施例において、記述子の識別子に基づいて、記述子が示すテンソルデータの形状および記述子が示すテンソルデータの内容の中の少なくとも一つの記述子を登録できて、記述子の登録が様々な操作及び／又は使用の必要性を満たすようにすることによって、記述子の処理効率を向上させることができる。
【０２７１】
可能な一実現形態において、前記記述子の識別子に基づいて、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つの記述子を登録することは、前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定することと、前記記述子の識別子、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つに基づいて、前記記述子の内容を確定し、前記記述子と前記第２の記憶領域との間の対応関係を構築することと、前記記述子の内容を前記第１の記憶領域に記憶することと、をさらに含む。
【０２７２】
可能な一実現形態において、記述子を登録する場合、まず、記述子の内容の記述子記憶空間における第１の記憶領域、および、記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定できる。
【０２７３】
例を挙げると、記憶領域の中の少なくとも一つを既に予め設定したとすると、第１の記憶領域及び／又は第２の記憶領域を直接確定できる。例えば、記述子の内容とテンソルデータの内容とを同一の記憶空間に記憶すると予め設定したとすると、記述子の識別子ＴＲ０に対応する記述子の内容の記憶アドレスがＡＤＤＲ３２〜ＡＤＤＲ６３であり、テンソルデータの内容の記憶アドレスがＡＤＤＲ６４〜ＡＤＤＲ１０２３であると、この二つのアドレスは第１の記憶領域および第２の記憶領域であると直接確定できる。
【０２７４】
可能な一実現形態において、記憶領域を予め設定しないと、記述子内容に対して記述子記憶空間中で第１の記憶領域を割り当て、テンソルデータ内容に対してデータ記憶空間中で第２の記憶領域を割り当てることができる。ここで、制御ユニットまたはテンソル制御モジュールによって記憶領域を割り当てることができ、本発明はこれに対して限定しない。
【０２７５】
可能な一実現形態において、第１の記憶領域と第２の記憶領域とを確定した後、前記記述子の識別子、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つに基づいて、前記記述子の内容を確定し、前記記述子と前記第２の記憶領域との間の対応関係を構築し、その後、記述子の内容を第１の記憶領域に記憶して、記述子の登録過程を完成できる。
【０２７６】
例えば、図２に示されたテンソルデータ２３について、登録パラメータは、データ記憶空間２１の開始アドレスＰＡ_ｓｔａｒｔ（基準アドレス）、Ｘ軸方向におけるオフセット量２５（ｏｆｆｓｅｔ_ｘで表す）、Ｙ軸方向におけるオフセット量２４（ｏｆｆｓｅｔ_ｙで表す）、Ｘ軸方向におけるサイズ（ｓｉzｅ_ｘで表す）、および、Ｙ軸方向におけるサイズ（ｓｉzｅ_ｙで表す）を含んでもよい。これらのパラメータに基づいて、記述子の内容を式（１）で表すことができ、それを第１の記憶領域中に記憶することによって、記述子の登録過程を完成できる。
【０２７７】
このような方式によって、記述子登録命令に基づいて記述子を自動的に作成して、記述子が示すテンソルとデータアドレスとの間の対応を実現することによって、データ処理の際に記述子内容に基づいてデータアドレスを取得できて、プロセッサのデータアクセス効率を向上させる。
可能な一実現形態において、前記記述子が示すテンソルデータの内容は、即時値、および、レジスタ中のデータの中の少なくとも一つを含む。
【０２７８】
可能な一実現形態において、記述子が示すテンソルデータの内容は、即時値を含んでもよい。ここで、即時値は、データ処理過程で変更が発生されないテンソルデータであってもよい。記述子と即時値との対応関係を構築した後、データ処理過程で、即時値の代わりに記述子を使用できる。記述子が示すテンソルデータの内容は、レジスタ中のデータをさらに含んでもよく、記述子とレジスタ中のデータとの対応関係を構築した後、レジスタの番号を記述子の識別子としてもよい。
【０２７９】
本実施例において、記述子に基づいて即時値とレジスタ中のデータとを示すことによって、即時値とレジスタ中のデータとを使用する複雑度低下させて、データ処理の効率を向上させることができる。
【０２８０】
可能な一実現形態において、前記記述子管理命令は、第１の記述子取り消し命令を含み、前記管理パラメータは、記述子の識別子を含み、ここで、ステップＳ１２ｃは、前記処理命令が第１の記述子取り消し命令である場合、前記記述子の識別子に基づいて前記識別子に対応する記述子を取り消しすることを含む。
【０２８１】
ここで、第１の記述子取り消し命令は、記述子を取り消し（削除）するために使用できて、当該第１の記述子取り消し命令の管理パラメータは、記述子の識別子を含むことができ、ここで、記述子の識別子が、取り消し待ちの記述子を示すために使用される。
【０２８２】
可能な一実現形態において、第１の記述子取り消し命令の管理パラメータは、少なくとも一つの記述子の識別子を含んでもよく、つまり、第１の記述子取り消し命令は、一つの記述子を取り消しすることもできし、複数の記述子を同時に取り消しすることもできる。
【０２８３】
可能な一実現形態において、第１の記述子取り消し命令は、一部の記述子の識別子を含んでもよく、すなわち、当前記述子中の一部の記述子を取り消しすることもでき、すべての記述子の識別子を含んでもよく、すなわち、現在のすべての記述子を取り消しすることもできる。
【０２８４】
可能な一実現形態において、前記処理命令が第１の記述子取り消し命令である場合、記述子の識別子に基づいて当該識別子に対応する記述子を取り消しすることができる。例えば、第１の記述子取り消し命令の管理パラメータがＴＲ２およびＴＲ３である場合、第１の記述子取り消し命令は、ＴＲ２およびＴＲ３に基づいて、ＴＲ２およびＴＲ３に対応する記述子を取り消しすることもできる。
【０２８５】
本実施例において、記述子の識別子に基づいて記述子を取り消しすることができ、さらに、使用の必要性に従って一部またはすべての記述子、および、一つまたは複数の記述子を同時に取り消しこともできて、記述子の取り消し方式が様々な処理要件を満たすようにして、記述子の取り消し効率を向上させることができる。
【０２８６】
可能な一実現形態において、前記記述子の識別子に基づいて前記識別子に対応する記述子を取り消しすることは、前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放することと、をさらに含む。
【０２８７】
つまり、記述子の識別子に基づいて当該識別子に対応する記述子を取り消しする場合、記述子によって占用された記憶領域を同時に解放でき、すなわち、記述子の記述子記憶空間における記憶領域および記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放できる。このような方式によって、記述子の使用が終了した後に記述子によって占用された空間を解放して、限られた記憶リソースを繰り返して利用できて、リソースの利用効率を向上させた。
【０２８８】
可能な一実現形態において、前記記述子管理命令は、第２の記述子取り消し命令を含み、前記管理パラメータは、記述子の識別子を含み、ここで、ステップＳ１２ｃは、前記処理命令が第２の記述子取り消し命令である場合、前記記述子の識別子に基づいて、記述子記憶空間に記憶した前記記述子の内容を指定記憶空間に記憶することと、前記識別子に対応する記述子を取り消しすることを含んでもよい。
【０２８９】
ここで、第２の記述子取り消し命令は、記述子を取り消し（削除）するために使用され、当該第２の記述子取り消し命令の管理パラメータは、記述子の識別子を含んでもよく、ここで、記述子の識別子が、取り消し待ちの記述子を示すために使用される。
【０２９０】
可能な一実現形態において、処理命令が第２の記述子取り消し命令である場合、記述子の識別子に基づいて、まず、記述子記憶空間に記憶した記述子の内容を指定記憶空間に記憶し、その後、当該記述子の識別子に対応する記述子を取り消しすることができる。つまり、第２の記述子取り消し命令は、取り消し待ちの記述子の内容を再度保存した後に、取り消し操作を実行できる。まず記述子の内容を保存してから記述子に対して取り消しを実行する方式、後続に使用する必要がある記述子の内容を保存する同時に、当前記述子によって占用されたリソース（例えば、記述子の識別子、記憶空間などリソース）も解放して、リソース使用効率を向上させることができる。
【０２９１】
可能な一実現形態において、前記記述子管理命令は、記述子変更命令を含み、前記管理パラメータは、前記記述子の識別子、変更待ちの記述子の内容、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含み、ここで、ステップＳ１２ｃは、前記処理命令が記述子変更命令である場合、前記記述子の管理パラメータに基づいて、前記記述子の更新待ち内容を確定することと、更新待ち内容に基づいて、前記記述子の識別子、記述子記憶空間における前記記述子の内容、および、データ記憶空間におけるテンソルデータの内容の中の少なくとも一つを更新することを含んでもよい。
【０２９２】
例を挙げると、記述子変更命令は、例えば、記述子の識別子、テンソル形状などの、記述子の様々なパラメータを変更するために使用できる。記述子変更命令の管理パラメータは、記述子の識別子、変更待ちの記述子の内容、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含んでもよい。本発明は、記述子変更命令の管理パラメータの具体的な内容に対して限定しない。
【０２９３】
可能な一実現形態において、処理命令が記述子変更命令である場合、記述子の管理パラメータに基づいて、記述子の更新待ち内容を確定でき、例えば、テンソルの次元を３次元から２次元へ変更し、テンソルの一つまたは複数の次元方向におけるサイズを変更できる。
【０２９４】
可能な一実現形態において、更新待ち内容を確定した後、テンソルデータを変更して更新後の記述子が変更後のテンソルデータを示すように、記述子記憶空間における記述子の識別子、記述子記憶空間における前記記述子の内容、および、データ記憶空間におけるテンソルデータの内容の中の少なくとも一つを更新できる。本発明は、更新待ち内容の範囲および具体的な更新方式に対して限定しない。
【０２９５】
このような方式によって、記述子が示すテンソルデータに変更が発生された場合、記述子を直接変更することによって、記述子とテンソルデータとの間の対応が維持できて、リソースの利用効率が向上される。
【０２９６】
上記の実施例を例としてデータ処理方法を上記のようにに説明したが、当業者は本発明がこれに限定されないことを理解できることを説明する必要がある。実際に、ユーザは、本発明の技術案に合致する限り、完全に、個人の好み及び／又は実際の適用シナリオに従って各ステップを柔軟に設定できる。
図３ａは、本発明の実施例に係るデータ処理方法を示すブロック図である。図３ａに示されたように、前記データ処理装置は、
【０２９７】
既に復号化された処理命令が記述子管理命令である場合、前記処理命令中の、テンソルの形状を示すための記述子の管理パラメータを取得するためのパラメータ取得モジュール３１ａと、
前記管理パラメータに基づいて、前記処理命令を実行するための命令実行モジュール３２ａと、を備える。
【０２９８】
可能な一実現形態において、前記記述子管理命令は、記述子登録命令を含み、前記管理パラメータは、記述子の識別子、記述子が示すテンソルデータの形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含み、
前記命令実行モジュール３２ａは、
【０２９９】
前記処理命令が記述子登録命令である場合、前記記述子の識別子に基づいて、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つの記述子を登録するための登録サブモジュールを備える。
可能な一実現形態において、前記登録サブモジュールは、さらに、
【０３００】
前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定し、
【０３０１】
前記記述子の識別子、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つに基づいて、前記記述子の内容を確定し、前記記述子と前記第２の記憶領域との間の対応関係を構築し、
前記記述子の内容を前記第１の記憶領域に記憶する。
可能な一実現形態において、前記記述子が示すテンソルデータの内容は、即時値、および、レジスタ中のデータの中の少なくとも一つを含む。
可能な一実現形態において、前記記述子管理命令は、第１の記述子取り消し命令を含み、前記管理パラメータは、記述子の識別子を含み、
ここで、前記命令実行モジュール３２ａは、
【０３０２】
前記処理命令が第１の記述子取り消し命令である場合、前記記述子の識別子に基づいて前記識別子に対応する記述子を取り消しするための第１の取り消しサブモジュールを備える。
可能な一実現形態において、第１の取り消しサブモジュールは、さらに、
前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放する。
可能な一実現形態において、前記記述子管理命令は、第２の記述子取り消し命令を含み、前記管理パラメータは、記述子の識別子を含み、
ここで、前記命令実行モジュール３２ａは、
【０３０３】
前記処理命令が第２の記述子取り消し命令である場合、前記記述子の識別子に基づいて、記述子記憶空間に記憶した前記記述子の内容を指定記憶空間に記憶するための記憶空間確定サブモジュールと、
前記識別子に対応する記述子を取り消しするための第２の取り消しサブモジュールと、を備える。
【０３０４】
可能な一実現形態において、前記記述子管理命令は、記述子変更命令を含み、前記管理パラメータは、前記記述子の識別子、変更待ちの記述子の内容、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含み、
ここで、前記命令実行モジュール３２ａは、
【０３０５】
前記処理命令が記述子変更命令である場合、前記記述子の管理パラメータに基づいて、前記記述子の更新待ち内容を確定するための更新内容確定サブモジュールと、
【０３０６】
更新待ち内容に基づいて、前記記述子の識別子、記述子記憶空間における前記記述子の内容、および、データ記憶空間におけるテンソルデータの内容の中の少なくとも一つを更新するための変更サブモジュールと、を備える。
可能な一実現形態において、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０３０７】
可能な一実現形態において、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０３０８】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。
可能な一実現形態において、前記テンソルデータの形状パラメータは、
【０３０９】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
可能な一実現形態において、人工知能チップをさらに開示し、当該人工知能チップは上記のデータ処理装置を含む。
【０３１０】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０３１１】
可能な一実現形態において、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
Ａ１、データ処理方法であって、前記方法は、
既に復号化された処理命令が記述子管理命令である場合、前記処理命令中の、テンソルの形状を示すための記述子の管理パラメータを取得することと、
前記管理パラメータに基づいて、前記処理命令を実行することと、を含む。
【０３１２】
Ａ２、請求項Ａ１に記載の方法であって、前記記述子管理命令は、記述子登録命令を含み、前記管理パラメータは、記述子の識別子、記述子が示すテンソルデータの形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含み、
前記管理パラメータに基づいて、前記処理命令を実行することは、
【０３１３】
前記処理命令が記述子登録命令である場合、前記記述子の識別子に基づいて、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つの記述子を登録することを含む。
【０３１４】
Ａ３、請求項Ａ２に記載の方法であって、前記記述子の識別子に基づいて、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つの記述子を登録することは、
【０３１５】
前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定することと、
【０３１６】
前記記述子の識別子、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つに基づいて、前記記述子の内容を確定し、前記記述子と前記第２の記憶領域との間の対応関係を構築することと、
前記記述子の内容を前記第１の記憶領域に記憶することと、をさらに含む。
【０３１７】
Ａ４、請求項Ａ２またはＡ３に記載の方法であって、前記記述子が示すテンソルデータの内容は、即時値、および、レジスタ中のデータの中の少なくとも一つを含む。
Ａ５、請求項Ａ１に記載の方法であって、前記記述子管理命令は、第１の記述子取り消し命令を含み、前記管理パラメータは、記述子の識別子を含み、
ここで、前記管理パラメータに基づいて、前記処理命令を実行することは、
前記処理命令が第１の記述子取り消し命令である場合、前記記述子の識別子に基づいて前記識別子に対応する記述子を取り消しすることを含む。
Ａ６、請求項Ａ５に記載の方法であって、前記記述子の識別子に基づいて前記識別子に対応する記述子を取り消しすることは、
【０３１８】
前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放することを含む。
Ａ７、請求項Ａ１に記載の方法であって、前記記述子管理命令は、第２の記述子取り消し命令を含み、前記管理パラメータは、記述子の識別子を含み、
ここで、前記管理パラメータに基づいて、前記処理命令を実行することは、
【０３１９】
前記処理命令が第２の記述子取り消し命令である場合、前記記述子の識別子に基づいて、記述子記憶空間に記憶した前記記述子の内容を指定記憶空間に記憶することと、
前記識別子に対応する記述子を取り消しすることと、を含む。
【０３２０】
Ａ８、請求項Ａ１に記載の方法であって、前記記述子管理命令は、記述子変更命令を含み、前記管理パラメータは、前記記述子の識別子、変更待ちの記述子の内容、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含み、
ここで、前記管理パラメータに基づいて、前記処理命令を実行することは、
前記処理命令が記述子変更命令である場合、前記記述子の管理パラメータに基づいて、前記記述子の更新待ち内容を確定することと、
【０３２１】
更新待ち内容に基づいて、前記記述子の識別子、記述子記憶空間における前記記述子の内容、および、データ記憶空間におけるテンソルデータの内容の中の少なくとも一つを更新することを含む。
【０３２２】
Ａ９、請求項Ａ１乃至Ａ８の中のいずれか１項に記載の方法であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０３２３】
Ａ１０、請求項Ａ９に記載の方法であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０３２４】
Ａ１１、請求項Ａ１０に記載の方法であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。
Ａ１２、請求項Ａ１１に記載の方法であって、前記テンソルデータの形状パラメータは、
【０３２５】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ１３、データ処理装置であって、前記装置は、
【０３２６】
既に復号化された処理命令が記述子管理命令である場合、前記処理命令中の、テンソルの形状を示すための記述子の管理パラメータを取得するパラメータ取得モジュールと、
前記管理パラメータに基づいて、前記処理命令を実行するための命令実行モジュールと、を備える。
【０３２７】
Ａ１４、請求項Ａ１３に記載の装置であって、前記記述子管理命令は、記述子登録命令を含み、前記管理パラメータは、記述子の識別子、記述子が示すテンソルデータの形状、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含み、
前記命令実行モジュールは、
【０３２８】
前記処理命令が記述子登録命令である場合、前記記述子の識別子に基づいて、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つ記述子を登録するための登録サブモジュールを備える。
Ａ１５、請求項Ａ１４に記載の装置であって、前記登録サブモジュールは、さらに、
【０３２９】
前記記述子の内容の記述子記憶空間における第１の記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における第２の記憶領域を確定し、
【０３３０】
前記記述子の識別子、前記記述子が示すテンソルデータの形状、および、前記記述子が示すテンソルデータの内容の中の少なくとも一つに基づいて、前記記述子の内容を確定し、前記記述子と前記第２の記憶領域との間の対応関係を構築し、
前記記述子の内容を前記第１の記憶領域に記憶する。
【０３３１】
Ａ１６、請求項Ａ１４またはＡ１５に記載の装置であって、前記記述子が示すテンソルデータの内容は、即時値、および、レジスタ中のデータの中の少なくとも一つを含む。
Ａ１７、請求項Ａ１３に記載の装置であって、前記記述子管理命令は、第１の記述子取り消し命令を含み、前記管理パラメータは、記述子の識別子を含み、
ここで、前記命令実行モジュールは、
【０３３２】
前記処理命令が第１の記述子取り消し命令である場合、前記記述子の識別子に基づいて前記識別子に対応する記述子を取り消しするための第１の取り消しサブモジュールを備える。
Ａ１８、請求項Ａ１７に記載の装置であって、第１の取り消しサブモジュールは、さらに、
【０３３３】
前記記述子の記述子記憶空間における記憶領域、および、前記記述子が示すテンソルデータの内容のデータ記憶空間における記憶領域をそれぞれ解放することと、をさらに含む。
Ａ１９、請求項Ａ１３に記載の装置であって、前記記述子管理命令は、第２の記述子取り消し命令を含み、前記管理パラメータは、記述子の識別子を含み、
ここで、前記命令実行モジュールは、
【０３３４】
前記処理命令が第２の記述子取り消し命令である場合、前記記述子の識別子に基づいて、記述子記憶空間に記憶した前記記述子の内容を指定記憶空間に記憶するための記憶空間確定サブモジュールと、
前記識別子に対応する記述子を取り消しするための第２の取り消しサブモジュールと、を備える。
【０３３５】
Ａ２０、請求項Ａ１３に記載の装置であって、前記記述子管理命令は、記述子変更命令を含み、前記管理パラメータは、前記記述子の識別子、変更待ちの記述子の内容、および、記述子が示すテンソルデータの内容の中の少なくとも一つを含み、
ここで、前記命令実行モジュールは、
【０３３６】
前記処理命令が記述子変更命令である場合、前記記述子の管理パラメータに基づいて、前記記述子の更新待ち内容を確定するための更新内容確定サブモジュールと、
【０３３７】
更新待ち内容に基づいて、前記記述子の識別子、記述子記憶空間における前記記述子の内容、および、データ記憶空間におけるテンソルデータの内容の中の少なくとも一つを更新するための変更サブモジュールと、を備える。
【０３３８】
Ａ２１、請求項Ａ１３乃至Ａ２０の中のいずれか１項に記載の装置であって、前記記述子は、Ｎ次元のテンソルデータの形状を示すために使用され、Ｎは、ゼロ以上の整数であり、
ここで、前記記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータを含む。
【０３３９】
Ａ２２、請求項Ａ２１に記載の装置であって、前記記述子は、さらに、Ｎ次元のテンソルデータのアドレスを示すために使用され、ここで、前記記述子の内容は、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含む。
【０３４０】
Ａ２３、請求項Ａ２２に記載の装置であって、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。
Ａ２４、請求項Ａ２３に記載の方法であって、前記テンソルデータの形状パラメータは、
【０３４１】
前記データ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記テンソルデータの記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。
Ａ２５、人工知能チップであって、前記チップは、請求項Ａ１３乃至Ａ２４の中のいずれか１項に記載のデータ処理装置を備えることを特徴とする。
Ａ２６、電子デバイスであって、前記電子デバイスは、請求項２５に記載の人工知能チップを備えることを特徴とする。
【０３４２】
Ａ２７ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ２５に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用されることを特徴とする。
Ａ２８、請求項Ａ２７に記載のボードカードであって、
【０３４３】
前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、
前記インターフェース装置は、標準ＰＣＩＥインターフェースであることを特徴とする。
【０３４４】
人工知能技術の継続的な発展に伴って、その応用分野はますます広範になり、画像認識、音声認識、自然言語処理などの分野で十分に適用されている。ただし、人工知能アルゴリズムの複雑度の増大に伴って、処理する必要のあるデータ量とデータ次元とがいずれも継続的に増加しており、通常、マルチコア及び／又はマルチチップのデータ処理が必要である。コア間またはチップ間のデータ同期を実行する場合、関連技術を使用する同期方式は同期オーバーヘッドがより大きく、処理効率がより低い。
本発明の実施例によると、データ同期方法が提供される。
【０３４５】
本発明の実施例に係るデータ同期方法は、複数のプロセッサ（マルチコア）を備える処理システム（例えば、人工知能チップ）の任意の一つのプロセッサに適用される。当該プロセッサは、汎用プロセッサ、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ、中央処理装置）であってもよいし、人工知能演算を実行する人工知能プロセッサ（ＩＰＵ）であってもよい。人工知能演算は、機械学習演算、脳に類似な演算などを含んでもよい。ここで、機械学習演算は、ニューラルネットワーク演算、Ｋ-Ｍｅａｎｓ演算、サポートベクトル机演算などを含む。当該人工知能プロセッサは、例えば、ＧＰＵ(Ｇｒａｐｈｉｃｓ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ、図形処理ユニット)、ＮＰＵ（Ｎｅｕｒａｌ-ＮｅｔｗｏｒＫ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ、ニューラルネットワーク処理ユニット）、ＤＳＰ（Ｄｉｇｉｔａｌ Ｓｉｇｎａｌ Ｐｒｏｃｅｓｓ、デジタル信号処理ユニット）、フィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ、ＦＰＧＡ）チップの中の一つまたは組み合わせを含んでもよい。本発明は、プロセッサの具体的なタイプに対して限定しない。なお、処理システム中の複数のプロセッサのタイプは、同一であるかまたは異なってもよく、本発明はこれに対して限定しない。
【０３４６】
可能な一実現形態において、本発明に言及されるプロセッサは、複数の処理ユニットを備えてもよく、各々の処理ユニットは、割り当てられた、例えば畳み込み演算タスク、プーリングタスク、または、全部接続タスクなどの、様々なタスクを独立的に運行できる。本発明は、処理ユニットおよび処理ユニットによって運行されるタスクに対して限定しない。
【０３４７】
図１ｄ１は、本発明の実施例に係るデータ同期方法の処理システムを示す模式図である。図１ｄ１に示されたように、処理システム１００ｄは、複数のプロセッサ１０１およびメモリ１０２を備え、複数のプロセッサ１０１は、命令シーケンスを実行するために使用され、メモリ１０２は、データを記憶するために使用され、ランダムアクセスメモリ（ＲＡＭ、Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）およびレジスタファイルを含んでもよい。処理システム１００ｄ中の複数のプロセッサ１０１は、一部の記憶空間を共有してもよいし、例えば、一部のＲＡＭ記憶空間およびレジスタファイルを共有してもよいし、各々の記憶空間を同時に有してもよい。
【０３４８】
図１ｄ２は、本発明の一実施例に係るデータ同期方法を示すフローチャートである。図１ｄ２に示されたように、当該方法は、第１のプロセッサ（処理システム中の任意の一つのプロセッサ）に適用でき、当該方法は、以下のステップを含む。
【０３４９】
ステップＳ１１ｄにおいて：同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータの同期情報を確定し、
ステップＳ１２ｄにおいて、前記テンソルデータの同期情報に基づいて、同期命令を生成し、
【０３５０】
ステップＳ１３ｄにおいて、前記第２のプロセッサが前記同期命令に基づいて前記同期待ちのテンソルデータを取得するための前記同期命令を、前記第２のプロセッサに送信する。
【０３５１】
例を挙げると、同期待ちのデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよく、ここで、テンソルは、様々な形式のデータ構成方式を含んでもよい。テンソルは、異なる次元のものであってもよく、例えば、スカラーは０次元のテンソル、ベクトルは１次元のテンソル、行列は２次元または２次元以上のテンソルと見なしてもよい。テンソルの形状は、テンソルの次元やテンソルの各次元のサイズなどの情報を含む。
【０３５２】
この場合、記述子（テンソル記述子）を設定してテンソルデータ（Ｎ次元のテンソルデータ）の形状を示すことができる。ここで、Ｎの値は、テンソルデータの次元数（回数）に基づいて確定してもよいし、テンソルデータの使用の必要性に基づいて設定してもよい。例えば、Ｎの値が３である場合、テンソルデータは３次元のテンソルデータであり、記述子は、当該３次元のテンソルデータの、三つの次元方向における形状（例えば、オフセット量、サイズなど）を示すために使用できる。当業者は、実際の必要によってＮの値を設定でき、本発明はこれに対して限定しないことを理解すべきである。
【０３５３】
可能な一実現形態において、記述子は、識別子や内容などを含んでもよい。記述子の識別子は、記述子を区別するために使用でき、例えば、記述子の識別子は番号である。記述子の内容は、テンソルデータの形状を示す少なくとも一つの形状パラメータ（例えば、テンソルの各次元方向におけるサイズなど）を含んでもよく、さらに、テンソルデータのアドレスを表す少なくとも一つのアドレスパラメータ（例えば、データ基準点の基準アドレス）を含んでもよい。本発明は、記述子の内容に含まれる具体的なパラメータに対して限定しない。
【０３５４】
記述子を使用してテンソルデータを示す方式によって、テンソルデータの形状を表現でき、さらに、複数のテンソルデータ間の相互関係などの関連情報も確定できるので、テンソルデータに対するアクセス効率を向上させることで、データ同期の際の複雑度を低下させる。
【０３５５】
可能な一実現形態において、データ処理過程で、複数のプロセッサ（例えば、人工知能チップの複数のコア）間のデータ同期を実行する必要がある可能があり、例えば、プロセッサＡ１の演算結果をもう一つの演算の入力データとしてプロセッサＡ２に同期させる。この場合、記述子に基づくデータ同期メカニズムを使用してデータ同期を実現できる。
【０３５６】
可能な一実現形態において、第１のプロセッサはデータ同期の送信側であり、第２のプロセッサはデータ同期の受信側である。同期待ちのテンソルデータが存在する場合、第１のプロセッサは、ステップＳ１１ｄにおいて、当該テンソルデータの記述子に基づいて、テンソルデータの同期情報（例えば、テンソルデータの識別子、形状、ソース、記憶アドレスなどの情報）を確定し、ステップＳ１２ｄにおいて、同期情報に基づいて同期命令を生成し、ステップＳ１３ｄにおいて、同期待ちの第２のプロセッサに当該同期命令を送信する。ここで、第２のプロセッサは、汎用プロセッサ（例えば、中央処理装置ＣＰＵ、グラフィック処理ユニットＧＰＵ）と、専用プロセッサ（例えば、人工知能プロセッサ、科学計算プロセッサ、または、デジタル信号プロセッサなど）を含んでもよい。第２のプロセッサは、第１のプロセッサのタイプと同一であるかまたは異なってもよく、本発明は第２のプロセッサに対するタイプに対して限定しない。
【０３５７】
可能な一実現形態において、第１のプロセッサは、第２のプロセッサに対するデータ同期を能動的に開始させることができ、例えば、第１のプロセッサが一つの演算を完成して演算結果（テンソルデータ）を得た場合、当該演算結果を使用する必要がある第２のプロセッサに対するデータ同期を能動的に開始させる。もう一つの例において、第１のプロセッサは、第２のプロセッサの同期要求に応答して、第２のプロセッサに対するデータ同期を開始させてもよく、例えば、第２のプロセッサの同期要求命令を受信した場合、第２のプロセッサに対するデータ同期を開始させてもよい。本発明は、データ同期の開始タイミングに対して限定しない。
【０３５８】
可能な一実現形態において、第１のプロセッサは、同期待ちのテンソルデータが存在すると確定した場合、当該テンソルデータの記述子を取得できる。当該記述子は、既に登録（作成）された当該テンソルデータの形状を示すための記述子であってもよいし、当該テンソルデータの形状パラメータに基づいて新たな記述子を登録（作成）してもよく、本発明はこれに対して限定しない。
【０３５９】
可能な一実現形態において、当該テンソルデータの記述子に基づいて、当該テンソルデータの同期情報を確定できる。当該同期情報は、テンソルデータの識別子（例えば、データ番号）、形状、ソース、記憶アドレスなどの情報の中の少なくとも一つを含んでもよい。当該テンソルデータの同期情報に基づいて、同期命令を生成できる。第２のプロセッサが当該テンソルデータの識別子に基づいてテンソルデータの同期を実現するように、第２のプロセッサ中に当該テンソルデータの情報（例えば、当該同期待ちのテンソルデータを示す記述子が既に登録されている）を既に有すると、同期命令は、例えば、テンソルデータの識別子のような、一部の同期情報のみを含んでもよい。第２のプロセッサが対応する情報に基づいてテンソルデータの同期を実現するように、第２のプロセッサ中に当該テンソルデータの情報を有さないと、同期命令は、例えば、テンソルデータの識別子および記憶アドレスなどの、さらに多くの同期情報を含んでもよい。本発明は、同期命令が含む具体的な内容に対して限定しない。
【０３６０】
可能な一実現形態において、同期命令を生成した後、第２のプロセッサが前記同期命令に基づいて前記同期待ちのテンソルデータを取得するように、第２のプロセッサに当該同期命令を送信することができる。同期命令がテンソルデータの識別子を含むと、第２のプロセッサは、当該識別子に基づいて同期待ちのテンソルデータを確定し、且つ、当該同期待ちのテンソルデータを示す記述子を登録するかまたは取得し、さらに記述子の内容に基づいて記述子が示すテンソルデータを取得することによって、テンソルデータの同期を実現できる。同期命令がより多くの同期情報（識別子および記憶アドレスなど）を含むと、第２のプロセッサは、命令中の同期情報に基づいて当該同期待ちのテンソルデータを示す記述子を登録し、且つ、記述子の内容に基づいて記述子が示すテンソルデータを直接取得することによって、テンソルデータの同期を実現できる。
【０３６１】
本発明の実施例に係るデータ同期方法によると、第２のプロセッサが同期命令に基づいて同期待ちのテンソルデータを取得するように、テンソルデータの形状を示す記述子を設定し、記述子に基づいてテンソルデータの同期情報を確定し、同期情報に基づいて同期命令を生成して同期命令を第２のプロセッサに送信することによって、同期命令の構成を変更せずに、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
【０３６２】
可能な一実現形態において、同期情報は、同期待ちのテンソルデータの記憶アドレスを含んでもよい。前記第２のプロセッサが前記共有記憶空間から前記同期待ちのテンソルデータを取得するように、ステップＳ１２ｄは、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にある場合、前記同期待ちのテンソルデータの記憶アドレスに基づいて、同期命令を生成することを含む。
【０３６３】
例を挙げると、複数のプロセッサ（複数のコア）は、例えば、第１のプロセッサと第２のプロセッサがいずれもアクセスできるオフチップメモリなどの、共有記憶空間を有することができる。当該共有記憶空間は、複数のコア（複数のプロセッサ）がいずれもデータをアクセスできるの記憶空間であってもよいし、一部のコア（一部のプロセッサ）がデータをアクセスできる記憶空間であってもよい。コア間の共有記憶空間を予め設定でき、本発明は、共有記憶空間の設定方式に対して限定しない。
【０３６４】
可能な一実現形態において、同期待ちのテンソルデータの記述子の内容に基づいて、当該テンソルデータの記憶アドレスを確定できる。同期待ちのテンソルデータの記憶アドレスが共有記憶空間に位置すると、第２のプロセッサも共有記憶空間からデータをアクセスできるので、第２のプロセッサは、テンソルデータの記憶アドレスに基づいてテンソルデータを直接読み取って同期を実現できる。この場合、同期命令は、同期待ちのテンソルデータの記憶アドレスを含んでもよく、すなわち、同期待ちのテンソルデータの記憶アドレスに基づいて、同期命令を生成できる。第２のプロセッサは、同期命令を受信した後、命令を解析してテンソルデータの記憶アドレスを得、テンソルデータの記憶アドレスに基づいて、第２のプロセッサは同期待ちのテンソルデータの記述子を登録（作成）することで、記述子の内容が当該テンソルデータのデータアドレスに対応されるようにし、且つ、共有記憶空間から前記同期待ちのテンソルデータを取得することにより、同期過程全体を実現できる。
このような方式によって、不要なデータ伝送を回避し、テンソルデータアクセス回数を削減できて、同期の処理効率を向上させた。
【０３６５】
可能な一実現形態において、同期情報は、同期待ちのテンソルデータの記憶アドレスを含む。ステップＳ１２ｄは、同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶することと、前記第２のプロセッサが前記共有記憶空間から前記同期待ちのテンソルデータを取得するように、前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、同期命令を生成することと、を含んでもよい。
【０３６６】
例を挙げると、第１のプロセッサは、非共有記憶空間を有してもよく、第１のプロセッサは当該非共有記憶空間中のデータをアクセスでき、第２のプロセッサは、第１のプロセッサの非共有記憶空間をアクセスできなく、当該非共有記憶空間中のデータをアクセスできない。同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にあると、第２のプロセッサは当該テンソルデータを直接取得できない。この場合、第２のプロセッサが当該テンソルデータをアクセスできるように、第１のプロセッサは、同期待ちのテンソルデータを共有記憶空間に転送記憶することができる。転送記憶を完成した後、第１のプロセッサに、当該同期待ちのテンソルデータを示す記述子が登録されていないか、または、非共有記憶空間中の当該テンソルデータを示す記述子が既に登録されており且つ当該記述子が変更不可である（例えば、操作されている）と、第１のプロセッサは前記同期待ちのテンソルデータの記述子を生成でき、すなわち、新たな記述子を登録することによって、共有記憶空間中の当該テンソルデータを示すことができる。
【０３６７】
可能な一実現形態において、第１のプロセッサは、同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて同期命令を生成できる。第２のプロセッサは、同期命令を受信した後、命令を解析して同期待ちのテンソルデータの記憶アドレスを得、テンソルデータの記憶アドレスに基づいて、第２のプロセッサは同期待ちのテンソルデータの記述子を登録（作成）することで、記述子の内容が当該テンソルデータのデータアドレスに対応されるようにし、共有記憶空間から前記同期待ちのテンソルデータを取得することにより、同期過程全体を実現できる。
【０３６８】
このような方式によって、第２のプロセッサが同期待ちのテンソルデータを取得できるように、非共有記憶空間中の同期待ちのテンソルデータを能動的に共有記憶空間に転送記憶することによって、同期の際のプロセッサ間のデータ伝送を削減して、同期の処理効率を向上させることができる。
【０３６９】
可能な一実現形態において、前記方法は、第２のプロセッサからの同期要求命令に基づいて、前記同期待ちのテンソルデータの記述子を確定することをさらに含む。
【０３７０】
例を挙げると、第１のプロセッサは、第２のプロセッサの同期要求に応答して、第２のプロセッサに対するデータ同期を開始させてもよい。ここで、第２のプロセッサからの同期要求命令は、同期待ちのテンソルデータの情報を含んでもよく、例えば、当該同期待ちのテンソルデータのデータ特徴を含んでもよい。ここで、テンソルデータのデータ特徴は、テンソルデータの識別子、形状、ソース、アドレスなどの情報を含んでもよく、本発明は、同期要求命令の具体的な内容に対して限定しない。同期要求命令中の情報に基づいて、第１のプロセッサは、同期待ちのテンソルデータの記述子を確定し、記述子に基づいてテンソルデータの同期情報を確定し、さらに同期命令を生成できる。
【０３７１】
このような方式によって、同期命令を生成するように、第２のプロセッサの同期要求に従って同期待ちのテンソルデータの記述子を確定できることによって、不要なデータ同期を回避して、データ同期の効率を向上させた。
【０３７２】
可能な一実現形態において、前記同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、前記第２のプロセッサからの同期要求命令に基づいて、前記同期待ちのテンソルデータの記述子を確定するステップは、
前記同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴を得ることと、
同期待ちのテンソルデータのデータ特徴に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含んでもよい。
【０３７３】
例を挙げると、第１のプロセッサと第２のプロセッサとがいずれも同期待ちのテンソルデータの情報（データ特徴）を有し、且つ、情報が同一であるかまたは対応関係を有すると、同期要求命令は、例えば、テンソルデータの識別子のような、データ特徴を含むことができる。第１のプロセッサは、第２のプロセッサからの同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴を得ることができる。
【０３７４】
可能な一実現形態において、同期待ちのテンソルデータのデータ特徴は、テンソルデータの識別子、形状、ソース、アドレスなどの情報を含んでもよい。例えば、当該テンソルデータのデータソースはＫ番目の送信側（Ｋ番目のプロセッサ）であり、当該テンソルデータのデータソースは番号２００の畳み込み操作の演算結果であり、当該テンソルデータのアドレスは特定のアドレス領域（例えば、アドレスＡＤＤＲ０〜ＡＤＤＲ１２７）であり、当該テンソルデータの形状は指定された形状（例えば、２０＊１０の２次元テンソル）である。当業者は、実際の状況に従って同期待ちのテンソルデータのデータ特徴を設定でき、本発明はこれに対して限定しない。
【０３７５】
可能な一実現形態において、第１のプロセッサは、当該データ特徴に基づいて、同期待ちのテンソルデータを検索して、当該同期待ちのテンソルデータの記述子を確定でき、例えば、対応する記述子を直接取得するかまたは新たに登録する。第２のプロセッサが当該テンソルデータの同期を実現するように、当該同期待ちのテンソルデータの記述子に基づいて、当該テンソルデータの同期情報を確定することによって、同期命令を生成して送信することができる。
【０３７６】
このような方式によって、テンソルデータの同期を実現するように、要求命令中のデータ特徴に基づいて同期待ちのテンソルデータの記述子を確定できることによって、同期の際にテンソルデータ自身を伝送する必要がなく、伝送するデータ量および同期オーバーヘッドを軽減して、処理効率を向上させた。
【０３７７】
図３ｂ１は、本発明の実施例に係るデータ同期方法を示すフローチャートである。当該データ同期方法は、第２のプロセッサに適用できる。図３ｂ１に示されたように、当該データ同期方法は、以下のステップを含む。
ステップＳ２１ｂにおいて、第１のプロセッサからの同期命令を解析して、同期待ちのテンソルデータの同期情報を得、
【０３７８】
ステップＳ２２ｂにおいて、前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定し、
ステップＳ２３ｂにおいて、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得する。
【０３７９】
例を挙げると、第１のプロセッサ（送信側）は、第２のプロセッサ（受信側）に対するデータ同期を能動的に開始させることができ、例えば、第１のプロセッサが一つの演算を完成して演算結果（テンソルデータ）を得た場合、当該演算結果を使用する必要がある第２のプロセッサに対するデータ同期を能動的に開始させる。
【０３８０】
可能な一実現形態において、第２のプロセッサは、第１のプロセッサからの同期命令を受信した場合、当該同期命令を解析して、同期待ちのテンソルデータの同期情報を（例えば、テンソルデータの識別子、形状、記憶アドレスなど）を得ることができる。
【０３８１】
可能な一実現形態において、当該同期命令がテンソルデータの識別子のみを含むと、第２のプロセッサは、当該テンソルデータの識別子に対応するテンソルデータ及び／又はテンソルデータに対応する記述子を内部検索し、さらに記述子内容に基づいて同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
【０３８２】
可能な一実現形態において、当該同期命令がテンソルデータの形状および記憶アドレスを含むと、第２のプロセッサは、テンソルデータの形状および記憶アドレスに基づいて、当該同期待ちのテンソルデータを示す記述子を登録し、記述子の内容に基づいて同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
【０３８３】
本発明の実施例に係るデータ同期方法によると、テンソルデータの形状を示す記述子を設定することによって、同期命令中の同期待ちのテンソルデータの同期情報に基づいて、当該テンソルデータの記述子を確定し、さらに当該テンソルデータを取得して、テンソルデータの同期を実現できて、同期オーバーヘッドを軽減し、データ同期の複雑度を低下させて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記同期情報は、前記同期待ちのテンソルデータの記憶アドレスを含み、
【０３８４】
ステップＳ２２ｂは、前記同期待ちのテンソルデータの記憶アドレスに基づいて、前記同期待ちのテンソルデータの記述子の識別子及び／又は前記記述子の内容を確定することを含み、
ステップＳ２３ｂは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することを含む。
【０３８５】
例を挙げると、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にあると、第２のプロセッサは共有記憶空間からデータをアクセスできる。この場合、同期命令は、同期待ちのテンソルデータの記憶アドレスを含んでもよい。第２のプロセッサは、同期命令を受信した後、命令を解析して同期待ちのテンソルデータの記憶アドレスを得、当該テンソルデータの記憶アドレスに基づいて、当該テンソルデータに対応する記述子を作成または変更できる。当該記述子の内容に基づいて、第２のプロセッサは、共有記憶空間から同期待ちのテンソルデータを取得することによって、同期過程全体を実現できる。
【０３８６】
このような方式によって、不要なデータ伝送を回避し、テンソルデータアクセス回数を削減できて、同期の処理効率を向上させ、命令伝送および処理過程での命令互換性を実現できる。
【０３８７】
図３ｂ２は、本発明の実施例に係るデータ同期方法を示すフローチャートである。当該データ同期方法は、第２のプロセッサに適用できる。図３ｂ２に示されたように、当該データ同期方法は、以下のステップを含む。
【０３８８】
ステップＳ３１ｂにおいて、同期待ちのテンソルデータが存在する場合、第１のプロセッサが前記同期要求命令に基づいて、同期待ちのテンソルデータの、同期待ちのテンソルデータの形状を示すための記述子を、確定するように、同期要求命令を生成し、
ステップＳ３２ｂにおいて、前記同期要求命令を前記第１のプロセッサに送信する。
【０３８９】
例を挙げると、第２のプロセッサに同期待ちのテンソルデータが存在する場合、当該同期待ちのテンソルデータを取得するように、第１のプロセッサに同期要求命令を能動的に送信できる。第２のプロセッサは、例えば、当該同期待ちのテンソルデータのデータ特徴のような、同期待ちのテンソルデータの情報に基づいて、同期要求命令を生成できる。本発明は、同期要求命令の具体的な内容に対して限定しない。同期要求命令中の情報に基づいて、第１のプロセッサは、同期待ちのテンソルデータの記述子を確定し、さらに同期命令を生成できる。
このような方式によって、同期する必要があるときに同期要求を能動的に開始させて、データ同期の効率を向上させることができる。
【０３９０】
可能な一実現形態において、第１のプロセッサが同期待ちのテンソルデータを確定できるように、前記同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含む。ここで、テンソルデータのデータ特徴は、テンソルデータの識別子、形状、ソース、アドレスなどの情報を含んでもよい。当業者は、実際の状況に従って同期待ちのテンソルデータのデータ特徴を設定でき、本発明はこれに対して限定しない。
可能な一実現形態において、前記方法は、
第１のプロセッサからの同期命令を解析して、同期待ちのテンソルデータの同期情報を得ることと、
前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することと、をさらに含む。
【０３９１】
例を挙げると、第２のプロセッサは、第１のプロセッサからの同期命令を受信した場合、当該同期命令を解析して、同期待ちのテンソルデータの同期情報を（例えば、テンソルデータの識別子、形状、記憶アドレスなど）を得ることができる。
【０３９２】
可能な一実現形態において、当該同期命令がテンソルデータの識別子のみを含むと、第２のプロセッサは、当該テンソルデータの識別子に対応するテンソルデータ及び／又はテンソルデータに対応する記述子を内部検索し、さらに記述子内容に基づいて同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
【０３９３】
可能な一実現形態において、当該同期命令がテンソルデータの形状および記憶アドレスなどを含むと、第２のプロセッサは、テンソルデータの形状および記憶アドレスに基づいて、当該同期待ちのテンソルデータを示す記述子を作成して、記述子の内容に基づいて同期待ちのテンソルデータを取得することによって、テンソルデータの同期を実現できる。
このような方式によって、データ同期の複雑度を低下させて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記同期情報は、前記同期待ちのテンソルデータの記憶アドレスを含み、
【０３９４】
前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの記述子を確定するステップは、前記同期待ちのテンソルデータの記憶アドレスに基づいて、前記同期待ちのテンソルデータの記述子の識別子及び／又は前記記述子の内容を確定することを含み、
【０３９５】
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するステップは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することを含む。
【０３９６】
例を挙げると、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にあると、第２のプロセッサは共有記憶空間からデータをアクセスできる。この場合、同期命令は、同期待ちのテンソルデータの記憶アドレスを含んでもよい。第２のプロセッサは、同期命令を受信した後、命令を解析して同期待ちのテンソルデータの記憶アドレスを得、当該テンソルデータの記憶アドレスに基づいて、当該テンソルデータに対応する記述子を作成または変更できる。当該記述子の内容に基づいて、第２のプロセッサは、共有記憶空間から同期待ちのテンソルデータを取得することによって、同期過程全体を実現できる。
【０３９７】
このような方式によって、不要なデータ伝送を回避し、テンソルデータアクセス回数を削減できて、同期の処理効率を向上させ、命令伝送および処理過程での命令互換性を実現できる。
【０３９８】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、プロセッサの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなど）中の記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、プロセッサの内部メモリ（例えば、オンチップキャッシュ）、または、プロセッサと接続された外部メモリ（オフチップメモリ）中の記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【０３９９】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同一の領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスがＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１が記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３が記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３が記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０４００】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタ中に記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０４０１】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子中のデータは、即時値にすることも、専用レジスタ中から取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタ中の記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０４０２】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０４０３】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、プロセッサは記述子の内容に基づいてテンソルデータのデータアドレスを確定できる。
【０４０４】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０４０５】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０４０６】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスはデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間中の１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスは当該データブロックのデータ記憶空間における物理アドレスである。
【０４０７】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記テンソルデータのデータ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータ中の点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータは３次元空間における点または領域の位置にマッピングすることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０４０８】
説明する必要があるのは、前述の各方法の実施例について、簡単に説明するために、それらをいずれも一連の動作の組み合わせとして表現したが、当業者は、本発明が説明された動作の順序に限定されないし、なぜなら、本発明によるといくつかのステップを他の順序で実行するかまたは同時に実行できるからことを了解すべきである。次に、当業者は、明細書に説明された実施例は、いずれもオプションとする実施例に属し、関わる動作およびモジュールは必ずとして本発明にとって必須なものではないことも理解すべきである。
【０４０９】
さらに説明する必要があるのは、フローチャートでの各ステップは矢印に従って順に示したが、これらのステップは必ずとして矢印が示す順序に従って順に実行する必要がない。本明細書に明確な説明がない限り、これらのステップの実行に対して厳密の順序を限定しなく、これらのステップを他の順序に従って実行してもよい。さらに、フローチャートでの少なくとも一部ステップは、複数のサブステップまたは複数の段階を含んでもよく、これらのサブステップまたは段階は、必ずとして一つのタイミングで実行を完成させる必要がなく、異なるタイミングで実行させてもよいし、これらのサブステップまたは段階の実行順序も必ずとして順に実行させる必要がなく、他のステップまたは他のステップのサブステップまたは段階の少なくとも一部と交互または交替に実行させることができる。
【０４１０】
図３ｂ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第１のプロセッサに適用され、図３ｂ３に示されたように、当該データ同期装置は、
【０４１１】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータの同期情報を確定するための第１の情報確定モジュール５１ｂと、
前記テンソルデータの同期情報に基づいて、同期命令を生成するための第１の命令生成モジュール５２ｂと、
【０４１２】
第２のプロセッサを指示して前記第２のプロセッサが前記同期命令に基づいて前記同期待ちのテンソルデータを取得するように、前記同期命令を、前記第２のプロセッサに送信するための第１の命令送信モジュール５３ｂと、を備える。
【０４１３】
可能な一実現形態において、前記同期情報は、同期待ちのテンソルデータの記憶アドレスを含む。前記第１の命令生成モジュールは、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にある場合、前記第２のプロセッサを指示して前記第２のプロセッサが前記共有記憶空間から前記同期待ちのテンソルデータを取得するように、前記同期待ちのテンソルデータの記憶アドレスに基づいて、同期命令を生成するための第１の生成サブモジュールを備える。
【０４１４】
可能な一実現形態において、前記同期情報は、同期待ちのテンソルデータの記憶アドレスを含み、前記第１の命令生成モジュールは、同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶するための転送記憶サブモジュールと、前記第２のプロセッサを指示して前記第２のプロセッサが前記共有記憶空間から前記同期待ちのテンソルデータを取得するように、前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、同期命令を生成するための第２の生成サブモジュールと、を備える。
【０４１５】
可能な一実現形態において、前記装置は、第２のプロセッサからの同期要求命令に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第１の記述子確定モジュールをさらに備える。
【０４１６】
可能な一実現形態において、前記同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、前記第１の記述子確定モジュールは、前記同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴を得るための命令解析サブモジュールと、同期待ちのテンソルデータのデータ特徴に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第１の記述子確定サブモジュールと、を備える。
【０４１７】
図３ｂ４は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第２のプロセッサに適用され、図３ｂ４に示されたように、当該データ同期装置は、
第１のプロセッサからの同期命令を解析して、同期待ちのテンソルデータの同期情報を得るための第２の情報確定モジュール６１ｂと、
【０４１８】
前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定するための第２の記述子確定モジュール６２ｂと、
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するための第１のデータ取得モジュール６３ｂと、を備える。
【０４１９】
可能な一実現形態において、前記同期情報は、前記同期待ちのテンソルデータの記憶アドレスを含み、前記第２の記述子確定モジュールは、前記同期待ちのテンソルデータの記憶アドレスに基づいて、前記同期待ちのテンソルデータの記述子の識別子及び／又は前記記述子の内容を確定するための第１の確定サブモジュールを備え、
【０４２０】
前記第１のデータ取得モジュールは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第１のデータ取得サブモジュールを備える。
【０４２１】
図３ｂ５は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第２のプロセッサに適用され、図３ｂ５に示されたように、当該データ同期装置は、
【０４２２】
同期待ちのテンソルデータが存在する場合、第１のプロセッサを指示して、前記第１のプロセッサが前記同期要求命令に基づいて、同期待ちのテンソルデータの前記同期待ちのテンソルデータの形状を示すための記述子を、確定するように、同期要求命令を生成するための第２の命令生成モジュール７１ｂと、
前記同期要求命令を前記第１のプロセッサに送信するための第２の命令送信モジュール７２ｂと、を備える。
可能な一実現形態において、前記同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含む。
【０４２３】
可能な一実現形態において、前記装置は、第１のプロセッサからの同期命令を解析して、同期待ちのテンソルデータの同期情報を得るための第３の情報確定モジュールと、前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第３の記述子確定モジュールと、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するための第２のデータ取得モジュールと、をさらに備える。
【０４２４】
可能な一実現形態において、前記同期情報は、前記同期待ちのテンソルデータの記憶アドレスを含み、前記第３の記述子確定モジュールは、前記同期待ちのテンソルデータの記憶アドレスに基づいて、前記同期待ちのテンソルデータの記述子の識別子及び／又は前記記述子の内容を確定するための第２の確定サブモジュールを備え、
【０４２５】
前記第２のデータ取得モジュールは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第２のデータ取得サブモジュールと、を備える。
【０４２６】
上記の装置の実施例は、ただ模式的なもののであり、本発明の装置はさらに他の方式によって実現されてもよいことを理解すべきである。例えば、上記の実施例中の前記ユニット/モジュールの区分けは、ただ論理機能に基づく区分けだけであり、実際に実現するときに他の区分け方式があってもよい。例えば、複数のユニット、モジュール、または、コンポーネントを、組み合わせたり、もう一つのシステムに統合したり、いくつかの特徴を省略するか実行しないことができる。
【０４２７】
また、特に説明しない限り、本発明の各実施例中の各機能ユニット/モジュールを一つのユニット/モジュールに統合してもよいし、各ユニット/モジュールが単独に物理的に存在してもよいし、二つまたは二つの以上ユニット/モジュールを一つに統合してもよい。上記の統合のユニット/モジュールを、ハードウェアの形式で実現してもよいし、ソフトウェアプログラムモジュールの形式で実現してもよい。
【０４２８】
前記統合されたユニット/モジュールをハードウェアの形式で実現する場合、当該ハードウェアは、デジタル回路、アナログ回路などであってもよい。ハードウェア構造の物理的な実現は、トランジスタ、メモリスタなどを含むが、これらに限定されない。特に説明しない限り、前記人工知能プロセッサは、例えば、ＣＰＵ、ＧＰＵ、ＦＰＧＡ、ＤＳＰ、ＡＳＩＣなどの、いかなる適当なハードウェアプロセッサであってもよい。特に説明しない限り、前記記憶ユニットは、例えば、抵抗性ランダムアクセスメモリ（ＲＲＡＭ、Ｒｅｓｉｓｔｉvｅ ＲａｎｄｏＭ Ａｃｃｅｓｓ ＭｅＭｏｒｙ）、動的ランダムアクセスメモリ（ＤＲＡＭ、ＤｙｎａＭｉｃ ＲａｎｄｏＭ Ａｃｃｅｓｓ ＭｅＭｏｒｙ）、静的ランダムアクセスメモリ（ＳＲＡＭ、Ｓｔａｔｉｃ ＲａｎｄｏＭ乃至Ａｃｃｅｓｓ ＭｅＭｏｒｙ）、拡張動的ランダムアクセスメモリ（ＥＤＲＡＭ、Ｅｎｈａｎｃｅｄ ＤｙｎａＭｉｃ ＲａｎｄｏＭ Ａｃｃｅｓｓ ＭｅＭｏｒｙ）、高帯域幅メモリ（ＨＢＭ、Ｈｉｇｈ-Ｂａｎｄｗｉｄｔｈ ＭｅＭｏｒｙ）、ハイブリッドストレージキューブ（ＨＭＣ、Ｈｙｂｒｉｄ ＭｅＭｏｒｙ Ｃｕｂｅ）などの、いかなる適当な磁気記憶媒体または光磁気記憶媒体であってもよい。
【０４２９】
前記統合のユニット/モジュールがソフトウェアプログラムモジュールの形式で実現され、また独立した製品として販売または使用される場合、一つのコンピュータ読み取り可能なメモリに記憶できる。このような理解に基づいて、本発明の技術案は、本質的に、または、先行技術に寄与する一部または当該技術案の全部または一部は、ソフトウェア製品の形式で具体化されることができる。当該コンピュータソフトウェア製品は、一つのメモリに記憶され、一つのコンピュータデバイス（パーソナルコンピュータ、サーバ、または、ネットワークデバイスなどであってもよい）に本発明の各実施例に記載の方法の全部または一部のステップを実行させるためのいくつかの命令を含む前述のメモリは、Ｕディスク、読み取り専用メモリ（ＲＯＭ、Ｒｅａｄ-Ｏｎｌｙ ＭｅＭｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ、ＲａｎｄｏＭ Ａｃｃｅｓｓ ＭｅＭｏｒｙ）、モバイルハードディスク、磁気ディスクまたは光ディスクなどの、プログラムコードを記憶できる様々な媒体を含む。
可能な一実現形態において、人工知能チップをさらに開示し、前記人工知能チップは上記のデータ同期装置を備える。
【０４３０】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０４３１】
上記の実施例において、各実施例に対する説明にはそれぞれ焦点が当てられているが、特定の実施例で詳細に説明されていない部分については、他の実施例の関連した説明を参照することができる。上記の実施例の各技術的特徴は、任意の組み合わせることができ、説明を簡潔にするため、上記の実施例中の各技術的特徴のすべての可能の組み合わせに対して説明されていない。ただし、これらの技術的特徴の組み合わせに矛盾がない限り、すべて本明細書に記載の範囲と見なされるべきである。
前述の内容は、次の条項に従ってよりよく理解できる。
条項Ａ１、データ同期方法であって、前記方法は、第１のプロセッサに適用され、前記方法は、
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータの同期情報を確定することと、
前記テンソルデータの同期情報に基づいて、同期命令を生成することと、
【０４３２】
第２のプロセッサを指示して前記第２のプロセッサが前記同期命令に基づいて前記同期待ちのテンソルデータを取得するように、前記同期命令を、前記第２のプロセッサに送信することと、を含む。
条項Ａ２、条項Ａ１に記載の方法であって、前記同期情報は、同期待ちのテンソルデータの記憶アドレスを含み、
前記テンソルデータの同期情報に基づいて、同期命令を生成することは、
【０４３３】
前記第２のプロセッサを指示して前記第２のプロセッサが前記共有記憶空間から前記同期待ちのテンソルデータを取得するように、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にある場合、前記同期待ちのテンソルデータの記憶アドレスに基づいて、同期命令を生成することを含む。
【０４３４】
条項Ａ３、条項Ａ１または条項Ａ２に記載の方法であって、前記同期情報は、同期待ちのテンソルデータの記憶アドレスを含み、前記テンソルデータの同期情報に基づいて、同期命令を生成することは、
同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶することと、
【０４３５】
前記第２のプロセッサを指示して前記第２のプロセッサが前記共有記憶空間から前記同期待ちのテンソルデータを取得するように、前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、同期命令を生成することと、を含む。
条項Ａ４、条項Ａ１- 条項Ａ３の中のいずれか１項に記載の方法であって、前記方法は、
第２のプロセッサからの同期要求命令に基づいて、前記同期待ちのテンソルデータの記述子を確定することをさらに含む。
【０４３６】
条項Ａ５、条項Ａ４に記載の方法であって、前記同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、前記第２のプロセッサからの同期要求命令に基づいて、前記同期待ちのテンソルデータの記述子を確定することは、前記同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴を得ることと、
同期待ちのテンソルデータのデータ特徴に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含む。
条項Ａ６、データ同期方法であって、前記方法は、第２のプロセッサに適用され、前記方法は、
第１のプロセッサからの同期命令を解析して、同期待ちのテンソルデータの同期情報を得ることと、
【０４３７】
前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定することと、
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することと、を含む。
【０４３８】
条項Ａ７、条項Ａ６に記載の方法であって、前記同期情報は、前記同期待ちのテンソルデータの記憶アドレスを含み、前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの記述子を確定することは、前記同期待ちのテンソルデータの記憶アドレスに基づいて、前記同期待ちのテンソルデータの記述子の識別子及び／又は前記記述子の内容を確定することを含み、
【０４３９】
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することを含む。
条項Ａ８、データ同期方法であって、前記方法は、第２のプロセッサに適用され、前記方法は、
【０４４０】
同期待ちのテンソルデータが存在する場合、第１のプロセッサを指示して前記第１のプロセッサが前記同期要求命令に基づいて、同期待ちのテンソルデータの前記同期待ちのテンソルデータの形状を示すための記述子を、確定するようにするための、同期要求命令を生成し、前記同期要求命令を前記第１のプロセッサに送信することを含む。
条項Ａ９、条項Ａ８に記載の方法であって、前記同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み。
条項Ａ１０、条項Ａ８または条項Ａ９に記載の方法であって、前記方法は、
第１のプロセッサからの同期命令を解析して、同期待ちのテンソルデータの同期情報を得ることと、
前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することと、をさらに含む。
【０４４１】
条項Ａ１１、条項Ａ１０に記載の方法であって、前記同期情報は、前記同期待ちのテンソルデータの記憶アドレスを含み、前記前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの記述子を確定することは、前記同期待ちのテンソルデータの記憶アドレスに基づいて、前記同期待ちのテンソルデータの記述子の識別子及び／又は前記記述子の内容を確定することを含み、
【０４４２】
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得することは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得することを含む。
条項Ａ１２、データ同期装置であって、前記装置は、第１のプロセッサに適用され、前記装置は、
【０４４３】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータの同期情報を確定するための第１の情報確定モジュールと、
前記テンソルデータの同期情報に基づいて、同期命令を生成するための第１の命令生成モジュールはと、
【０４４４】
第２のプロセッサを指示して前記第２のプロセッサが前記同期命令に基づいて前記同期待ちのテンソルデータを取得するようにするための前記同期命令を、前記第２のプロセッサに送信するための第１の命令送信モジュールと、を備える。
【０４４５】
条項Ａ１３、条項Ａ１２に記載の装置であって、前記同期情報は、同期待ちのテンソルデータの記憶アドレスを含み、前記第１の命令生成モジュールは、同期待ちのテンソルデータの記憶アドレスが共有記憶空間にある場合、前記第２のプロセッサを指示して前記第２のプロセッサが前記共有記憶空間から前記同期待ちのテンソルデータを取得するように、前記同期待ちのテンソルデータの記憶アドレスに基づいて、同期命令を生成するための第１の生成サブモジュールを備える。
【０４４６】
条項Ａ１４、条項Ａ１２または条項Ａ１３に記載の装置であって、前記同期情報は、同期待ちのテンソルデータの記憶アドレスを含み、前記第１の命令生成モジュールは、同期待ちのテンソルデータの記憶アドレスが非共有記憶空間にある場合、前記同期待ちのテンソルデータを共有記憶空間に記憶するための転送記憶サブモジュールと、
【０４４７】
前記第２のプロセッサを指示して前記第２のプロセッサが前記共有記憶空間から前記同期待ちのテンソルデータを取得するように、前記同期待ちのテンソルデータの共有記憶空間におけるアドレスに基づいて、同期命令を生成するための第２の生成サブモジュールと、を備える。
【０４４８】
条項Ａ１５、条項Ａ１２乃至条項Ａ１４の中のいずれか１項に記載の装置であって、前記装置は、第２のプロセッサからの同期要求命令に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第１の記述子確定モジュールをさらに備える。
【０４４９】
条項Ａ１６、条項Ａ１５に記載の装置であって、前記同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、前記第１の記述子確定モジュールは、前記同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴を得るための命令解析サブモジュールと、同期待ちのテンソルデータのデータ特徴に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第１の記述子確定サブモジュールと、を備える。
条項Ａ１７、データ同期装置であって、前記装置は、第２のプロセッサに適用され、前記装置は、
第１のプロセッサからの同期命令を解析して、同期待ちのテンソルデータの同期情報を得るための第２の情報確定モジュールと、
【０４５０】
前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定ための第２の記述子確定モジュールと、
前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するための第１のデータ取得モジュールと、を備える。
【０４５１】
条項Ａ１８、条項Ａ１７に記載の装置であって、前記同期情報は、前記同期待ちのテンソルデータの記憶アドレスを含み、前記第２の記述子確定モジュールは、前記同期待ちのテンソルデータの記憶アドレスに基づいて、前記同期待ちのテンソルデータの記述子の識別子及び／又は前記記述子の内容を確定するための第１の確定サブモジュールを備え、
【０４５２】
前記第１のデータ取得モジュールは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第１のデータ取得サブモジュールを備える。
条項Ａ１９、データ同期装置であって、前記装置は、第２のプロセッサに適用され、前記装置は、
【０４５３】
同期待ちのテンソルデータが存在する場合、第１のプロセッサを指示して前記第１のプロセッサが前記同期要求命令に基づいて同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を確定する同期要求命令を生成するための第２の命令生成モジュールと、
前記同期要求命令を前記第１のプロセッサに送信するための第２の命令送信モジュールと、を備える。
条項Ａ２０、条項Ａ１９に記載の装置であって、前記同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含む。
【０４５４】
条項Ａ２１、条項Ａ１９または条項Ａ２０に記載の装置であって、前記装置は、第１のプロセッサからの同期命令を解析して、同期待ちのテンソルデータの同期情報を得るための第３の情報確定モジュールと、前記同期待ちのテンソルデータの同期情報に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第３の記述子確定モジュールと、前記同期待ちのテンソルデータの記述子に基づいて、前記同期待ちのテンソルデータを取得するための第２のデータ取得モジュールと、をさらに備える。
【０４５５】
条項Ａ２２、条項Ａ２１に記載の装置であって、前記同期情報は、前記同期待ちのテンソルデータの記憶アドレスを含み、前記第３の記述子確定モジュールは、前記同期待ちのテンソルデータの記憶アドレスに基づいて、前記同期待ちのテンソルデータの記述子の識別子及び／又は前記記述子の内容を確定するための第２の確定サブモジュールを備え、
【０４５６】
前記第２のデータ取得モジュールは、前記同期待ちのテンソルデータの記述子の内容に基づいて、共有記憶空間から前記同期待ちのテンソルデータを取得するための第２のデータ取得サブモジュールと、を備える。
条項Ａ２３、人工知能チップであって、前記チップは、条項Ａ１２乃至条項Ａ２２の中のいずれか１項に記載のデータ同期装置を備える。
条項Ａ２４、電子デバイスであって、前記電子デバイスは、条項Ａ２３に記載の人工知能チップを備える。
【０４５７】
条項Ａ２５、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、条項Ａ２３に記載の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０４５８】
条項Ａ２６、条項Ａ２５に記載のボードカードであって、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０４５９】
人工知能技術の継続的な発展に伴って、その応用分野はますます広範になり、画像認識、音声認識、自然言語処理などの分野で十分に適用されている。ただし、人工知能アルゴリズムの複雑度の増大に伴って、処理する必要のあるデータ量とデータ次元とがいずれも継続的に増加しており、通常、マルチコア及び／又はマルチチップのデータ処理が必要である。コア間またはチップ間のデータ同期を実行する場合、関連技術を使用する同期方式は同期オーバーヘッドがより大きく、処理効率がより低い。
【０４６０】
本発明の実施例によると、データ同期処理方法が提供される。図１ｅは、本発明の実施例に係るデータ同期方法を示すフローチャートである。図１ｅに示されたように、当該方法は、第１のプロセッサ（処理システム中の任意の一つのプロセッサ）に適用され、当該方法は、以下のステップを含む。
【０４６１】
ステップＳ１１ｅにおいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、第２のプロセッサを指示して前記第２のプロセッサが前記テンソルデータに対する同期可能データ量を確定して同期状態命令を生成するための状態照会命令であって、前記記述子の識別子及び／又は前記記述子の内容を含む状態照会命令を、生成し、
ステップＳ１２ｅにおいて、前記状態照会命令を第２のプロセッサに送信する。
例を挙げると、同期待ちのデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよい。
【０４６２】
データ処理過程で、複数のプロセッサ（例えば、人工知能チップの複数のコア）間のデータ同期を実行する必要があるかもしれなく、例えば、プロセッサＡ１の演算結果をもう一つの演算の入力データとしてプロセッサＡ２に同期させる。この場合、記述子に基づくデータ同期メカニズムを使用してデータ同期を実現できる。
【０４６３】
可能な一実現形態において、各プロセッサの非共有記憶空間での、同期待ちのテンソルデータに割り当てることができる空間が制限されて、テンソルデータの全体的な同期が実現されない。この場合、テンソルデータの一部の同期を実行し、複数回の一部の同期によって全体的なテンソルデータの同期過程を実現できる。
【０４６４】
可能な一実現形態において、複数のプロセッサの中の第１のプロセッサがデータ同期の送信側であり、第２のプロセッサがデータ同期の受信側であると設定できる。第１のプロセッサと第２のプロセッサは、いずれも複数のプロセッサの中の任意のプロセッサであり、第２のプロセッサは、第１のプロセッサのタイプと同一であるかまたは異なってもよく、本発明は、第１のプロセッサと第２のプロセッサのタイプに対して限定しない。
【０４６５】
可能な一実現形態において、データ同期の送信側に同期待ちのテンソルデータがあり、例えば、第１のプロセッサが一つの演算を完成して演算結果（テンソルデータ）を得た場合、テンソルデータの一部の同期を実行するように、送信側により、受信側の状態を照会して、データ同期の受信側の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量を確定できる。複数のプロセッサの中の第１のプロセッサがデータ同期の送信側であり、第２のプロセッサがデータ同期の受信側であると設定できる。第１のプロセッサと第２のプロセッサは、いずれも複数のプロセッサの中の任意のプロセッサであり、第２のプロセッサは、第１のプロセッサのタイプと同一であるかまたは異なってもよく、本発明は、第１のプロセッサと第２のプロセッサのタイプに対して限定しない。
【０４６６】
可能な一実現形態において、第１のプロセッサは、ステップＳ１１において、同期待ちのテンソルデータの記述子に基づいて、状態照会命令を生成する。第２のプロセッサを指示して前記第２のプロセッサが自身の状態（すなわち、テンソルデータに対する同期可能データ量）を確定して返信するように、当該状態照会命令は、同期待ちのテンソルデータの記述子の識別子及び／又は記述子の内容を含んでもよい。
【０４６７】
可能な一実現形態において、第１のプロセッサは、ステップＳ１２ｅにおいて、状態照会命令を第２のプロセッサに送信する。第２のプロセッサは、当該状態照会命令を受信した後、当該命令を解析することによって、記述子の識別子及び／又は記述子の内容を確定できる。記述子の識別子及び／又は記述子の内容に基づいて、第２のプロセッサは、同期待ちのテンソルデータを確定し、さらに当該テンソルデータに割り当てることができる空間を確定して、当該テンソルデータに対する同期可能データ量を確定できる。第１のプロセッサが同期待ちのテンソルデータの記述子および今回同期する同期可能データ量を確定できるように、当該テンソルデータに対する同期可能データ量および記述子に基づいて、第２のプロセッサは、同期状態命令を生成して送信する。
【０４６８】
このような方式によって、送信側と受信側との間の一部のデータ同期を実現するように、データ同期の送信側により受信側の状態を能動的に照会できて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０４６９】
前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定することと、
【０４７０】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、記述子同期命令を生成して前記記述子同期命令を前記第２のプロセッサに送信することと、をさらに含む。
【０４７１】
例を挙げると、第１のプロセッサは、第２のプロセッサからの同期状態命令を受信した場合、当該命令を解析して当該命令の内容（例えば、記述子の識別子、同期可能データ量など）を得る。記述子の識別子に基づいて、同期待ちのテンソルデータの記述子を確定することによって、同期待ちのテンソルデータを確定し、且つ、同期可能データ量に基づいて当該テンソルデータの中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、前記同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０４７２】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータの中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）の中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０４７３】
可能な一実現形態において、同期待ちの一部のデータを指定して取得するように、同期状態命令には、例えば、当該一部のサブデータの記述子内容または記憶アドレス範囲などの、同期待ちのテンソルデータの一部のデータの範囲が含まれてもよい。第１のプロセッサは、当該一部のデータの範囲に基づいて同期待ちの第１のサブデータを直接確定できる。
【０４７４】
可能な一実現形態において、第１のプロセッサは、第１のサブデータに基づいて記述子同期命令を生成して記述子同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータの記述子の識別子および第１のサブデータが含まれてもよい。第２のプロセッサは、記述子同期命令を受信した後、当該命令を解析して同期待ちのテンソルデータの記述子およびテンソルデータの第１のサブデータを確定し、記述子に基づいて同期待ちのテンソルデータを確定し、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０４７５】
このような方式によって、同期状態命令中の記述子に基づいてテンソルデータを確定し、受信側が今回同期するサブデータを取得するように、受信側の同期可能データ量に基づいて今回同期するサブデータを確定し、当該サブデータに基づいて記述子同期命令を生成して送信することにより、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
【０４７６】
可能な一実現形態において、同期状態命令は、記述子の識別子を含む。前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定するステップは、
前記同期状態命令を解析して、前記記述子の識別子および同期可能データ量を得ることと、
前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含んでもよい。
【０４７７】
例を挙げると、同期状態命令中には、記述子の識別子（例えば、識別子がＴＲ１である）および同期可能データ量が含まれてもよい。第１のプロセッサは、同期状態命令を解析して記述子の識別子および同期可能データ量を得、さらに記述子の識別子に基づいて、同期待ちのテンソルデータの記述子を確定できる。
このような方式によって、同期の際に伝送するデータ量を削減して、処理効率を向上させることができる。
【０４７８】
可能な一実現形態において、前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定するステップは、
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期状態命令中の同期可能データ量に基づいて、第１のサブデータを確定することと、を含んでもよい。
【０４７９】
例を挙げると、テンソルデータ中のデータの状態を設定でき、既に同期された一部のデータを同期済みに設定し、同期されていない一部のデータを同期待ちに設定する。この場合、当第１のプロセッサは、第２のプロセッサからの同期状態命令を受信した場合、記述子に基づいて同期待ちのテンソルデータを確定し、テンソルデータ中のデータの状態に基づいて、同期待ち状態にいる第２のサブデータを確定し、第２のサブデータおよび同期状態命令が示す同期可能データ量に基づいて、今回同期する第１のサブデータを確定できる。
【０４８０】
可能な一実現形態において、第２のサブデータのデータ量が同期可能データ量よりも大きいと、第２のサブデータ中から今回同期する第１のサブデータを選択でき、第２のサブデータのデータ量が同期可能データ量以下であると、第２のサブデータを直接第１のサブデータとすることができる。
【０４８１】
このような方式によって、テンソルデータの一部の同期を実現するように、今回同期する一部のデータを確定できて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
【０４８２】
例を挙げると、第１のプロセッサは、テンソルデータの第１のサブデータに基づいて記述子同期命令を生成して送信することで、第２のプロセッサにテンソルデータの第１のサブデータの同期を実現させた後、第１のプロセッサは、テンソルデータ中のデータの状態を変更でき、すなわち、第１のサブデータの状態を同期待ち状態から同期済み状態に変更できる。このように、次回に第２のプロセッサの状態を照会して第２のプロセッサの同期状態命令を受信した場合、同期待ち状態にいる一部のデータ中から次回同期するデータを確定できることによって、データの繰り返し同期を回避して、データ同期の効率を向上させることができる。
【０４８３】
図３ｃ１は、本発明の実施例に係るデータ同期方法を示すフローチャートである。図３ｃ１に示されたように、当該方法は、第２のプロセッサに適用され、当該方法は、以下のステップを含む。
【０４８４】
ステップＳ３１ｃにおいて、第１のプロセッサからの状態照会命令を受信した場合、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定し、
ステップＳ３２ｃにおいて、前記テンソルデータの記述子に基づいて、前記テンソルデータに対する同期可能データ量を確定し、
【０４８５】
ステップＳ３３ｃにおいて、前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記第１のプロセッサを指示して前記第１のプロセッサが前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを確定するための同期状態命令を生成し、
ステップＳ３４ｌにおいて、前記同期状態命令を前記第１のプロセッサに送信する。
【０４８６】
例を挙げると、データ同期の送信側に同期待ちのテンソルデータがある場合、送信側により受信側の状態を照会してもよい。第１のプロセッサ（送信側）は、状態照会命令を生成して送信し、第２のプロセッサは、ステップＳ３１ｃにおいて、当該状態照会命令を受信した場合、当該命令を解析して、同期待ちのテンソルデータの記述子を既に確定した。
【０４８７】
可能な一実現形態において、ステップＳ３２ｃにおいて、第２のプロセッサは、テンソルデータの一部の同期を実行するように、当該記述子に基づいて同期待ちのテンソルデータを確定し、且つ、自身の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量すなわち同期可能データ量を確定できる。
【０４８８】
可能な一実現形態において、ステップＳ３３ｃにおいて、第１のプロセッサを指示して前記第１のプロセッサが同期待ちのテンソルデータの記述子および今回同期する同期可能データ量を確定するように、第２のプロセッサは、確定された同期可能データ量および当該テンソルデータの記述子に基づいて、同期状態命令を生成して第１のプロセッサに送信することすることができる。第１のプロセッサは、今回同期できる一部のデータ（すなわち、第１のサブデータ）を確定した後、記述子同期命令を生成し、且つ、ステップＳ３４ｌにおいて、記述子同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータの記述子の識別子および第１のサブデータが含まれてもよい。
【０４８９】
このような方式によって、送信側により受信側の状態を照会し、受信側は、状態照会命令を受信した後に自身の状態（すなわち、同期可能データ量である）を確定して返信し、対話を通じてテンソルデータの一部の同期を実現して、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０４９０】
前記第１のプロセッサからの記述子同期命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定することと、前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
【０４９１】
例を挙げると、第２のプロセッサは、記述子同期命令を受信した場合、当該命令を解析して同期待ちのテンソルデータの記述子および今回同期する当該テンソルデータの第１のサブデータを確定し、さらに記述子に基づいて同期待ちのテンソルデータを確定し、且つ、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０４９２】
このような方式によって、受信側は、記述子同期命令に基づいて記述子を確定して今回同期するサブデータを取得できて、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
【０４９３】
可能な一実現形態において、データ同期の受信側により、テンソルデータの一部に対する同期要求を開始させることができ、すなわち、受信側が記述子同期要求命令を発し、当該命令中には、同期待ちのテンソルデータを示す記述子、および、当該テンソルデータに対する同期可能データ量、すなわち受信側の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量が含まれてもよい。
【０４９４】
可能な一実現形態において、データ同期方法をさらに提供し、第１のプロセッサに適用され、当該方法は、前記第２のプロセッサからの記述子同期要求命令を受信した場合、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子、および、前記テンソルデータに対する同期可能データ量を確定することと、
【０４９５】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定することと、
【０４９６】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、記述子同期命令を生成して前記記述子同期命令を前記第２のプロセッサに送信することと、をさらに含む。
【０４９７】
可能な一実現形態において、第１のプロセッサは、第２のプロセッサからの記述子同期要求命令を受信した場合、当該命令を解析して当該命令の内容（例えば、同期待ちのテンソルデータの記述子の識別子、同期待ちのテンソルデータのデータ特徴、同期可能データ量など）を得ることによって、同期待ちのテンソルデータの記述子および同期可能データ量を確定できる。
【０４９８】
可能な一実現形態において、第１のプロセッサは、記述子に基づいて同期待ちのテンソルデータを確定し、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、前記同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０４９９】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると、同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０５００】
可能な一実現形態において、第１のプロセッサは、第１のサブデータに基づいて記述子同期命令を生成して前記記述子同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータの記述子の識別子および第１のサブデータが含まれてもよい。第２のプロセッサは、記述子同期命令を受信した後、当該命令を解析して同期待ちのテンソルデータの記述子およびテンソルデータの第１のサブデータを確定し、記述子に基づいて同期待ちのテンソルデータを確定し、且つ、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０５０１】
本発明の実施例に係るデータ同期方法によると、テンソルデータの形状を示す記述子を設定することによって、記述子同期要求命令の中の記述子に基づいてテンソルデータを確定し、受信側が今回同期するサブデータを取得するように、受信側の同期可能データ量に基づいて今回同期するサブデータを確定し、当該サブデータに基づいて記述子同期命令を生成して送信することにより、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
【０５０２】
可能な一実現形態において、記述子同期要求命令は、記述子の識別子を含んでもよく、前記第２のプロセッサからの記述子同期要求命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータに対する同期可能データ量を確定することは、前記記述子同期要求命令を解析して、前記記述子の識別子および同期可能データ量を得ることと、
前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含んむ。
【０５０３】
例を挙げると、第１のプロセッサと第２のプロセッサ中にいずれも当該同期待ちのテンソルデータを示す記述子が既に登録されていると、記述子同期命令は記述子の識別子（例えば、記述子の識別子がＴＲ１である場合、記述子同期命令をＳｅｎｄ ＴＲ１で表す）および同期可能データ量のみを含んでもよい。第１のプロセッサは、記述子同期要求命令を解析して記述子の識別子および同期可能データ量を得、さらに記述子の識別子に基づいて、同期待ちのテンソルデータの記述子を確定できる。
このような方式によって、同期の際に伝送するデータ量を削減して、処理効率を向上させることができる。
【０５０４】
可能な一実現形態において、記述子同期要求命令は、同期待ちのテンソルデータのデータ特徴を含み、前記第２のプロセッサからの記述子同期要求命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータに対する同期可能データ量を確定することは、
前記記述子同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を得ることと、
前記テンソルデータのデータ特徴に基づいて、前記テンソルデータの記述子を確定することと、を含む。
【０５０５】
例を挙げると、第１のプロセッサに当該同期待ちのテンソルデータを示す記述子が登録されていないか、または、記述子の識別子が対応されないと、記述子同期命令は、同期待ちのテンソルデータのデータ特徴を含んでもよい。当該データ特徴は、テンソルデータの識別子、形状、ソース、アドレスなどの情報を含んでもよい。例えば、当該テンソルデータのデータソースはＫ番目の送信側（Ｋ番目のプロセッサ）であり、当該テンソルデータのデータソースは番号２００の畳み込み操作の演算結果であり、当該テンソルデータのアドレスは特定のアドレス領域（例えば、アドレスＡＤＤＲ０〜ＡＤＤＲ１２７）であり、当該テンソルデータの形状は指定された形状（例えば、２０＊１０の２次元テンソル）などである。当業者は、実際の状況に従って同期待ちのテンソルデータのデータ特徴を設定でき、本発明はこれに対して限定しない。
【０５０６】
可能な一実現形態において、第１のプロセッサは、当該データ特徴に基づいて、同期待ちのテンソルデータを検索して、当該同期待ちのテンソルデータの記述子を確定でき、例えば、対応する記述子を直接取得するかまたは新たに登録する。当該同期待ちのテンソルデータの記述子に基づいて、当該テンソルデータを確定し、さらに同期可能データ量に基づいて今回同期するサブデータを確定できる。
【０５０７】
このような方式によって、テンソルデータの一部の同期を実現するように、記述子同期要求命令中のデータ特徴に基づいて同期待ちのテンソルデータの記述子を確定できることによって、同期の際にテンソルデータ自身を伝送する必要がなく、伝送するデータ量および同期オーバーヘッドを軽減して、処理効率を向上させた。
可能な一実現形態において、前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定することは、
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定することと、を含む。
【０５０８】
例を挙げると、テンソルデータ中のデータの状態を設定でき、既に同期された一部のデータを同期済みに設定し、同期されていない一部のデータを同期待ちに設定する。この場合、第１のプロセッサは、第２のプロセッサからの記述子同期要求命令を受信した場合、記述子に基づいて同期待ちのテンソルデータを確定し、テンソルデータ中のデータの状態に基づいて、同期待ち状態にいる第２のサブデータを確定でき、第２のサブデータおよび記述子同期要求命令が示す同期可能データ量に基づいて、今回同期する第１のサブデータを確定できる。
【０５０９】
可能な一実現形態において、第２のサブデータのデータ量が同期可能データ量よりも大きいと、第２のサブデータ中から今回同期する第１のサブデータを選択でき、第２のサブデータのデータ量が同期可能データ量以下であると、第２のサブデータを直接第１のサブデータとすることができる。
【０５１０】
このような方式によって、テンソルデータの一部の同期を実現するように、今回同期する一部のデータを確定できて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
【０５１１】
例を挙げると、第１のプロセッサは、テンソルデータの第１のサブデータに基づいて記述子同期命令を生成して送信することで、第２のプロセッサにテンソルデータの第１のサブデータの同期を実現させた後、第１のプロセッサは、テンソルデータ中のデータの状態を変更でき、すなわち、第１のサブデータの状態を同期待ち状態から同期済み状態に変更できる。このように、次回の第２のプロセッサの同期要求を受信した場合、同期待ち状態にいる一部のデータ中から次回の同期するデータを確定できることによって、データの繰り返し同期を回避して、データ同期の効率を向上させることができる。
【０５１２】
可能な一実現形態において、データ同期方法をさらに提供し、第２のプロセッサに適用され、当該方法は、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子、および、前記テンソルデータに対する同期可能データ量に基づいて、第１のプロセッサを指示して前記第１のプロセッサが前記記述子同期要求命令に従って同期待ちのテンソルデータの記述子、および、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される第１のサブデータを、確定するようにするための記述子同期要求命令を生成することと、前記記述子同期要求命令を前記第１のプロセッサに送信することと、を含む。
【０５１３】
例を挙げると、複数のプロセッサ中の第２のプロセッサがデータ同期の受信側であり、第２のプロセッサによりテンソルデータの一部に対する同期要求を開始すると設定できる。ステップＳ３１ｃにおいて、第２のプロセッサ中に同期待ちのテンソルデータが存在する場合、テンソルデータの記述子、および、第２のプロセッサ自身の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量、すなわち同期可能データ量を確定できる。当該テンソルデータの記述子および同期可能データ量に基づいて、第２のプロセッサは、記述子同期要求命令を生成してステップＳ３２ｌにおいて当該命令を送信できる。当該記述子同期要求命令は、記述子の識別子を含んでもよく、記述子の内容およびテンソルデータのデータ特徴の中の少なくとも一つは、第１のプロセッサを指示して前記第１のプロセッサが当該命令に基づいて同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定するようにするために使用される。
【０５１４】
可能な一実現形態において、第１のプロセッサは、記述子同期要求命令を受信した場合、当該命令を解析して、同期待ちのテンソルデータの記述子および同期可能データ量を確定し、記述子に基づいて同期待ちのテンソルデータを確定し、且つ、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、前記同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０５１５】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０５１６】
可能な一実現形態において、同期待ちの一部のデータを指定して取得するように、記述子同期要求命令中には、例えば、当該一部のサブデータの記述子内容または記憶アドレス範囲などの、同期待ちのテンソルデータの一部のデータの範囲が含まれてもよい。
【０５１７】
このような方式によって、受信側によりテンソルデータの一部の同期要求を開始して、送信側が今回同期するサブデータを確定することができて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０５１８】
前記第１のプロセッサからの記述子同期命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
【０５１９】
例を挙げると、第１のプロセッサは、テンソルデータの記述子および第１のサブデータに基づいて記述子同期命令を生成して送信できる。第２のプロセッサは、当該記述子同期命令を受信した場合、当該命令を解析して同期待ちのテンソルデータの記述子および今回同期する当該テンソルデータの第１のサブデータを確定し、さらに記述子に基づいて同期待ちのテンソルデータを確定し、且つ、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０５２０】
このような方式によって、受信側は、記述子同期命令に基づいて記述子を確定して今回同期するサブデータを取得できて、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
【０５２１】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、プロセッサの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなど）中の記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、プロセッサの内部メモリ（例えば、オンチップキャッシュ）、または、プロセッサに接続された外部メモリ（オフチップメモリ）の中の記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【０５２２】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同一の領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスがＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１が記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３が記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３が記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０５２３】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタ中に記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０５２４】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子中のデータは、即時値にすることも、専用レジスタ中から取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタ中の記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０５２５】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０５２６】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、プロセッサは記述子の内容に基づいてテンソルデータのデータアドレスを確定できる。
【０５２７】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０５２８】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０５２９】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスがデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間中の１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスが当該データブロックのデータ記憶空間における物理アドレスである。
【０５３０】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記テンソルデータのデータ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータ中の点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータは３次元空間における点または領域の位置にマッピングすることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０５３１】
本発明の実施例に係るデータ同期方法によると、データ同期の受信側空間が不足である場合、テンソルデータの一部の同期を実現し、複数回の一部の同期によって全体的なテンソルデータの同期を実現できることによって、空間が不足である場合にテンソルデータ全体的な同期に失敗するかまたは同期が遅延されるなどの問題を回避して、データ同期の効率を向上させることができ、且つ、テンソルデータの形状を示す記述子が設定されており、データ同期過程で記述子に基づいてテンソルデータを確定することによって、同期オーバーヘッドを削減して、データアクセスの複雑度を低下させた。
【０５３２】
説明する必要があるのは、前述の各方法の実施例について、簡単に説明するために、それらをいずれも一連の動作の組み合わせとして表現したが、当業者は、本発明が説明された動作の順序に限定されないし、なぜなら、本発明によると、いくつかのステップを他の順序で実行するかまたは同時に実行できることを了解すべきである。次に、当業者は、明細書に説明された実施例が、いずれもオプションとする実施例に属し、関わる動作およびモジュールは必ずとして本発明にとって必須なものではないことも理解すべきである。
【０５３３】
さらに説明する必要があるのは、フローチャートでの各ステップは矢印に従って順に示したが、これらのステップは必ずとして矢印が示す順序に従って順に実行する必要がない。本明細書に明確な説明がない限り、これらのステップの実行に対して厳密の順序を限定しなく、これらのステップを他の順序に従って実行してもよい。さらに、フローチャートでの少なくとも一部のステップは、複数のサブステップまたは複数の段階を含んでもよく、これらのサブステップまたは段階は、必ずとして一つのタイミングで実行を完成させる必要がなく、異なるタイミングで実行させてもよいし、これらのサブステップまたは段階の実行順序も必ずとして順に実行させる必要がなく、他のステップまたは他のステップのサブステップまたは段階の少なくとも一部と交互または交替に実行させることができる。
【０５３４】
図３ｃ２は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第１のプロセッサに適用され、図３ｃ２に示されたように、当該データ同期装置は、
【０５３５】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、第２のプロセッサを指示して前記第２のプロセッサが前記テンソルデータに対する同期可能データ量を確定して同期状態命令を生成するための状態照会命令であって、前記記述子の識別子及び／又は前記記述子の内容を含む状態照会命令を生成するための照会命令生成モジュール５１ｃと、
前記状態照会命令を第２のプロセッサに送信する照会命令送信モジュール５２ｃと、を備える。
可能な一実現形態において、前記装置は、
【０５３６】
前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するサブデータ確定モジュールと、
【０５３７】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、記述子同期命令を生成して前記記述子同期命令を前記第２のプロセッサに送信するための同期命令生成および送信モジュールと、をさらに備える。
可能な一実現形態において、前記同期状態命令は記述子の識別子を含み、ここで、前記サブデータ確定モジュールは、
前記同期状態命令を解析して、前記記述子の識別子および同期可能データ量を得るための解析サブモジュールと、
前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定するための記述子確定サブモジュールと、を備える。
可能な一実現形態において、前記サブデータ確定モジュールは、
【０５３８】
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定するための第１の確定サブモジュールと、
前記第２のサブデータおよび前記同期状態命令中の同期可能データ量に基づいて、第１のサブデータを確定するための第２の確定サブモジュールと、を備える。
可能な一実現形態において、前記装置は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更するための状態変更モジュールをさらに備える。
【０５３９】
図３ｃ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第２のプロセッサに適用され、図３ｃ３に示されたように、当該データ同期装置は、
【０５４０】
第１のプロセッサからの状態照会命令を受信した場合、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定するための照会命令受信モジュール６１ｃと、
前記テンソルデータの記述子に基づいて、前記テンソルデータに対する同期可能データ量を確定するためのデータ量確定モジュール６２ｃと、
【０５４１】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記第１のプロセッサを指示して前記第１のプロセッサが前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するように、同期状態命令を生成するための状態命令生成モジュール６３ｃと、
前記同期状態命令を前記第１のプロセッサに送信するための状態命令送信モジュール６４ｃと、を備える。
可能な一実現形態において、前記装置は、
【０５４２】
前記第１のプロセッサからの記述子同期命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定するための同期命令受信モジュールと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶するためのデータ記憶モジュールと、をさらに備える。
【０５４３】
上記の装置の実施例は、ただ模式的なもののであり、本発明の装置はさらに他の方式によって実現されてもよいことを理解すべきである。例えば、上記の実施例中の前記ユニット/モジュールの区分けは、ただ論理機能に基づく区分けであり、実際に実現するときに他の区分け方式があってもよい。例えば、複数のユニット、モジュール、または、コンポーネントを、組み合わせたり、もう一つのシステムに統合したり、いくつかの特徴を省略するか実行しないことができる。
【０５４４】
また、特に説明しない限り、本発明の各実施例中の各機能ユニット/モジュールを一つのユニット/モジュールに統合してもよいし、各ユニット/モジュールが単独に物理的に存在してもよいし、二つまたは二つの以上のユニット/モジュールを一つに統合してもよい。上記の統合のユニット/モジュールを、ハードウェアの形式で実現してもよいし、ソフトウェアプログラムモジュールの形式で実現してもよい。
【０５４５】
前記統合されたユニット/モジュールをハードウェアの形式で実現する場合、当該ハードウェアは、デジタル回路、アナログ回路などであってもよい。ハードウェア構造の物理的な実現は、トランジスタ、メモリスタなどを含むが、これらに限定されない。特に説明しない限り、前記人工知能プロセッサは、例えば、ＣＰＵ、ＧＰＵ、ＦＰＧＡ、ＤＳＰ、ＡＳＩＣなどの、いかなる適当なハードウェアプロセッサであってもよい。特に説明しない限り、前記記憶ユニットは、例えば、抵抗性ランダムアクセスメモリＲＲＡＭ（Ｒｅｓｉｓｔｉvｅ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、動的ランダムアクセスメモリＤＲＡＭ（Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、静的ランダムアクセスメモリＳＲＡＭ（Ｓｔａｔｉｃ Ｒａｎｄｏｍ乃至Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、拡張動的ランダムアクセスメモリＥＤＲＡＭ（Ｅｎｈａｎｃｅｄ Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、高帯域幅メモリＨＢＭ（Ｈｉｇｈ-Ｂａｎｄｗｉｄｔｈ Ｍｅｍｏｒｙ）、ハイブリッドストレージキューブＨＭＣ（Ｈｙｂｒｉｄ Ｍｅｍｏｒｙ Ｃｕｂｅ）などの、いかなる適当な磁気記憶媒体または光磁気記憶媒体であってもよい。
【０５４６】
前記統合のユニット/モジュールがソフトウェアプログラムモジュールの形式で実現され、また独立した製品として販売または使用される場合、一つのコンピュータ読み取り可能なメモリに記憶できる。このような理解に基づいて、本発明の技術案は、本質的に、または、先行技術に寄与する一部または当該技術案の全部または一部は、ソフトウェア製品の形式で具体化されることができる。当該コンピュータソフトウェア製品は、一つのメモリに記憶され、一つのコンピュータデバイス（パーソナルコンピュータ、サーバ、または、ネットワークデバイスなどであってもよい）に本発明の各実施例に記載の方法の全部または一部のステップを実行させるためのいくつかの命令を含む。前述のメモリは、Ｕディスク、読み取り専用メモリ（ＲＯＭ、Ｒｅａｄ-Ｏｎｌｙ Ｍｅｍｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ、Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、モバイルハードディスク、磁気ディスクまたは光ディスクなどの、プログラムコードを記憶できる様々な媒体を含む。
可能な一実現形態において、人工知能チップをさらに開示し、前記人工知能チップは上記のデータ同期装置を備える。
【０５４７】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０５４８】
上記の実施例において、各実施例に対する説明にはそれぞれ焦点が当てられているが、特定の実施例で詳細に説明されていない部分については、他の実施例の関連する説明を参照することができる。上記の実施例の各技術的特徴は、任意の組み合わせることができ、説明を簡潔にするため、上記の実施例中の各技術的特徴のすべての可能の組み合わせに対して説明されていない。ただし、これらの技術的特徴の組み合わせに矛盾がない限り、すべて本明細書に記載の範囲と見なされるべきである。
前述の内容は、次の条項に従ってよりよく理解できる。
Ａ１、データ同期方法であって、前記方法は、第１のプロセッサに適用され、前記方法は、
【０５４９】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、第２のプロセッサを指示して前記第２のプロセッサが前記テンソルデータに対する同期可能データ量を確定し同期状態命令を生成するための状態照会命令であって、前記記述子の識別子及び／又は前記記述子の内容を含む状態照会命令を、生成することと、
前記状態照会命令を第２のプロセッサに送信することと、を含む。
Ａ２、請求項１に記載の方法であって、前記方法は、
【０５５０】
前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定することと、
【０５５１】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、記述子同期命令を生成して前記記述子同期命令を前記第２のプロセッサに送信することと、をさらに含む。
Ａ３、請求項Ａ２に記載の方法であって、前記同期状態命令は記述子の識別子を含み、
【０５５２】
ここで、前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定することは、
前記同期状態命令を解析して、前記記述子の識別子および同期可能データ量を得ることと、
前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含む。
【０５５３】
Ａ４、請求項Ａ２またはＡ３に記載の方法であって、前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定することは、
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期状態命令中の同期可能データ量に基づいて、第１のサブデータを確定することと、を含む。
Ａ５、請求項Ａ２乃至Ａ４の中のいずれか１項に記載の方法であって、前記方法は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
Ａ６、データ同期方法であって、前記方法は、第２のプロセッサに適用され、前記方法は、
【０５５４】
第１のプロセッサからの状態照会命令を受信した場合、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータに対する同期可能データ量を確定することと、
【０５５５】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記第１のプロセッサを指示して前記第１のプロセッサが前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するための、同期状態命令を生成することと、
前記同期状態命令を前記第１のプロセッサに送信することと、を含む。
Ａ７、請求項Ａ６に記載の方法であって、前記方法は、
【０５５６】
前記第１のプロセッサからの記述子同期命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
Ａ８、データ同期装置であって、前記装置は、第１のプロセッサに適用され、前記装置は、
【０５５７】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、第２のプロセッサを指示して前記第２のプロセッサが前記テンソルデータに対する同期可能データ量を確定し同期状態命令を生成するための状態照会命令であって、前記記述子の識別子及び／又は前記記述子の内容を含む状態照会命令を、生成するための照会命令生成モジュールと、
前記状態照会命令を第２のプロセッサに送信するための照会命令送信モジュールと、を備える。
Ａ９、請求項Ａ８に記載の装置であって、前記装置は、
【０５５８】
前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するサブデータ確定モジュールと、
【０５５９】
前記第１のサブデータに基づいて、前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、記述子同期命令を生成して前記記述子同期命令を前記第２のプロセッサに送信するための同期命令生成および送信モジュールと、をさらに備える。
Ａ１０、請求項Ａ９に記載の装置であって、前記同期状態命令は記述子の識別子を含み、ここで、前記サブデータ確定モジュールは、
前記同期状態命令を解析して、前記記述子の識別子および同期可能データ量を得るための解析サブモジュールと、
前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定するための記述子確定サブモジュールと、を備える。
Ａ１１、請求項Ａ９またはＡ１０に記載の装置であって、前記サブデータ確定モジュールは、
【０５６０】
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定するための第１の確定サブモジュールと、
前記第２のサブデータおよび前記同期状態命令中の同期可能データ量に基づいて、第１のサブデータを確定するための第２の確定サブモジュールと、を備える。
Ａ１２、請求項Ａ９乃至Ａ１１の中のいずれか１項に記載の装置であって、前記装置は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更するための状態変更モジュールをさらに備える。
Ａ１３、データ同期装置であって、前記装置は、第２のプロセッサに適用され、前記装置は、
【０５６１】
第１のプロセッサからの状態照会命令を受信した場合、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定するための照会命令受信モジュールと、
前記テンソルデータの記述子に基づいて、前記テンソルデータに対する同期可能データ量を確定するためのデータ量確定モジュールと、
【０５６２】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記第１のプロセッサを指示して前記第１のプロセッサが前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するための、同期状態命令を生成するための状態命令生成モジュールと、
前記同期状態命令を前記第１のプロセッサに送信するための状態命令送信モジュールと、を備える。
Ａ１４、請求項Ａ１３に記載の装置であって、前記装置は、
【０５６３】
前記第１のプロセッサからの記述子同期命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定するための同期命令受信モジュールと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶するためのデータ記憶モジュールと、をさらに備える。
Ａ１５、人工知能チップであって、前記チップは、請求項Ａ８乃至Ａ１４の中のいずれか１項に記載のデータ同期装置を備える。
Ａ１６、電子デバイスであって、前記電子デバイスは、請求項Ａ１５に記載の人工知能チップを備える。
【０５６４】
Ａ１７、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ１５に記載の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０５６５】
Ａ１８、請求項Ａ１７に記載のボードカードであって、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０５６６】
人工知能技術の継続的な発展に伴って、その応用分野はますます広範になり、画像認識、音声認識、自然言語処理などの分野で十分に適用されている。ただし、人工知能アルゴリズムの複雑度の増大に伴って、処理する必要のあるデータ量とデータ次元とがいずれも継続的に増加しており、通常、マルチコア及び／又はマルチチップのデータ処理が必要である。コア間またはチップ間のデータ同期を実行する場合、関連技術を使用する同期方式は同期オーバーヘッドがより大きく、処理効率がより低い。
【０５６７】
本発明の実施例によると、データ同期方法が提供される。図１ｆは、本発明の実施例に係るデータ同期方法を示すフローチャートである。図１ｆに示されたように、当該方法は、第１のプロセッサ（処理システム中の任意の一つのプロセッサ）に適用され、当該方法は、以下のステップを含む。
【０５６８】
ステップＳ１１ｆにおいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータのデータ特徴を確定し、
【０５６９】
ステップＳ１２ｆにおいて、前記テンソルデータのデータ特徴に基づいて、第２のプロセッサを指示して前記第２のプロセッサが前記テンソルデータに対する同期可能データ量を確定し同期状態命令を生成するための状態照会命令を生成して、前記状態照会命令を第２のプロセッサに送信する。
例を挙げると、同期待ちのデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよい。
【０５７０】
可能な一実現形態において、データ処理過程で、複数のプロセッサ（例えば、人工知能チップの複数のコア）間のデータ同期を実行する必要があるかもしれなく、例えば、プロセッサＡ１の演算結果をもう一つの演算の入力データとしてプロセッサＡ２に同期させる。この場合、記述子に基づくデータ同期メカニズムを使用してデータ同期を実現できる。
【０５７１】
可能な一実現形態において、各プロセッサの非共有記憶空間での、同期待ちのテンソルデータに割り当てることができる空間が制限されて、テンソルデータの全体的な同期が実現されない可能性がある。この場合、テンソルデータの一部の同期を実行し、複数回の一部の同期によって全体的なテンソルデータの同期過程を実現できる。
【０５７２】
可能な一実現形態において、データ同期の送信側に同期待ちのテンソルデータがあり、例えば、一つの演算を完成して演算結果（すなわち、テンソルデータである）得た場合、テンソルデータの一部の同期を実行するように、送信側により、受信側の状態を照会して、データ同期の受信側の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量を確定できる。
【０５７３】
可能な一実現形態において、複数のプロセッサ中の第１のプロセッサがデータ同期の送信側であり、第２のプロセッサがデータ同期の受信側であると設定できる。第１のプロセッサと第２のプロセッサは、いずれも複数のプロセッサの中の任意のプロセッサであり、第２のプロセッサは、第１のプロセッサのタイプと同一であるかまたは異なってもよく、本発明は、第１のプロセッサと第２のプロセッサのタイプに対して限定しない。
【０５７４】
可能な一実現形態において、第１のプロセッサは、同期待ちのテンソルデータが存在すると確定した場合、当該テンソルデータの記述子を取得できる。当該記述子は、既に登録（作成）された当該テンソルデータの形状を示すための記述子であってもよいし、当該テンソルデータの形状パラメータに基づいて新たな記述子を登録（作成）してもよく、本発明はこれに対して限定しない。
【０５７５】
可能な一実現形態において、ステップＳ１１ｆにおいて、当該テンソルデータの記述子に基づいて、第１のプロセッサは、当該テンソルデータのデータ特徴を確定できる。当該データ特徴は、テンソルデータの識別子（例えば、データ番号）、形状、ソース、記憶アドレスなどの情報の中の少なくとも一つを含んでもよい。
【０５７６】
可能な一実現形態において、同期待ちのテンソルデータのデータ特徴は、テンソルデータの識別子、形状、ソース、アドレスなどの情報を含んでもよい。例えば、当該テンソルデータのデータソースはＫ番目の送信側（Ｋ番目のプロセッサ）であり、当該テンソルデータのデータソースは番号２００の畳み込み操作の演算結果であり、当該テンソルデータのアドレスは特定のアドレス領域（例えば、アドレスＡＤＤＲ０〜ＡＤＤＲ１２７）であり、当該テンソルデータの形状は指定された形状（例えば、２０＊１０の２次元テンソル）である。当業者は、実際の状況に従って同期待ちのテンソルデータのデータ特徴を設定でき、本発明はこれに対して限定しない。
【０５７７】
可能な一実現形態において、ステップＳ１２ｆにおいて、当該テンソルデータのデータ特徴に基づいて、第１のプロセッサは、状態照会命令を生成して当該状態照会命令を同期待ちの第２のプロセッサに送信できる。第２のプロセッサ中に当該テンソルデータの情報（例えば、当該同期待ちのテンソルデータを示す記述子が既に登録されている）を既に有すると、状態照会命令は、例えば、テンソルデータの識別子のような一部のデータ特徴のみを含んでもよく、第２のプロセッサを指示して当該第２のプロセッサが当該テンソルデータの識別子に基づいて同期待ちのテンソルデータの記述子を確定するようにすることができ、第２のプロセッサ中に当該テンソルデータの情報を有さないと、同期命令は、例えば、テンソルデータの識別子および記憶アドレスなどの、より多くのデータ特徴を含んでもよく、第２のプロセッサを指示して当該第２のプロセッサが同期待ちのテンソルデータの記述子を確定するようにすることができる。本発明は、状態照会命令が含む具体的な内容に対して限定しない。
【０５７８】
可能な一実現形態において、状態照会命令がテンソルデータの識別子を含むと、第２のプロセッサは、当該識別子に基づいて同期待ちのテンソルデータを確定し、当該同期待ちのテンソルデータを示す記述子を登録するかまたは取得できる。状態照会命令がより多くのデータ特徴（識別子および記憶アドレスなど）を含むと、第２のプロセッサは、命令中のデータ特徴に基づいて当該テンソルデータを示す記述子を登録できる。
【０５７９】
可能な一実現形態において、同期待ちのテンソルデータの記述子を確定した後、第２のプロセッサは、記述子に対応するテンソルデータに割り当てすることができる空間を確定し、当該テンソルデータに対する同期可能データ量を確定できる。同期可能データ量およびデータ特徴に基づいて、第２のプロセッサは、同期状態命令を生成して送信することによって、第１のプロセッサが同期待ちのテンソルデータおよび今回同期する同期可能データ量を確定できるようにする。
【０５８０】
本発明の実施例に係るデータ同期方法によると、テンソルデータの形状を示す記述子を設定することによって、送信側は、記述子に基づいてテンソルデータのデータ特徴を確定し、受信側を指示して前記受信側が状態照会命令に基づいて自身状態（すなわち、同期できるデータ量である）をフィードバックするように、データ特徴に基づいて状態照会命令を生成して送信することで、テンソルデータの一部の同期を実現し、命令構成を変更しない場合、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０５８１】
前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を確定することと、
前記データ特徴に基づいて、同期待ちのテンソルデータの記述子を確定することと、
【０５８２】
前記記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定することと、
【０５８３】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、同期命令を生成して前記同期命令を第２のプロセッサに送信ことと、をさらに含む。
【０５８４】
例を挙げると、第１のプロセッサは、第２のプロセッサからの同期状態命令を受信した場合、当該命令を解析して当該命令の内容、すなわち同期待ちのテンソルデータのデータ特徴および同期可能データ量を得ることができる。当該データ特徴に基づいて、同期待ちのテンソルデータの記述子を確定することによって、同期待ちのテンソルデータを確定し、且つ、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０５８５】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると、同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０５８６】
可能な一実現形態において、同期待ちの一部のデータを指定して取得するように、同期状態命令には、例えば、当該一部のサブデータの記憶アドレス範囲などの、同期待ちのテンソルデータの一部のデータの範囲が含まれてもよい。第１のプロセッサは、当該一部のデータの範囲に基づいて同期待ちの第１のサブデータを直接確定できる。
【０５８７】
可能な一実現形態において、第１のプロセッサは、第１のサブデータに基づいて同期命令を生成して前記同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータのデータ特徴および第１のサブデータを含まれてもよい。第２のプロセッサは、同期命令を受信した後、当該命令を解析して同期待ちのテンソルデータのデータ特徴およびテンソルデータの第１のサブデータを確定し、データ特徴確定記述子に基づいて、記述子に基づいて同期待ちのテンソルデータを確定し、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０５８８】
このような方式によって、送信側からの同期状態命令に基づいてテンソルデータの記述子および同期可能データ量を確定し、同期可能データ量に基づいて今回同期するサブデータを確定し、当該サブデータに基づいて同期命令を生成して送信することで、受信側が今回同期するサブデータを取得するようにすることができて、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
可能な一実現形態において、前記記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定するステップは、
前記記述子に基づいて、同期待ちのテンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定することと、を含んでもよい。
【０５８９】
例を挙げると、テンソルデータ中のデータの状態を設定でき、既に同期された一部のデータを同期済みに設定し、同期されていない一部のデータを同期待ちに設定する。この場合、当第１のプロセッサは、第２のプロセッサからの同期状態命令を受信した場合、テンソルデータ中のデータの状態に基づいて、同期待ち状態にいる第２のサブデータを確定し、第２のサブデータおよび同期状態命令が示す同期可能データ量に基づいて、今回同期する第１のサブデータを確定できる。
【０５９０】
可能な一実現形態において、第２のサブデータのデータ量が同期可能データ量よりも大きいと、第２のサブデータ中から今回同期する第１のサブデータを選択でき、第２のサブデータのデータ量が同期可能データ量以下であると、第２のサブデータを直接第１のサブデータとすることができる。
【０５９１】
このような方式によって、テンソルデータの一部の同期を実現するように、今回同期する一部のデータを確定できて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
【０５９２】
例を挙げると、第１のプロセッサは、テンソルデータの第１のサブデータに基づいて同期命令生成して送信することによって、第２のプロセッサがテンソルデータの第１のサブデータの同期を実現するようにした後、第１のプロセッサは、テンソルデータ中のデータの状態を変更でき、すなわち、第１のサブデータの状態を同期待ち状態から同期済み状態に変更できる。このように、次回に第２のプロセッサの状態を照会して第２のプロセッサの同期状態命令を受信した場合、同期待ち状態にいる一部のデータ中から次回同期するデータを確定できることによって、データの繰り返し同期を回避して、データ同期の効率を向上させることができる。
【０５９３】
図３ｄ１は、本発明の一実施例に係るデータ同期方法を示すフローチャートである。図３ｄ１に示されたように、当該方法は、第２のプロセッサに適用され、当該方法は、以下のステップを含む。
【０５９４】
ステップＳ３１ｄにおいて、第１のプロセッサからの状態照会命令を受信した場合、前記状態照会命令を解析して、同期待ちのテンソルデータのデータ特徴を得、
ステップＳ３２ｄにおいて、前記データ特徴に基づいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定し、
ステップＳ３３ｄにおいて、前記テンソルデータの記述子に基づいて、前記テンソルデータに対する同期可能データ量を確定し、
【０５９５】
ステップＳ３４ｄにおいて、前記テンソルデータのデータ特徴および前記同期可能データ量に基づいて、前記第１のプロセッサを指示して、前記第１のプロセッサが、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するための同期状態命令を生成して、前記同期状態命令を前記第１のプロセッサに送信する。
【０５９６】
例を挙げると、データ同期の送信側に同期待ちのテンソルデータがある場合、送信側は、受信側の状態を照会できる。第１のプロセッサ（送信側）は、状態照会命令を生成して送信し、第２のプロセッサは、ステップＳ３１ｄにおいて当該状態照会命令を受信した場合、当該命令を解析して、既に同期待ちのテンソルデータのデータ特徴を確定できる。当該データ特徴は、テンソルデータの識別子（例えば、データ番号）、形状、ソース、記憶アドレスなどの情報の中の少なくとも一つを含んでもよい。
【０５９７】
可能な一実現形態において、ステップＳ３２ｄにおいて、第２のプロセッサは、データ特徴に基づいて、同期待ちのテンソルデータの記述子を確定できる。当該記述子は、既に登録（作成）された当該テンソルデータの形状を示すための記述子であってもよいし、当該テンソルデータの形状パラメータに基づいて新たな記述子を登録（作成）してもよく、本発明はこれに対して限定しない。
【０５９８】
可能な一実現形態において、ステップＳ３３ｄにおいて、第２のプロセッサは、テンソルデータの一部の同期を実行するように、当該記述子に基づいて同期待ちのテンソルデータを確定し、且つ、自身の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量、すなわち同期可能データ量を確定できる。
【０５９９】
可能な一実現形態において、ステップＳ３４ｄにおいて、第２のプロセッサは、確定された同期可能データ量および当該テンソルデータのデータ特徴に基づいて、同期状態命令を生成して第１のプロセッサに送信することによって、第１のプロセッサを指示して、前記第１のプロセッサが、今回同期する同期可能データ量を確定するようにすることができる。第１のプロセッサは、今回同期できる一部のデータ（すなわち、第１のサブデータ）を確定した後、同期命令を生成して前記同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータのデータ特徴および第１のサブデータを含まれてもよい。
【０６００】
このような方式によって、送信側により受信側の状態を照会し、受信側は、状態照会命令を受信した後に自身の状態（すなわち、同期可能データ量である）を確定して返信し、対話を通じてテンソルデータの一部の同期を実現して、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０６０１】
前記第１のプロセッサからの同期命令を受信した場合、前記同期命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータの第１のサブデータを得ることと、
前記データ特徴に基づいて、前記テンソルデータの記述子を確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
【０６０２】
例を挙げると、第２のプロセッサは、同期命令を受信した場合、当該命令を解析して同期待ちのテンソルデータのデータ特徴および今回同期する当該テンソルデータの第１のサブデータを確定し、当該データ特徴に基づいて同期待ちのテンソルデータの記述子を検索し、さらに記述子に基づいて同期待ちのテンソルデータを確定し、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０６０３】
このような方式によって、受信側は、同期命令に基づいて記述子を確定して今回同期するサブデータを取得できて、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
【０６０４】
可能な一実現形態において、データ同期の受信側により、テンソルデータの一部に対する同期要求を開始してもよく、すなわち、受信側が記述子同期要求命令を発し、当該命令中には、同期待ちのテンソルデータを示す記述子、および、当該テンソルデータに対する同期可能データ量、すなわち受信側の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量が含まれてもよい。
可能な一実現形態において、データ同期方法をさらに提供し、第１のプロセッサに適用され、当該方法は、
【０６０５】
前記第２のプロセッサからの同期要求命令を受信した場合、前記同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータに対する同期可能データ量を得ることと、
前記データ特徴に基づいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定することと、
【０６０６】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定することと、
【０６０７】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、同期命令を生成して前記同期命令を前記第２のプロセッサに送信ことと、を含む。
【０６０８】
例を挙げると、データ同期の受信側により、テンソルデータの一部に対する同期要求を開始させることができ、すなわち、受信側が同期要求命令を発し、当該命令中には、同期待ちのテンソルデータを示すデータ特徴、および、当該テンソルデータに対する同期可能データ量、すなわち受信側の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量が含まれてもよい。
【０６０９】
可能な一実現形態において、複数のプロセッサ中の第１のプロセッサがデータ同期の送信側であり、第２のプロセッサがデータ同期の受信側であると設定できる。第１のプロセッサと第２のプロセッサは、いずれも複数のプロセッサの中の任意のプロセッサであり、第２のプロセッサは、第１のプロセッサのタイプと同一であるかまたは異なってもよく、本発明は、第１のプロセッサと第２のプロセッサのタイプに対して限定しない。
【０６１０】
可能な一実現形態において、第１のプロセッサは、第２のプロセッサからの同期要求命令を受信した場合、当該命令を解析して当該命令の内容、すなわち同期待ちのテンソルデータのデータ特徴および同期可能データ量を得ることができる。当該データ特徴は、テンソルデータの識別子（例えば、データ番号）、形状、ソース、記憶アドレスなどの情報の中の少なくとも一つを含んでもよい。
【０６１１】
可能な一実現形態において、同期待ちのテンソルデータのデータ特徴は、テンソルデータの識別子、形状、ソース、アドレスなどの情報を含んでもよい。例えば、当該テンソルデータのデータソースはＫ番目の送信側（Ｋ番目のプロセッサ）であり、当該テンソルデータのデータソースは番号２００の畳み込み操作の演算結果であり、当該テンソルデータのアドレスは特定のアドレス領域（例えば、アドレスＡＤＤＲ０〜ＡＤＤＲ１２７）であり、当該テンソルデータの形状は指定された形状（例えば、２０＊１０の２次元テンソル）である。当業者は、実際の状況に従って同期待ちのテンソルデータのデータ特徴を設定でき、本発明はこれに対して限定しない。
【０６１２】
可能な一実現形態において、第１のプロセッサは、データ特徴に基づいて同期待ちのテンソルデータの記述子を確定し、さらに記述子に基づいて同期待ちのテンソルデータを確定し、且つ、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、前記同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０６１３】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると、同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０６１４】
可能な一実現形態において、同期待ちの一部のデータを指定して取得するように、同期要求命令中には、例えば、当該一部のサブデータなど記憶アドレス範囲などの、同期待ちのテンソルデータの一部のデータの範囲が含まれてもよい。第１のプロセッサは、当該一部のデータの範囲に基づいて同期待ちの第１のサブデータを直接確定できる。
【０６１５】
可能な一実現形態において、第１のプロセッサは、第１のサブデータに基づいて同期命令を生成して前記同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータのデータ特徴および第１のサブデータを含まれてもよい。第２のプロセッサは、同期命令を受信した後、当該命令を解析して当該データ特徴および第１のサブデータを確定することによって、当該データ特徴に基づいて記述子を確定し、記述子に基づいて同期待ちのテンソルデータを確定し、且つ、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０６１６】
このような方式によって、受信側は、同期要求命令を発して同期一部のデータを能動的に要求することができ、送信側は、受信側の同期可能データ量に基づいて今回同期するサブデータを確定し、受信側が今回同期するサブデータを取得するように、当該サブデータに基づいて同期命令を生成して送信することができて、命令の構成を変更せずに同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
可能な一実現形態において、前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定することは、
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定することと、を含んでもよい。
【０６１７】
例を挙げると、テンソルデータ中のデータの状態を設定でき、既に同期された一部のデータを同期済みに設定し、同期されていない一部のデータを同期待ちに設定する。この場合、第１のプロセッサは、第２のプロセッサからの同期要求命令を受信した場合、テンソルデータ中のデータの状態に基づいて、同期待ち状態にいる第２のサブデータを確定し、第２のサブデータおよび同期要求命令が示す同期可能データ量に基づいて、今回同期する第１のサブデータを確定できる。
【０６１８】
可能な一実現形態において、第２のサブデータのデータ量が同期可能データ量よりも大きいと、第２のサブデータ中から今回同期する第１のサブデータを選択でき、第２のサブデータのデータ量が同期可能データ量以下であると、第２のサブデータを直接第１のサブデータとすることができる。
【０６１９】
このような方式によって、テンソルデータの一部の同期を実現するように、今回同期する一部のデータを確定できて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
【０６２０】
例を挙げると、第１のプロセッサは、テンソルデータの第１のサブデータに基づいて同期命令生成して送信することによって、第２のプロセッサがテンソルデータの第１のサブデータの同期を実現するようにした後、第１のプロセッサは、テンソルデータ中のデータの状態を変更でき、すなわち、第１のサブデータの状態を同期待ち状態から同期済み状態に変更できる。このように、次回に第２のプロセッサの同期要求命令を受信した場合、同期待ち状態にいる一部のデータ中から次回同期するデータを確定できることによって、データの繰り返し同期を回避して、データ同期の効率を向上させることができる。
可能な一実現形態において、データ同期方法をさらに提供し、第２のプロセッサに適用され、当該方法は、
【０６２１】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータのデータ特徴および前記テンソルデータに対する同期可能データ量を確定することと、
【０６２２】
前記データ特徴および前記同期可能データ量に基づいて、第１のプロセッサを指示して、前記第１のプロセッサが、前記同期要求命令に基づいて同期待ちのテンソルデータ、および、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される第１のサブデータを、確定するための同期要求命令を生成して、前記同期要求命令を第１のプロセッサに送信することと、を含む。
【０６２３】
例を挙げると、データ同期の受信側（すなわち、第２のプロセッサ）により、テンソルデータの一部に対する同期要求を開始することができる。第２のプロセッサ中に同期待ちのテンソルデータが存在する場合、テンソルデータの記述子を確定できる。当該記述子は、既に登録（作成）された当該テンソルデータの形状を示すための記述子であってもよいし、当該テンソルデータの形状パラメータに基づいて新たな記述子を登録（作成）してもよく、本発明はこれに対して限定しない。
【０６２４】
可能な一実現形態において、第２のプロセッサは、当該記述子に基づいて、例えば、テンソルデータの識別子（例えば、データ番号）、形状、ソース、記憶アドレスなどの情報の中の少なくとも一つのような、テンソルデータのデータ特徴を確定できる。また、第２のプロセッサは、自身の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量、すなわち同期可能データ量を確定できる。
【０６２５】
可能な一実現形態において、当該テンソルデータのデータ特徴および同期可能データ量に基づいて、第２のプロセッサは、同期要求命令を生成して当該命令を送信できる。当該同期要求命令は、第１のプロセッサを指示して、前記第１のプロセッサが、当該命令に基づいて同期待ちのテンソルデータを確定して前記テンソルデータの第１のサブデータを確定するようにするために使用できる。
【０６２６】
可能な一実現形態において、データ同期の受信側（すなわち、第１のプロセッサ）は、同期要求命令を受信した場合、当該命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を確定し、データ特徴に基づいて同期待ちのテンソルデータの記述子を確定し、記述子に基づいて同期待ちのテンソルデータを確定し、且つ、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、前記同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０６２７】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると、同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０６２８】
可能な一実現形態において、同期待ちの一部のデータを指定して取得するように、同期要求命令中には、例えば、当該一部のサブデータの記述子内容または記憶アドレス範囲などの、同期待ちのテンソルデータの一部のデータの範囲が含まれてもよい。
【０６２９】
このような方式によって、受信側によりテンソルデータの一部の同期要求を開始して、送信側が今回同期するサブデータを確定することができて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０６３０】
前記第１のプロセッサからの同期命令を受信した場合、前記同期命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータの第１のサブデータを得ることと、
前記データ特徴に基づいて、前記テンソルデータの記述子を確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
【０６３１】
例を挙げると、第１のプロセッサは、テンソルデータのデータ特徴および第１のサブデータに基づいて同期命令を生成して送信できる。第２のプロセッサは、当該同期命令を受信した場合、当該命令を解析して同期待ちのテンソルデータのデータ特徴および今回同期する当該テンソルデータの第１のサブデータを確定し、データ特徴に基づいて記述子確定し、さらに記述子に基づいて同期待ちのテンソルデータを確定し、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０６３２】
このような方式によって、受信側は、同期命令に基づいて記述子を確定して今回同期するサブデータを取得できて、同期オーバーヘッドを軽減し、データ同期の効率を向上させ、且つ、、命令伝送および処理過程での命令互換性を実現できる。
【０６３３】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、プロセッサの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなど）中の記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、プロセッサの内部メモリ（例えば、オンチップキャッシュ）、または、プロセッサと接続された外部メモリ（オフチップメモリ）中の記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【０６３４】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同一の領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスがＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１が記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３が記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３が記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０６３５】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタ中に記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０６３６】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子中のデータは、即時値にすることも、専用レジスタ中から取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタ中の記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０６３７】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０６３８】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、プロセッサは記述子の内容に基づいてテンソルデータのデータアドレスを確定できる。
【０６３９】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０６４０】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０６４１】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスがデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間中の１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスが当該データブロックのデータ記憶空間における物理アドレスである。
【０６４２】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記テンソルデータのデータ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータ中の点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータは３次元空間における点または領域の位置にマッピングすることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０６４３】
本発明の実施例に係るデータ同期方法によると、データ同期の受信側空間が不足である場合、テンソルデータの一部の同期を実現し、複数回の一部の同期によって全体的なテンソルデータの同期を実現できることによって、空間が不足である場合、テンソルデータ全体的な同期に失敗するかまたは同期が遅延されるなどの問題を回避して、データ同期の効率を向上させることができ、テンソルデータの形状を示す記述子が設定されており、データ同期過程で記述子に基づいてテンソルデータを確定することによって、同期オーバーヘッドを削減して、データアクセスの複雑度を低下させて、命令伝送および処理過程での命令互換性を実現できる。
【０６４４】
説明する必要があるのは、前述の各方法の実施例について、簡単に説明するために、それらをいずれも一連の動作の組み合わせとして表現したが、当業者は、本発明が説明された動作の順序に限定されないし、なぜなら、本発明によると、いくつかのステップを他の順序で実行するかまたは同時に実行できることを了解すべきである。次に、当業者は、明細書に説明された実施例は、いずれもオプションとする実施例に属し、関わる動作およびモジュールは必ずとして本発明にとって必須なものではないことも理解すべきである。
【０６４５】
さらに説明する必要があるのは、フローチャートでの各ステップは矢印に従って順に示したが、これらのステップは必ずとして矢印が示す順序に従って順に実行する必要がない。本明細書に明確な説明がない限り、これらのステップの実行に対して厳密の順序を限定しなく、これらのステップを他の順序に従って実行してもよい。さらに、フローチャートでの少なくとも一部のステップは、複数のサブステップまたは複数の段階を含んでもよく、これらのサブステップまたは段階は、必ずとして一つのタイミングで実行を完成させる必要がなく、異なるタイミングで実行させてもよいし、これらのサブステップまたは段階の実行順序も必ずとして順に実行させる必要がなく、他のステップまたは他のステップのサブステップまたは段階の少なくとも一部と交互または交替に実行させることができる。
【０６４６】
図３ｄ２は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第１のプロセッサに適用され、図３ｄ２に示されたように、当該データ同期装置は、
【０６４７】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータのデータ特徴を確定するための特徴確定モジュール５１ｄと、
【０６４８】
前記テンソルデータのデータ特徴に基づいて、第２のプロセッサを指示して前記第２のプロセッサが前記テンソルデータに対する同期可能データ量を確定し同期状態命令を生成するための状態照会命令を生成して、前記状態照会命令を第２のプロセッサに送信するための照会命令生成および送信モジュール５２ｄと、を備える。
可能な一実現形態において、前記装置は、
【０６４９】
前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を確定するための状態命令解析モジュールと、
前記データ特徴に基づいて、同期待ちのテンソルデータの記述子を確定するための第１の記述子確定モジュールと、
【０６５０】
前記記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するためのデータ確定モジュールと、
【０６５１】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、同期命令を生成して前記同期命令を前記第２のプロセッサに送信するための同期命令生成および送信モジュールと、をさらに備える。
可能な一実現形態において、前記データ確定モジュールは、
【０６５２】
前記記述子に基づいて、同期待ちのテンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定するための第１の確定サブモジュールと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定するための第２の確定サブモジュールと、を備える。
可能な一実現形態において、前記装置は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更するための状態変更モジュールをさらに備える。
【０６５３】
図３ｄ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第２のプロセッサに適用され、図３ｄ３に示されたように、当該データ同期装置は、
【０６５４】
第１のプロセッサからの状態照会命令を受信した場合、前記状態照会命令を解析して、同期待ちのテンソルデータのデータ特徴を得るための照会命令解析モジュール６１ｄと、
【０６５５】
前記データ特徴に基づいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定するための第２の記述子確定モジュール６２ｄと、
前記テンソルデータの記述子に基づいて、前記テンソルデータに対する同期可能データ量を確定するためのデータ量確定モジュール６３ｄと、
【０６５６】
前記テンソルデータのデータ特徴および前記同期可能データ量に基づいて、前記第１のプロセッサを指示して前記第１のプロセッサが前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するための同期状態命令を生成して、前記同期状態命令を前記第１のプロセッサに送信するための状態命令生成および送信モジュール６４ｄと、を備える。
可能な一実現形態において、前記装置は、
【０６５７】
前記第１のプロセッサからの同期命令を受信した場合、前記同期命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータの第１のサブデータを得るための同期命令解析モジュールと、
前記データ特徴に基づいて、前記テンソルデータの記述子を確定するための第３の記述子確定モジュールと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶するためのデータ記憶モジュールと、をさらに備える。
【０６５８】
上記の装置の実施例は、ただ模式的なもののであり、本発明の装置はさらに他の方式によって実現されてもよいことを理解すべきである。例えば、上記の実施例中の前記ユニット/モジュールの区分けは、ただ論理機能に基づく区分けであり、実際に実現するときに他の区分け方式があってもよい。例えば、複数のユニット、モジュール、または、コンポーネントを、組み合わせたり、もう一つのシステムに統合したり、いくつかの特徴を省略するか実行しないことができる。
【０６５９】
また、特に説明しない限り、本発明の各実施例中の各機能ユニット/モジュールを一つのユニット/モジュールに統合してもよいし、各ユニット/モジュールが単独に物理的に存在してもよいし、二つまたは二つの以上のユニット/モジュールを一つに統合してもよい。上記の統合のユニット/モジュールを、ハードウェアの形式で実現してもよいし、ソフトウェアプログラムモジュールの形式で実現してもよい。
【０６６０】
前記統合されたユニット/モジュールをハードウェアの形式で実現する場合、当該ハードウェアは、デジタル回路、アナログ回路などであってもよい。ハードウェア構造の物理的な実現は、トランジスタ、メモリスタなどを含むが、これらに限定されない。特に説明しない限り、前記人工知能プロセッサは、例えば、ＣＰＵ、ＧＰＵ、ＦＰＧＡ、ＤＳＰ、ＡＳＩＣなどの、いかなる適当なハードウェアプロセッサであってもよい。特に説明しない限り、前記記憶ユニットは、例えば、抵抗性ランダムアクセスメモリＲＲＡＭ（Ｒｅｓｉｓｔｉvｅ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、動的ランダムアクセスメモリＤＲＡＭ（ＤｙｎａＭｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、静的ランダムアクセスメモリＳＲＡＭ（Ｓｔａｔｉｃ Ｒａｎｄｏｍ乃至Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、拡張動的ランダムアクセスメモリＥＤＲＡＭ（Ｅｎｈａｎｃｅｄ Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、高帯域幅メモリＨＢＭ（Ｈｉｇｈ-Ｂａｎｄｗｉｄｔｈ Ｍｅｍｏｒｙ）、ハイブリッドストレージキューブＨＭＣ（Ｈｙｂｒｉｄ Ｍｅｍｏｒｙ Ｃｕｂｅ）などの、いかなる適当な磁気記憶媒体または光磁気記憶媒体であってもよい。
【０６６１】
前記統合のユニット/モジュールがソフトウェアプログラムモジュールの形式で実現され、また独立した製品として販売または使用される場合、一つのコンピュータ読み取り可能なメモリに記憶できる。このような理解に基づいて、本発明の技術案は、本質的に、または、先行技術に寄与する一部または当該技術案の全部または一部は、ソフトウェア製品の形式で具体化されることができる。当該コンピュータソフトウェア製品は、一つのメモリに記憶され、一つのコンピュータデバイス（パーソナルコンピュータ、サーバ、または、ネットワークデバイスなどであってもよい）に本発明の各実施例に記載の方法の全部または一部のステップを実行させるためのいくつかの命令を含む。前述のメモリは、Ｕディスク、読み取り専用メモリ（ＲＯＭ、Ｒｅａｄ-Ｏｎｌｙ Ｍｅｍｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ、Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、モバイルハードディスク、磁気ディスクまたは光ディスクなどの、プログラムコードを記憶できる様々な媒体を含む。
可能な一実現形態において、人工知能チップをさらに開示し、前記人工知能チップは上記のデータ同期装置を備える。
【０６６２】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０６６３】
上記の実施例において、各実施例に対する説明にはそれぞれ焦点が当てられているが、特定の実施例で詳細に説明されていない部分については、他の実施例の関連する説明を参照することができる。上記の実施例の各技術的特徴は、任意の組み合わせることができ、説明を簡潔にするため、上記の実施例中の各技術的特徴のすべての可能の組み合わせに対して説明されていない。ただし、これらの技術的特徴の組み合わせに矛盾がない限り、すべて本明細書に記載の範囲と見なされるべきである。
前述の内容は、次の条項に従ってよりよく理解できる。
Ａ１、データ同期方法であって、前記方法は、第１のプロセッサに適用され、前記方法は、
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータのデータ特徴を確定することと、
【０６６４】
前記テンソルデータのデータ特徴に基づいて、第２のプロセッサを指示して前記第２のプロセッサが前記テンソルデータに対する同期可能データ量を確定し同期状態命令を生成するための状態照会命令を生成して、前記状態照会命令を第２のプロセッサに送信することと、含む。
Ａ２、請求項Ａ１に記載の方法であって、前記方法は、
【０６６５】
前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を確定することと、
前記データ特徴に基づいて、同期待ちのテンソルデータの記述子を確定することと、
【０６６６】
前記記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定することと、
【０６６７】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、同期命令を生成して前記同期命令を前記第２のプロセッサに送信することと、を含む。
Ａ３、請求項Ａ２に記載の方法であって、前記記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定することは、
前記記述子に基づいて、同期待ちのテンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定することと、を含む。
Ａ４、請求項Ａ２またはＡ３に記載の方法であって、前記方法は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
Ａ５、データ同期方法であって、前記方法は、第２のプロセッサに適用され、前記方法は、
第１のプロセッサからの状態照会命令を受信した場合、前記状態照会命令を解析して、同期待ちのテンソルデータのデータ特徴を得ることと、
前記データ特徴に基づいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータに対する同期可能データ量を確定することと、
【０６６８】
前記テンソルデータのデータ特徴および前記同期可能データ量に基づいて、前記第１のプロセッサを指示して前記第１のプロセッサが前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するための同期状態命令を生成して、前記同期状態命令を前記第１のプロセッサに送信することと、を含む。
Ａ６、請求項Ａ５に記載の方法であって、前記方法は、
【０６６９】
前記第１のプロセッサからの同期命令を受信した場合、前記同期命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータの第１のサブデータを得ることと、
前記データ特徴に基づいて、前記テンソルデータの記述子を確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
Ａ７、データ同期装置であって、前記装置は、第１のプロセッサに適用され、前記装置は、
【０６７０】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータのデータ特徴を確定するための特徴確定モジュールと、
【０６７１】
前記テンソルデータのデータ特徴に基づいて、第２のプロセッサを指示して前記第２のプロセッサが前記テンソルデータに対する同期可能データ量を確定し同期状態命令を生成するための状態照会命令を生成して、前記状態照会命令を第２のプロセッサに送信するための照会命令生成および送信モジュールと、を備える。
Ａ８、請求項Ａ７に記載の装置であって、前記装置は、
【０６７２】
前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を確定するための状態命令解析モジュールと、
前記データ特徴に基づいて、同期待ちのテンソルデータの記述子を確定するための第１の記述子確定モジュールと、
【０６７３】
前記記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するためのデータ確定モジュールと、
【０６７４】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、同期命令を生成して前記同期命令を前記第２のプロセッサに送信するための同期命令生成および送信モジュールと、をさらに備える。
Ａ９、請求項Ａ８に記載の装置であって、前記データ確定モジュールは、
【０６７５】
前記記述子に基づいて、同期待ちのテンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定するための第１の確定サブモジュールと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定するための第２の確定サブモジュールと、を備える。
Ａ１０、請求項Ａ８またはＡ９に記載の装置であって、前記装置は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更するための状態変更モジュールをさらに備える。
Ａ１１、データ同期装置であって、前記装置は、第２のプロセッサに適用され、前記装置は、
【０６７６】
第１のプロセッサからの状態照会命令を受信した場合、前記状態照会命令を解析して、同期待ちのテンソルデータのデータ特徴を得るための照会命令解析モジュールと、
【０６７７】
前記データ特徴に基づいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定するための第２の記述子確定モジュールと、
前記テンソルデータの記述子に基づいて、前記テンソルデータに対する同期可能データ量を確定するためのデータ量確定モジュールと、
【０６７８】
前記テンソルデータのデータ特徴および前記同期可能データ量に基づいて、前記第１のプロセッサを指示して前記第１のプロセッサが前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するための同期状態命令を生成して、前記同期状態命令を前記第１のプロセッサに送信するための状態命令生成および送信モジュールと、を備える。
Ａ１２、請求項Ａ１１に記載の装置であって、前記装置は、
【０６７９】
前記第１のプロセッサからの同期命令を受信した場合、前記同期命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータの第１のサブデータを得るための同期命令解析モジュールと、
前記データ特徴に基づいて、前記テンソルデータの記述子を確定するための第３の記述子確定モジュールと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶するためのデータ記憶モジュールと、をさらに備える。
Ａ１３、人工知能チップであって、前記チップは、請求項Ａ７乃至Ａ１２の中のいずれか１項に記載のデータ同期装置を備える。
Ａ１４、電子デバイスであって、前記電子デバイスは、請求項Ａ１３に記載の人工知能チップを備える。
【０６８０】
Ａ１５、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ１３に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
Ａ１６、請求項Ａ１５に記載のボードカードであって、
【０６８１】
前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、
前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０６８２】
人工知能技術の継続的な発展に伴って、その応用分野はますます広範になり、画像認識、音声認識、自然言語処理などの分野で十分に適用されている。ただし、人工知能アルゴリズムの複雑度の増大に伴って、処理する必要のあるデータ量とデータ次元とがいずれも継続的に増加しており、通常、マルチコア及び／又はマルチチップのデータ処理が必要である。コア間またはチップ間のデータ同期を実行する場合、関連技術を使用する同期方式は同期オーバーヘッドがより大きく、処理効率がより低い。
【０６８３】
本発明の実施例によると、データ同期方法が提供される。図１ｇは、本発明の実施例に係るデータ同期方法を示すフローチャートである。図１ｇに示されたように、当該方法は、第１のプロセッサ（処理システム中の任意の一つのプロセッサ）に適用され、当該方法は、以下のステップを含む。
【０６８４】
ステップＳ１１ｇにおいて、前記第２のプロセッサからの記述子同期要求命令を受信した場合、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子、および、前記テンソルデータに対する同期可能データ量を確定し、
【０６８５】
ステップＳ１２ｇにおいて、前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定し、
【０６８６】
ステップＳ１３ｇにおいて、前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、記述子同期命令を生成して前記記述子同期命令を前記第２のプロセッサに送信する。
例を挙げると、同期待ちのデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよい。
【０６８７】
可能な一実現形態において、データ処理過程で、複数のプロセッサ（例えば、人工知能チップの複数のコア）間のデータ同期を実行する必要があるかもしれなく、例えば、プロセッサＡ１の演算結果をもう一つの演算の入力データとしてプロセッサＡ２に同期させる。この場合、記述子に基づくデータ同期メカニズムを使用してデータ同期を実現できる。
【０６８８】
可能な一実現形態において、各プロセッサの非共有記憶空間での、同期待ちのテンソルデータに割り当てることができる空間が制限されて、テンソルデータの全体的な同期が実現されない可能性がある。この場合、テンソルデータの一部の同期を実行し、複数回の一部の同期によって全体的なテンソルデータの同期過程を実現できる。
【０６８９】
可能な一実現形態において、データ同期の受信側により、テンソルデータの一部に対する同期要求を開始させることができ、すなわち、受信側が記述子同期要求命令を発し、当該命令中には、同期待ちのテンソルデータを示す記述子、および、当該テンソルデータに対する同期可能データ量、すなわち受信側の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量が含まれてもよい。
【０６９０】
可能な一実現形態において、複数のプロセッサ中の第１のプロセッサがデータ同期の送信側であり、第２のプロセッサがデータ同期の受信側であると設定できる。第１のプロセッサと第２のプロセッサは、いずれも複数のプロセッサの中の任意のプロセッサであり、第２のプロセッサは、第１のプロセッサのタイプと同一であるかまたは異なってもよく、本発明は、第１のプロセッサと第２のプロセッサのタイプに対して限定しない。
【０６９１】
可能な一実現形態において、第１のプロセッサは、ステップＳ１１ｇにおいて、第２のプロセッサからの記述子同期要求命令を受信した場合、当該命令を解析して当該命令の内容（例えば、同期待ちのテンソルデータの記述子の識別子、同期待ちのテンソルデータのデータ特徴、同期可能データ量など）を得ることによって、同期待ちのテンソルデータの記述子および同期可能データ量を確定できる。
【０６９２】
可能な一実現形態において、ステップＳ１２ｇにおいて、第１のプロセッサは、記述子に基づいて同期待ちのテンソルデータを確定し、且つ、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、前記同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０６９３】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると、同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０６９４】
可能な一実現形態において、ステップＳ１３ｇにおいて、第１のプロセッサは、第１のサブデータに基づいて記述子同期命令を生成して前記記述子同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータの記述子の識別子および第１のサブデータが含まれてもよい。第２のプロセッサは、記述子同期命令を受信した後、当該命令を解析して同期待ちのテンソルデータの記述子およびテンソルデータの第１のサブデータを確定し、記述子に基づいて同期待ちのテンソルデータを確定し、且つ、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０６９５】
本発明の実施例に係るデータ同期方法によると、テンソルデータの形状を示す記述子を設定することによって、記述子同期要求命令中の記述子に基づいてテンソルデータを確定し、受信側の同期可能データ量に基づいて今回同期するサブデータを確定し、受信側が今回同期するサブデータを取得するように、当該サブデータ記述子に基づいて同期命令を生成して送信することにより、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
可能な一実現形態において、記述子同期要求命令は、記述子の識別子を含んでもよく、ステップＳ１１ｇは、
前記記述子同期要求命令を解析して、前記記述子の識別子および同期可能データ量を得ることと、
前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含んでもよい。
【０６９６】
例を挙げると、第１のプロセッサと第２のプロセッサ中にいずれも当該同期待ちのテンソルデータを示す記述子が既に登録されていると、記述子同期命令は記述子の識別子（例えば、記述子の識別子がＴＲ１である場合、記述子同期命令をＳｅｎｄ ＴＲ１で表す）および同期可能データ量のみを含んでもよい。第１のプロセッサは、記述子同期要求命令を解析して記述子の識別子および同期可能データ量を得、さらに記述子の識別子に基づいて、同期待ちのテンソルデータの記述子を確定できる。
このような方式によって、同期の際に伝送するデータ量を削減して、処理効率を向上させることができる。
可能な一実現形態において、記述子同期要求命令は、同期待ちのテンソルデータのデータ特徴を含み、ステップＳ１１ｇは、
前記記述子同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を得ることと、
前記テンソルデータのデータ特徴に基づいて、前記テンソルデータの記述子を確定することと、を含んでもよい。
【０６９７】
例を挙げると、第１のプロセッサに当該同期待ちのテンソルデータを示す記述子が登録されていないか、または、記述子の識別子が対応されないと、記述子同期命令は、同期待ちのテンソルデータのデータ特徴を含んでもよい。当該データ特徴は、テンソルデータの識別子、形状、ソース、アドレスなどの情報を含んでもよい。例えば、当該テンソルデータのデータソースはＫ番目の送信側（Ｋ番目のプロセッサ）であり、当該テンソルデータのデータソースは番号２００の畳み込み操作の演算結果であり、当該テンソルデータのアドレスは特定のアドレス領域（例えば、アドレスＡＤＤＲ０〜ＡＤＤＲ１２７）であり、当該テンソルデータの形状は指定された形状（例えば、２０＊１０の２次元テンソル）である。当業者は、実際の状況に従って同期待ちのテンソルデータのデータ特徴を設定でき、本発明はこれに対して限定しない。
【０６９８】
可能な一実現形態において、第１のプロセッサは、当該データ特徴に基づいて、同期待ちのテンソルデータを検索して、且つ、当該同期待ちのテンソルデータの記述子を確定でき、例えば、対応する記述子を直接取得するかまたは新たに登録する。当該同期待ちのテンソルデータの記述子に基づいて、当該テンソルデータを確定し、さらに同期可能データ量に基づいて今回同期するサブデータを確定できる。
【０６９９】
このような方式によって、テンソルデータの一部の同期を実現するように、記述子同期要求命令中のデータ特徴に基づいて同期待ちのテンソルデータの記述子を確定できることによって、同期の際にテンソルデータ自身を伝送する必要がなく、伝送するデータ量および同期オーバーヘッドを軽減して、処理効率を向上させた。
可能な一実現形態において、ステップＳ１２ｇは、
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定することと、を含んでもよい。
【０７００】
例を挙げると、テンソルデータ中のデータの状態を設定でき、既に同期された一部のデータを同期済みに設定し、同期されていない一部のデータを同期待ちに設定する。この場合、第１のプロセッサは、第２のプロセッサからの記述子同期要求命令を受信した場合、記述子に基づいて同期待ちのテンソルデータを確定し、テンソルデータ中のデータの状態に基づいて、同期待ち状態にいる第２のサブデータを確定でき、第２のサブデータおよび記述子同期要求命令が示す同期可能データ量に基づいて、今回同期する第１のサブデータを確定できる。
【０７０１】
可能な一実現形態において、第２のサブデータのデータ量が同期可能データ量よりも大きいと、第２のサブデータ中から今回同期する第１のサブデータを選択でき、第２のサブデータのデータ量が同期可能データ量以下であると、第２のサブデータを直接第１のサブデータとすることができる。
【０７０２】
このような方式によって、テンソルデータの一部の同期を実現するために、今回同期する一部のデータを確定できて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
【０７０３】
例を挙げると、第１のプロセッサは、テンソルデータの第１のサブデータに基づいて記述子同期命令を生成して送信することで、第２のプロセッサがテンソルデータの第１のサブデータの同期を実現するようにした後、第１のプロセッサは、テンソルデータ中のデータの状態を変更でき、すなわち、第１のサブデータの状態を同期待ち状態から同期済み状態に変更できる。このように、次回第２のプロセッサの同期要求を受信した場合、同期待ち状態にいる一部のデータ中から次回同期するデータを確定できることによって、データの繰り返し同期を回避して、データ同期の効率を向上させることができる。
【０７０４】
図３ｅ１は、本発明の実施例に係るデータ同期方法を示すフローチャートである。図３ｅ１に示されたように、当該方法は、第２のプロセッサに適用され、当該方法は、以下のステップを含む。
【０７０５】
ステップＳ３１ｅにおいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子、および、前記テンソルデータに対する同期可能データ量に基づいて、第１のプロセッサを指示して前記第１のプロセッサが前記記述子同期要求命令に従って同期待ちのテンソルデータの記述子、および、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される第１のサブデータを、確定するための記述子同期要求命令を生成し、
ステップＳ３２ｅにおいて、前記記述子同期要求命令を前記第１のプロセッサに送信する。
【０７０６】
例を挙げると、複数のプロセッサ中の第２のプロセッサがデータ同期の受信側であり、第２のプロセッサによりテンソルデータの一部に対する同期要求を開始すると設定できる。ステップＳ３１ｅにおいて、第２のプロセッサ中に同期待ちのテンソルデータが存在する場合、テンソルデータの記述子、および、第２のプロセッサ自身の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量、すなわち同期可能データ量を確定できる。当該テンソルデータの記述子および同期可能データ量に基づいて、第２のプロセッサは、記述子同期要求命令を生成してステップＳ３２ｅにおいて当該命令を送信できる。当該記述子同期要求命令は、記述子の識別子を含んでもよく、記述子の内容およびテンソルデータのデータ特徴の中の少なくとも一つは、第１のプロセッサを指示して前記第１のプロセッサが当該命令に基づいて同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定するようにするために使用される。
【０７０７】
可能な一実現形態において、第１のプロセッサは、記述子同期要求命令を受信した場合、当該命令を解析して、同期待ちのテンソルデータの記述子および同期可能データ量を確定し、記述子に基づいて同期待ちのテンソルデータを確定し、且つ、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、前記同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０７０８】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると、同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０７０９】
可能な一実現形態において、同期待ちの一部のデータを指定して取得するように、記述子同期要求命令中には、例えば、当該一部のサブデータの記述子内容または記憶アドレス範囲などの、同期待ちのテンソルデータの一部のデータの範囲が含まれてもよい。
【０７１０】
このような方式によって、受信側によりテンソルデータの一部の同期要求を開始して、送信側が今回同期するサブデータを確定することができて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０７１１】
前記第１のプロセッサからの記述子同期命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
【０７１２】
例を挙げると、第１のプロセッサは、テンソルデータの記述子および第１のサブデータ記述子に基づいて同期命令を生成して送信できる。第２のプロセッサは、当該記述子同期命令を受信した場合、当該命令を解析して同期待ちのテンソルデータの記述子および今回同期する当該テンソルデータの第１のサブデータを確定し、さらに記述子に基づいて同期待ちのテンソルデータを確定し、且つ、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０７１３】
このような方式によって、受信側は、記述子同期命令に基づいて記述子を確定して今回同期するサブデータを取得できて、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
【０７１４】
可能な一実現形態において、データ同期の送信側に同期待ちのテンソルデータがあり、例えば、第１のプロセッサが一つの演算を完成して演算結果（テンソルデータ）を得た場合、テンソルデータの一部の同期を実行するように、送信側により、受信側の状態を照会して、データ同期の受信側の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量を確定できる。
【０７１５】
可能な一実現形態において、データ同期方法をさらに提供し、第１のプロセッサに適用され、当該方法は、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、第２のプロセッサを指示して前記第２のプロセッサが前記テンソルデータに対する同期可能データ量を確定し同期状態命令を生成するための状態照会命令であって、前記記述子の識別子及び／又は前記記述子の内容を含む状態照会命令を、生成することと、前記状態照会命令を第２のプロセッサに送信することと、を含む。
【０７１６】
例を挙げると、データ同期の送信側に同期待ちのテンソルデータがある場合、例えば、第１のプロセッサが一つの演算を完成して演算結果（テンソルデータ）を得た場合、テンソルデータの一部の同期を実行するように、送信側により、受信側の状態を照会して、データ同期の受信側の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量を確定できる。複数のプロセッサ中の第１のプロセッサがデータ同期の送信側であり、第２のプロセッサがデータ同期の受信側であると設定できる。第１のプロセッサと第２のプロセッサは、いずれも複数のプロセッサの中の任意のプロセッサであり、第２のプロセッサは、第１のプロセッサのタイプと同一であるかまたは異なってもよく、本発明は、第１のプロセッサと第２のプロセッサのタイプに対して限定しない。
【０７１７】
可能な一実現形態において、第２のプロセッサを指示して前記第２のプロセッサが自身の状態（すなわち、テンソルデータに対する同期可能データ量）を確定して返信するように、第１のプロセッサは、同期待ちのテンソルデータの記述子に基づいて、状態照会命令を生成できる。当該状態照会命令は、同期待ちのテンソルデータの記述子の識別子及び／又は記述子の内容を含んでもよい。
【０７１８】
可能な一実現形態において、第１のプロセッサは、状態照会命令を第２のプロセッサに送信できる。第２のプロセッサは、当該状態照会命令を受信した後、当該命令を解析することによって、記述子の識別子及び／又は記述子の内容を確定できる。記述子の識別子及び／又は記述子の内容に基づいて、第２のプロセッサは、同期待ちのテンソルデータを確定し、さらに当該テンソルデータに割り当てることができる空間を確定して、当該テンソルデータに対する同期可能データ量を確定できる。当該テンソルデータに対する同期可能データ量および記述子に基づいて、第１のプロセッサが同期待ちのテンソルデータの記述子および今回同期する同期可能データ量を確定できるように、第２のプロセッサは、同期状態命令を生成して送信する。
【０７１９】
このような方式によって、送信側と受信側との間の一部のデータ同期を実現するように、データ同期の送信側により受信側の状態を能動的に照会できて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０７２０】
前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定することと、
【０７２１】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、記述子同期命令を生成して前記記述子同期命令を前記第２のプロセッサに送信することと、をさらに含む。
【０７２２】
例を挙げると、第１のプロセッサは、第２のプロセッサからの同期状態命令を受信した場合、当該命令を解析して当該命令の内容（例えば、記述子の識別子、同期可能データ量など）を得る。記述子の識別子に基づいて、同期待ちのテンソルデータの記述子を確定することによって、同期待ちのテンソルデータを確定し、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、前記同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０７２３】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０７２４】
可能な一実現形態において、同期待ちの一部のデータを指定して取得するように、同期状態命令には、例えば、当該一部のサブデータの記述子内容または記憶アドレス範囲などの、同期待ちのテンソルデータの一部のデータの範囲が含まれてもよい。第１のプロセッサは、当該一部のデータの範囲に基づいて同期待ちの第１のサブデータを直接確定できる。
【０７２５】
可能な一実現形態において、第１のプロセッサは、第１のサブデータに基づいて記述子同期命令を生成して前記記述子同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータの記述子の識別子および第１のサブデータが含まれてもよい。第２のプロセッサは、記述子同期命令を受信した後、当該命令を解析して同期待ちのテンソルデータの記述子およびテンソルデータの第１のサブデータを確定し、記述子に基づいて同期待ちのテンソルデータを確定し、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０７２６】
このような方式によって、同期状態命令中の記述子に基づいてテンソルデータを確定し、受信側の同期可能データ量に基づいて今回同期するサブデータを確定し、、受信側が今回同期するサブデータを取得するように、当該サブデータ記述子に基づいて同期命令を生成して送信することにより、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
【０７２７】
可能な一実現形態において、同期状態命令は、記述子の識別子を含む。前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定するステップは、
前記同期状態命令を解析して、前記記述子の識別子および同期可能データ量を得ることと、
前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含んでもよい。
【０７２８】
例を挙げると、同期状態命令中には、記述子の識別子（例えば、識別子がＴＲ１である）および同期可能データ量が含まれてもよい。第１のプロセッサは、同期状態命令を解析して記述子の識別子および同期可能データ量を得、さらに記述子の識別子に基づいて、同期待ちのテンソルデータの記述子を確定できる。
このような方式によって、同期の際に伝送するデータ量を削減して、処理効率を向上させることができる。
【０７２９】
可能な一実現形態において、前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令中のテンソルデータの記述子および同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定するステップは、
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期状態命令中の同期可能データ量に基づいて、第１のサブデータを確定することと、を含んでもよい。
【０７３０】
例を挙げると、テンソルデータ中のデータの状態を設定でき、既に同期された一部のデータを同期済みに設定し、同期されていない一部のデータを同期待ちに設定する。この場合、当第１のプロセッサは、第２のプロセッサからの同期状態命令を受信した場合、記述子に基づいて同期待ちのテンソルデータを確定し、テンソルデータ中のデータの状態に基づいて、同期待ち状態にいる第２のサブデータを確定し、第２のサブデータおよび同期状態命令が示す同期可能データ量に基づいて、今回同期する第１のサブデータを確定できる。
【０７３１】
可能な一実現形態において、第２のサブデータのデータ量が同期可能データ量よりも大きいと、第２のサブデータ中から今回同期する第１のサブデータを選択でき、第２のサブデータのデータ量が同期可能データ量以下であると、第２のサブデータを直接第１のサブデータとすることができる。
【０７３２】
このような方式によって、テンソルデータの一部の同期を実現するように、今回同期する一部のデータを確定できて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
【０７３３】
例を挙げると、第１のプロセッサは、テンソルデータの第１のサブデータに基づいて記述子同期命令を生成して送信することで、第２のプロセッサがテンソルデータの第１のサブデータの同期を実現するようにした後、第１のプロセッサは、テンソルデータ中のデータの状態を変更でき、すなわち、第１のサブデータの状態を同期待ち状態から同期済み状態に変更できる。このように、次回に第２のプロセッサの状態を照会して第２のプロセッサの同期状態命令を受信した場合、同期待ち状態にいる一部のデータ中から次回同期するデータを確定できることによって、データの繰り返し同期を回避して、データ同期の効率を向上させることができる。
可能な一実現形態において、データ同期方法をさらに提供し、第１のプロセッサに適用され、当該方法は、
【０７３４】
第１のプロセッサからの状態照会命令を受信した場合、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータに対する同期可能データ量を確定することと、
【０７３５】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記第１のプロセッサを指示して前記第１のプロセッサが前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するための、同期状態命令を生成することと、
前記同期状態命令を前記第１のプロセッサに送信することと、を含む。
【０７３６】
例を挙げると、データ同期の送信側に同期待ちのテンソルデータがある場合、送信側により受信側の状態を照会してもよい。第１のプロセッサ（送信側）は、状態照会命令を生成して送信し、第２のプロセッサは当該状態照会命令を受信した場合、当該命令を解析して、既に同期待ちのテンソルデータの記述子を確定した。
【０７３７】
可能な一実現形態において、第２のプロセッサは、テンソルデータの一部の同期を実行するように、当該記述子に基づいて同期待ちのテンソルデータを確定し、自身の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量、すなわち同期可能データ量を確定できる。
【０７３８】
可能な一実現形態において、第１のプロセッサを指示して前記第１のプロセッサが同期待ちのテンソルデータの記述子および今回同期する同期可能データ量を確定するように、第２のプロセッサは、確定された同期可能データ量および当該テンソルデータの記述子に基づいて、同期状態命令を生成して第１のプロセッサに送信するすることができる。第１のプロセッサは、今回同期できる一部のデータ（すなわち、第１のサブデータ）を確定した後、記述子同期命令を生成し、前記記述子同期命令を第２のプロセッサに送信する。当該命令中には、同期待ちのテンソルデータの記述子の識別子および第１のサブデータが含まれてもよい。
【０７３９】
このような方式によって、送信側により受信側の状態を照会し、受信側は、状態照会命令を受信した後に自身の状態（すなわち、同期可能データ量である）を確定して返信し、対話を通じてテンソルデータの一部の同期を実現して、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０７４０】
前記第１のプロセッサからの記述子同期命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
【０７４１】
例を挙げると、第２のプロセッサは、記述子同期命令を受信した場合、当該命令を解析して同期待ちのテンソルデータの記述子および今回同期する当該テンソルデータの第１のサブデータを確定し、さらに記述子に基づいて同期待ちのテンソルデータを確定し、且つ、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０７４２】
このような方式によって、受信側は、記述子同期命令に基づいて記述子を確定して今回同期するサブデータを取得できて、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
【０７４３】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、プロセッサの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなど）中の記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、プロセッサの内部メモリ（例えば、オンチップキャッシュ）、または、プロセッサと接続された外部メモリ（オフチップメモリ）中の記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【０７４４】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同一の領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスがＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１が記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３が記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３が記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０７４５】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタ中に記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０７４６】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子中のデータは、即時値にすることも、専用レジスタ中から取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタ中の記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０７４７】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０７４８】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、プロセッサは記述子の内容に基づいてテンソルデータのデータアドレスを確定できる。
【０７４９】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０７５０】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０７５１】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスがデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間中の１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスが当該データブロックのデータ記憶空間における物理アドレスである。
【０７５２】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記テンソルデータのデータ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータ中の点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータは３次元空間における点または領域の位置にマッピングすることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０７５３】
本発明の実施例に係るデータ同期方法によると、データ同期の受信側空間が不足である場合、テンソルデータの一部の同期を実現し、複数回の一部の同期によって全体的なテンソルデータの同期を実現できることによって、空間が不足である場合テンソルデータ全体的な同期に失敗するかまたは同期が遅延されるなどの問題を回避して、データ同期の効率を向上させることができ、テンソルデータの形状を示す記述子が設定されており、データ同期過程で記述子に基づいてテンソルデータを確定することによって、同期オーバーヘッドを削減して、データアクセスの複雑度を低下させた。
【０７５４】
説明する必要があるのは、前述の各方法の実施例において、簡単に説明するために、それらをいずれも一連の動作の組み合わせとして表現したが、当業者は、本発明は説明された動作の順序に限定されないし、なぜなら、本発明によると、いくつかのステップを他の順序で実行するかまたは同時に実行できることを了解すべきである。次に、当業者は、明細書に説明された実施例は、いずれもオプションとする実施例に属し、関わる動作およびモジュールは必ずとして本発明にとって必須なものではないことも理解すべきである。
【０７５５】
さらに説明する必要があるのは、フローチャートでの各ステップは矢印に従って順に示したが、これらのステップは必ずとして矢印が示す順序に従って順に実行する必要がない。本明細書に明確な説明がない限り、これらのステップの実行に対して厳密の順序を限定しなく、これらのステップを他の順序に従って実行してもよい。さらに、フローチャートでの少なくとも一部ステップは、複数のサブステップまたは複数の段階を含んでもよく、これらのサブステップまたは段階は、必ずとして一つのタイミングで実行を完成させる必要がなく、異なるタイミングで実行させてもよいし、これらのサブステップまたは段階の実行順序も必ずとして順に実行させる必要がなく、他のステップまたは他のステップのサブステップまたは段階の少なくとも一部と交互または交替に実行させることができる。
【０７５６】
図３ｅ２は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第１のプロセッサに適用され、図３ｅ２に示されたように、当該データ同期装置は、
【０７５７】
前記第２のプロセッサからの記述子同期要求命令を受信した場合、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子、および、前記テンソルデータに対する同期可能データ量を確定するための記述子およびデータ量確定モジュール５１ｅと、
【０７５８】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するためのサブデータ確定モジュール５２ｅと、
【０７５９】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、記述子同期命令を生成して前記記述子同期命令を前記第２のプロセッサに送信するための同期命令生成および送信モジュール５３ｅと、を備える。
可能な一実現形態において、前記サブデータ確定モジュールは、
【０７６０】
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定するための第１の確定サブモジュールと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定するための第２の確定サブモジュールと、を備える。
可能な一実現形態において、前記装置は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更するための状態変更モジュールをさらに備える。
可能な一実現形態において、前記記述子同期要求命令は、記述子の識別子を含み、ここで、前記記述子およびデータ量確定モジュールは、
前記記述子同期要求命令を解析して、前記記述子の識別子および同期可能データ量を得るための第１の解析サブモジュールと、
第１の前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定するための第１の記述子確定サブモジュールと、を備える。
【０７６１】
可能な一実現形態において、前記記述子同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、ここで、前記記述子およびデータ量確定モジュールは、
前記記述子同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を得るための第２の解析サブモジュールと、
前記テンソルデータのデータ特徴に基づいて、前記テンソルデータの記述子を確定するための第２の記述子確定サブモジュールと、を備える。
【０７６２】
図３ｅ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第２のプロセッサに適用され、図３ｅ３に示されたように、当該データ同期装置は、
【０７６３】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子、および、前記テンソルデータに対する同期可能データ量に基づいて、第１のプロセッサを指示して前記第１のプロセッサが記述子同期要求命令に従って同期待ちのテンソルデータの記述子、および、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される第１のサブデータを、確定するための記述子同期要求命令を生成するための要求命令生成モジュール６１ｅと、
前記記述子同期要求命令を前記第１のプロセッサに送信するための要求命令送信モジュール６２ｅと、を備える。
可能な一実現形態において、前記装置は、
【０７６４】
前記第１のプロセッサからの記述子同期命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定するための記述子およびサブデータ確定モジュールと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶するためのデータ記憶モジュールと、をさらに備える。
【０７６５】
上記の装置の実施例は、ただ模式的なもののであり、本発明の装置はさらに他の方式によって実現されてもよいことを理解すべきである。例えば、上記の実施例中の前記ユニット/モジュールの区分けは、ただ論理機能に基づく区分けであり、実際に実現するときに他の区分け方式があってもよい。例えば、複数のユニット、モジュール、または、コンポーネントを、組み合わせたり、もう一つのシステムに統合したり、いくつかの特徴を省略するか実行しないことができる。
【０７６６】
また、特に説明しない限り、本発明の各実施例中の各機能ユニット/モジュールを一つのユニット/モジュールに統合してもよいし、各ユニット/モジュールが単独に物理的に存在してもよいし、二つまたは二つの以上ユニット/モジュールを一つに統合してもよい。上記の統合のユニット/モジュールを、ハードウェアの形式で実現してもよいし、ソフトウェアプログラムモジュールの形式で実現してもよい。
【０７６７】
前記統合されたユニット/モジュールをハードウェアの形式で実現する場合、当該ハードウェアは、デジタル回路、アナログ回路などであってもよい。ハードウェア構造の物理的な実現は、トランジスタ、メモリスタなどを含むが、これらに限定されない。特に説明しない限り、前記人工知能プロセッサは例えば、ＣＰＵ、ＧＰＵ、ＦＰＧＡ、ＤＳＰ、ＡＳＩＣなどの、いかなる適当なハードウェアプロセッサであってもよい。特に説明しない限り、前記記憶ユニットは、例えば、抵抗性ランダムアクセスメモリＲＲＡＭ（Ｒｅｓｉｓｔｉvｅ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、動的ランダムアクセスメモリＤＲＡＭ（ＤｙｎａＭｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、静的ランダムアクセスメモリＳＲＡＭ（Ｓｔａｔｉｃ Ｒａｎｄｏｍ乃至Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、拡張動的ランダムアクセスメモリＥＤＲＡＭ（Ｅｎｈａｎｃｅｄ Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、高帯域幅メモリＨＢＭ（Ｈｉｇｈ-Ｂａｎｄｗｉｄｔｈ Ｍｅｍｏｒｙ）、ハイブリッドストレージキューブＨＭＣ（Ｈｙｂｒｉｄ Ｍｅｍｏｒｙ Ｃｕｂｅ）などの、いかなる適当な磁気記憶媒体または光磁気記憶媒体であってもよい。
【０７６８】
前記統合のユニット/モジュールがソフトウェアプログラムモジュールの形式で実現され、また独立した製品として販売または使用される場合、一つのコンピュータ読み取り可能なメモリに記憶できる。このような理解に基づいて、本発明の技術案は、本質的に、または、先行技術に寄与する一部または当該技術案の全部または一部は、ソフトウェア製品の形式で具体化されることができる。当該コンピュータソフトウェア製品は、一つのメモリに記憶され、一つのコンピュータデバイス（パーソナルコンピュータ、サーバ、または、ネットワークデバイスなどであってもよい）に本発明の各実施例に記載の方法の全部または一部のステップを実行させるためのいくつかの命令を含む。前述のメモリは、Ｕディスク、読み取り専用メモリ（ＲＯＭ、Ｒｅａｄ-Ｏｎｌｙ Ｍｅｍｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ、Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、モバイルハードディスク、磁気ディスクまたは光ディスクなどの、プログラムコードを記憶できる様々な媒体を含む。
可能な一実現形態において、人工知能チップをさらに開示し、前記人工知能チップは上記のデータ同期装置を備える。
【０７６９】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０７７０】
上記の実施例において、各実施例に対する説明にはそれぞれ焦点が当てられているが、特定の実施例で詳細に説明されていない部分については、他の実施例の関連する説明を参照することができる。上記の実施例の各技術的特徴は、任意の組み合わせることができ、説明を簡潔にするため、上記の実施例中の各技術的特徴のすべての可能の組み合わせに対して説明されていない。ただし、これら技術的特徴の組み合わせに矛盾がない限り、すべて本明細書に記載の範囲と見なされるべきである。
前述の内容は、次の条項に従ってよりよく理解できる。
Ａ１、データ同期方法であって、前記方法は、第１のプロセッサに適用され、前記方法は、
【０７７１】
第２のプロセッサからの記述子同期要求命令を受信した場合、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子、および、前記テンソルデータに対する同期可能データ量を確定することと、
【０７７２】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定することと、
【０７７３】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように，前記第１のサブデータに基づいて、記述子同期命令を生成して前記記述子同期命令を前記第２のプロセッサに送信することと、を含む。
【０７７４】
Ａ２、請求項Ａ１に記載の方法であって、前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定することは、
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定することと、を含む。
Ａ３、請求項Ａ１またはＡ２に記載の方法であって、前記方法は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
Ａ４、請求項Ａ１乃至Ａ３の中のいずれか１項に記載の方法であって、前記記述子同期要求命令は、記述子の識別子を含み、
【０７７５】
ここで、前記第２のプロセッサからの記述子同期要求命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータに対する同期可能データ量を確定することは、
前記記述子同期要求命令を解析して、前記記述子の識別子および同期可能データ量を得ることと、
前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定することと、を含む。
Ａ５、請求項Ａ１乃至Ａ３の中のいずれか１項に記載の方法であって、前記記述子同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、
【０７７６】
ここで、前記第２のプロセッサからの記述子同期要求命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータに対する同期可能データ量を確定することは、
前記記述子同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を得ることと、
前記テンソルデータのデータ特徴に基づいて、前記テンソルデータの記述子を確定することと、を含む。
Ａ６、データ同期方法であって、前記方法は、第２のプロセッサに適用され、前記方法は、
【０７７７】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子、および、前記テンソルデータに対する同期可能データ量に基づいて、第１のプロセッサを指示して前記第１のプロセッサが前記記述子同期要求命令に従って同期待ちのテンソルデータの記述子、および、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される第１のサブデータを、確定するための記述子同期要求命令を生成することと、
前記記述子同期要求命令を前記第１のプロセッサに送信することと、を含む。
Ａ７、請求項Ａ６に記載の方法であって、前記方法は、
【０７７８】
前記第１のプロセッサからの記述子同期命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
Ａ８、データ同期装置であって、前記装置は、第１のプロセッサに適用され、前記装置は、
【０７７９】
第２のプロセッサからの記述子同期要求命令を受信した場合、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子、および、前記テンソルデータに対する同期可能データ量を確定するための記述子およびデータ量確定モジュールと、
【０７８０】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するためのサブデータ確定モジュールと、
【０７８１】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように，前記第１のサブデータに基づいて、記述子同期命令を生成して前記記述子同期命令を前記第２のプロセッサに送信するための同期命令生成および送信モジュールと、を備える。
Ａ９、請求項Ａ８に記載の装置であって、前記サブデータ確定モジュールは、
【０７８２】
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定するための第１の確定サブモジュールと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定するための第２の確定サブモジュールと、を備える。
Ａ１０、請求項Ａ８またはＡ９に記載の装置であって、前記装置は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更するための状態変更モジュールをさらに備える。
【０７８３】
Ａ１１、請求項Ａ８乃至Ａ１０の中のいずれか１項に記載の装置であって、前記記述子同期要求命令は、記述子の識別子を含み、ここで、前記記述子およびデータ量確定モジュールは、
前記記述子同期要求命令を解析して、前記記述子の識別子および同期可能データ量を得るための第１の解析サブモジュールと、
前記記述子の識別子に基づいて、前記同期待ちのテンソルデータの記述子を確定するための記述子確定サブモジュールと、を備える。
【０７８４】
Ａ１２、請求項Ａ８乃至Ａ１０の中のいずれか１項に記載の装置であって、前記記述子同期要求命令は、前記同期待ちのテンソルデータのデータ特徴を含み、ここで、前記記述子およびデータ量確定モジュールは、
前記記述子同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を得るための第２の解析サブモジュールと、
前記テンソルデータのデータ特徴に基づいて、前記テンソルデータの記述子を確定するための第２の記述子確定サブモジュールと、を備える。
Ａ１３、データ同期装置であって、前記装置は、第２のプロセッサに適用され、前記装置は、
【０７８５】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子、および、前記テンソルデータに対する同期可能データ量に基づいて、第１のプロセッサを指示して前記第１のプロセッサが前記記述子同期要求命令に従って同期待ちのテンソルデータの記述子、および、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される第１のサブデータを、確定するための記述子同期要求命令を生成するための要求命令生成モジュールと、
前記記述子同期要求命令を前記第１のプロセッサに送信するための要求命令送信モジュールと、を備える。
Ａ１４、請求項Ａ１３に記載の装置であって、前記装置は、
【０７８６】
前記第１のプロセッサからの記述子同期命令を受信した場合、同期待ちのテンソルデータの記述子および前記テンソルデータの第１のサブデータを確定するための記述子およびサブデータ確定モジュールと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶するためのデータ記憶モジュールと、をさらに備える。
Ａ１５、人工知能チップであって、前記チップは、請求項Ａ８乃至Ａ１４の中のいずれか１項に記載のデータ同期装置を備える。
Ａ１６、電子デバイスであって、前記電子デバイスは、請求項Ａ１５に記載の人工知能チップを備える。
【０７８７】
Ａ１７、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ１５に記載の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０７８８】
Ａ１８、請求項Ａ１７に記載のボードカードであって、前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０７８９】
人工知能技術の継続的な発展に伴って、その応用分野はますます広範になり、画像認識、音声認識、自然言語処理などの分野で十分に適用されている。ただし、人工知能アルゴリズムの複雑度の増大に伴って、処理する必要のあるデータ量とデータ次元とがいずれも継続的に増加しており、通常、マルチコア及び／又はマルチチップのデータ処理が必要である。コア間またはチップ間のデータ同期を実行する場合、関連技術を使用する同期方式は同期オーバーヘッドがより大きく、処理効率がより低い。
【０７９０】
本発明の実施例によると、データ同期方法が提供される。図１ｈは、本発明の実施例に係るデータ同期方法を示すフローチャートである。図１ｈに示されたように、当該方法は、第１のプロセッサ（処理システム中の任意の一つのプロセッサ）に適用され、当該方法は、以下のステップを含む。
【０７９１】
ステップＳ１１ｈにおいて、第２のプロセッサからの同期要求命令を受信した場合、前記同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータに対する同期可能データ量を得、
ステップＳ１２ｈにおいて、前記データ特徴に基づいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定し、
【０７９２】
ステップＳ１３ｈにおいて、前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定し、
【０７９３】
ステップＳ１４ｈにおいて、前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、同期命令を生成して前記同期命令を前記第２のプロセッサに送信する。
例を挙げると、同期待ちのデータは、Ｎ次元のテンソルデータ（Ｎは、ゼロ以上の整数であり、例えば、Ｎ=１、２、または、３である）を含んでもよい。
【０７９４】
可能な一実現形態において、データ処理過程で、複数のプロセッサ（例えば、人工知能チップの複数のコア）間のデータ同期を実行する必要があるかもしれなく、例えば、プロセッサＡ１の演算結果をもう一つの演算の入力データとしてプロセッサＡ２に同期させる。この場合、記述子に基づくデータ同期メカニズムを使用してデータ同期を実現できる。
【０７９５】
可能な一実現形態において、各プロセッサの非共有記憶空間での、同期待ちのテンソルデータに割り当てることができる空間が制限されて、テンソルデータの全体的な同期が実現されない。この場合、テンソルデータの一部の同期を実行し、複数回の一部の同期によって全体的なテンソルデータの同期過程を実現できる。
【０７９６】
可能な一実現形態において、データ同期の受信側により、テンソルデータの一部に対する同期要求を開始させることができ、すなわち、受信側が同期要求命令を発し、当該命令中には、同期待ちのテンソルデータを示すデータ特徴、および、当該テンソルデータに対する同期可能データ量、すなわち受信側の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量が含まれてもよい。
【０７９７】
可能な一実現形態において、複数のプロセッサ中の第１のプロセッサがデータ同期の送信側であり、第２のプロセッサがデータ同期の受信側であると設定できる。第１のプロセッサと第２のプロセッサは、いずれも複数のプロセッサの中の任意のプロセッサであり、第２のプロセッサは、第１のプロセッサのタイプと同一であるかまたは異なってもよく、本発明は、第１のプロセッサと第２のプロセッサのタイプに対して限定しない。
【０７９８】
可能な一実現形態において、第１のプロセッサは、ステップＳ１１ｈにおいて第２のプロセッサからの同期要求命令を受信した場合、当該命令を解析して当該命令の内容、すなわち同期待ちのテンソルデータのデータ特徴および同期可能データ量を得ることができる。当該データ特徴は、テンソルデータの識別子（例えば、データ番号）、形状、ソース、記憶アドレスなどの情報の中の少なくとも一つを含んでもよい。
【０７９９】
可能な一実現形態において、同期待ちのテンソルデータのデータ特徴は、テンソルデータの識別子、形状、ソース、アドレスなどの情報を含んでもよい。例えば、当該テンソルデータのデータソースはＫ番目の送信側（Ｋ番目のプロセッサ）であり、当該テンソルデータのデータソースは番号２００の畳み込み操作の演算結果であり、当該テンソルデータのアドレスは特定のアドレス領域（例えば、アドレスＡＤＤＲ０〜ＡＤＤＲ１２７）であり、当該テンソルデータの形状は指定された形状（例えば、２０＊１０の２次元テンソル）である。当業者は、実際の状況に従って同期待ちのテンソルデータのデータ特徴を設定でき、本発明はこれに対して限定しない。
【０８００】
可能な一実現形態において、第１のプロセッサは、ステップＳ１２ｈにおいてデータ特徴に基づいて同期待ちのテンソルデータの記述子を確定し、さらにステップＳ１３ｈ中において記述子に基づいて同期待ちのテンソルデータを確定し、且つ、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、前記同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０８０１】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると、同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０８０２】
可能な一実現形態において、同期待ちの一部のデータを指定して取得するように、同期要求命令中には、例えば、当該一部のサブデータなど記憶アドレス範囲などの、同期待ちのテンソルデータの一部のデータの範囲が含まれてもよい。第１のプロセッサは、当該一部のデータの範囲に基づいて同期待ちの第１のサブデータを直接確定できる。
【０８０３】
可能な一実現形態において、ステップＳ１４ｈにおいて、第１のプロセッサは、第１のサブデータに基づいて同期命令を生成して前記同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータのデータ特徴および第１のサブデータを含まれてもよい。第２のプロセッサは、同期命令を受信した後、当該命令を解析して当該データ特徴および第１のサブデータを確定することによって、当該データ特徴に基づいて記述子を確定し、記述子に基づいて同期待ちのテンソルデータを確定し、且つ、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０８０４】
このような方式によって、受信側は、同期要求命令を発して同期一部のデータを能動的に要求することができ、送信側は、受信側の同期可能データ量に基づいて今回同期するサブデータを確定し、受信側が今回同期するサブデータを取得するように、当該サブデータに基づいて同期命令を生成して送信することができて、命令の構成を変更せずに同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
可能な一実現形態において、ステップＳ１３ｈは、
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定することと、を含んでもよい。
【０８０５】
例を挙げると、テンソルデータ中のデータの状態を設定でき、既に同期された一部のデータを同期済みに設定し、同期されていない一部のデータを同期待ちに設定する。この場合、第１のプロセッサは、第２のプロセッサからの同期要求命令を受信した場合、テンソルデータ中のデータの状態に基づいて、同期待ち状態にいる第２のサブデータを確定でき、第２のサブデータおよび同期要求命令が示す同期可能データ量に基づいて、今回同期する第１のサブデータを確定できる。
【０８０６】
可能な一実現形態において、第２のサブデータのデータ量が同期可能データ量よりも大きいと、第２のサブデータ中から今回同期する第１のサブデータを選択でき、第２のサブデータのデータ量が同期可能データ量以下であると、第２のサブデータを直接第１のサブデータとすることができる。
【０８０７】
このような方式によって、テンソルデータの一部の同期を実現するように、今回同期する一部のデータを確定できて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
【０８０８】
例を挙げると、第１のプロセッサは、テンソルデータの第１のサブデータに基づいて同期命令生成して送信することによって、第２のプロセッサがテンソルデータの第１のサブデータの同期を実現するようにした後、第１のプロセッサは、テンソルデータ中のデータの状態を変更でき、すなわち、第１のサブデータの状態を同期待ち状態から同期済み状態に変更できる。このように、次回に第２のプロセッサの同期要求命令を受信した場合、同期待ち状態にいる一部のデータ中から次回同期するデータを確定できることによって、データの繰り返し同期を回避して、データ同期の効率を向上させることができる。
【０８０９】
図３ｆ１は、本発明の一実施例に係るデータ同期方法を示すフローチャートである。図３ｆ１に示されたように、当該方法は、第２のプロセッサに適用され、当該方法は、以下のステップを含む。
【０８１０】
ステップＳ３１ｆにおいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータのデータ特徴および前記テンソルデータに対する同期可能データ量を確定し、
【０８１１】
ステップＳ３２ｆにおいて、前記データ特徴および前記同期可能データ量に基づいて、第１のプロセッサを指示して前記第１のプロセッサが前記同期要求命令に基づいて同期待ちのテンソルデータ、および、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される第１のサブデータを、確定するようにするための同期要求命令を生成して、前記同期要求命令を第１のプロセッサに送信する。
【０８１２】
例を挙げると、データ同期の受信側（すなわち、第２のプロセッサ）により、テンソルデータの一部に対する同期要求を開始することができる。第２のプロセッサ中に同期待ちのテンソルデータが存在する場合、テンソルデータの記述子を確定できる。当該記述子は、既に登録（作成）された当該テンソルデータの形状を示すための記述子であってもよいし、当該テンソルデータの形状パラメータに基づいて新たな記述子を登録（作成）してもよく、本発明はこれに対して限定しない。
【０８１３】
可能な一実現形態において、ステップＳ３１ｆにおいて、第２のプロセッサは、当該記述子に基づいて、例えば、テンソルデータの識別子（例えば、データ番号）、形状、ソース、記憶アドレスなどの情報の中の少なくとも一つのような、テンソルデータのデータ特徴を確定できる。また、第２のプロセッサは、自身の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量、すなわち同期可能データ量を確定できる。
【０８１４】
可能な一実現形態において、ステップＳ３２ｆにおいて、当該テンソルデータのデータ特徴および同期可能データ量に基づいて、第２のプロセッサは、同期要求命令を生成して当該命令を送信できる。当該同期要求命令は、第１のプロセッサを指示して前記第１のプロセッサが当該命令に基づいて同期待ちのテンソルデータを確定して前記テンソルデータの第１のサブデータを確定するようにするために使用できる。
【０８１５】
可能な一実現形態において、データ同期の受信側（すなわち、第１のプロセッサ）は、同期要求命令を受信した場合、当該命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を確定し、データ特徴に基づいて同期待ちのテンソルデータの記述子を確定し、記述子に基づいて同期待ちのテンソルデータを確定し、且つ、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、前記同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０８１６】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると、同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０８１７】
可能な一実現形態において、同期待ちの一部のデータを指定して取得するように、同期要求命令中には、例えば、当該一部のサブデータの記述子内容または記憶アドレス範囲などの、同期待ちのテンソルデータの一部のデータの範囲が含まれてもよい。
【０８１８】
このような方式によって、受信側によりテンソルデータの一部の同期要求を開始して、送信側が今回同期するサブデータを確定することができて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０８１９】
前記第１のプロセッサからの同期命令を受信した場合、前記同期命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータの第１のサブデータを得ることと、
前記データ特徴に基づいて、前記テンソルデータの記述子を確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
【０８２０】
例を挙げると、第１のプロセッサは、テンソルデータのデータ特徴および第１のサブデータに基づいて同期命令を生成して送信できる。第２のプロセッサは、当該同期命令を受信した場合、当該命令を解析して同期待ちのテンソルデータのデータ特徴および今回同期する当該テンソルデータの第１のサブデータを確定し、データ特徴に基づいて記述子を確定し、さらに記述子に基づいて同期待ちのテンソルデータを確定し、且つ、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０８２１】
このような方式によって、受信側は、同期命令に基づいて記述子を確定して今回同期するサブデータを取得できて、同期オーバーヘッドを軽減し、データ同期の効率を向上し、命令伝送および処理過程での命令互換性を実現できる。
【０８２２】
可能な一実現形態において、データ同期の送信側に同期待ちのテンソルデータがあり、例えば、一つの演算を完成して演算結果（テンソルデータ）を得た場合、送信側により受信側の状態を照会して、データ同期の受信側の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量を確定することによって、テンソルデータの一部の同期を実行する。
可能な一実現形態において、データ同期方法をさらに提供し、第１のプロセッサに適用され、当該方法は、
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータのデータ特徴を確定することと、
【０８２３】
前記テンソルデータのデータ特徴に基づいて、第２のプロセッサを指示して前記第２のプロセッサが前記テンソルデータに対する同期可能データ量を確定し同期状態命令を生成するための状態照会命令を生成して、前記状態照会命令を第２のプロセッサに送信することと、を含む。
【０８２４】
例を挙げると、第１のプロセッサは、同期待ちのテンソルデータが存在すると確定した場合、当該テンソルデータの記述子を取得できる。当該記述子は、既に登録（作成）された当該テンソルデータの形状を示すための記述子であってもよいし、当該テンソルデータの形状パラメータに基づいて新たな記述子を登録（作成）してもよく、本発明はこれに対して限定しない。
【０８２５】
可能な一実現形態において、当該テンソルデータの記述子に基づいて、第１のプロセッサは、当該テンソルデータのデータ特徴を確定できる。当該データ特徴は、テンソルデータの識別子（例えば、データ番号）、形状、ソース、記憶アドレスなどの情報の中の少なくとも一つを含んでもよい。
【０８２６】
可能な一実現形態において、同期待ちのテンソルデータのデータ特徴は、テンソルデータの識別子、形状、ソース、アドレスなどの情報を含んでもよい。例えば、当該テンソルデータのデータソースはＫ番目の送信側（Ｋ番目のプロセッサ）であり、当該テンソルデータのデータソースは番号２００の畳み込み操作の演算結果であり、当該テンソルデータのアドレスは特定のアドレス領域（例えば、アドレスＡＤＤＲ０〜ＡＤＤＲ１２７）であり、当該テンソルデータの形状は指定された形状（例えば、２０＊１０の２次元テンソル）である。当業者は、実際の状況に従って同期待ちのテンソルデータのデータ特徴を設定でき、本発明はこれに対して限定しない。
【０８２７】
可能な一実現形態において、当該テンソルデータのデータ特徴に基づいて、第１のプロセッサは、状態照会命令を生成して当該状態照会命令を同期待ちの第２のプロセッサに送信できる。第２のプロセッサ中に当該テンソルデータの情報（例えば、当該同期待ちのテンソルデータを示す記述子が既に登録されている）を既に有すると、第２のプロセッサを指示して当該第２のプロセッサが当該テンソルデータの識別子に基づいて同期待ちのテンソルデータの記述子を確定するように、状態照会命令は、例えば、テンソルデータの識別子のような一部のデータ特徴のみを含んでもよい、第２のプロセッサ中に当該テンソルデータの情報を有さないと、同期命令は、例えば、テンソルデータの識別子および記憶アドレスなどの、より多くのデータ特徴を含んでもよく、第２のプロセッサを指示して当該第２のプロセッサが同期待ちのテンソルデータの記述子を確定するようにすることができる。本発明は、状態照会命令が含む具体的な内容に対して限定しない。
【０８２８】
可能な一実現形態において、状態照会命令がテンソルデータの識別子を含むと、第２のプロセッサは、当該識別子に基づいて同期待ちのテンソルデータを確定し、当該同期待ちのテンソルデータを示す記述子を登録するかまたは取得できる。状態照会命令がより多くのデータ特徴（識別子および記憶アドレスなど）を含むと、第２のプロセッサは、命令中のデータ特徴に基づいて当該テンソルデータを示す記述子を登録できる。
【０８２９】
可能な一実現形態において、同期待ちのテンソルデータの記述子を確定した後、第２のプロセッサは、記述子に対応するテンソルデータに割り当てすることができる空間を確定し、当該テンソルデータに対する同期可能データ量を確定できる。同期可能データ量およびデータ特徴に基づいて、第２のプロセッサは、同期状態命令を生成して送信することによって、第１のプロセッサが同期待ちのテンソルデータおよび今回同期する同期可能データ量を確定できるようにする。
【０８３０】
本発明の実施例に係るデータ同期方法によると、テンソルデータの形状を示す記述子を設定することによって、送信側は、記述子に基づいてテンソルデータのデータ特徴を確定し、データ特徴に基づいて状態照会命令を生成して送信することで、受信側を指示して前記受信側が状態照会命令に基づいて自身状態（すなわち、同期できるデータ量である）をフィードバックするようにすることができて、テンソルデータの一部の同期を実現し、更命令構成を変更しない場合、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０８３１】
前記第２のプロセッサからの同期状態命令を受信した場合、前記同期状態命令を解析して、同期待ちのテンソルデータのデータ特徴および同期可能データ量を確定することと、
前記データ特徴に基づいて、同期待ちのテンソルデータの記述子を確定することと、
【０８３２】
前記記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定することと、
【０８３３】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、同期命令を生成して前記同期命令を前記第２のプロセッサに送信することと、を含む。
【０８３４】
例を挙げると、第１のプロセッサは、第２のプロセッサからの同期状態命令を受信した場合、当該命令を解析して当該命令の内容、すなわち同期待ちのテンソルデータのデータ特徴および同期可能データ量を得ることができる。当該データ特徴に基づいて、同期待ちのテンソルデータの記述子を確定することによって、同期待ちのテンソルデータを確定し、且つ、同期可能データ量に基づいて当該テンソルデータ中から、今回同期できる一部のデータである第１のサブデータを確定できる。当該第１のサブデータのデータ量は、同期可能データ量と対応されることができ、例えば、第１のサブデータのデータ量は、前記同期可能データ量以下である。
【０８３５】
可能な一実現形態において、当該テンソルデータのすべてのデータがいずれも同期されていないと、第１のサブデータとして、当該テンソルデータ中から同期可能データ量のデータを選択でき、当該テンソルデータの一部のデータが同期されていないし、且つ、同期されていない一部のデータのデータ量が同期可能データ量よりも大きいと、第１のサブデータとして、同期されていない一部のデータ（すなわち、当該テンソルデータの第２のサブデータ）中から同期可能データ量のデータを選択でき、同期されていない一部のデータのデータ量が同期可能データ量以下であると、同期されていない一部のデータを直接第１のサブデータとすることができ、当業者は、実際の状況に従って第１のサブデータを確定でき、本発明はこれに対して限定しないことを理解すべきである。
【０８３６】
可能な一実現形態において、同期状態命令には、同期待ちのテンソルデータの一部のデータの範囲が含まれてもよく、例えば、当該一部のサブデータなどの記憶アドレス範囲など、同期待ちの一部のデータを指定して取得するようにする。第１のプロセッサは、当該一部のデータの範囲に基づいて同期待ちの第１のサブデータを直接確定できる。
【０８３７】
可能な一実現形態において、第１のプロセッサは、第１のサブデータに基づいて同期命令を生成して前記同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータのデータ特徴および第１のサブデータを含まれてもよい。第２のプロセッサは、同期命令を受信した後、当該命令を解析して同期待ちのテンソルデータのデータ特徴およびテンソルデータの第１のサブデータを確定し、データ特徴に基づいて記述子を確定し、記述子に基づいて同期待ちのテンソルデータを確定し、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０８３８】
このような方式によって、送信側からの同期状態命令に基づいてテンソルデータの記述子および同期可能データ量を確定し、同期可能データ量に基づいて今回同期するサブデータを確定し、受信側が今回同期するサブデータを取得するように、当該サブデータに基づいて同期命令を生成して送信することができて、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
可能な一実現形態において、前記記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定するステップは、
前記記述子に基づいて、同期待ちのテンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定することと、を含んでもよい。
【０８３９】
例を挙げると、テンソルデータ中のデータの状態を設定でき、既に同期された一部のデータを同期済みに設定し、同期されていない一部のデータを同期待ちに設定する。この場合、第１のプロセッサは、第２のプロセッサからの同期状態命令を受信した場合、テンソルデータ中のデータの状態に基づいて、同期待ち状態にいる第２のサブデータを確定し、第２のサブデータおよび同期状態命令が示す同期可能データ量に基づいて、今回同期する第１のサブデータを確定できる。
【０８４０】
可能な一実現形態において、第２のサブデータのデータ量が同期可能データ量よりも大きいと、第２のサブデータ中から今回同期する第１のサブデータを選択でき、第２のサブデータのデータ量が同期可能データ量以下であると、第２のサブデータを直接第１のサブデータとすることができる。
【０８４１】
このような方式によって、テンソルデータの一部の同期を実現するように、今回同期する一部のデータを確定できて、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
【０８４２】
例を挙げると、第１のプロセッサは、テンソルデータの第１のサブデータに基づいて同期命令生成して送信することによって、第２のプロセッサがテンソルデータの第１のサブデータの同期を実現するようにした後、第１のプロセッサは、テンソルデータ中のデータの状態を変更でき、すなわち、第１のサブデータの状態を同期待ち状態から同期済み状態に変更できる。このように、次回に第２のプロセッサの状態を照会して第２のプロセッサの同期状態命令を受信した場合、同期待ち状態にいる一部のデータ中から次回同期するデータを確定できることによって、データの繰り返し同期を回避して、データ同期の効率を向上させることができる。
可能な一実現形態において、データ同期方法をさらに提供し、第２のプロセッサに適用され、当該方法は、
第１のプロセッサからの状態照会命令を受信した場合、前記状態照会命令を解析して、同期待ちのテンソルデータのデータ特徴を得ることと、
前記データ特徴に基づいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータに対する同期可能データ量を確定することと、
【０８４３】
前記テンソルデータのデータ特徴および前記同期可能データ量に基づいて、前記第１のプロセッサを指示して前記第１のプロセッサが前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するための同期状態命令を生成して、前記同期状態命令を前記第１のプロセッサに送信することと、を含む。
【０８４４】
例を挙げると、データ同期の送信側に同期待ちのテンソルデータがある場合、送信側は、受信側の状態を照会できる。第１のプロセッサ（送信側）は、状態照会命令を生成して送信し、第２のプロセッサは、当該状態照会命令を受信した場合、当該命令を解析して、既に同期待ちのテンソルデータのデータ特徴を確定した。当該データ特徴は、テンソルデータの識別子（例えば、データ番号）、形状、ソース、記憶アドレスなどの情報の中の少なくとも一つを含んでもよい。
【０８４５】
可能な一実現形態において、第２のプロセッサは、データ特徴に基づいて、同期待ちのテンソルデータの記述子を確定できる。当該記述子は、既に登録（作成）された当該テンソルデータの形状を示すための記述子であってもよいし、当該テンソルデータの形状パラメータに基づいて新たな記述子を登録（作成）してもよく、本発明はこれに対して限定しない。
【０８４６】
可能な一実現形態において、第２のプロセッサは、テンソルデータの一部の同期を実行するように、当該記述子に基づいて同期待ちのテンソルデータを確定し、自身の非共有記憶空間での、当該テンソルデータに割り当てることができる空間の収納可能のデータ量、すなわち同期可能データ量を確定できる。
【０８４７】
可能な一実現形態において、第２のプロセッサは、確定された同期可能データ量および当該テンソルデータのデータ特徴に基づいて、第１のプロセッサを指示して前記第１のプロセッサが今回同期する同期可能データ量を確定するように、同期状態命令を生成して第１のプロセッサに送信することができる。第１のプロセッサは、今回同期できる一部のデータ（すなわち、第１のサブデータ）を確定した後、同期命令を生成して前記同期命令を第２のプロセッサに送信できる。当該命令中には、同期待ちのテンソルデータのデータ特徴および第１のサブデータを含まれてもよい。
【０８４８】
このような方式によって、送信側により受信側の状態を照会し、受信側は、状態照会命令を受信した後に自身の状態（すなわち、同期可能データ量である）を確定して返信し、対話を通じてテンソルデータの一部の同期を実現して、データ同期の効率を向上させることができる。
可能な一実現形態において、前記方法は、
【０８４９】
前記第１のプロセッサからの同期命令を受信した場合、前記同期命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータの第１のサブデータを得ることと、
前記データ特徴に基づいて、前記テンソルデータの記述子を確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
【０８５０】
例を挙げると、第２のプロセッサは、同期命令を受信した場合、当該命令を解析して同期待ちのテンソルデータのデータ特徴および今回同期する当該テンソルデータの第１のサブデータを確定し、当該データ特徴に基づいて同期待ちのテンソルデータの記述子を検索し、さらに記述子に基づいて同期待ちのテンソルデータを確定し、且つ、テンソルデータの第１のサブデータを自身の非共有記憶空間中に記憶できる。
【０８５１】
このような方式によって、受信側は、同期命令に基づいて記述子を確定して今回同期するサブデータを取得できて、同期オーバーヘッドを軽減し、データ同期の効率を向上させることができる。
【０８５２】
可能な一実現形態において、記述子の識別子と内容は、記述子記憶空間に記憶でき、当該記述子記憶空間は、プロセッサの内部メモリ（例えば、レジスタ、オンチップＳＲＡＭ、または、他のメディアキャッシュなど）中の記憶空間であってもよい。記述子が示すテンソルデータのデータ記憶空間は、プロセッサの内部メモリ（例えば、オンチップキャッシュ）、または、プロセッサと接続された外部メモリ（オフチップメモリ）中の記憶空間であってもよい。データ記憶空間におけるデータアドレスは、実際の物理アドレスまたは仮想アドレスであってもよい。本発明は、記述子記憶空間とデータ記憶空間の位置およびデータアドレスのタイプに対して限定しない。
【０８５３】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、同一の領域に位置することができ、例えば、オンチップキャッシュの一つの連続領域を使用して記述子の関連内容を記憶することができ、そのアドレスがＡＤＤＲ０〜ＡＤＤＲ１０２３であり、ここで、アドレスＡＤＤＲ０〜ＡＤＤＲ３１が記述子の識別子を記憶するために使用され、アドレスＡＤＤＲ３２〜ＡＤＤＲ６３が記述子の内容を記憶するために使用され、アドレスＡＤＤＲ６４〜ＡＤＤＲ１０２３が記述子が示すテンソルデータを記憶するために使用されることができる。ここで、アドレスＡＤＤＲは、１ビットまたは１バイトに限らず、ここは一つのアドレスを示すためのものであり、一つのアドレス単位である。当業者は、実際の状況に従って記憶領域およびそのアドレスを確定でき、本発明はこれに対して限定しない。
【０８５４】
可能な一実現形態において、記述子の識別子、内容、および、記述子が示すテンソルデータは、内部メモリの異なる領域に分けて記憶でき、例えば、レジスタを記述子記憶空間として、レジスタ中に記述子の識別子および内容を記憶し、オンチップキャッシュをデータ記憶空間として、記述子が示すテンソルデータを記憶できる。
【０８５５】
可能な一実現形態において、記述子が専用する専用レジスタ（ＳＲ）を設置してもよく、記述子中のデータは、即時値にすることも、専用レジスタ中から取得することもできる。レジスタを使用して記述子の識別子と内容を記憶する場合、レジスタの番号を使用して記述子の識別子を表すことができ、例えば、レジスタの番号が０であると、記憶した記述子の識別子が０である。レジスタ中の記述子が有効であると、記述子が示すテンソルデータの大きさに基づいて、キャッシュ空間中で一つの領域を割り当てて（例えば、キャッシュ中でテンソルデータ毎に一つのテンソルキャッシュユニットを作成して）当該テンソルデータを記憶するために使用できる。予め設定したキャッシュ空間を使用して当該テンソルデータを記憶してもよく、本発明はこれに対して限定しないことを理解すべきである。
【０８５６】
可能な一実現形態において、記述子の識別子および内容を内部メモリに記憶し、記述子が示すテンソルデータを外部メモリに記憶できる。例えば、オンチップに記述子の識別子および内容を記憶し、オフチップに記述子が示すテンソルデータを記憶する方式を使用できる。
【０８５７】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスは、固定アドレスであってもよい。例えば、テンソルデータに単独のデータ記憶空間を区分けでき、各テンソルデータのデータ記憶空間における開始アドレスは記述子の識別子と１対１に対応される。このような場合、プロセッサは記述子の内容に基づいてテンソルデータのデータアドレスを確定できる。
【０８５８】
可能な一実現形態において、記述子に対応するデータ記憶空間のデータアドレスが可変アドレスである場合、前記記述子はＮ次元のテンソルデータのアドレスを表すために使用されることもでき、ここで、前記記述子の内容はテンソルデータのアドレスを表す少なくとも一つのアドレスパラメータをさらに含んでもよい。例えば、テンソルデータが３次元データであり、記述子が当該テンソルデータのアドレスを指す場合、記述子の内容は、テンソルデータの開始アドレスなどの、当該テンソルデータのアドレスを表す一つのアドレスパラメータを含んでもよく、テンソルデータの開始アドレス＋アドレスオフセット量またはテンソルデータの各次元に基づくアドレスパラメータなどの、当該テンソルデータのアドレスの複数のアドレスパラメータを含んでもよい。当業者は、実際の必要に従ってアドレスパラメータを設定でき、本発明はこれに対して限定しない。
【０８５９】
可能な一実現形態において、前記テンソルデータのアドレスパラメータは、前記記述子のデータ基準点の前記テンソルデータのデータ記憶空間における基準アドレスを含む。ここで、基準アドレスは、データ基準点の変化に従って異なってもよい。本発明は、データ基準点の選択に対して限定しない。
【０８６０】
可能な一実現形態において、前記基準アドレスは、前記データ記憶空間の開始アドレスを含んでもよい。記述子のデータ基準点がデータ記憶空間の１番目のデータブロックである場合、記述子の基準アドレスがデータ記憶空間の開始アドレスである。記述子のデータ基準点がデータ記憶空間中の１番目のデータブロック以外の他のデータである場合、記述子の基準アドレスが当該データブロックのデータ記憶空間における物理アドレスである。
【０８６１】
可能な一実現形態において、前記テンソルデータの形状パラメータは、前記テンソルデータのデータ記憶空間のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるサイズ、前記記憶領域のＮ個の次元方向の中の少なくとも一つの方向におけるオフセット量、Ｎ個の次元方向の対角位置にいる少なくとも二つの頂点の前記データ基準点に対する位置、および、前記記述子が示すテンソルデータのデータ記述位置とデータアドレスとの間のマッピング関係の中の少なくとも一つを含む。ここで、データ記述位置は、記述子が示すテンソルデータ中の点または領域のマッピング位置であり、例えば、テンソルデータが３次元データである場合、記述子は、３次元空間座標（ｘ、ｙ、z）を使用して当該テンソルデータの形状を表すことができ、当該テンソルデータのデータ記述位置は、３次元空間座標（ｘ、ｙ、z）を使用して表した、当該テンソルデータは３次元空間における点または領域の位置にマッピングすることができる。
当業者は、実際の状況に従ってテンソルデータを表す形状パラメータを選択でき、本発明はこれに対して限定しないことを理解すべきである。
【０８６２】
本発明の実施例に係るデータ同期方法によると、データ同期の受信側空間が不足である場合、テンソルデータの一部の同期を実現し、複数回の一部の同期によって全体的なテンソルデータの同期を実現できることによって、空間が不足である場合テンソルデータ全体的な同期に失敗するかまたは同期が遅延されるなどの問題を回避して、データ同期の効率を向上させることができ、且つ、テンソルデータの形状を示す記述子が設定されており、データ同期過程で記述子に基づいてテンソルデータを確定することによって、同期オーバーヘッドを削減して、データアクセスの複雑度を低下させて、命令伝送および処理過程での命令互換性を実現できる。
【０８６３】
説明する必要があるのは、前述の各方法の実施例について、簡単に説明するために、それらをいずれも一連の動作の組み合わせとして表現したが、当業者は、本発明は説明された動作の順序に限定されないし、なぜなら、本発明によると、いくつかのステップを他の順序で実行するかまたは同時に実行できることを了解すべきである。次に、当業者は、明細書に説明された実施例は、いずれもオプションとする実施例に属し、関わる動作およびモジュールは必ずとして本発明にとって必須なものではないことも理解すべきである。
【０８６４】
さらに説明する必要があるのは、フローチャートでの各ステップは矢印に従って順に示したが、これらのステップは必ずとして矢印が示す順序に従って順に実行する必要がない。本明細書に明確な説明がない限り、これらのステップの実行に対して厳密の順序を限定しなく、これらのステップを他の順序に従って実行してもよい。さらに、フローチャートでの少なくとも一部のステップは、複数のサブステップまたは複数の段階を含んでもよく、これらのサブステップまたは段階は、必ずとして一つのタイミングで実行を完成させる必要がなく、異なるタイミングで実行させてもよいし、これらのサブステップまたは段階の実行順序も必ずとして順に実行させる必要がなく、他のステップまたは他のステップのサブステップまたは段階の少なくとも一部と交互または交替に実行させることができる。
【０８６５】
図３ｆ２は、本発明の一実施例に係るデータ同期方法を示すフローチャートである。当該データ同期装置は、第１のプロセッサに適用され、図３ｆ２に示されたように、当該データ同期装置は、
【０８６６】
第２のプロセッサからの同期要求命令を受信した場合、前記同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータに対する同期可能データ量を得るための要求命令解析モジュール５１ｆと、
【０８６７】
前記データ特徴に基づいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定するための第１の記述子確定モジュール５２ｆと、
【０８６８】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するためのデータ確定モジュール５３ｆと、
【０８６９】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように、前記第１のサブデータに基づいて、同期命令を生成して前記同期命令を前記第２のプロセッサに送信するための同期命令生成および送信モジュール５４ｆと、を備える。
可能な一実現形態において、前記データ確定モジュールは、
【０８７０】
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定するための第１の確定サブモジュールと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定するための第２の確定サブモジュールと、を備える。
可能な一実現形態において、前記装置は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更するための状態変更モジュールをさらに備える。
【０８７１】
図３ｆ３は、本発明の実施例に係るデータ同期装置を示すブロック図である。当該データ同期装置は、第２のプロセッサに適用され、図３ｆ３に示されたように、当該データ同期装置は、
【０８７２】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータのデータ特徴および前記テンソルデータに対する同期可能データ量を確定するための特徴およびデータ量確定モジュール６１ｆと、
【０８７３】
前記データ特徴および前記同期可能データ量に基づいて、第１のプロセッサを指示して前記第１のプロセッサが前記同期要求命令に基づいて同期待ちのテンソルデータ、および。前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される第１のサブデータを、確定するための同期要求命令を生成して、前記同期要求命令を第１のプロセッサに送信するための要求命令生成および送信モジュール６２ｆと、を備える。
可能な一実現形態において、前記装置は、
【０８７４】
前記第１のプロセッサからの同期命令を受信した場合、前記同期命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータの第１のサブデータを得るための同期命令解析モジュールと、
前記データ特徴に基づいて、前記テンソルデータの記述子を確定するための第２の記述子確定モジュールと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶するためのデータ記憶モジュールと、をさらに備える。
【０８７５】
上記の装置の実施例は、ただ模式的なもののであり、本発明の装置はさらに他の方式によって実現されてもよいことを理解すべきである。例えば、上記の実施例中の前記ユニット/モジュールの区分けは、ただ論理機能に基づく区分けであり、実際に実現するときに他の区分け方式があってもよい。例えば、複数のユニット、モジュール、または、コンポーネントを、組み合わせたり、もう一つのシステムに統合したり、いくつかの特徴を省略するか実行しないことができる。
【０８７６】
また、特に説明しない限り、本発明の各実施例中の各機能ユニット/モジュールを一つのユニット/モジュールに統合してもよいし、各ユニット/モジュールが単独に物理的に存在してもよいし、二つまたは二つの以上のユニット/モジュールを一つに統合してもよい。上記の統合のユニット/モジュールを、ハードウェアの形式で実現してもよいし、ソフトウェアプログラムモジュールの形式で実現してもよい。
【０８７７】
前記統合されたユニット/モジュールをハードウェアの形式で実現する場合、当該ハードウェアは、デジタル回路、アナログ回路などであってもよい。ハードウェア構造の物理的な実現は、トランジスタ、メモリスタなどを含むが、これらに限定されない。特に説明しない限り、前記人工知能プロセッサは、例えば、ＣＰＵ、ＧＰＵ、ＦＰＧＡ、ＤＳＰ、ＡＳＩＣなどの、いかなる適当なハードウェアプロセッサであってもよい。特に説明しない限り、前記記憶ユニットは、例えば、抵抗性ランダムアクセスメモリＲＲＡＭ（Ｒｅｓｉｓｔｉvｅ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、動的ランダムアクセスメモリＤＲＡＭ（ＤｙｎａＭｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、静的ランダムアクセスメモリＳＲＡＭ（Ｓｔａｔｉｃ Ｒａｎｄｏｍ乃至Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、拡張動的ランダムアクセスメモリＥＤＲＡＭ（Ｅｎｈａｎｃｅｄ Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、高帯域幅メモリＨＢＭ（Ｈｉｇｈ-Ｂａｎｄｗｉｄｔｈ Ｍｅｍｏｒｙ）、ハイブリッドストレージキューブＨＭＣ（Ｈｙｂｒｉｄ Ｍｅｍｏｒｙ Ｃｕｂｅ）などの、いかなる適当な磁気記憶媒体または光磁気記憶媒体であってもよい。
【０８７８】
前記統合のユニット/モジュールがソフトウェアプログラムモジュールの形式で実現され、また独立した製品として販売または使用される場合、一つのコンピュータ読み取り可能なメモリに記憶できる。このような理解に基づいて、本発明の技術案は、本質的に、または、先行技術に寄与する一部または当該技術案の全部または一部は、ソフトウェア製品の形式で具体化されることができる。当該コンピュータソフトウェア製品は、一つのメモリに記憶され、一つのコンピュータデバイス（パーソナルコンピュータ、サーバ、または、ネットワークデバイスなどであってもよい）に本発明の各実施例に記載の方法の全部または一部のステップを実行させるためのいくつかの命令を含む。前述のメモリは、Ｕディスク、読み取り専用メモリ（ＲＯＭ、Ｒｅａｄ-Ｏｎｌｙ Ｍｅｍｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ、Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、モバイルハードディスク、磁気ディスクまたは光ディスクなどの、プログラムコードを記憶できる様々な媒体を含む。
可能な一実現形態において、人工知能チップをさらに開示し、前記人工知能チップは上記のデータ同期装置を備える。
【０８７９】
可能な一実現形態において、ボードカードをさらに開示し、当該ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、上記の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、前記記憶デバイスは、データを記憶し、前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
【０８８０】
上記の実施例において、各実施例に対する説明にはそれぞれ焦点が当てられているが、特定の実施例で詳細に説明されていない部分については、他の実施例の関連する説明を参照することができる。上記の実施例の各技術的特徴は、任意の組み合わせることができ、説明を簡潔にするため、上記の実施例中の各技術的特徴のすべての可能の組み合わせに対して説明されていない。ただし、これらの技術的特徴の組み合わせに矛盾がない限り、すべて本明細書に記載の範囲と見なされるべきである。
前述の内容は、次の条項に従ってよりよく理解できる。
Ａ１、データ同期方法であって、前記方法は、第１のプロセッサに適用され、前記方法は、
【０８８１】
第２のプロセッサからの同期要求命令を受信した場合、前記同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータに対する同期可能データ量を得ることと、
前記データ特徴に基づいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定することと、
【０８８２】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定することと、
【０８８３】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように，前記第１のサブデータに基づいて、同期命令を生成して前記同期命令を前記第２のプロセッサに送信することと、を含む。
【０８８４】
Ａ２、請求項Ａ１に記載の方法であって、前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータを確定することは、
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定することと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定することと、を含む。
Ａ３、請求項Ａ１またはＡ２に記載の方法であって、前記方法は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更することをさらに含む。
Ａ４、データ同期方法であって、前記方法は、第２のプロセッサに適用され、前記方法は、
【０８８５】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータのデータ特徴および前記テンソルデータに対する同期可能データ量を確定することと、
【０８８６】
前記データ特徴および前記同期可能データ量に基づいて、第１のプロセッサを指示して前記第１のプロセッサが前記同期要求命令に基づいて同期待ちのテンソルデータ、および，前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される第１のサブデータを、確定するための同期要求命令を生成して、前記同期要求命令を第１のプロセッサに送信することと、を含む。
Ａ５、請求項Ａ４に記載の方法であって、前記方法は、
【０８８７】
前記第１のプロセッサからの同期命令を受信した場合、前記同期命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータの第１のサブデータを得ることと、
前記データ特徴に基づいて、前記テンソルデータの記述子を確定することと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶することと、をさらに含む。
Ａ６、データ同期装置であって、前記装置は、第１のプロセッサに適用され、前記装置は、
【０８８８】
第２のプロセッサからの同期要求命令を受信した場合、前記同期要求命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータに対する同期可能データ量を得るための要求命令解析モジュールと、
【０８８９】
前記データ特徴に基づいて、同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子を、確定するための第１の記述子確定モジュールと、
【０８９０】
前記テンソルデータの記述子および前記同期可能データ量に基づいて、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される前記第１のサブデータを、確定するためのデータ確定モジュールと、
【０８９１】
前記第２のプロセッサを指示して前記第２のプロセッサが前記第１のサブデータを取得するするように，前記第１のサブデータに基づいて、同期命令を生成して前記同期命令を前記第２のプロセッサに送信するための同期命令生成および送信モジュールと、を備える。
Ａ７、請求項Ａ６に記載の装置であって、前記データ確定モジュールは、
【０８９２】
前記テンソルデータの記述子に基づいて、前記テンソルデータおよび前記テンソルデータ中で同期待ち状態にいる第２のサブデータを確定するための第１の確定サブモジュールと、
前記第２のサブデータおよび前記同期可能データ量に基づいて、第１のサブデータを確定するための第２の確定サブモジュールと、を備える。
Ａ８、請求項Ａ６またはＡ７に記載の装置であって、前記装置は、
前記テンソルデータの第１のサブデータの状態を同期待ち状態から同期済み状態に変更するための状態変更モジュールをさらに備える。
Ａ９、データ同期装置であって、前記装置は、第２のプロセッサに適用され、前記装置は、
【０８９３】
同期待ちのテンソルデータの、前記同期待ちのテンソルデータの形状を示すための記述子に基づいて、前記テンソルデータのデータ特徴および前記テンソルデータに対する同期可能データ量を確定するための特徴およびデータ量確定モジュールと、
【０８９４】
前記データ特徴および前記同期可能データ量に基づいて、第１のプロセッサを指示して前記第１のプロセッサが前記同期要求命令に基づいて同期待ちのテンソルデータ、および、前記テンソルデータの第１のサブデータであって、データ量が前記同期可能データ量と対応される第１のサブデータを、確定するための同期要求命令を生成して、前記同期要求命令を第１のプロセッサに送信するための要求命令生成および送信モジュールと、を備える。
Ａ１０、請求項Ａ９に記載の装置であって、前記装置は、
【０８９５】
前記第１のプロセッサからの同期命令を受信した場合、前記同期命令を解析して、同期待ちのテンソルデータのデータ特徴および前記テンソルデータの第１のサブデータを得るための同期命令解析モジュールと、
前記データ特徴に基づいて、前記テンソルデータの記述子を確定するための第２の記述子確定モジュールと、
前記テンソルデータの記述子に基づいて、前記テンソルデータの第１のサブデータを記憶するためのデータ記憶モジュールと、をさらに備える。
Ａ１１、人工知能チップであって、前記チップは、請求項Ａ６乃至Ａ１０の中のいずれか１項に記載のデータ同期装置を備える。
Ａ１２、電子デバイスであって、前記電子デバイスは、請求項Ａ１１に記載の人工知能チップを備える。
【０８９６】
Ａ１３、ボードカードであって、前記ボードカードは、記憶デバイスと、インターフェース装置と、制御デバイスと、請求項Ａ１１に記載の人工知能チップと、を備え、
ここで、前記人工知能チップは、前記記憶デバイス、前記制御デバイス、および、前記インターフェース装置とそれぞれ接続され、
前記記憶デバイスは、データを記憶し、
前記インターフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現するために使用され、
前記制御デバイスは、前記人工知能チップの状態を監視制御するために使用される。
Ａ１４、請求項Ａ１３に記載のボードカードであって、
【０８９７】
前記記憶デバイスは、複数グループの記憶ユニットを備え、各グループの前記記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、ＤＤＲ ＳＤＲＡＭであり、
前記チップは、ＤＤＲコントローラを備えて、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用し、
前記インターフェース装置は、標準ＰＣＩＥインターフェースである。
【０８９８】
以上、本発明の各実施例を既に説明したが、上記の説明は例示的なのものであり、網羅的なものではなく、開示された各実施例に限定されるない。当業者にとって、説明された各実施例の範囲および精神から逸脱することなく、多くの修正および変更はいずれも明らかである。本明細書で所用される用語の選択は、各実施例の原理、実際の適用、または、市場における技術の改善をさらによく解釈すること、または、当業者が本明細書に開示される各実施例を理解できるようにすることを意図している。
【図１ａ】
2021520592.tif 000014
【図１ｂ】
2021520592.tif 000015
【図１ｃ】
2021520592.tif 000016
【図１ｄ１】
2021520592.tif 000017
【図１ｄ２】
2021520592.tif 000018
【図１ｅ】
2021520592.tif 000019
【図１ｆ】
2021520592.tif 000020
【図１ｇ】
2021520592.tif 000021
【図１ｈ】
2021520592.tif 000022
【図２】
2021520592.tif 000023
【図３ａ】
2021520592.tif 000024
【図３ｂ１】
2021520592.tif 000025
【図３ｂ２】
2021520592.tif 000026
【図３ｂ３】
2021520592.tif 000027
【図３ｂ４】
2021520592.tif 000028
【図３ｂ５】
2021520592.tif 000029
【図３ｃ１】
2021520592.tif 000030
【図３ｃ２】
2021520592.tif 000031
【図３ｃ３】
2021520592.tif 000032
【図３ｄ１】
2021520592.tif 000033
【図３ｄ２】
2021520592.tif 000034
【図３ｄ３】
2021520592.tif 000035
【図３ｅ１】
2021520592.tif 000036
【図３ｅ２】
2021520592.tif 000037
【図３ｅ３】
2021520592.tif 000038
【図３ｆ１】
2021520592.tif 000039
【図３ｆ２】
2021520592.tif 000040
【図３ｆ３】
2021520592.tif 000041
【図４】
2021520592.tif 000042
【手続補正書】
【提出日】令和2年10月30日(2020.10.30)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図３ｄ１
【補正方法】変更
【補正の内容】
【図３ｄ１】
2021520592.tif 000043
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2021520592.tif 000044
【手続補正書】
【提出日】令和2年11月18日(2020.11.18)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１ａ】
2021520592.tif 000045
【図１ｂ】
2021520592.tif 000046
【図１ｃ】
2021520592.tif 000047
【図１ｄ１】
2021520592.tif 000048
【図１ｄ２】
2021520592.tif 000049
【図１ｅ】
2021520592.tif 000050
【図１ｆ】
2021520592.tif 000051
【図１ｇ】
2021520592.tif 000052
【図１ｈ】
2021520592.tif 000053
【図２】
2021520592.tif 000054
【図３ａ】
2021520592.tif 000055
【図３ｂ１】
2021520592.tif 000056
【図３ｂ２】
2021520592.tif 000057
【図３ｂ３】
2021520592.tif 000058
【図３ｂ４】
2021520592.tif 000059
【図３ｂ５】
2021520592.tif 000060
【図３ｃ１】
2021520592.tif 000061
【図３ｃ２】
2021520592.tif 000062
【図３ｃ３】
2021520592.tif 000063
【図３ｄ１】
2021520592.tif 000064
【図３ｄ２】
2021520592.tif 000065
【図３ｄ３】
2021520592.tif 000066
【図３ｅ１】
2021520592.tif 000067
【図３ｅ２】
2021520592.tif 000068
【図３ｅ３】
2021520592.tif 000069
【図３ｆ１】
2021520592.tif 000070
【図３ｆ２】
2021520592.tif 000071
【図３ｆ３】
2021520592.tif 000072
【図４】
2021520592.tif 000073
【国際調査報告】
2021520592.tif 000074
2021520592.tif 000075
2021520592.tif 000076
2021520592.tif 000077