(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-27
(54)【発明の名称】プロセッサ及び実現方法、電子機器、及び記憶媒体
(51)【国際特許分類】
G06F 12/06 20060101AFI20230420BHJP
G06F 15/167 20060101ALI20230420BHJP
H04L 47/43 20220101ALI20230420BHJP
G06N 3/063 20230101ALN20230420BHJP
【FI】
G06F12/06 515H
G06F15/167 610A
H04L47/43
G06N3/063
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022554384
(86)(22)【出願日】2021-08-05
(85)【翻訳文提出日】2022-09-12
(86)【国際出願番号】 CN2021110952
(87)【国際公開番号】W WO2022037422
(87)【国際公開日】2022-02-24
(31)【優先権主張番号】202010851757.7
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ヤン、シアオピン
【テーマコード(参考)】
5B045
5B160
5K030
【Fターム(参考)】
5B045BB47
5B045BB54
5B045GG09
5B160DA08
5K030GA03
5K030JA05
5K030KA06
5K030KA17
(57)【要約】
本開示は、人工知能及びディープラーニングの分野に関するプロセッサ及び実現方法、電子機器、及び記憶媒体を開示し、前記プロセッサは、所定のデータパケット情報をデータパッキングアンパッキングモジュールに送信するためのシステムコントローラと、データパケット情報に基づいてストレージアレイモジュールから対応するデータパケットデータを取得し、データパケット情報とパッキングし、パッキングされた第1のデータパケットを演算モジュールに送信して演算処理を行い、演算モジュールによって返された第2のデータパケットを取得し、アンパッキングによって演算結果データを取得し、ストレージアレイモジュールに記憶するためのデータパッキングアンパッキングモジュールと、データ記憶を行うためのストレージアレイモジュールと、取得された第1のデータパケットに対して演算処理を行い、演算結果データに基づいて第2のデータパケットを生成し、データパッキングアンパッキングモジュールに返すための演算モジュールと、を含む。本開示に記載された方案を適用することによって、設計の難易度を低下し、全体的な処理効率などを向上させることができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサであって、
システムコントローラ、ストレージアレイモジュール、データパッキングアンパッキングモジュール、及び演算モジュールを含み、
前記システムコントローラは、所定のデータパケット情報を前記データパッキングアンパッキングモジュールに送信し、
前記データパッキングアンパッキングモジュールは、前記データパケット情報に基づいて前記ストレージアレイモジュールから対応するデータパケットデータを取得し、前記データパケットデータと前記データパケット情報をパッキングし、パッキングされた第1のデータパケットを前記演算モジュールに送信して演算処理を行い、前記演算モジュールによって返された第2のデータパケットを取得し、前記第2のデータパケットをアンパッキングして演算結果データを取得して、前記ストレージアレイモジュールに記憶し、
前記ストレージアレイモジュールは、データ記憶を行い、
前記演算モジュールは、取得された前記第1のデータパケットに対して演算処理を行い、演算結果データに基づいて前記第2のデータパケットを生成し、前記データパッキングアンパッキングモジュールに返す、
プロセッサ。
【請求項2】
前記システムコントローラの制御の下で外部ストレージデータと前記ストレージアレイモジュール内の内部ストレージアレイデータとの高速交換を実現するダイレクトメモリアクセスモジュールをさらに含む、
請求項1に記載のプロセッサ。
【請求項3】
前記データパッキングアンパッキングモジュールから取得した前記第1のデータパケットを前記演算モジュールに送信し、前記演算モジュールから取得した前記第2のデータパケットを前記データパッキングアンパッキングモジュールに送信するルーティング交換モジュールをさらに含む、
請求項1に記載のプロセッサ。
【請求項4】
前記演算モジュールは、汎用演算モジュールとアクティベーション演算モジュールを含み、
前記汎用演算モジュールは、汎用演算を行い、前記アクティベーション演算モジュールは、アクティベーション演算を行う、
請求項3に記載のプロセッサ。
【請求項5】
前記ストレージアレイモジュールは、N1個のストレージユニットを含み、
前記データパッキングアンパッキングモジュールは、N2個のデータパッキングアンパッキングユニットを含み、各データパッキングアンパッキングユニットは、1つのデータチャネルを介して前記ルーティング交換モジュールにそれぞれ接続され、N1とN2はいずれも1より大きい正整数であり、
前記汎用演算モジュールはM個の演算ユニットを含み、前記アクティベーション演算モジュールはP個の演算ユニットを含み、各演算ユニットは1つのデータチャネルを介して前記ルーティング交換モジュールにそれぞれ接続され、MとPは、いずれも1より大きい正整数であり、
前記データパッキングアンパッキングユニットは、前記ストレージユニットから取得した前記データパケットデータと前記システムコントローラから取得した前記データパケット情報をパッキングし、前記データチャネルを使用して、パッキングされた前記第1のデータパケットを前記ルーティング交換モジュールを介して演算ユニットに送信して演算処理を行い、前記データチャネルを使用して、前記ルーティング交換モジュールを介して前記演算ユニットによって返された前記第2のデータパケットを取得し、前記第2のデータパケットをアンパッキングして演算結果データを取得し、前記ストレージユニットに記憶する、
請求項4に記載のプロセッサ。
【請求項6】
前記データパケット情報には、ソースチャネル、ソースアドレス、宛先チャネル、及び演算タイプが含まれ、
前記データパッキングアンパッキングユニットは、前記ソースチャネルに対応するストレージユニットの前記ソースアドレスから前記データパケットデータを取得し、
前記ルーティング交換モジュールは、前記第1のデータパケットを前記宛先チャネルに対応する演算ユニットに送信して前記演算タイプの演算処理を行う、
請求項5に記載のプロセッサ。
【請求項7】
前記N1とN2の値は同じであり、各データパッキングアンパッキングユニットは、1つのストレージユニットにそれぞれ対応し、対応するストレージユニットから前記データパケットデータを取得する、
請求項6に記載のプロセッサ。
【請求項8】
前記データパケット情報には、宛先アドレス又はストレージ戦略がさらに含まれ、
前記データパケット情報に前記宛先アドレスが含まれている場合、前記データパッキングアンパッキングユニットは、前記宛先アドレスに基づいて、前記演算結果データを対応するストレージユニットに記憶し、
前記データパケット情報に前記ストレージ戦略が含まれている場合、前記データパッキングアンパッキングユニットは、前記ストレージ戦略に基づいて、前記演算結果データを対応するストレージユニットに記憶する、
請求項7に記載のプロセッサ。
【請求項9】
前記ストレージ戦略は、データ整列を実現するストレージ戦略を含む、
請求項8に記載のプロセッサ。
【請求項10】
プロセッサ実現方法であって、
システムコントローラ、ストレージアレイモジュール、データパッキングアンパッキングモジュール、及び演算モジュールで構成されるプロセッサを構築するステップと、
前記プロセッサを使用してニューラルネットワーク演算を行うステップと、を含み、
前記システムコントローラは、所定のデータパケット情報を前記データパッキングアンパッキングモジュールに送信し、
前記データパッキングアンパッキングモジュールは、前記データパケット情報に基づいて前記ストレージアレイモジュールから対応するデータパケットデータを取得し、前記データパケットデータと前記データパケット情報をパッキングし、パッキングされた第1のデータパケットを前記演算モジュールに送信して演算処理を行い、前記演算モジュールによって返された第2のデータパケットを取得し、前記第2のデータパケットをアンパッキングして演算結果データを取得して、前記ストレージアレイモジュールに記憶し、
前記ストレージアレイモジュールは、データ記憶を行い、
前記演算モジュールは、取得された前記第1のデータパケットに対して演算処理を行い、演算結果データに基づいて前記第2のデータパケットを生成し、前記データパッキングアンパッキングモジュールに返す、
プロセッサ実現方法。
【請求項11】
前記プロセッサにダイレクトメモリアクセスモジュールを追加するステップをさらに含み、
前記ダイレクトメモリアクセスモジュールは、前記システムコントローラの制御の下で外部ストレージデータと前記ストレージアレイモジュール内の内部ストレージアレイデータとの高速交換を実現する、
請求項10に記載のプロセッサ実現方法。
【請求項12】
前記プロセッサにルーティング交換モジュールを追加するステップをさらに含み、
前記ルーティング交換モジュールは、前記データパッキングアンパッキングモジュールから取得した前記第1のデータパケットを前記演算モジュールに送信し、前記演算モジュールから取得した前記第2のデータパケットを前記データパッキングアンパッキングモジュールに送信する、
請求項10に記載のプロセッサ実現方法。
【請求項13】
前記演算モジュールは、汎用演算を行う汎用演算モジュールと、アクティベーション演算を行うアクティベーション演算モジュールとを含む、
請求項12に記載のプロセッサ実現方法。
【請求項14】
前記ストレージアレイモジュールは、N1個のストレージユニットを含み、
前記データパッキングアンパッキングモジュールは、N2個のデータパッキングアンパッキングユニットを含み、各データパッキングアンパッキングユニットは、1つのデータチャネルを介して前記ルーティング交換モジュールにそれぞれ接続され、N1とN2はいずれも1より大きい正整数であり、
前記汎用演算モジュールはM個の演算ユニットを含み、前記アクティベーション演算モジュールはP個の演算ユニットを含み、各演算ユニットは1つのデータチャネルを介して前記ルーティング交換モジュールにそれぞれ接続され、MとPは、いずれも1より大きい正整数であり、
前記データパッキングアンパッキングユニットは、前記ストレージユニットから取得した前記データパケットデータと前記システムコントローラから取得した前記データパケット情報をパッキングし、前記データチャネルを使用して、パッキングされた前記第1のデータパケットを前記ルーティング交換モジュールを介して演算ユニットに送信して演算処理を行い、前記データチャネルを使用して、前記ルーティング交換モジュールを介して前記演算ユニットによって返された前記第2のデータパケットを取得し、前記第2のデータパケットをアンパッキングして演算結果データを取得し、前記ストレージユニットに記憶する、
請求項13に記載のプロセッサ実現方法。
【請求項15】
前記データパケット情報には、ソースチャネル、ソースアドレス、宛先チャネル、及び演算タイプが含まれ、
前記データパケットデータは、前記データパッキングアンパッキングユニットが前記ソースチャネルに対応するストレージユニットの前記ソースアドレスから取得したデータパケットデータであり、
前記第1のデータパケットを取得した演算ユニットは、前記ルーティング交換モジュールによって決定された前記宛先チャネルに対応する演算ユニットであり、
前記演算処理は、前記演算ユニットが行う前記演算タイプの演算処理である、
請求項14に記載のプロセッサ実現方法。
【請求項16】
前記N1とN2の値は同じであり、各データパッキングアンパッキングユニットは、1つのストレージユニットにそれぞれ対応し、対応するストレージユニットから前記データパケットデータを取得する、
請求項15に記載のプロセッサ実現方法。
【請求項17】
前記データパケット情報には、宛先アドレス又はストレージ戦略がさらに含まれ、
前記データパケット情報に前記宛先アドレスが含まれている場合、前記データパッキングアンパッキングユニットは、前記宛先アドレスに基づいて、前記演算結果データを対応するストレージユニットに記憶し、
前記データパケット情報に前記ストレージ戦略が含まれている場合、前記データパッキングアンパッキングユニットは、前記ストレージ戦略に基づいて、前記演算結果データを対応するストレージユニットに記憶する、
請求項16に記載のプロセッサ実現方法。
【請求項18】
前記ストレージ戦略は、データ整列を実現するストレージ戦略を含む、
請求項17に記載のプロセッサ実現方法。
【請求項19】
電子機器であって、
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサに通信接続されたメモリと、を含み、
前記メモリに前記少なくとも一つのプロセッサにより実行可能な命令が記憶されており、前記命令が前記少なくとも一つのプロセッサにより実行されると、前記少なくとも一つのプロセッサが請求項10~18のいずれかの一つに記載のプロセッサ実現方法を実行する、
電子機器。
【請求項20】
プログラムであって、
コンピュータに請求項10~18のいずれかの一つに記載のプロセッサ実現方法を実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本開示は、出願日が2020年08月21日であり、出願番号が2020108517577であり、発明の名称が「プロセッサ及び実現方法、電子機器、及び記憶媒体」である中国特許出願の優先権を主張する。
本開示は、コンピュータアプリケーション技術に関し、特に、人工知能及びディープラーニング分野のプロセッサ及び実現方法、電子機器、及び記憶媒体に関する。
【背景技術】
【0002】
ますますインテリジェント化したアプリケーションはニューラルネットワークアルゴリズムをより多様化させ、ニューラルネットワークモデル全体をますます複雑にし、それに応じて、より大量の演算とデータの記憶のインタラクションをもたらし、そのためニューラルネットワークプロセッサ(NPU、Network Processing Unit)チップなどのニューラルネットワークに基づくプロセッサがますます重視されている。
【0003】
現在のNPUには、加速器をコアとするか又は命令拡張をコアとする2種類の主流の設計方式が含まれており、その中の前者の設計方式は、汎用性と拡張性が劣っているため、滅多に使用されておらず、主に後者の設計方式が使用されている。しかし、後者の設計方式では、ニューラルネットワークの演算操作に対応する煩雑な命令セットを拡張する必要があり、専用のコンパイラを開発してサポートする必要があるなど、設計の難度が高く、特に音声データのリアルタイム処理に応用する場合に難度がさらに高くなる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、プロセッサ及び実現方法、電子機器、及び記憶媒体を提供する。
【課題を解決するための手段】
【0005】
プロセッサであって、システムコントローラ、ストレージアレイモジュール、データパッキングアンパッキングモジュール、及び演算モジュールを含み、
前記システムコントローラは、所定のデータパケット情報を前記データパッキングアンパッキングモジュールに送信するために用いられ、
前記データパッキングアンパッキングモジュールは、前記データパケット情報に基づいて前記ストレージアレイモジュールから対応するデータパケットデータを取得し、前記データパケットデータと前記データパケット情報をパッキングし、パッキングされた第1のデータパケットを前記演算モジュールに送信して演算処理を行い、前記演算モジュールによって返された第2のデータパケットを取得し、前記第2のデータパケットをアンパッキングして演算結果データを取得して、前記ストレージアレイモジュールに記憶するために用いられ、
前記ストレージアレイモジュールは、データ記憶を行うために用いられ、
前記演算モジュールは、取得された前記第1のデータパケットに対して演算処理を行い、演算結果データに基づいて前記第2のデータパケットを生成し、前記データパッキングアンパッキングモジュールに返すために用いられる。
【0006】
プロセッサ実現方法であって、
システムコントローラ、ストレージアレイモジュール、データパッキングアンパッキングモジュール、及び演算モジュールで構成されるプロセッサを構築するステップと、
前記プロセッサを使用してニューラルネットワーク演算を行うステップと、を含み、前記システムコントローラは、所定のデータパケット情報を前記データパッキングアンパッキングモジュールに送信するために用いられ、前記データパッキングアンパッキングモジュールは、前記データパケット情報に基づいて前記ストレージアレイモジュールから対応するデータパケットデータを取得し、前記データパケットデータと前記データパケット情報をパッキングし、パッキングされた第1のデータパケットを前記演算モジュールに送信して演算処理を行い、前記演算モジュールによって返された第2のデータパケットを取得し、前記第2のデータパケットをアンパッキングして演算結果データを取得して、前記ストレージアレイモジュールに記憶するために用いられ、前記ストレージアレイモジュールは、データ記憶を行うために用いられ、前記演算モジュールは、取得された前記第1のデータパケットに対して演算処理を行い、演算結果データに基づいて前記第2のデータパケットを生成し、前記データパッキングアンパッキングモジュールに返すために用いられる。
【0007】
電子機器であって、少なくとも一つのプロセッサと、前記少なくとも一つのプロセッサに通信接続されたメモリと、を含み、前記メモリに前記少なくとも一つのプロセッサにより実行可能な命令が記憶されており、前記命令が前記少なくとも一つのプロセッサにより実行されると、前記少なくとも一つのプロセッサが上記の方法を実行させる。
【0008】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ命令は、前記コンピュータに上記の方法を実行させる。
【0009】
上記の開示の1つの実施例は、利点又は有益な効果を有する。ストレージ及びコンピューティングの統合された実現方式を提出し、プロセッサにおいてニューラルネットワークが記憶から演算への全体的なインタラクションを完了し、複雑な命令設計と難易度の高いコンパイラ開発などを回避し、設計難易度を低下させ、全体的な処理効率などを向上させる。
【0010】
本明細書で説明された内容は、本開示の実施例のキー又は重要な特徴を特定することを意図しておらず、本開示の範囲を制限するためにも使用されないことを理解されたい。本開示の他の特徴は、以下の明細書を通じて容易に理解できる。
【図面の簡単な説明】
【0011】
図面は、本開示をより良く理解するためのものであり、本開示を限定しない。
【
図1】本開示のプロセッサ10の第1の実施例の構成の概略構造図である。
【
図2】本開示のプロセッサ10の第2の実施例の構成の概略構造図である。
【
図3】本開示のプロセッサ10の第3の実施例の構成の概略構造図である。
【
図4】本開示のプロセッサ実現方法の実施例のフローチャートである。
【
図5】本開示の実施例による方法の電子機器のブロック図である。
【発明を実施するための形態】
【0012】
以下、図面に基づいて、本開示の例示的な実施例を説明する。理解を容易にするために、本開示の実施例の様々な詳細が含まれており、それらは単なる例示と見なされるべきである。従って、当業者は、本開示の範囲及び精神から逸脱することなく、本明細書に記載の実施形態に対して様々な変更及び修正を行うことができることを認識するはずである。同様に、簡明のために、以下の説明では、よく知られた機能と構造の説明は省略される。
【0013】
また、本明細書の用語「及び/又は」は、関連対象の関連関係のみを説明するものであり、3種類の関係が存在可能であることを表し、例えば、A及び/又はBは、Aのみが存在するか、A及びBが同時に存在するか、Bのみが存在するという3つの場合を表すことができる。符号「/」は、一般的に前後の関連対象が「又は」の関係であることを表すことを理解されたい。
【0014】
図1は本開示のプロセッサ10の第1の実施例の構成の概略構造図である。
図1に示すように、システムコントローラ101、ストレージアレイモジュール102、データパッキングアンパッキングモジュール103、及び演算モジュール104を含む。
【0015】
システムコントローラ101は、所定のデータパケット情報をデータパッキングアンパッキングモジュール103に送信するために用いられる。
【0016】
データパッキングアンパッキングモジュール103は、データパケット情報に基づいてストレージアレイモジュール102から対応するデータパケットデータを取得し、データパケットデータとデータパケット情報をパッキングし、パッキングされた第1のデータパケットを演算モジュール104に送信して演算処理を行い、演算モジュール104によって返された第2のデータパケットを取得し、第2のデータパケットをアンパッキングして演算結果データを取得し、ストレージアレイモジュール102に記憶するために用いられる。
【0017】
ストレージアレイモジュール102は、データ記憶を行うために用いられる。
【0018】
演算モジュール104は、取得された第1のデータパケットに対して演算処理を行い、演算結果データに基づいて第2のデータパケットを生成し、データパッキングアンパッキングモジュール103に返すために用いられる。
【0019】
上記の実施例ではストレージ及びコンピューティングの統合された実現方式を提出し、プロセッサにおいてニューラルネットワークが記憶から演算への全体的なインタラクションを完了し、複雑な命令設計と難易度の高いコンパイラ開発などを回避し、設計難易度を低下させ、全体的な処理効率などを向上させることを分かることができる。
【0020】
図1に示されることに基づいて、プロセッサ10は、ダイレクトメモリアクセス(DMA、Direct Memory Access)モジュール、ルーティング交換モジュールのうちの1つ又は全部をさらに含む。
【0021】
好ましくは、上記の2つのモジュールを同時に含むことができ、それに応じて、
図2は本開示のプロセッサ10の第2の実施例の構成の概略構造図である。
図2に示すように、システムコントローラ101、ストレージアレイモジュール102、データパッキングアンパッキングモジュール103、演算モジュール104、DMAモジュール105、及びルーティング交換モジュール106を含む。
【0022】
その中、DMAモジュール105は、システムコントローラ101の制御の下で外部ストレージデータとストレージアレイモジュール103の内部ストレージアレイデータの高速交換を実現するために用いられる。
【0023】
ルーティング交換モジュール106は、データパッキングアンパッキングモジュール103から取得した第1のデータパケットを演算モジュール104に送信して、演算モジュール104から取得した第2のデータパケットをデータパッキングアンパッキングモジュール103に送信するために用いられる。
【0024】
図2に示すように、演算モジュール104は、汎用演算モジュール1041とアクティベーション演算モジュール1042をさらに含むことができる。名前が示すように、汎用演算モジュール1041は、汎用演算を行うために用いられることができ、アクティベーション演算モジュール1042は、アクティベーション演算を行うために用いられることができる。
【0025】
システムコントローラ101は、単純な制御ロジック又はステートマシン設計を使用することができ、複雑なプロセッサIPを含むこともでき、IPは知的財産権(Intellectual Propert)の略語であり、例えば、前記複雑なプロセッサIPは、高度な縮小命令セットマシン(ARM、Advanced RISC Machine)、デジタル信号処理(DSP、Digital Signal Processing)、X86、マイクロコントローラーユニット(MCU、Microcontroller Unit)コアIPなどを含むことができる。
【0026】
ストレージアレイモジュール102は、複数の静的ランダムアクセスメモリ(SRAM、Static Random-Access Memory)で構成され、複数のポートの高速同時読み取り又は書き込みをサポートし、マトリックスの方式を使用してデータの高速キャッシュ又は記憶を実現することができる。ストレージアレイモジュール102に記憶されたデータは、ニューラルネットワークモデルデータ、外部入力データ、及び中間層の一時データなどを含むことができる。
【0027】
データパッキングアンパッキングモジュール103は、ストレージアレイモジュール102に対してデータ読み取りと記憶操作を行い、システムコントローラ101から取得したデータパケット情報及びストレージアレイモジュール102のデータパケットデータに対してパッキング操作を行い、パッキングされた第1のデータパケットをルーティング交換モジュール106を介して演算モジュール104に送信して、演算モジュール104がルーティング交換モジュール106を介して返された第2のデータパケットをアンパッキングし、取得された演算結果データをストレージアレイモジュール102に記憶することができる。
【0028】
それに応じて、ルーティング交換モジュール106は、データパッキングアンパッキングモジュール103と演算モジュール104のデータパケットを受信して、データ交換などを行うことができる。
【0029】
汎用演算モジュール1041によって実行される汎用演算は、ベクトル四則演算、ロジック演算、比較演算、ドット乗算、累積、加算などの汎用のベクトル演算を含むことができる。アクティベーション演算モジュール1042によって実行されるアクティベーション演算は、非線形関数sigmoid、tanh、relu、softmax演算のうちの1つ又は複数などを含むことができる。
【0030】
システムコントローラ101は、全体を管理と制御することができ、例えば、上記のデータパケット情報をデータパッキングアンパッキングモジュール102に送信して、データパッキングアンパッキングモジュール102がデータのパッキングアンパッキング作業などを行うようにし、DMAモジュール105の起動を担当して外部ストレージデータとストレージアレイモジュール102内の内部ストレージアレイデータの高速交換などを実現することができる。
【0031】
分かるように、上記の実施例では、プロセッサ全体は、ストレージアレイモジュール+データパッキングアンパッキングモジュール+ルーティング交換モジュールの本体構造を使用して、ニューラルネットワークが記憶から演算への全体的なインタラクションを完了し、複雑な命令設計と難易度の高いコンパイラ開発などを回避し、設計難易度を低下させ、全体的な処理効率などを向上させる。
【0032】
図3は本開示のプロセッサ10の第3の実施例の構成の概略構造図である。
図3に示すように、システムコントローラ101、ストレージアレイモジュール102、データパッキングアンパッキングモジュール103、演算モジュール104、DMAモジュール105、及びルーティング交換モジュール106を含む。その中、ストレージアレイモジュール102は、N1個のストレージユニット1021を含むことができ、各ストレージユニット1021は、1つのセットのSRAMなどであってよく、データパッキングアンパッキングモジュール103は、N2個のデータパッキングアンパッキングユニット1031を含むことができ、各データパッキングアンパッキングユニット1031は、1つのデータチャネルを介してルーティング交換モジュール106にそれぞれ接続することができ、N1とN2はいずれも1より大きい正整数であり、また、汎用演算モジュール1041は、M個の演算ユニット10411を含むことができ、アクティベーション演算モジュール1042は、P個の演算ユニット10421を含むことができ、各演算ユニット10411/10421は、1つのデータチャネルを介してルーティング交換モジュール106にそれぞれ接続することができ、MとPは、いずれも1より大きい正整数である。N1、N2、M、及びPの具体的な値は、実際のニーズに応じて決定することができる。
【0033】
それに応じて、データパッキングアンパッキングユニット1031は、ストレージユニット1021から取得したデータパケットデータとシステムコントローラ101から取得したデータパケット情報をパッキングし、データチャネルを使用して、パッキングされた第1のデータパケットをルーティング交換モジュール106を介して演算ユニット10411/10421に送信して演算処理を行い、データチャネルを使用して、ルーティング交換モジュール106を介して演算ユニット10411/10421によって返された第2のデータパケットを取得し、第2のデータパケットをアンパッキングして演算結果データを取得し、ストレージユニット1021に記憶することができる。
【0034】
実際の応用において、システムコントローラ101は、例えば、どのデータを取得し、どこから取得し、どの演算を行う必要があるかなどの、毎回のニューラルネットワーク演算の詳細などをシミュレーションすることができ、それに応じて、データパケット情報を生成し、関連するデータパッキングアンパッキングユニット1031に送信することができる。各データパッキングアンパッキングユニット1031は、例えば、システムコントローラ101からのデータパケット情報をそれぞれ取得し、パッキングアンパッキング操作を行うなど、並行に作業することができる。
【0035】
それに応じて、データパケット情報は、ソースチャネル、ソースアドレス、宛先チャネル(演算チャネル)、演算タイプ及びデータパケットの長さなどを含むことができる。データパッキングアンパッキングユニット1031は、ソースチャネルに対応するストレージユニット1021のソースアドレスからデータパケットデータを取得することができ、ルーティング交換モジュール106は、取得された第1のデータパケットを宛先チャネルに対応する演算ユニット10411/10421に送信することができ、演算ユニット10411/10421は、演算タイプに基づいて、対応するタイプの演算処理を行うことができる。
【0036】
好ましくは、N1とN2の値は同じであり、すなわちストレージユニット1021とデータパッキングアンパッキングユニット1031の数は同じであり、各データパッキングアンパッキングユニット1031は、それぞれ1つのストレージユニット1021に対応し、対応するストレージユニット1021からデータパケットデータを取得することができる。このようにして、各データパッキングアンパッキングユニット1031の並行作業をより良好に保証することができ、2つのデータパッキングアンパッキングユニット1031がいずれも特定のストレージユニット1021からデータを取得すると仮定すると、待機の状況が出現する可能性があり、すなわちその中の1つのデータパッキングアンパッキングユニット1031は、別のデータパッキングアンパッキングユニット1031がデータの取得を完了することを待った後にのみ、データを取得する必要があるため、効率の低下などを引き起こす。
【0037】
上記の処理方式では、ユニットを分割することにより、並行処理能力を上へのさせ、データの記憶のインタラクション能力などをさらに向上させる。
【0038】
既存の命令拡張をコアとするNPUでは、データの記憶のインタラクションは、統一されたロード/記憶(load/store)モードを使用して、順次に同期操作して、非効率である。本開示に記載された処理方式を使用した後、並行に処理することができ、同期操作による待ち時間遅れなどを回避して、システム制御とデータ記憶のインタラクションなどがより効率的になる。
【0039】
データパケット情報は、宛先アドレス又はストレージ戦略をさらに含むことができる。データパケット情報に宛先アドレスが含まれている場合、データパッキングアンパッキングユニット1031は、宛先アドレスに基づいて、演算結果データを対応するストレージユニット1021に記憶することができ、データパケット情報にストレージ戦略が含まれている場合、データパッキングアンパッキングユニット1031は、ストレージ戦略に基づいて、演算結果データを対応するストレージユニット1021に記憶することができる。前記ストレージ戦略は、データ整列を実現するストレージ戦略であってもよい。
【0040】
演算ユニット10411/10421が演算を完了した後、演算結果データを第1のデータパケットの中のデータセグメントのデータに置き換えることができ、データ長さは、通常、変化が発生するため、さらに、データパケット中のデータ長さ情報などを修正する必要があり、生成された第2のデータパケットを第1のデータパケットの伝送経路に従ってデータパッキングアンパッキングユニット1031に返し、データパッキングアンパッキングユニット1031は、演算結果データを第2のデータパケットから解析した後、演算結果データをどのように記憶するかという問題に関連する。
【0041】
それに応じて、データパケット情報は、ソースチャネル、ソースアドレス、宛先チャネル、及び宛先アドレスなどを含むことができ、すなわちソースアドレス、宛先アドレスと両側のチャネルアドレスを含むことができ、このようにして、取得された演算結果データについて、データパッキングアンパッキングユニット1031は、宛先アドレスに基づいて、それを対応するストレージユニット1021に記憶することができる。又は、データパケット情報は、宛先アドレスを含まないが、ストレージ戦略を含むこともでき、データパッキングアンパッキングユニット1031は、ストレージ戦略に基づいて、演算結果データを対応するストレージユニット1021に記憶することができ、データの自動整列などを実現することができる。
【0042】
前記ストレージ戦略が具体的にどのような戦略かは、実際のニーズに応じて決定することができ、例えば、上への整列、下への整列、整列後に他の場所どのように処理するか(例えば、充填処理を行うなど)などを含むことができる。
【0043】
ニューラルネットワークに関する演算操作は、データ縮小又は膨張になり、すなわち上記のデータ長さが変化し、演算後のデータ不整列が容易になり、既存の命令拡張をコアとするNPUでは、通常、追加のデータ変換又は転置でデータ整列問題を解決し、このような追加の操作は全体的な処理効率を低下させ、ニューラルネットワーク演算は大量の繰り返しの記憶演算インタラクション反復操作に関するため、全体的な処理効率に大きな影響を与える。本開示に記載された処理方式では、ルーティング交換の方式で記憶と演算の自由なインタラクションを実現し、ストレージ戦略などによって記憶を自動に完了し、データの自動整列を実現し、実現方式が簡単であり、全体的な処理効率などを向上させる。
【0044】
図3に示すように、システムコントローラ101は、外部バスインタフェースを介して処理ユニットとインタラクションすることができ、DMAモジュール105は、外部バス記憶インタフェースを介してダブルデータレート(DDR、Double Data Rate)外部ストレージユニットとインタラクションなどを行うことができ、具体的な実現は既存の技術である。
【0045】
以上は装置の実施例の説明であり、以下は方法の実施例を通じて、本開示に記載された方案をさらに説明する。
【0046】
図4は本開示のプロセッサ実現方法の実施例のフローチャートである。
図4に示すように、以下の具体的な実現方式を含む。
【0047】
401では、システムコントローラ、ストレージアレイモジュール、データパッキングアンパッキングモジュール、及び演算モジュールで構成されるプロセッサを構築する。
【0048】
402では、プロセッサを使用してニューラルネットワーク演算を行い、システムコントローラは、所定のデータパケット情報をデータパッキングアンパッキングモジュールに送信するために用いられ、データパッキングアンパッキングモジュールは、データパケット情報に基づいてストレージアレイモジュールから対応するデータパケットデータを取得し、データパケットデータとデータパケット情報をパッキングし、パッキングされた第1のデータパケットを演算モジュールに送信して演算処理を行い、演算モジュールによって返された第2のデータパケットを取得し、第2のデータパケットをアンパッキングして演算結果データを取得するために用いられ、ストレージアレイモジュールに記憶し、ストレージアレイモジュールは、データ記憶を行うために用いられ、演算モジュールは、取得された第1のデータパケットに対して演算処理を行い、演算結果データに基づいて第2のデータパケットを生成し、データパッキングアンパッキングモジュールに返すために用いられる。
【0049】
上記を基礎として、さらに、プロセッサにDMAモジュールを追加することができ、DMAモジュールは、システムコントローラの制御の下で外部ストレージデータとストレージアレイモジュール内の内部ストレージアレイデータの高速交換を実現するために用いられることができる。
【0050】
また、さらに、プロセッサにルーティング交換モジュールを追加することができ、ルーティング交換モジュールは、データパッキングアンパッキングモジュールから取得した第1のデータパケットを演算モジュールに送信し、演算モジュールから取得した第2のデータパケットをデータパッキングアンパッキングモジュールに送信するために用いられることができる。
【0051】
演算モジュールは、汎用演算を行うための汎用演算モジュールと、アクティベーション演算を行うためのアクティベーション演算モジュールを含むことができる。
【0052】
また、ストレージアレイモジュールは、N1個のストレージユニットを含むことができ、データパッキングアンパッキングモジュールは、N2個のデータパッキングアンパッキングユニットを含むことができ、各データパッキングアンパッキングユニットは、それぞれ1つのデータチャネルを介してルーティング交換モジュールに接続され、N1とN2はいずれも1より大きい正整数である。汎用演算モジュールは、M個の演算ユニットを含むことができ、アクティベーション演算モジュールは、P個の演算ユニットを含むことができ、各演算ユニットは、それぞれ1つのデータチャネルを介してルーティング交換モジュールに接続することができ、MとPは、いずれも1より大きい正整数である。
【0053】
それに応じて、データパッキングアンパッキングユニットは、ストレージユニットから取得したデータパケットデータとシステムコントローラから取得したデータパケット情報をパッキングし、データチャネルを使用して、パッキングされた第1のデータパケットをルーティング交換モジュールを介して演算ユニットに送信して演算処理を行い、データチャネルを使用して、ルーティング交換モジュールを介して演算ユニットによって返された第2のデータパケットを取得し、第2のデータパケットをアンパッキングして演算結果データを取得し、ストレージユニットに記憶するために用いられることができる。
【0054】
データパケット情報は、ソースチャネル、ソースアドレス、宛先チャネル、及び演算タイプを含むことができる。それに応じて、データパケットデータは、データパッキングアンパッキングユニットが、ソースチャネルに対応するストレージユニットのソースアドレスから取得したデータパケットデータであってもよく、第1のデータパケットを取得した演算ユニットは、ルーティング交換モジュールによって決定された宛先チャネルに対応する演算ユニットであってもよく、演算処理は、演算ユニットが行う前記演算タイプの演算処理であってもよい。
【0055】
好ましくは、N1とN2の値は同じであり、各データパッキングアンパッキングユニットは、1つのストレージユニットにそれぞれ対応し、対応するストレージユニットからデータパケットデータを取得する。
【0056】
データパケット情報は、宛先アドレス又はストレージ戦略をさらに含むことができる。データパケット情報に宛先アドレスが含まれている場合、データパッキングアンパッキングユニットは、宛先アドレスに基づいて、演算結果データを対応するストレージユニットに記憶することができ、データパケット情報にストレージ戦略が含まれている場合、データパッキングアンパッキングユニットは、ストレージ戦略に基づいて、演算結果データを対応するストレージユニットに記憶することができる。前記ストレージ戦略は、データ整列を実現するストレージ戦略であってもよい。
【0057】
図4に示す方法の実施例の具体的なワークフローは上記の装置の実施例の関連説明を参照し、ここで説明しない。
【0058】
要するに、本開示の方法の実施例に記載された方案を使用して、ストレージ及びコンピューティングの統合された実現方式を提出し、プロセッサにおいてニューラルネットワークが記憶から演算への全体的なインタラクションを完了し、複雑な命令設計と難易度の高いコンパイラ開発などを回避し、設計難易度を低下させ、全体的な処理効率などを向上させる。
【0059】
本開示の実施例によれば、本開示は電子機器及び読み取り可能な記憶媒体をさらに提供する。
【0060】
図5に示すように、それは本開示の実施例の前記方法に係る電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータなどの様々な形式のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタル処理、携帯電話、スマートフォン、ウェアラブルデバイス、他の同様のコンピューティングデバイスなどの様々な形式のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本開示の実現を制限することを意図したものではない。
【0061】
図5に示すように、当該電子機器は、一つ又は複数のプロセッサY01と、メモリY02と、高速インターフェースと低速インターフェースを含む各コンポーネントを接続するためのインターフェースと、を含む。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けられるか、又は必要に基づいて他の方式で取り付けることができる。プロセッサは、外部入力/出力装置(インターフェースに結合されたディスプレイデバイスなど)にGUIの図形情報をディスプレイするためにメモリに記憶されている命令を含む、電子機器内に実行される命令を処理することができる。他の実施方式では、必要であれば、複数のプロセッサ及び/又は複数のバスを、複数のメモリと複数のメモリとともに使用することができる。同様に、複数の電子機器を接続することができ、各電子機器は、部分的な必要な操作(例えば、サーバアレイ、ブレードサーバ、又はマルチプロセッサシステムとする)を提供することができる。
図5では、一つのプロセッサY01を例とする。
【0062】
メモリY02は、本開示により提供される非一時的なコンピュータ読み取り可能な記憶媒体である。その中、前記メモリには、少なくとも一つのプロセッサによって実行される命令を記憶して、前記少なくとも一つのプロセッサが本開示により提供される前記方法を実行することができるようにする。本開示の非一時的なコンピュータ読み取り可能な記憶媒体は、コンピュータが本開示により提供される前記方法を実行するためのコンピュータ命令を記憶する。
【0063】
メモリY02は、非一時的なコンピュータ読み取り可能な記憶媒体として、本開示の実施例における前記方法に対応するプログラム命令/モジュールように、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶するために用いられる。プロセッサY01は、メモリY02に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち上記の方法の実施例における前記方法を実現する。
【0064】
メモリY02は、ストレージプログラム領域とストレージデータ領域とを含むことができ、その中、ストレージプログラム領域は、オペレーティングシステム、少なくとも一つの機能に必要なアプリケーションプログラムを記憶することができ、ストレージデータ領域は、電子機器の使用によって作成されたデータなどを記憶することができる。また、メモリY02は、高速ランダム存取メモリを含むことができ、非一時的なメモリをさらに含むことができ、例えば、少なくとも一つのディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスである。いくつかの実施例では、メモリY02は、プロセッサY01に対して遠隔に設置されたメモリを含むことができ、これらの遠隔メモリは、ネットワークを介して電子機器に接続されることができる。上記のネットワークの例は、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びその組み合わせを含むが、これらに限定しない。
【0065】
電子機器は、入力装置Y03と出力装置Y04とをさらに含むことができる。プロセッサY01、メモリY02、入力装置Y03、及び出力装置Y04は、バス又は他の方式を介して接続することができ、
図5では、バスを介して接続することを例とする。
【0066】
入力装置Y03は、入力された数字又は文字情報を受信することができ、及び前記方法を実現する電子機器のユーザ設置及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、指示杆、一つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置である。出力装置Y04は、ディスプレイデバイス、補助照明デバイス、及び触覚フィードバックデバイス(例えば、振動モータ)などを含むことができる。当該ディスプレイデバイスは、液晶ディスプレイ、発光ダイオードディスプレイ、及びプラズマディスプレイを含むことができるが、これらに限定しない。いくつかの実施方式では、ディスプレイデバイスは、タッチスクリーンであってもよい。
【0067】
本明細書で説明されるシステムと技術の様々な実施方式は、デジタル電子回路システム、集積回路システム、特定用途向け集積回路、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施方式は、一つ又は複数のコンピュータプログラムで実施されることを含むことができ、当該一つ又は複数のコンピュータプログラムは、少なくとも一つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも一つの入力装置、及び少なくとも一つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも一つの入力装置、及び当該少なくとも一つの出力装置に伝送することができる。
【0068】
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械命令、高レベルのプロセス及び/又はオブジェクト指向プログラミング言語、及び/又はアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することを含む。本明細書に使用されるように、用語「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」は、機械命令及び/又はデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、機器、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイ)を指し、機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。用語「機械読み取り可能な信号」は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
【0069】
ユーザとのインタラクションを提供するために、コンピュータ上でここで説明されているシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、陰極線管又は液晶ディスプレイモニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置は、ユーザとのインタラクションを提供するために用いられることもでき、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
【0070】
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバー)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施方式とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続されることができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、ブロックチェーンネットワークと、インターネットとを含む。
【0071】
コンピュータシステムは、クライアントとサーバとを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。サーバは、クラウドサーバであってもよく、クラウド計算又はクラウドホストとも呼ばれ、クラウド計算サービスシステムの中の一つのホスト製品であり、従来の物理ホストとVPSサービスに、存在する管理困難度が高く、業務拡張性が弱い欠陥を解決する。
【0072】
上記に示される様々な形式のプロセスを使用して、ステップを並べ替え、追加、又は削除することができることを理解されたい。例えば、本開示に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案が所望の結果を実現することができれば、本明細書では限定されない。
【0073】
上記の具体的な実施方式は、本開示に対する保護範囲の制限を構成するものではない。当業者は、設計要求と他の要因に基づいて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。任意の本開示の精神と原則内で行われる修正、同等の置換、及び改善などは、いずれも本開示の保護範囲内に含まれなければならない。
【国際調査報告】