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

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

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

特許7158510複合計算装置、方法、人工知能チップ、電子設備、及びプログラム
<>
  • 特許-複合計算装置、方法、人工知能チップ、電子設備、及びプログラム 図1
  • 特許-複合計算装置、方法、人工知能チップ、電子設備、及びプログラム 図2
  • 特許-複合計算装置、方法、人工知能チップ、電子設備、及びプログラム 図3
  • 特許-複合計算装置、方法、人工知能チップ、電子設備、及びプログラム 図4
  • 特許-複合計算装置、方法、人工知能チップ、電子設備、及びプログラム 図5
  • 特許-複合計算装置、方法、人工知能チップ、電子設備、及びプログラム 図6
  • 特許-複合計算装置、方法、人工知能チップ、電子設備、及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-13
(45)【発行日】2022-10-21
(54)【発明の名称】複合計算装置、方法、人工知能チップ、電子設備、及びプログラム
(51)【国際特許分類】
   G06N 3/063 20060101AFI20221014BHJP
   G06F 15/80 20060101ALI20221014BHJP
【FI】
G06N3/063
G06F15/80
【請求項の数】 14
(21)【出願番号】P 2021001829
(22)【出願日】2021-01-08
(65)【公開番号】P2022013607
(43)【公開日】2022-01-18
【審査請求日】2021-01-08
(31)【優先権主張番号】202010612288.3
(32)【優先日】2020-06-30
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(73)【特許権者】
【識別番号】521457387
【氏名又は名称】クンルンシン テクノロジー (ベイジン) カンパニー リミテッド
【氏名又は名称原語表記】Kunlunxin Technology (Beijing) Company Limited
【住所又は居所原語表記】CW Section, F/4, Building 1, No.10, Shangdi 10th Street, Haidian District, 100101, Beijing, China
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【弁理士】
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】ジャオ,バオフ
(72)【発明者】
【氏名】ドゥ,シュエリャン
(72)【発明者】
【氏名】アン,カン
(72)【発明者】
【氏名】スー,インナン
(72)【発明者】
【氏名】タン,チャオ
【審査官】三坂 敏夫
(56)【参考文献】
【文献】国際公開第2019/049842(WO,A1)
【文献】特開平06-028331(JP,A)
【文献】特開平05-264645(JP,A)
【文献】米国特許第05371834(US,A)
【文献】特開平04-054685(JP,A)
【文献】米国特許第05256911(US,A)
【文献】小池 誠彦 ,ニューロコンピューティングのためのハードウェア,電子情報通信学会論文誌 ,社団法人電子情報通信学会,1990年08月25日,第J73-D-II巻 第8号,第1132頁-第1145頁
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00- 3/12
10/00-20/20
G06F 15/80
15/173
(57)【特許請求の範囲】
【請求項1】
入力インタフェースと、複数の計算コンポーネントと、出力インタフェースと、を備え、
前記入力インタフェースは、複数の命令ソースの各々によって送信された、命令ソース識別子と複合計算に用いられるソースオペランドとを含む複合計算命令を複数受信したとき、前記複数の複合計算命令の各々に含まれた計算タイプに基づいて、前記複数の複合計算命令をそれぞれに対応する計算コンポーネントに送信することに用いられ、
前記複数の算コンポーネントの各々は、前記入力インタフェースに接続され、
前記複数の計算コンポーネントの各々は、受信した複合計算命令からソースオペランドを取得して前記複合計算を行い、前記受信した複合計算命令に含まれた命令ソース識別子と前記複合計算の計算結果とを含む、前記受信した複合計算命令に対応する計算結果命令を生成して、前記出力インタフェースに送信することに用いられ、
前記出力インタフェースは、前記受信した複合計算命令に対応する前記計算結果命令を受信したとき、前記計算結果命令に含まれた命令ソース識別子に基づいて、前記計算結果命令に含まれた前記計算結果を、前記受信した複合計算命令の送信元に該当する命令ソースに送信することに用いられ、
前記入力インタフェース及び前記出力インタフェースのいずれもクロスバースイッチアレイ型アーキテクチャである、
複合計算装置。
【請求項2】
前記入力インタフェースは、複数の第1マスタノードと複数の第1スレーブノードとを含み、
各前記第1スレーブノードは、各第1マスタノードに接続され、各前記第1スレーブノードは、各前記計算コンポーネントと1対1に対応して接続され、
前記第1マスタノードは、複合計算命令を取得し、取得した複合計算命令における計算タイプに基づいて、取得した複合計算命令を対応する第1スレーブノードに送信し、
前記第1スレーブノードは、受信した複合計算命令を、接続された計算コンポーネントに送信することに用いられる、
請求項1に記載の複合計算装置。
【請求項3】
前記入力インタフェースは、各前記第1マスタノードと1対1に対応して接続された複数の第1アドレス判定モジュールと、各前記第1スレーブノードと1対1に対応して接続
された複数の第1送信モジュールと、をさらに含み、
各前記第1送信モジュールは、各前記第1アドレス判定モジュールに接続され、
前記第1アドレス判定モジュールは、接続された第1マスタノードから、対応する複合計算命令を受信し、受信した複合計算命令における命令タイプと、それぞれ接続された第1スレーブノードとを比較し、比較結果が一致した場合に、第1要求イネーブルアクティブ信号を出力し、
第1送信モジュールは、予め設定された送信アルゴリズムに基づいて、複数の出力された第1要求イネーブルアクティブ信号から第1目標要求イネーブルアクティブ信号を決定し、前記第1目標要求イネーブルアクティブ信号に対応する第1マスタノードと、第1送信モジュールに接続された第1スレーブノードとをゲーティングする、
請求項2に記載の複合計算装置。
【請求項4】
第1マスタノードの出力データは、前記計算タイプを含む第1アドレス信号と、前記命令ソース識別子及び前記ソースオペランドを含む第1データ信号とを含み、
前記第1アドレス判定モジュールは、接続された第1マスタノードから、対応する第1アドレス信号を受信し、受信した第1アドレス信号と、それぞれ接続された第1スレーブノードのシーケンス番号と、を比較することに用いられ、
前記第1スレーブノードは、ゲーティングされた第1マスタノードから、対応する第1データ信号を受信することに用いられる、
請求項3に記載の複合計算装置。
【請求項5】
前記第1マスタノードは、ハンドシェイクプロトコルを介して前記複合計算命令を受信する、請求項2に記載の複合計算装置。
【請求項6】
前記出力インタフェースは、各前記計算コンポーネントと1対1に対応して接続された複数の第2マスタノードと、各前記第2マスタノードとそれぞれ接続された複数の第2スレーブノードとを含み、
前記第2マスタノードは、接続された計算コンポーネントから、対応する計算結果命令を取得し、取得した計算結果命令における命令ソース識別子に基づいて、取得した計算結果命令を、対応する第2スレーブノードに送信することと、
第2スレーブノードは、受信した計算結果命令を、対応する命令ソースに送信することに用いられる、
請求項1に記載の複合計算装置。
【請求項7】
前記出力インタフェースは、各前記第2マスタノードと1対1に対応して接続された複数の第2アドレス判定モジュールと、それぞれ各前記第2アドレス判定モジュールに接続された複数の第2送信モジュールとをさらに含み、
前記第2アドレス判定モジュールは、接続された第2マスタノードから、対応する計算結果命令を受信し、受信した計算結果命令における命令ソース識別子と、それぞれ接続された第2スレーブノードとを比較し、比較結果が一致した場合に、第2要求イネーブルアクティブ信号を出力することに用いられ、
前記第2送信モジュールは、予め設定された送信アルゴリズムに基づいて、複数の出力された第2要求イネーブルアクティブ信号から第2目標要求イネーブルアクティブ信号を決定し、前記第2目標要求イネーブルアクティブ信号に対応する第2マスタノードと、前記第2送信モジュールに接続された第2スレーブノードとをゲーティングすることに用いられる、
請求項6に記載の複合計算装置。
【請求項8】
第2マスタノードの出力データは、前記命令ソース識別子を含む第2アドレス信号と、前記計算結果を含む第2データ信号とを含み、
前記第2アドレス判定モジュールは、接続された第2マスタノードから、対応する第2アドレス信号を受信し、受信した第2アドレス信号と、それぞれ接続された第2スレーブノードのシーケンス番号と、を比較することに用いられ、
前記第2スレーブノードは、ゲーティングされた第2マスタノードから、対応する第2アドレス信号を受信することに用いられる、
請求項7に記載の複合計算装置。
【請求項9】
前記第2マスタノードは、ハンドシェイクプロトコルを介して接続された計算コンポーネントから対応する計算結果命令を受信する、請求項8に記載の複合計算装置。
【請求項10】
請求項1~9のいずれか一項に記載の複合計算装置と、前記複合計算装置に接続された複数の命令ソースと、を備える、人工知能チップ。
【請求項11】
前記命令ソースは、人工知能プロセッサコアを備える、請求項10に記載の人工知能チップ。
【請求項12】
通信接続されている少なくとも1つのプロセッサと、
少なくとも1つのメモリと、
請求項10又は11に記載の少なくとも1つの人工知能チップと、を備える、
電子設備。
【請求項13】
入力インタフェースと、複数の計算コンポーネントと、出力インタフェースとを備える、複合計算装置によって実行される複合計算方法であって、
前記入力インタフェースが、複数の命令ソースの各々によって送信された、命令ソース識別子と複合計算に用いられるソースオペランドとを含む複合計算命令を複数受信したとき、前記複数の複合計算命令の各々に含まれた計算タイプに基づいて、前記複数の複合計算命令をそれぞれに対応する計算コンポーネントに送信することと、
前記複数の計算コンポーネントの各々が、受信した複合計算命令からソースオペランドを取得して前記複合計算を行い、前記受信した複合計算命令に含まれた命令ソース識別子と前記複合計算の計算結果とを含む、前記受信した複合計算命令に対応する計算結果命令を生成することと、
前記出力インタフェースが、前記受信した複合計算命令に対応する前記計算結果命令を受信したとき、前記計算結果命令に含まれた命令ソース識別子に基づいて、前記計算結果命令に含まれた前記計算結果を、前記受信した複合計算命令の送信元に該当する命令ソースに送信することと、を含み、
前記入力インタフェース及び前記出力インタフェースのいずれもクロスバースイッチアレイ型アーキテクチャである、
複合計算方法。
【請求項14】
入力インタフェースと、複数の計算コンポーネントと、出力インタフェースとを備える複合計算装置のプロセッサにより実行されると、請求項13に記載の複合計算方法を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、人工知能技術分野に関し、特に人工知能チップ技術分野に関する。
【背景技術】
【0002】
人工知能(Artificial Intelligence、AI)アルゴリズムには複合計算が数多く存在する。これらの複合計算は、AIプロセッサにおいて、複数の基本的な算術と論理演算命令とを組み合わせて実現することができるが、時間と労力がかかるだけでなく、これらの複合計算の実行効率を低下させ、ソフトウェアプログラミングにも不向きである。現在のAIプロセッサは、専用の複合計算ユニットをシングル命令の方法でコールすることにより複合計算を実現することが多い。これらの複合計算ユニットが占める論理面積は相対的に大きいため、マルチコアAIプロセッサにおいて、プロセッサコアがそれぞれこれらの複合計算ユニットを独占すれば、とても大きなチップ面積が占用され、実現のコストがかかりすぎる。また、実際の応用シーンにおいて、これらの複合計算命令の使用頻度はそれほど高いというわけではないため、プロセッサコアがそれぞれ独占したとき、これらの複合計算ユニットに対する使用率もそれほど高くない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明は、複合計算装置、方法、人工知能チップ、及び電子設備を提供する。
【課題を解決するための手段】
【0004】
本発明の第1態様は、複合計算装置を提供し、当該装置は、入力インタフェースと、複数の計算コンポーネントと、出力インタフェースと、を備え、入力インタフェースは、命令ソース識別子と複合計算に用いられるソースオペランドとを含む複合計算命令を受信し、かつ、各複合計算命令における計算タイプに基づいて、各複合計算命令を、対応する計算コンポーネントに送信ことに用いられ、各計算コンポーネントは、いずれも入力インタフェースに接続され、計算コンポーネントは、受信した複合計算命令から、ソースオペランドを取得して複合計算を行い、複合計算命令における命令ソース識別子と複合計算の計算結果とを含む計算結果命令を生成して、出力インタフェースに送信することに用いられ、出力インタフェースは、各計算結果命令における命令ソース識別子に基づいて、各計算結果命令における計算結果をそれぞれ対応する命令ソースに送信することに用いられる。
【0005】
本発明の第2態様は、人工知能チップを提供し、上記の複合計算装置と、複合計算装置に接続された複数の人口知能プロセッサコアとを備える。
【0006】
本発明の第3態様は、電子設備を提供し、少なくとも1つのプロセッサと、少なくとも1つのメモリと、上記の少なくとも1つの人工知能チップと、を備える。
【0007】
本発明の第4態様は、複合計算方法を提供し、複数の人口知能プロセッサコアから、人口知能プロセッサコアの命令ソース識別子と複合計算に用いられるソースオペランドとを含む複合計算命令を受信し、各複合計算命令における計算タイプに基づいて、各複合計算命令を、対応する計算コンポーネントに送信することと、計算コンポーネントが、受信した複合計算命令からソースオペランドを取得して複合計算を行い、複合計算命令における命令ソース識別子と複合計算の計算結果とを含む計算結果命令を生成することと、各計算結果命令における命令ソース識別子に基づいて、各計算結果命令における計算結果をそれぞれ対応する人口知能プロセッサコアに送信することと、を含む。
【0008】
ここに記載された内容は、本発明の実施形態のキーポイント又は重要な特徴を識別することを意図せず、また、本発明の範囲を制限することにも用いられないことを理解すべきである。本発明の他の特徴については、下記の明細書を通して説明を促す。
【図面の簡単な説明】
【0009】
添付図面は、本方案をより良く理解するためのものであり、本発明を限定するものではない。
図1】本発明の実施形態によるAIチップの構造模式図である。
図2】本発明の実施形態による複合計算装置の入力インタフェースの構造模式図である。
図3】本発明の実施形態による複合計算装置の入力インタフェースの応用例を示す図である。
図4】本発明の実施形態による複合計算装置の出力インタフェースの構造模式図である。
図5】本発明の実施形態による複合計算装置の出力インタフェースの応用例を示す図である。
図6】本発明の実施形態による電子設備の構造模式図である。
図7】本発明の実施形態による複合計算方法の模式図である。
【発明を実施するための形態】
【0010】
以下、添付図面を参照しながら、本発明の例示的な実施形態について説明するが、理解を容易にするために本発明の実施形態の様々な詳細が含まれており、それらは単なる例示的なものと見なすべきである。したがって、当業者は、本発明の範囲及び旨から逸脱することがなく、本発明の明細書に記載された実施形態に対して様々な変更及び修正を行うことができることを理解すべきである。同様に、以下の説明では、明瞭かつ簡潔のために、公知の機能及び構造についての説明を省略する。
【0011】
図1は、本発明の実施形態による人工知能(Artificial Intelligence)チップ10の構造模式図である。
【0012】
図1に示すように、AIチップ10は、複数の命令ソース100と複合計算装置200とを含み、複数の命令ソース100はそれぞれ複合計算装置200に接続されている。本実施形態において、命令ソース100はAIプロセッサコアであってもよい。ここで、複合計算装置200は、入力インタフェース210と、複数の計算コンポーネント220と、出力インタフェース230とを含む。入力インタフェース210は、複数のAIプロセッサコア100と複数の計算コンポーネント220との間に接続されてもよく、出力インタフェースは、複数の計算コンポーネント220と複数のAIプロセッサコア100との間に接続されてもよい。
【0013】
複数の計算コンポーネント220は、超越関数ユニット(Special Function Unit,SFU)を構成してもよく、各計算コンポーネント220は独立した演算能力を有し、ある種の複合計算を実現することができる。ここで、複合計算とは単純な演算に対して計算量の比較的大きい演算を指してもよく、単純な演算とは計算量の比較的小さい演算を指してもよい。例えば、単純な演算は、加算演算、乗算演算、又は加算演算と乗算演算とを簡単に組み合わせた演算であってもよい。命令ソース100、例えばAIプロセッサコアは、いずれも加算器と乗算器とを含み、そのため、AIプロセッサコアに対して、より簡単な演算を行うのに適している。一方、複合計算とは、加算演算と乗算演算との簡単な組み合わせにより組み合わせることのできない演算を指し、例えば、浮動小数点乗演算、浮動小数点平方根演算、浮動小数点除算演算、浮動小数点対数演算、三角関数演算等である。
【0014】
例示的に、計算コンポーネント1は、浮動小数点乗演算を実現するために用いられ、計算コンポーネント2は、浮動小数点平方根演算を実現するために用いられ、…計算コンポーネントNは、三角関数演算を実現するために用いられる。
【0015】
1つの実施形態において、計算コンポーネント220は、特定用途向け集積回路(ASIC,Application Specific Integrated Circuit)チップ及びフィールドプログラマブルゲートアレイ(FPGA,Field Programmable Gate Array)の少なくとも1つを含むことができる。
【0016】
例示的に、命令ソース、例えばAIプロセッサコア100は、実行されるべき命令を受信したもとで、実行されるべき命令に対して復号を行い、復号されたデータを複合計算命令sfu_dinaにスプライシングすることができる。複合計算命令には、計算タイプ(複合計算の動作タイプ)、命令ソース識別子(例えば、AIプロセッサコアのコアID等)、ソースオペランド、ライトバックアドレス等を含むことができる。例示的に、AIプロセッサコア100は、生成された複合計算命令sfu_dinaを専用のSFU命令キューに追加する。ここで、SFU命令キューはFIFO(First Input First Output)キューである。
【0017】
各命令ソース、例えばAIプロセッサコア100は、複合計算装置200の入力インフェース210に命令要求req1を送信することができ、入力インタフェース210、命令要求に応答して、各AIプロセッサコア100から複合計算命令sfu_dinを取得し、各複合計算命令sfu_dinaにおける計算タイプに基づいて、各複合計命令sfu_dinaをそれぞれ対応する計算コンポーネント220に送信する。
【0018】
例えば、sfu_dina1における計算タイプが浮動小数点平方根演算である場合、入力インタフェース210は、sfu_dina1を計算コンポーネント2に送信し、sfu_dina2における計算タイプが浮動小数点乗演算である場合、入力インタフェース210は、sfu_dina1を計算コンポーネント1に送信する。
【0019】
計算コンポーネント220は、受信した複合計算命令sfu_dinaからソースオペランドを取得して複合計算を行い、計算結果命令sfu_doutを生成して出力インタフェース230に送信する。計算結果命令sfu_doutには、命令ソース識別子、計算結果、及びライトバックアドレス等を含んでもよい。ここで、計算結果は、計算コンポーネント220のソースオペランドに対する複合計算の計算結果であり、命令ソース識別子及びライトバックアドレスは、該計算コンポーネント220が受信した複合計算命令sfu_dina内のデータから得られる。
【0020】
例えば、計算コンポーネント1は、ソースオペランドX及びY、ライトバックアドレスZ、命令ソース識別子AA等を含む複合計算命令sfu_dina2を受信し、計算コンポーネント1は、ソースオペランドX及びYに対して浮動小数点乗演算を行い、かつ、計算結果、ライトバックアドレスZ、命令ソース識別子AA等を計算結果命令sfu_dout1にスプライシングして出力インタフェース230に送信する。
【0021】
出力インタフェース230は、各計算コンポーネント220から計算結果命令sfu_dout1、sfu_dout2…sfu_doutNを受け取り、各計算結果命令における命令ソース識別子に基づいて、各計算結果命令内の計算結果及びライトバックアドレスをそれぞれ対応する命令ソース、例えば、AIプロセッサコア100に送信する。AIプロセッサコア100は、ライトバックアドレスに基づいて計算結果を内部レジスタに書き込む。
【0022】
本発明の実施形態により提供される複合計算装置200は、AIプロセッサコア100のような様々な命令ソースと低結合であり、様々な種類の複合計算命令は、同じデータパス(入力インタフェース210)を使用し、対応する計算コンポーネントに送信され、各計算結果命令も同じデータパス(出力インタフェース230)を使用して各命令ソースに返されるため、複数の命令ソースのSFU共有を実現し、命令ソースがSFUをコールして複合計算を行う際のデータパスを減少することができ、AIチップの面積オーバーヘッド及び消費電力オーバーヘッドを減少する。
【0023】
1つの実施形態において、入力インタフェース210及び出力インタフェース230は、クロスバースイッチアレイ(crossbar)型アーキテクチャである。
【0024】
図2に示すように、入力インタフェース210は、複数の第1マスタノード211及び複数の第1スレーブノード212を含むことができる。ここで、各第1スレーブノード212はそれぞれ各第1のマスタノード211に接続され、各第1スレーブノード212は各計算コンポーネント220に1対1に対応して接続される。即ち、入力インタフェース210は、マスタノード(master)―スレーブノード(slave)アーキテクチャタイプであってもよい。例示的に、各第1マスタノード211は各AIプロセッサコア100と1対1に対応して接続される。
【0025】
これにより、第1マスタノード211は、接続されたAIプロセッサコア100から対応する複雑計算命令を取得し、取得した複雑計算命令における計算タイプに基づいて、取得した複雑計算命令を対応する第1スレーブノード212に送信送信することができる。第1スレーブノード212は、受信した複合計算命令を、接続された計算コンポーネント220に送信することができる。
【0026】
1つの実施形態において、図2に示すように、入力インタフェース210は、各第1マスタノード211と1対1に対応して接続された複数の第1アドレス判定モジュール213と、それぞれ各第1アドレス判定モジュール213に接続された第1送信モジュール214とをさらに含んでもよく、各第1送信モジュール214は各第1スレーブノード212と1対1に対応して接続される。
【0027】
これにより、第1アドレス判定モジュール213は、接続された第1マスタノード211から対応する複合計算命令を受信し、受信した複合計算命令における命令タイプと接続された各第1スレーブノード212とを比較し、比較結果が一致した場合に、第1要求イネーブルアクティブ信号出力することができ、即ちreq_en1は有効である。
【0028】
例示的に、各第1マスタノード211内のデータは、命令要求信号req1、第1アドレス信号addr1、第1データ信号data1、及び命令応答信号gnt1を含む。ここで、第1アドレス信号addr1は、複合計算命令sfu_dinaにおける計算タイプを含み、第1データ信号data1は、複合計算命令sfu_dinaにおける命令ソース識別子、ソースオペランド、及びライトバックアドレス等を含む。
【0029】
即ち、各第1マスタノード211は、複合計算命令sfu_dinaを受信すると、該複合計算命令sfu_dinaにおける計算タイプを第1マスタノード211の第1アドレス信号addr1とし、該複合計算命令sfu_dinaにおける命令ソース識別子、ソースオペランド、及びライトバックアドレス等を第1マスタノード211の第1データ信号data1とする。
【0030】
各第1アドレス判定モジュール213は、該第1アドレス判定モジュール213に接続された第1マスタノード211の、第1アドレス信号addr1と各第1スレーブノード212のシーケンス番号とを比較し、一致した場合に、対応する第1スレーブノード212に接続された第1送信モジュール214にreq_en1が有効である信号(第1要求イネーブルアクティブ信号)を出力し、一致しない場合に、req_en1が無効である信号(第1要求イネーブルインアクティブ信号)を出力する。ここで、「一致」とは等しいことを指してもよい。
【0031】
第1送信モジュール214は、予め設定された送信アルゴリズムに基づいて、複数の出力された第1要求イネーブルアクティブ信号から第1目標要求イネーブルアクティブ信号を決定し、第1ターゲット要求イネーブルアクティブ信号に対応する第1マスタノード211と、第1送信モジュール214に接続された第1スレーブノード212とをゲーティングする。ここで、送信アルゴリズムには、優先度送信アルゴリズム、ポーリング送信アルゴリズム等が含まれるが、これらに限定されない。
【0032】
例示的に、各第1スレーブノード212におけるデータは、アクティブ信号vld及びデータ信号data´を含む。各第1スレーブノード212は、1つの第1送信モジュール214に対応する。第1送信モジュール214は、全ての第1マスタノード211に接続された第1アドレス判定モジュール213によって生成されたreq_en1信号を受信し、かつ、有効なreq_en1信号に対して送信選択を行い、その中から1つの第1マスタノード211をゲーティングし、即ち、第1目標要求イネーブルアクティブ信号に対応する第1マスタノード211と、第1送信モジュール214に接続された第1スレーブノード212とをゲーティングする。ある第1のマスタノード211とある第1スレーブノード212とがゲーティングした後、第1マスタノード211の信号data1を第1スレーブノードの信号data´に与えることができ、第1スレーブノードのvld信号を有効とすることができる。
【0033】
図2及び図3に示すように、入力インタフェース210は、M個の第1マスタノード211及びN個の第1スレーブノード212をサポートし、即ち最大で同時にM(M<Nの場合)又はN(M>Nの場合)つのパスを同時にゲーティングすることができる。図3に示すように、2つの径路が同時にゲーティングされ、それぞれ、第1マスタノード2と第1スレーブノードNとがゲーティングし、第1マスタノードMと第1スレーブノード1とがゲーティングする。ここで、Mは命令ソース(例えばAIプロセッサコア100)の数であり、Nは複合計算命令の計算タイプの数である。
【0034】
1つの実施形態において、第1マスタノード210は、ハンドシェイクプロトコルを介して、接続されたAIプロセッサコア100から対応する複合計算命令を取得する。例えば、第1マスタノードMが命令要求信号req1を受信し、調停を経て、第1スレーブノード1が第1マスタノードMをゲーティングすると、第1マスタノードMの命令応答信号gnt1が有効となり、即ち入力req1と出力gnt1とがハンドシェイク信号であり、今回のデータ転送が完了し、次のデータ転送を開始することができることを示す。
【0035】
1つの実施形態において、図4に示すように、出力インタフェース230は、各計算コンポーネントと1対1に対応して接続された複数の第2マスタノード231と、各第2マスタノード231とそれぞれ接続された複数の第2スレーブノード232とを含む。即ち、出力インタフェース230は、master―slaveアーキテクチャタイプであってもよい。例示的に、各第2スレーブノード232は、各人工知能プロセッサコア100と1対1に対応して接続される。
【0036】
これにより、第2マスタノード231は、接続された計算コンポーネントから対応する計算結果命令を取得し、取得した計算結果命令における命令ソース識別子に基づいて、取得した計算結果命令を対応する第2スレーブノード232に送信することができ、第2スレーブノード232は、受信した計算結果命令を対応する命令ソースに送信することができ、例えば、該第2スレーブノード232に接続されたAIプロセッサコア100である。計算結果命令には、計算結果とライトバックアドレスとがさらに含まれ、AIプロセッサコア100は、ライトバックアドレスに基づいて計算結果を内部レジスタに書き込む。
【0037】
1つの実施形態において、図4に示すように、入力インタフェース210、各第2マスタノード231と1対1に対応して接続された複数の第2アドレス判定モジュール233と、それぞれ各第2アドレス判定モジュール213に接続された第2送信モジュール234とをさらに含んでもよく、各第2送信モジュール234は各第2スレーブノード232と1対1に対応して接続される。
【0038】
これにより、第2アドレス判定モジュール233は、接続された第2マスタノード231から対応する計算結果命令sfu_doutを受信し、受信した計算結果命令sfu_doutにおける命令ソース識別子とそれぞれ接続された第2スレーブノード232と比較し、比較結果が一致した場合に、第2要求イネーブルアクティブ信号を出力し、即ち即ちreq_en2は有効である。
【0039】
例示的に、各第2マスタノード231におけるデータは、結果要求信号req2、第2アドレス信号addr2、第2データ信号data2、及び結果応答信号gnt2を含む。ここで、第2アドレス信号addr2は、計算結果命令sfu_doutにおける命令ソース識別子を含み、第2データ信号data2は、計算結果命令sfu_doutにおける計算結果及びライトバックアドレス等を含む。即ち、各第2マスタノード231は、計算結果命令sfu_doutを受信すると、該計算結果命令sfu_doutにおける命令ソース識別子を第2マスタノード231の第2アドレス信号addr2とし、該計算結果命令sfu_doutにおける計算結果及びライトバックアドレス等を第2マスタノード231の第2データ信号data2とする。
【0040】
各第2アドレス判定モジュール233は、該第2アドレス判定モジュール233に接続された第2マスタノード231の第2アドレス信号addr2と各第2スレーブノード232のシーケンス番号とを比較し、一致した場合に、対応する第2スレーブノード232に接続された第2送信モジュール234にreq_en2が有効である信号(第2要求イネーブルアクティブ信号)を出力し、一致しない場合に、req_en2が無効である信号(第2要求イネーブルインアクティブ信号)を出力する。ここで、「一致」とは等しいことを指してもよい。
【0041】
第2送信モジュール234は、予め設定された送信アルゴリズムに基づいて、複数の出力された第2要求イネーブルアクティブ信号から第2目標要求イネーブルアクティブ信号を決定し、第2ターゲット要求イネーブルアクティブ信号に対応する第2マスタノード231と、第2送信モジュール234に接続された第2スレーブノード232とをゲーティングする。
【0042】
例示的に、各第2スレーブノード232におけるデータは、アクティブ信号vld´及びデータ信号data´´を含む。各第2スレーブノード232は、1つの第2送信モジュール234に対応する。第2送信モジュール234は、全ての第2マスタノード231に接続された第2アドレス判定モジュール233によって生成されたreq_en2信号を受信し、かつ、有効なreq_en2信号に対して送信選択を行い、その中から1つの第2マスタノード211をゲーティングし、即ち、第2目標要求イネーブルアクティブ信号に対応する第2マスタノード231と、第2送信モジュール234に接続された第2スレーブノード232とをゲーティングする。ある第2のマスタノード231とある第2スレーブノード232とがゲーティングした後、第2マスタノード231の信号data2を第2スレーブノードの信号data´´に与えることができ、第2スレーブノード232のvld´信号を有効とすることができる。
【0043】
図4及び図5に示すように、出力インタフェースは、N個の第2マスタノード231及びM個の第2スレーブノード232をサポートし、即ち最大で同時にM(M<Nの場合)又はN(M>Nの場合)つのパスを同時にゲーティングすることができる。図5に示すように、2つの径路が同時にゲーティングされ、それぞれ、第2マスタノード1と第1スレーブノード3とがゲーティングし、第2マスタノードNと第2スレーブノード1とがゲーティングする。
【0044】
計算コンポーネント220の数はNであってもよく、Nより大きくても良い。例えば、実際の使用の際に、ある計算タイプの使用頻度が他の計算タイプよりもはるかに高いことがわかった場合、該計算タイプの対応する計算コンポーネント220の数を増やすことで計算力を増加してもよく、第1スレーブノード212と第2マスタノード231の数を相応的に増加すればよい。
【0045】
1つの実施形態において、第2マスタノード231は、ハンドシェイクプロトコルを介して、接続された計算コンポーネント220から対応する計算結果命令を取得する。例えば、第2マスタノード1が結果要求信号req2を受信し、調停を経て、第2スレーブノード3が第2マスタノード1をゲーティングすると、第2マスタノード1の命令応答信号gnt2が有効となり、即ち入力req2と出力gnt2とがハンドシェイク信号となり、今回のデータ転送が完了し、次のデータ転送を開始することができることを示す。
【0046】
従来のAIチップは、各種の複合計算命令を実現する際に、命令要求の送信と計算結果の書き戻しの段階にそれぞれ単独のデータキャッシュパスを提供する。複合計算命令の計算タイプが比較的多い場合、これらのデータキャッシュパスは、比較的多くの面積リソースを消費し、リソース消費の無駄を生む。また、各種SFU命令ごとに専用のデータパスを設けると、命令拡張の際に、相応のデータパスを更に追加する必要があり、SFUの拡張やデータパスの再利用には不利である。
【0047】
本実施形態における複合演算装置200は、crossbar形式の入力インタフェース210及び出力インタフェース230を用いることができるため、占有面積を減らし、AIチップ10の面積を小さくすることができ、さらに、crossbarは柔軟な構成をサポート、異なる命令ソース(例えば、AIプロセッサコア100)の数と複合計算タイプの数の適応に便利であり、さらに、需要に応じて計算コンポーネント220の数を柔軟に拡張できることで、同時性及び計算力を向上させ、AIチップ10の性能を向上させる。
【0048】
図6は、本発明の実施形態による電子設備の構造模式図である。図8に示すよう、電子設備は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータのような様々な形態のデジタルコンピュータを表す。また、電子設備はパーソナルデジタル処理、携帯電話、スマートフォン、装着可能デバイス、及びその他の類似のコンピューティングデバイス等の様々な形態のモバイルデバイスを表すことができる。ここで示した構成要素、それらの接続と関係、及びそれらの機能は例示的なものに過ぎず、本発明で説明されたもの及び/又は要求される本発明の実施を制限することは意図されない。
【0049】
図6に示すよう、当該電子設備は、1つ又は複数のプロセッサ601と、メモリ602と、1つ又は複数の人工知能チップと、高速インタフェースと低速インタフェースとを含む各構成要素を接続するためのインタフェースとを含む。各構成要素は、異なるバスを利用して互いに接続し、共通のマザーボードに取り付けられてもよいし、必要に応じて他の方法で取り付けられてもよい。プロセッサは、電子設備内で実行される命令を処理してもよく、また、外部入出力デバイス(例えば、インタフェースに接続された表示デバイス)にグラフィックユーザインタフェース(Graphical User Interface,GUI)を表示するための、メモリ又はメモリ上に記憶されたグラフィカル情報の命令を含む。他の実施形態では、必要に応じて、複数のプロセッサ及び/又は複数のバスを複数のメモリ及び複数のメモリとともに使用することができる。同様に、複数の電子設備を接続してもよく、各デバイスは、部分的に必要な動作(例えば、サーバアレイ、ブレードサーバのセット、又はマルチプロセッサシステムとして)を提供する。図6においてプロセッサ601を例とする。
【0050】
該電子設備は、入力装置603と出力装置604とをさらに含むことができる。プロセッサ601、メモリ602、入力装置603、及び出力装置604は、バス又は他の方法で接続されてもよく、図6ではバスを介して接続されている。
【0051】
入力装置603は、入力された数字又は文字を受信し、電子設備のユーザ設定及び機能制御に関するキー信号入力を生成することができ、例えば、タッチパネル、キーパッド、マウス、トラックボード、タッチパッド、指示棒、1つ又は複数のマウスボタン、トラックボール、ジョイスティック等を含むことができる。出力装置604は、表示装置、補助照明装置(例えばLED)、及び触覚フィードバック装置(例えば、振動モータ)等を含むことができる。この表示装置は、液晶ディスプレイ(Liquid Crystal Display、LCD)、発光ダイオード(Light Emitting Diode、LED)ディスプレイ及びプラズマディスプレイを含むことができるがこれらに限定されない。いくつかの実施形態では、表示装置はタッチパネルであってもよい。
【0052】
ユーザとのイントラクションを提供するために、本発明で説明されているシステムや技術は、コンピュータ上で実施されてもよく、また、ユーザに情報を表示するための表示装置(例えば、CRT(Cathode Ray Tube、ブラウン管)又はLCD(液晶ディスプレイ)モニタ)と、入力をコンピュータに提供するためのキーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを備えてもよい。他の種類の装置も、ユーザとのイントラクションを提供するために使用され得る。例えば、ユーザに提供されたフィードバックは、任意の形態のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、ユーザからの入力は、いかなる形式(音響入力、音声入力、又は触覚入力を含む)で受信されてもよい。
【0053】
図7は、本発明の実施形態に基づく複合計算方法を示し、以下のステップを含む。
【0054】
ステップS701において、人工知能プロセッサコアの命令ソース識別子と複合計算に用いられるソースオペランドとを含む複合計算命令を受信し、各複合計算命令における計算タイプに基づいて、各複合計算命令を、対応する計算コンポーネントに送信する。
【0055】
ステップS702において、計算コンポーネントが、受信した複合計算命令からソースオペランドを取得して複合計算を行い、複合計算命令における命令ソース識別子と複合計算の計算結果とを含む計算結果命令を生成する。
【0056】
ステップS703において、各計算結果命令における命令ソース識別子に基づいて、各計算結果命令における計算結果をそれぞれ対応する命令ソースに送信する。
【0057】
1つの実施形態において、本発明の実施形態は、上記複合計算装置200により実行することができ、例えば、入力インタフェース210によりステップS701を実行し、出力インタフェース230によりステップS703が実行する。
【0058】
上記の様々な態様のフローを使用して、ステップを新たに順序付け、追加、又は削除することが可能であることを理解すべきである。例えば、本発明で記載された各ステップは、並列に実行しても良いし、順次に実行しても良いし、異なる順序で実行しても良い。本発明で開示された技術案が所望する結果を実現することができる限り、本発明ではこれに限定されない。
【0059】
さらに、「第1」、「第2」という用語は、目的を説明するためだけに用いられ、比較的な重要性を示す又は暗示する、又は指示された技術特徴を暗に示すためのものと理解すべきでない。したがって、「第1」、「第2」と限定された特徴は、1つ又は複数の該特徴を明示的又は暗黙的に含むことができる。本発明の説明において、「複数」の意味は、特に具体的な限定がない限り、2つ又は2つ以上である。「接続」という用語は、広義的に理解すべきであり、例えば、直接的に接続されてもよく、中間媒体を介して間接的に接続されてもよい。当業者にとって、上記用語の本発明における具体的な意味は、具体的な状況に応じて理解することができる。
【0060】
上記具体的な実施形態は、本発明の保護範囲に対する限定を構成するものではない。当業者は、設計事項やその他の要因によって、様々な修正、組み合わせ、サブ組み合わせ、及び代替が可能であることを理解するべきである。本発明の要旨及び原則内における変更、均等な置換及び改善等は、いずれも本発明の保護範囲に含まれるべきである。
【符号の説明】
【0061】
10…AIチップ
100…AIプロセッサコア
200…複合計算装置
210…入力インタフェース
220…計算コンポーネント
230…出力インタフェース
211…第1マスタノード
212…第1スレーブノード
213…第1アドレス判定モジュール
214…第1送信モジュール
231…第2マスタノード
232…第2スレーブノード
233…第2アドレス判定モジュール
234…第2送信モジュール
601…プロセッサ
602…メモリ
603…入力装置
604…出力装置
図1
図2
図3
図4
図5
図6
図7