(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-27
(45)【発行日】2022-07-05
(54)【発明の名称】人工知能チップに適用される算出方法および人工知能チップ
(51)【国際特許分類】
G06F 9/318 20060101AFI20220628BHJP
G06F 9/38 20060101ALI20220628BHJP
【FI】
G06F9/318 C
G06F9/38 370C
【外国語出願】
(21)【出願番号】P 2019128286
(22)【出願日】2019-07-10
【審査請求日】2019-12-03
(31)【優先権主張番号】201810906485.9
(32)【優先日】2018-08-10
(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
(74)【代理人】
【識別番号】100099623
【氏名又は名称】奥山 尚一
(74)【代理人】
【識別番号】100107319
【氏名又は名称】松島 鉄男
(74)【代理人】
【識別番号】100125380
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【氏名又は名称】田中 祐
(74)【代理人】
【識別番号】100170379
【氏名又は名称】徳本 浩一
(74)【代理人】
【識別番号】100180231
【氏名又は名称】水島 亜希子
(74)【代理人】
【識別番号】100096769
【氏名又は名称】有原 幸一
(73)【特許権者】
【識別番号】521457387
【氏名又は名称】クンルンシン テクノロジー (ベイジン) カンパニー リミテッド
【氏名又は名称原語表記】Kunlunxin Technology (Beijing) Company Limited
【住所又は居所原語表記】CW Section, F/4, Building 1, No.10, Shangdi 10th Street, Haidian District, 100101, Beijing, China
(72)【発明者】
【氏名】オウヤン,ジィェン
(72)【発明者】
【氏名】ドゥ,シュェリィァン
(72)【発明者】
【氏名】シュ,インナン
(72)【発明者】
【氏名】リー,フゥイミン
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2011-138308(JP,A)
【文献】特開平04-195251(JP,A)
【文献】特開2006-048661(JP,A)
【文献】特表2002-508864(JP,A)
【文献】国際公開第95/016952(WO,A1)
【文献】特表2015-532990(JP,A)
【文献】米国特許出願公開第2012/0066474(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/318
G06F 9/38
(57)【特許請求の範囲】
【請求項1】
複数のプロセッサコアと、前記複数のプロセッサコアの各プロセッサコアに接続され、前記複数のプロセッサコアに共用される演算アクセラレータとを備える人工知能チップに適用される算出方法であって、
前記複数のプロセッサコアにおけるターゲットプロセッサコアにより実行対象命令をデコードし、演算識別子および少なくとも一つのオペランドを得るステップと、
前記ターゲットプロセッサコアが、デコードにより取得された演算識別子が予め設定された複雑演算識別子であると確定されたことに応答して、デコードにより取得された演算識別子と少なくとも一つのオペランドとを用いて複雑演算命令を生成するステップと、
前記ターゲットプロセッサコアが、生成された複雑演算命令を複雑演算命令キューに追加するステップと、
前記演算アクセラレータが、前記複雑演算命令キューから複雑演算命令を選択するステップと、
前記演算アクセラレータが、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行して、演算結果を得るステップと、
前記演算アクセラレータが、得られた演算結果を複雑演算結果として複雑演算結果キューに書き込むステップと、
を含む、人工知能チップに適用される算出方法。
【請求項2】
前記複数のプロセッサコアにおけるターゲットプロセッサコアが実行対象命令をデコードする前に、
実行対象命令の受信に応答して、前記複数のプロセッサコアから、前記実行対象命令を実行するプロセッサコアを選択してターゲットプロセッサコアとするステップをさらに含む請求項1に記載の方法。
【請求項3】
前記複雑演算命令キューは、前記複数のプロセッサコアの各々のプロセッサコアに対応する複雑演算命令キューを含み、前記複雑演算結果キューは、前記複数のプロセッサコアの各々のプロセッサコアに対応する複雑演算結果キューを含み、
前記ターゲットプロセッサコアが、生成された複雑演算命令を複雑演算命令キューに追加するステップは、
前記ターゲットプロセッサコアが、生成された複雑演算命令を前記ターゲットプロセッサコアに対応する複雑演算命令キューに追加するステップを含み、
前記演算アクセラレータが、前記複雑演算命令キューから複雑演算命令を選択するステップは、
前記演算アクセラレータが、前記複数のプロセッサコアの各々のプロセッサコアに対応する複雑演算命令キューから複雑演算命令を選択するステップを含み、
前記演算アクセラレータが、得られた演算結果を複雑演算結果として複雑演算結果キューに書き込むステップは、
前記演算アクセラレータが、得られた演算結果を複雑演算結果として、選択された複雑演算命令の由来する複雑演算命令キューに対応するプロセッサコアに対応する複雑演算結果キューに書き込むステップを含む、
請求項2に記載の方法。
【請求項4】
前記演算アクセラレータが、得られた演算結果を複雑演算結果として、選択された複雑演算命令の由来する複雑演算命令キューに対応するプロセッサコアに対応する複雑演算結果キューに書き込んだ後、
前記ターゲットプロセッサコアが、前記ターゲットプロセッサコアに対応する複合演算結果キューから複雑演算結果を選択して、前記ターゲットプロセッサコアの結果レジスタおよび/または前記人工知能チップのメモリに書き込むステップをさらに含む請求項3に記載の方法。
【請求項5】
前記ターゲットプロセッサコアが、デコードにより取得された演算識別子が予め設定された複雑演算識別子であると確定されたことに応答して、デコードされた演算識別子と少なくとも一つのオペランドとを用いて複雑演算命令を生成するステップは、
前記ターゲットプロセッサコアが、デコードにより取得された演算識別子が予め設定された複雑演算識別子であると確定されたことに応答して、デコードされた演算識別子、少なくとも一つのオペランドおよびターゲットプロセッサコア識別子を用いて、複雑演算命令を生成するステップを含み、
前記演算アクセラレータが、得られた演算結果を複雑演算結果として複雑演算結果キューに書き込むステップは、
前記演算アクセラレータが、得られた演算結果および選択された複雑演算命令におけるプロセッサコア識別子を複雑演算結果として前記複雑演算結果キューに書き込むステップを含む、
請求項2に記載の方法。
【請求項6】
前記演算アクセラレータが、得られた演算結果および選択された複雑演算命令におけるプロセッサコア識別子を複雑演算結果として前記複雑演算結果キューに書き込んだ後、
前記ターゲットプロセッサコアが、前記複雑演算結果キューから、プロセッサコア識別子が前記ターゲットプロセッサコア識別子である複雑演算結果の演算結果を選択して、前記ターゲットプロセッサコアの結果レジスタおよび/または前記人工知能チップのメモリに書き込むステップをさらに含む請求項5に記載の方法。
【請求項7】
前記演算アクセラレータは、特定用途向け集積回路チップおよびフィールドプログラマブルゲートアレイのうちの少なくとも1つを含む、
請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記複雑演算命令キューおよび前記複雑演算結果キューは先入れ先出しキューである、
請求項1~6のいずれか1項に記載の方法。
【請求項9】
前記複雑演算命令キューおよび前記複雑演算結果キューはキャッシュに格納される、
請求項1~6のいずれか1項に記載の方法。
【請求項10】
前記演算アクセラレータは少なくとも一つの演算ユニットを含み、
前記演算アクセラレータが、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行するステップは、
前記演算アクセラレータにおける、選択された複雑演算命令中の複雑演算識別子に対応する演算ユニットが、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行するステップを含む、
請求項1~6のいずれか1項に記載の方法。
【請求項11】
前記予め設定された複雑演算識別子は、べき演算識別子、開平演算識別子、三角関数演算識別子のうちの少なくとも1つを含む、
請求項1~6のいずれか1項に記載の方法。
【請求項12】
複数のプロセッサコアと、
前記複数のプロセッサコアの各プロセッサコアに接続され、前記複数のプロセッサコアに共用される演算アクセラレータと、
少なくとも一つのプログラムが記憶された記憶装置であって、前記少なくとも一つのプログラムが前記人工知能チップによって実行されると、前記人工知能チップに請求項1~11のいずれか1項に記載の方法を実現させる、記憶装置と
を有する人工知能チップ。
【請求項13】
コンピュータプログラムが記憶されたコンピュータ可読媒体であって、
前記コンピュータプログラムが人工知能チップにより実行されると、請求項1~11のいずれか1項に記載の方法を実現させるコンピュータ可読媒体。
【請求項14】
プロセッサ、記憶装置および少なくとも一つの請求項12に記載の人工知能チップを備える電子機器。
【請求項15】
前記人工知能チップにより実行されると、請求項1~11のいずれか1項に記載の方法を実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願の実施形態は、コンピュータ技術分野に関するものであり、具体的に、人工知能チップに適用される算出方法および人工知能チップに関するものである。
【背景技術】
【0002】
人工知能チップであるAI(Artificial Intelligence)チップは、AIアクセラレータまたはコンピューティングカードとも呼ばれ、人工知能アプリケーション中の大量コンピューティングタスクを処理するための特化されたモジュールを指す(他の非コンピューティングタスクは依然としてCPUが担当している)。AIコンピューティングにおいて演算のニーズは巨大なものであり、特に複雑な演算ニーズは計算性能に大きな影響を与える。複雑な演算は、基本的な演算命令で実施することができるが、(浮動小数点平方根演算、浮動小数点べき演算、三角関数演算のような)複雑演算(complex computation)の実行効率を低下させる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本願の実施形態は、人工知能チップに適用される算出方法および人工知能チップを提案する。
【0004】
第一の態様では、本願実施形態は、人工知能チップに適用される算出方法を提供する。当該方法は、前記少なくとも一つのプロセッサコアにおけるターゲットプロセッサコアにより実行対象命令をデコードし、演算識別子および少なくとも一つのオペランドを得るステップと、前記ターゲットプロセッサコアが、デコードにより取得された演算識別子が予め設定された複雑演算識別子であると確定されたことに応答して、デコードにより取得された演算識別子と少なくとも一つのオペランドとを用いて複雑演算命令を生成するステップと、前記ターゲットプロセッサコアが、生成された複雑演算命令を複雑演算命令キューに追加するステップと、前記演算アクセラレータが、前記複雑演算命令キューから複雑演算命令を選択するステップと、前記演算アクセラレータが、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行して、演算結果を得るステップと、前記演算アクセラレータが、得られた演算結果を複雑演算結果として複雑演算結果キューに書き込むステップと、を含む。
【0005】
いくつかの実施形態において、少なくとも一つのプロセッサコアにおけるターゲットプロセッサコアが実行対象命令をデコードする前に、前記方法はさらに、実行対象命令の受信に応答して、前記少なくとも一つのプロセッサコアから、前記実行対象命令を実行するプロセッサコアを選択してターゲットプロセッサコアとするステップを含む。
【0006】
いくつかの実施形態において、複雑演算命令キューは、前記少なくとも一つのプロセッサコアの各々のプロセッサコアに対応する複雑演算命令キューを含み、前記複雑演算結果キューは、前記少なくとも一つのプロセッサコアの各々のプロセッサコアに対応する複雑演算結果キューを含み、前記ターゲットプロセッサコアが、生成された複雑演算命令を複雑演算命令キューに追加するステップは、前記ターゲットプロセッサコアが、生成された複雑演算命令を前記ターゲットプロセッサコアに対応する複雑演算命令キューに追加するステップを含み、前記演算アクセラレータが、前記複雑演算命令キューから複雑演算命令を選択するステップは、前記演算アクセラレータが、前記少なくとも一つのプロセッサコアの各々のプロセッサコアに対応する複雑演算命令キューから複雑演算命令を選択するステップを含み、前記演算アクセラレータが、得られた演算結果を複雑演算結果として複雑演算結果キューに書き込むステップは、前記演算アクセラレータが、得られた演算結果を複雑演算結果として、選択された複雑演算命令の由来する複雑演算命令キューに対応するプロセッサコアに対応する複雑演算結果キューに書き込むステップを含む。
【0007】
いくつかの実施形態において、演算アクセラレータが、得られた演算結果を複雑演算結果として、選択された複雑演算命令の由来する複雑演算命令キューに対応するプロセッサコアに対応する複雑演算結果キューに書き込んだ後、前記方法は、さらに前記ターゲットプロセッサコアが、前記ターゲットプロセッサコアに対応する複合演算結果キューから複雑演算結果を選択して、前記ターゲットプロセッサコアの結果レジスタおよび/または前記人工知能チップのメモリに書き込むステップを含む。
【0008】
いくつかの実施形態において、ターゲットプロセッサコアが、デコードにより取得された演算識別子が予め設定された複雑演算識別子であると確定されたことに応答して、デコードされた演算識別子と少なくとも一つのオペランドとを用いて複雑演算命令を生成するステップは、前記ターゲットプロセッサコアが、デコードにより取得された演算識別子が予め設定された複雑演算識別子であると確定されたことに応答して、デコードされた演算識別子、少なくとも一つのオペランドおよびターゲットプロセッサコア識別子を用いて、複雑演算命令を生成するステップを含み、前記演算アクセラレータが、得られた演算結果を複雑演算結果として複雑演算結果キューに書き込むステップは、前記演算アクセラレータが、得られた演算結果および選択された複雑演算命令におけるプロセッサコア識別子を複雑演算結果として前記複雑演算結果キューに書き込むステップを含む。
【0009】
いくつかの実施形態において、演算アクセラレータが、得られた演算結果および選択された複雑演算命令におけるプロセッサコア識別子を複雑演算結果として前記複雑演算結果キューに書き込んだ後、前記方法はさらに、前記ターゲットプロセッサコアが、前記複雑演算結果キューから、プロセッサコア識別子が前記ターゲットプロセッサコア識別子である複雑演算結果の演算結果を選択して、前記ターゲットプロセッサコアの結果レジスタおよび/または前記人工知能チップのメモリに書き込むステップを含む。
【0010】
いくつかの実施形態において、演算アクセラレータは、特定用途向け集積回路チップおよびフィールドプログラマブルゲートアレイのうちのの少なくとも1つを含む。
【0011】
いくつかの実施形態において、複雑演算命令キューおよび複雑演算結果キューは先入れ先出しキューである。
【0012】
いくつかの実施形態において、複雑演算命令キューおよび複雑演算結果キューはキャッシュに記憶される。
【0013】
いくつかの実施形態において、演算アクセラレータは少なくとも一つの演算ユニットを含み、前記演算アクセラレータが、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行するステップは、前記演算アクセラレータにおける、選択された複雑演算命令中の複雑演算識別子に対応する演算ユニットが、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行するステップを含む。
【0014】
いくつかの実施形態において、予め設定された複雑演算識別子は、べき演算識別子、開平演算識別子、三角関数演算識別子のうちの少なくとも1つを含む。
【0015】
第二の態様では、本願実施形態は人工知能チップを提供する。人工知能チップは、少なくとも一つのプロセッサコアと、少なくとも一つのプロセッサコアの各プロセッサコアに接続された演算アクセラレータと、少なくとも一つのプログラムが記憶された記憶装置とを備え、少なくとも一つのプログラムが人工知能チップによって実行されるとき、人工知能チップに第1の態様のいずれかの実施形態に記載された方法を実現させる。
【0016】
第三の態様では、本願実施形態は、コンピュータプログラムが格納されたコンピュータ可読記憶媒体を提供する。該コンピュータプログラムが人工知能チップにより実行されるとき、第一の態様のいずれかの実施形態に記載された方法を実現させる。
【0017】
第四の態様では、本願実施形態は、プロセッサ、記憶装置および第二の態様に記載された少なくとも一つの人工知能チップを備える電子機器を提供する。
【0018】
本願実施形態による人工知能チップに適用される算出方法において、人工知能チップが、少なくとも一つのプロセッサコアと、少なくとも一つのプロセッサコアの各プロセッサコアに接続された演算アクセラレータとを備える。当該方法は、ターゲットプロセッサコアが、実行対象命令が実行する演算が予め設定された複雑演算であると確定されたことに応答して、実行対象命令をデコードして、複雑演算識別子および少なくとも一つのオペランドを取得し、得られた複雑演算識別子および少なくとも一つのオペランドを用いて、複雑演算命令を生成し、生成された複雑演算命令を複雑演算命令キューに追加する。さらに、演算アクセラレータが、複雑演算命令キューから複雑演算命令を選択し、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行して、演算結果を取得し、取得された演算結果を複雑演算結果として複雑演算結果キューに書き込む。
【0019】
これにより、演算アクセラレータを活用して複雑な演算を行うことができ、その技術的効果は少なくとも以下を含む。
【0020】
第1に、演算アクセラレータを導入して複雑な演算を実行することにより、AIチップによる複雑な演算を処理する能力と効率を向上させることができる。
【0021】
第2に、実際には、複雑な演算は単純な演算に比べて実行頻度が高くないので、プロセッサコアごとに一つのプロセッサコアを配置するのではなく、少なくとも一つのプロセッサコアが一つの演算アクセラレータを共用することにより、複雑な演算に伴うAIチップの空間オーバーヘッドや消費電力オーバーヘッドを削減することができる。
【0022】
第3に、演算アクセラレータに複数の演算ユニットを有し、複数の演算ユニットが複雑な演算を並列に実行するため、データハザードがない場合に、複雑な演算の時間的なオーバーヘッドを後続命令でカバーすることができる。
【図面の簡単な説明】
【0023】
以下、添付図面を参照ながら非限定的実施形態を詳細に説明することで、本願のその他特徴、目的および利点は一層明確になる。
【0024】
【
図1】本願の一実施形態が適用可能な例示的システムアーキテクチャ図である。
【
図2】本願による人工知能チップに適用される算出方法の一実施形態のフローチャートである。
【
図3A】本願による人工知能チップに適用される算出方法の別の一実施形態のフローチャートである。
【
図3B】
図3Aの実施形態による人工知能チップの算出方法に適用される人工知能チップの構造概略図である。
【
図3C】
図3Aの実施形態による複雑演算命令の概略図である。
【
図3D】
図3Aの実施形態による複雑演算命令の概略図である。
【
図4A】本願による人工知能チップに適用される算出方法の別の一実施形態のフローチャートである。
【
図4B】
図4Aの実施形態による人工知能チップの算出方法に適用される人工知能チップの構造概略図である。
【
図4C】
図4Aの実施形態による複雑演算命令の概略図である。
【
図4D】
図4Aの実施形態による複雑演算命令の概略図である。
【
図5】本願の実施形態を実施するのに適する電子機器のコンピュータシステムの構造概略図である。
【発明を実施するための形態】
【0025】
以下、添付図面および実施形態を参照しながら本願をさらに詳細に説明する。本明細書に記載された特定の実施形態は、関連本発明を解釈するためのものであり、本発明を限定するためのものではないことを理解されたい。なお、説明の便宜上、図面には関連発明に関わる部分のみ示されていることである。
【0026】
説明すべきことは、本願における実施形態および実施形態における特徴は、衝突しない限り、互いに組み合わせ可能であることである。以下、添付図面を参照し、実施形態に合わせて本発明を詳細に説明する。
【0027】
図1は、本願を適用することができる人工知能チップに適用される算出方法の一実施形態の例示的システムアーキテクチャ100を示す。
【0028】
図1に示すように、システムアーキテクチャ100は、CPU(Central Processing Unit、中央処理装置)101、バス102、およびAIチップ103、104を含むことができる。バス102は、CPU101とAIチップ103、104との間に通信リンクを提供するための媒体である。バス102は、例えば、AMBA(Advanced Microcontroller Bus Architecture)バス、OCP(Open Core Protocol)バスなどのような様々なバスタイプを含むことができる。
【0029】
AIチップ103は、プロセッサコア1031、1032、1033、有線1034、および演算アクセラレータ1035を含むことができる。有線1034は、プロセッサコア1031、1032、1033と演算アクセラレータ1035との間に通信リンクを提供するための媒体である。有線1034は、例えば、PCIバス、PCIEバス、ネットワークオンチップ(Network On Chip)プロトコルをサポートする、AMBAバス、OCPバス、および他のネットワークオンチップバスなどの様々な有線タイプを含むことができる。
【0030】
AIチップ104は、プロセッサコア1041、1042、1043、有線1044、および演算アクセラレータ1045を含むことができる。有線1044は、プロセッサコア1041、1042、1043と演算アクセラレータ1045との間に通信リンクを提供するための媒体である。有線1044は、例えば、PCIバス、PCIEバス、ネットワークオンチップ(Network On Chip)プロトコルをサポートする、AMBAバス、OCPバス、および他のネットワークオンチップバスなどの様々な有線タイプを含むことができる。
【0031】
説明すべきことは、本願の実施形態による人工知能チップに適用される算出方法は、一般にAIチップ103、104で実行される。
【0032】
図1におけるCPU、バス、AIチップの数は単なる一例にすぎないことを理解されたい。実施の必要に応じて、任意の数のCPU、バス、AIチップを有することができる。同様に、AIチップ103、104内のプロセッサコア、有線およびメモリの数も例示的なものに過ぎない。実施の必要に応じて、AIチップ103、104は、任意の数のプロセッサコア、有線およびメモリを有してもよい。また、実施の必要に応じて、システムアーキテクチャ100は、メモリ、(マウス、キーボード等)入力デバイス、(ディスプレイ、スピーカ等)出力デバイス、入出力インターフェースなどを更に含んでもよい。
【0033】
引き続き
図2を参照すると、本出願による人工知能チップに適用される算出方法の一実施形態のフロー200が示される。該人工知能チップに適用される算出方法は、次のステップを含む。
【0034】
ステップ201では、少なくとも一つのプロセッサコアにおけるターゲットプロセッサコアにより実行対象命令をデコードし、演算識別子および少なくとも一つのオペランドを取得する。
【0035】
本実施形態において、人工知能チップに適用される算出方法の実行主体(例えば、
図1に示されるAIチップ)は、少なくとも一つのプロセッサコアと、少なくとも一つのプロセッサコアの各プロセッサコアに接続された演算アクセラレータとを含むことができる。演算アクセラレータは、独立した演算能力を有し、演算アクセラレータのほうがプロセッサコアよりも複雑演算に適用し、ここで、複雑演算は、簡単な演算に比べて計算量の大きい演算を意味し、簡単な演算は、計算量が小さい演算を意味することができる。例えば、簡単な演算は、加算、乗算、または加算と乗算との単純な組み合わせであってもよい。一般に、プロセッサコアには加算器と乗算器とが含まれているため、プロセッサコアのほうがより簡単な演算を行うのに適する。しかし、複雑な演算とは、べき演算、開平演算、三角関数演算などの、加算と乗算の単純な組み合わせではできない演算をいう。
【0036】
本実施形態のいくつかの好ましい実施形態において、演算アクセラレータは、特定用途向け集積回路(ASIC,Application Specific Integrated Circuit)チップ、およびフィールドプログラマブルゲートアレイ(FPGA,Field Programmable Gate Array)のうち少なくとも1つを含んでもよい。
【0037】
ここで、前記実行主体は、実行対象命令が受信された場合、少なくとも一つのプロセッサコアから、実行対象命令を実行するプロセッサコアをターゲットプロセッサコアとして選択することができる。例えば、各プロセッサコアの現在の動作状態に基づいて、少なくとも一つのプロセッサコアから、実行対象命令を実行するプロセッサコアをターゲットプロセッサコアとして選択することができる。また、例えば、ポーリング方式により、少なくとも一つのプロセッサコアから、実行対象命令を実行するプロセッサコアをターゲットプロセッサコアとして選択してもよい。
【0038】
これにより、ターゲットプロセッサコアは、実行対象命令が受信された場合に、実行対象命令をデコードして、演算識別子と少なくとも一つのオペランドとを得ることができる。ここで、演算識別子は、プロセッサコアが実行可能な様々な演算を一意に識別するために使用され得る。演算識別子は、数字、アルファベット、記号の少なくとも1つを含むことができる。
【0039】
ステップ202では、ターゲットプロセッサコアは、デコードされた演算識別子が予め設定された複雑演算識別子であると確定されたことに応答して、デコードされた演算識別子と少なくとも一つのオペランドとを用いて複雑演算命令を生成する。
【0040】
本実施形態では、ターゲットプロセッサコアは、実行対象命令をデコードし、演算識別子および少なくとも一つのオペランドを取得した後、デコードされた演算識別子が予め設定された複雑演算識別子であるか否かを確定することができる。予め設定された複雑演算識別子であると確定された場合、ターゲットプロセッサコアは、デコードされた演算識別子と少なくとも一つのオペランドとを用いて複雑演算命令を生成することができる。
【0041】
具体的には、ここで、各プロセッサコアは、予め設定された複雑演算識別子セットを予め記憶することができ、このようにして、ターゲットプロセッサコアは、デコードされた演算識別子が予め設定された複雑演算識別子セットに属するか否かを確定することができ、予め設定された複雑演算識別子セットに属すると確定された場合、デコードされた演算識別子が予め設定された複雑演算識別子であると確定し、予め設定された複雑演算識別子セットに属しないと確定された場合、デコードされた演算識別子が予め設定された複雑演算識別子ではないと確定することができる。
【0042】
ここで、複雑演算識別子セットは、当業者が実際応用演算ニーズに基づいて、AIコンピューティングのうち常用演算に係る計算量の大きい演算に対し、該演算の演算識別子を複雑演算識別子として形成した複雑演算識別子セットであってもよい。
【0043】
いくつかの実施形態において、予め設定された複雑演算識別子は、べき演算識別子、開平演算識別子、および三角関数演算識別子の少なくとも1つを含むことができる。
【0044】
ステップ203では、ターゲットプロセッサコアは、生成された複雑演算命令を複雑演算命令キューに追加する。
【0045】
本実施形態において、ターゲットプロセッサコアは、ステップ202で生成された複雑演算命令を複雑演算命令キューに追加することができる。ここで、複雑な演算命令キューには実行対象複雑演算命令が格納されている。
【0046】
本実施形態のいくつかの好ましい実施形態では、複雑演算命令キューは先入れ先出しキューであってもよい。
【0047】
本実施形態のいくつかの好ましい実施形態では、複雑演算命令キューは、ターゲットプロセッサコアおよび演算アクセラレータにそれぞれ有線接続可能なキャッシュに格納されてもよい。これにより、ターゲットプロセッサコアは、生成された複雑演算命令を複雑演算命令キューに追加することができ、後続のステップ204において、演算アクセラレータは、複雑演算命令キューから複雑演算命令を選択することもできる。
【0048】
ステップ204では、演算アクセラレータは、複雑演算命令キューから複雑演算命令を選択する。
【0049】
本実施形態において、演算アクセラレータは様々な実施方法を用いて複雑演算命令キューから複雑演算命令を選択することができる。例えば、演算部は、先入れ先出し順に従って複雑演算命令キューから複雑演算命令を選択してもよい。
【0050】
ステップ205では、演算アクセラレータは、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の指示する複雑演算を実行して、演算結果を得る。
【0051】
本実施形態では、ステップ204で選択された複雑演算命令に基づいて、演算アクセラレータは、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行して、演算結果を得ることができる。
【0052】
本実施形態のいくつかの好ましい実施形態において、演算アクセラレータは、少なくとも一つの演算ユニットを含んでもよい。これにより、ステップ205では、演算アクセラレータにおける、選択された複雑演算命令中の複雑演算識別子に対応する演算ユニットが、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行する。
【0053】
ステップ206では、演算アクセラレータは、得られた演算結果を複雑演算結果として複雑演算結果キューに書き込む。
【0054】
本実施形態では、演算アクセラレータは、ステップ205で複雑演算を実行して得られた演算結果を複雑演算結果として複雑演算結果キューに書き込む。
【0055】
ここで、複雑演算結果キューには、演算アクセラレータにより複雑演算を実行して得られた複雑演算結果が格納される。
【0056】
本実施形態のいくつかの好ましい実施形態では、複雑演算結果キューは先入れ先出しキューであってもよい。
【0057】
本実施形態のいくつかの好ましい実施形態では、複雑演算結果キューは、ターゲットプロセッサコアおよび演算アクセラレータにそれぞれ有線接続可能なキャッシュに格納されてもよい。これにより、演算アクセラレータは、複雑演算結果を複雑演算結果キューに書き込むことができる。また、ターゲットプロセッサコアにおいて複雑演算結果キューから複雑演算結果を読み出すこともできる。
【0058】
本願の上述した実施形態による方法は、ターゲットプロセッサコアが、実行対象命令の実行する演算が予め設定された複雑演算であることを確定されたことに応答して、実行対象命令をデコードして、複雑演算識別子および少なくとも一つのオペランドを取得し、複雑演算識別子および少なくとも一つのオペランドを用いて、複雑演算命令を生成し、生成された複雑演算命令を複雑演算命令キューに追加し、さらに、演算アクセラレータが、複雑演算命令キューから複雑演算命令を選択し、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行して、演算結果を取得し、取得された演算結果を複雑演算結果として複雑演算結果キューに書き込むことを含む。これにより、演算アクセラレータを活用して複雑な演算を行うことができ、その技術的効果は少なくとも以下を含む。
【0059】
第1に、演算アクセラレータを導入して複雑な演算を実行することにより、AIチップにおいて複雑な演算を処理する能力と効率を向上させることができる。
【0060】
第2に、実際には、複雑な演算は単純な演算に比べて実行頻度が高くないので、プロセッサコアごとに演算アクセラレータを配置するのではなく、少なくとも一つのプロセッサコアに一つの演算アクセラレータを共用することで、複雑な演算に伴うAIチップの空間オーバーヘッドや消費電力オーバーヘッドを削減することができる。
【0061】
第3に、演算アクセラレータに複数の演算ユニットを有し、複数の演算ユニットが複雑な演算を並列に行うため、データハザードがない場合に、複雑な演算の時間的なオーバーヘッドは後続の命令でカバーすることができる。
【0062】
図3Aをさらに参照すると、人工知能チップに適用される算出方法のもう一つの実施形態のフロー300が示される。該人工知能チップに適用される算出方法のフロー300は、次のステップを含む。
【0063】
ステップ301では、少なくとも一つのプロセッサコアにおけるターゲットプロセッサコアにより実行対象命令をデコードし、演算識別子および少なくとも一つのオペランドを得る。
【0064】
本実施形態において、人工知能チップに適用される算出方法の実行主体(例えば、
図1に示されるAIチップ)は、少なくとも一つのプロセッサコアと、少なくとも一つのプロセッサコアの各プロセッサコアに接続された演算アクセラレータとを含むことができる。演算アクセラレータは、独立した演算能力を有し、演算アクセラレータのほうがプロセッサコアよりも複雑な演算に適し、ここで、複雑演算は、簡単な演算に比べて計算量の大きい演算を意味し、簡単な演算は、計算量が小さい演算を意味することができる。
【0065】
ステップ302では、ターゲットプロセッサコアは、デコードされた演算識別子が予め設定された複雑演算識別子であると確定されたことに応答して、デコードされた演算識別子と少なくとも一つのオペランドとを用いて複雑演算命令を生成する。
【0066】
本実施形態において、ステップ301およびステップ302の具体的な操作は、
図2に示す実施形態におけるステップ201およびステップ202の操作と実質的に同じであり、ここでその説明を省略する。
【0067】
ステップ303では、ターゲットプロセッサコアは、生成された複雑演算命令を、ターゲットプロセッサコアに対応する複雑演算命令キューに追加する。
【0068】
本実施形態では、前記少なくとも一つのプロセッサコアの各々にいずれも複雑演算命令キューが対応している。各プロセッサコアは、対応する複雑演算命令キューを介して演算アクセラレータに接続することができる。これにより、ターゲットプロセッサコアは、ステップ402で生成された複雑演算命令を、ターゲットプロセッサコアに対応する複雑演算命令キューに追加することができる。
【0069】
ステップ304では、演算アクセラレータは、少なくとも一つのプロセッサコアの各々のプロセッサコアに対応する複雑演算命令キューから複雑演算命令を選択する。
【0070】
本実施形態において、演算アクセラレータは、様々な実施方法を用いて少なくとも一つのプロセッサコアの各々のプロセッサコアに対応する複雑演算命令キューから複雑演算命令を選択することができる。例えば、演算アクセラレータは、少なくとも一つのプロセッサコアの各々のプロセッサコアに対応する複雑演算命令キューをポーリングし、毎回各プロセッサコアに対応する複雑演算命令キューから先入れ先出し順に予め設定された本数(例えば1本)の命令を選択する。
【0071】
ステップ305では、演算アクセラレータは、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行して、演算結果を得る。
【0072】
本実施形態において、ステップ305の具体的な操作は、
図2に示す実施形態におけるステップ205の操作と実質的に同じであり、ここでその説明を省略する。
【0073】
ステップ306では、演算アクセラレータは、得られた演算結果を複雑演算結果として、選択された複雑演算命令の由来する複雑演算命令キューに対応するプロセッサコアに対応する複雑演算結果キューに書き込む。
【0074】
本実施形態では、前記少なくとも一つのプロセッサコアの各々にいずれも複雑演算結果キューが対応している。各プロセッサコアは、対応する複雑演算結果キューを介して演算アクセラレータに接続することができる。これにより、演算アクセラレータは、ステップ305で得られた演算結果を複雑演算結果として、ステップ304で選択された複雑演算命令の由来する複雑演算命令キューに対応するプロセッサコアに対応する複雑演算結果キューに書き込む。
【0075】
本実施形態のいくつかの好ましい実施形態では、前記人工知能チップに適用される算出方法は、以下のステップ307をさらに含むことができる。
【0076】
ステップ307では、ターゲットプロセッサコアは、ターゲットプロセッサコアに対応する複合演算結果キューから複雑演算結果を選択して、ターゲットプロセッサコアの結果レジスタおよび/または人工知能チップのメモリに書き込む。
【0077】
ここで、ターゲットプロセッサコアには、演算結果を格納するための結果レジスタを設けることができる。これにより、ステップ306の後、ターゲットプロセッサコアは、ターゲットプロセッサコアに対応する複雑演算結果キューから複雑演算結果を選択して、ターゲットプロセッサコアの結果レジスタおよび/または人工知能チップのメモリに書き込むことができる。
【0078】
ここで、人工知能チップのメモリは、スタティックランダムアクセスメモリ(SRAM、Static Random-Access Memory)、ダイナミックランダムアクセスメモリ(DRAM,Dynamic Random Access Memory)、およびFlashメモリ(Flash Memory)のうち少なくとも1つを含んでもよい。
【0079】
引き続き
図3Bを参照すると、
図3Bは、本実施形態による人工知能チップの算出方法に適用される人工知能チップの構造概略図である。
図3Bに示すように、人工知能チップは、プロセッサコア301’、302’、303’、複雑演算命令キュー304’、305’、306’、演算アクセラレータ307’、複雑演算結果キュー308’、309’、310’、およびメモリ311’を含むことができる。ここで、プロセッサコア301’、302’、303’は、それぞれ複雑演算命令キュー304’、305’、306’に有線接続され、複雑演算命令キュー304’、305’、306’は、それぞれ演算アクセラレータ307’に有線接続され、演算アクセラレータ307’は、複雑演算結果キュー308’、309’、310’に有線接続され、複雑演算結果キュー308’、309’、310’は、それぞれプロセッサコア301’、302’、303’に有線接続され、プロセッサコア301’、302’、303’は、それぞれメモリ311’に有線接続されている。プロセッサコア301’、302’、303’の内部には、それぞれ結果レジスタ(
図3Bに図示せず)が設けられてもよい。
【0080】
これにより、プロセッサコア301’がターゲットプロセッサコアであると仮定した場合、プロセッサコア301’は、実行対象命令が受信された場合、まず、実行対象命令をデコードして演算識別子および少なくとも一つのオペランドを取得し、次に、デコードされた演算識別子が三角関数演算識別子であり、かつ三角関数演算識別子が予め設定された複雑演算識別子であると確定すると、デコードされた演算識別子、すなわち、三角関数演算識別子と、少なくとも一つのオペランドとを用いて複雑演算命令を生成することができる。
図3Cに示すように、
図3Cは、一つの複雑演算命令を示す図である。次に、プロセッサコア301’は、生成された複雑演算命令を、プロセッサコアに対応する複雑演算命令キュー304’に追加する。その後、演算アクセラレータ307’は、複雑演算命令キュー304’、305’、306’から複雑演算命令を選択する。その後、演算アクセラレータ307’は、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行して、演算結果を得る。最後に、演算アクセラレータ307’は、得られた演算結果を複雑演算結果として複雑演算結果キュー308’に書き込む。
図3Dに示すように、
図3Dは、一つの複雑演算結果を示す図である。好ましくは、プロセッサコア301’はさらに、プロセッサコア301’に対応する複雑演算結果キュー304’から複雑演算結果を選択してプロセッサコア301’の結果レジスタおよび/または人工知能チップのメモリ311’に書き込むことができる。
【0081】
図3Aから分かるように、
図2に対応する実施形態に比べて、本実施形態の人工知能チップに適用される算出方法のフロー300において、各プロセッサコアのために対応する複雑演算命令キューおよび複雑演算結果キューが設けられ、これにより、本実施形態に記載されたアプローチは、人工知能チップに適用される算出を実施する具体的なアプローチを提供することになる。
【0082】
図4Aをさらに参照すると、人工知能チップに適用される算出方法のもう一つの実施形態のフロー400が示される。該人工知能チップに適用される算出方法のフロー400は、次のステップを含む。
【0083】
ステップ401では、少なくとも一つのプロセッサコアにおけるターゲットプロセッサコアにより実行対象命令をデコードし、演算識別子および少なくとも一つのオペランドを得る。
【0084】
本実施形態において、人工知能チップに適用される算出方法の実行主体(例えば、
図1に示されるAIチップ)は、少なくとも一つのプロセッサコアと、少なくとも一つのプロセッサコアの各プロセッサコアに接続された演算アクセラレータとを含むことができる。演算アクセラレータは、独立した演算能力を有し、演算アクセラレータのほうがプロセッサコアよりも複雑な演算に適し、ここで、複雑演算は、簡単な演算に比べて計算量の大きい演算を意味し、簡単な演算は、計算量が小さい演算を意味することができる。
【0085】
本実施形態において、ステップ401の具体的な操作は、
図2に示す実施形態におけるステップ201の操作と実質的に同じであり、ここでその説明を省略する。
【0086】
ステップ402では、ターゲットプロセッサコアは、デコードされた演算識別子が予め設定された複雑演算識別子であると確定されたことに応答して、デコードされた演算識別子、少なくとも一つのオペランドおよびターゲットプロセッサコア識別子を用いて、複雑演算命令を生成する。
【0087】
本実施形態では、ターゲットプロセッサコアは、実行対象命令をデコードし、演算識別子および少なくとも一つのオペランドを取得した後、デコードされた演算識別子が予め設定された複雑演算識別子であるか否かを確定することができる。予め設定された複雑演算識別子であると確定された場合、ターゲットプロセッサコアは、デコードされた演算識別子、少なくとも一つのオペランドおよびターゲットプロセッサコア識別子を用いて複雑演算命令を生成することができる。
【0088】
ステップ403では、ターゲットプロセッサコアは、生成された複雑演算命令を複雑演算命令キューに追加する。
【0089】
ステップ404では、演算アクセラレータは、複雑演算命令キューから複雑演算命令を選択する。
【0090】
ステップ405では、演算アクセラレータは、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行して、演算結果を得る。
【0091】
本実施形態において、ステップ403、ステップ404およびステップ405の具体的な操作は、
図2に示す実施形態におけるステップ203、ステップ204およびステップ205の操作と実質的に同じであり、ここでその説明を省略する。
【0092】
ステップ406では、演算アクセラレータは、得られた演算結果および選択された複雑演算命令におけるプロセッサコア識別子を複雑演算結果として複雑演算結果キューに書き込む。
【0093】
本実施形態では、演算アクセラレータが、ステップ405で複雑演算を実行して得られた演算結果および選択された複雑演算命令におけるプロセッサコア識別子を複雑演算結果として複雑演算結果キューに書き込む。
【0094】
ここで、複雑演算結果キューには、演算アクセラレータが複雑演算を実行して得られた複雑演算結果が格納される。
【0095】
本実施形態のいくつかの好ましい実施形態では、前記人工知能チップに適用される算出方法は、以下のステップ407をさらに含むことができる。
【0096】
ステップ407では、ターゲットプロセッサコアは、複雑演算結果キューから、プロセッサコア識別子がターゲットプロセッサコア識別子である複雑演算結果の演算結果を選択して、ターゲットプロセッサコアの結果レジスタおよび/または人工知能チップのメモリに書き込む。
【0097】
ここで、ターゲットプロセッサコアには、演算結果を格納するための結果レジスタを設けることができる。このように、ステップ406の後、ターゲットプロセッサコアが、複雑演算結果キューから、プロセッサコア識別子がターゲットプロセッサコア識別子である複雑演算結果の演算結果を選択して、ターゲットプロセッサコアの結果レジスタおよび/または人工知能チップのメモリに書き込むことができる。
【0098】
ここで、人工知能チップのメモリは、スタティックランダムアクセスメモリ、ダイナミックランダムアクセスメモリ、およびFlashメモリのうち少なくとも1つを含んでもよい。
【0099】
引き続き
図4Bを参照すると、
図4Bは、本実施形態による人工知能チップの算出方法に適用される人工知能チップの構造概略図である。
図4Bに示すように、人工知能チップは、プロセッサコア401’、402’、403’、複雑演算命令キュー404’、演算アクセラレータ405’、複雑演算結果キュー406’、およびメモリ407’を含むことができる。ここで、プロセッサコア401’、402’、403’は、それぞれ複雑演算命令キュー404’に有線接続され、複雑演算命令キュー404’は、演算アクセラレータ405’に有線接続され、演算アクセラレータ405’は、複雑演算結果キュー406’に有線接続され、複雑演算結果キュー406’は、プロセッサコア401’、402’、403’に有線接続され、プロセッサコア401’、402’、403’は、それぞれメモリ407’に有線接続されている。プロセッサコア401’、402’、403’の内部には、それぞれ結果レジスタ(
図4Bに図示せず)が設けられてもよい。
【0100】
これにより、プロセッサコア401’がターゲットプロセッサコアであると仮定した場合、プロセッサコア401’は、実行対象命令が受信された場合、まず、実行対象命令をデコードして演算識別子および少なくとも一つのオペランドを取得し、次に、デコードされた演算識別子が三角関数演算識別子であり、かつ三角関数演算識別子が予め設定された複雑演算識別子であると確定すると、デコードされた演算識別子、すなわち、三角関数演算識別子、少なくとも一つのオペランド、およびプロセッサコア401’のプロセッサコア識別子を用いて複雑演算命令を生成することができる。
図4Cに示すように、
図4Cは、一つの複雑演算命令を示す図である。次に、プロセッサコア401’は、生成された複雑演算命令を、複雑演算命令キュー404’に追加する。それから、演算アクセラレータ405’は、複雑演算命令キュー404’から複雑演算命令を選択する。その後、演算アクセラレータ405’は、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行して、演算結果を得る。最後に、演算アクセラレータ405’が、得られた演算結果および選択された複雑演算命令におけるプロセッサコア識別子を複雑演算結果として複雑演算結果キューに406’書き込む。
図4Dに示すように、
図4Dは、一つの複雑演算結果を示す図である。好ましくは、プロセッサコア401’はさらに、複雑演算結果キューから、プロセッサコア識別子がプロセッサコア401’のプロセッサコア識別子である複雑演算結果の演算結果を選択して、プロセッサコア401’の結果レジスタおよび/又は人工知能チップのメモリ407’に書き込むことができる。
【0101】
図4Aから分かるように、
図3に対応する実施形態に比べて、本実施形態における人工知能チップに適用される算出方法のフロー400は、少なくとも一つのプロセッサコアが一つの複雑演算命令キューおよび複雑演算結果キューを共有し、それにより、本実施形態に記載されたアプローチは、
図3Aの対応する実施形態に比べて、AIチップの空間オーバーヘッドおよび消費電力オーバーヘッドをさらに低減することができる。
【0102】
次に、
図5を参照すると、
図5は、本願の実施形態の電子機器を実現するのに適したコンピュータシステム500の構造概略図である。
図5に示された電子機器は一つの例示に過ぎず、本願の実施形態の機能および使用範囲に対して制限するものではない。
【0103】
図5に示すように、コンピュータシステム500は、少なくとも一つの中央処理ユニット(CPU、Central Processing Unit)501を含み、これは、読み出し専用メモリ(ROM、Read Only Memory)502に記憶されたプログラム、又は記憶部508からランダムアクセスメモリ(RAM、Random Access Memory)503にロードされたプログラムに従って、様々な適切な動作および処理を実行することができる。RAM503には、システム500の操作に必要な様々なプログラムおよびデータがさらに記憶されている。CPU501は、少なくとも一つの人工知能チップ512を介してデータの処理分析を行ってもよい。CPU501、ROM502およびRAM503および人工知能チップ512は、バス504を介して互いに接続されている。入力/出力(I/O)インターフェース505もバス504に接続されている。
【0104】
I/Oインターフェース505には、キーボード、マウスなどを含む入力部506、陰極線管(CRT、Cathode Ray Tube)、液晶ディスプレイ(LCD,Liquid Crystal Display)など、およびスピーカなどを含む出力部507、ハードディスクなどを含む記憶部508、およびLAN(ローカルエリアネットワーク、Local Area Network)カード、モデムなどを含むネットワークインターフェースカードの通信部509が接続されている。通信部509は、例えば、インターネットのようなネットワークを介して通信処理を実行する。ドライバ510は、必要に応じてI/Oインターフェース505に接続される。リムーバブルメディア511は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライバ510に取り付けられ、したがって、ドライバ709から読み出されたコンピュータプログラムが必要に応じて記憶部508にインストールされる。
【0105】
特に、本発明の実施形態によれば、上記のフローチャートに参照して説明された過程はコンピュータソフトウェアプログラムに実現されてもよい。
【0106】
例えば、本発明の実施形態は、コンピュータ読取可能な媒体にロードされるコンピュータプログラムを含むコンピュータプログラム製品を備え、該コンピュータプログラムは、フローチャートに示される方法を実行するためのプログラムコードを含む。このような実施形態において、該コンピュータプログラムは、通信部509を介してネットワークからダウンロードしてインストールされ、および/又はリムーバブルメディア511からインストールされてもよい。該コンピュータプログラムは、中央処理ユニット(CPU)501により実行される場合に、本願の方法に限定される前記機能を実行する。説明すべきなのは、本願に記載のコンピュータ読取可能な媒体は、コンピュータ読取可能な信号媒体又はコンピュータ読取可能な記憶媒体又は前記両者の任意の組み合わせであってもよい。コンピュータ読取可能な記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、或いは半導体のシステム、装置又はデバイス、或いはこれらの任意の組み合わせであってもよいが、それらに限定されない。コンピュータ読取可能な記憶媒体についてのより具体的な例は、一つ又は複数の導線を含む電気的な接続、携帯可能なコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去可能なプログラミング読取専用メモリ(EPROM又はフラッシュ)、光ファイバ、携帯可能なコンパクト磁気ディスク読取専用メモリ(CD-ROM)、光学記憶素子、磁気記憶素子、或いは前記任意の適当の組み合わせを含むが、それらに限定されない。本願において、コンピュータ読取可能な記憶媒体は、プログラムを含むか記憶する任意の有形の媒体であっても良く、該プログラムは、コマンドによりシステム、装置又はデバイスの使用を実行し、或いはそれらに組み合わせて使用されてもよい。本願において、コンピュータ読取可能な信号媒体は、ベースバンドに伝送され或いはキャリアの一部として伝送され、コンピュータ読取可能なプログラムコードがロードされるデータ信号を含んでもよい。このような伝送されるデータ信号は、各種類の形式を採用しても良く、電磁気信号、光信号又は前記任意の適当の組み合わせを含むが、それらに限定されない。コンピュータ読取可能な信号媒体は、コンピュータ読取可能な記憶媒体以外の任意のコンピュータ読取可能な媒体であっても良く、該コンピュータ読取可能な媒体は、コマンドによりシステム、装置又はデバイスの使用を実行し又はそれらと組み合わせて使用されるプログラムを送信し、伝播し又は伝送することができる。コンピュータ読取可能な媒体に含まれるプログラムコードは、任意の適当の媒体で伝送されても良く、無線、電線、光ケーブル、RFなど、或いは前記任意の適当の組み合わせを含むが、それらに限定されない。
【0107】
一つ又は複数種類のプログラミング言語又はそれらの組み合わせで、本願の操作を実行するためのコンピュータプログラムコードを編集することができ、前記プログラミング言語には、オブジェクト向けのプログラミング言語、例えばJava、Smalltalk、C++が含まれ、通常のプロシージャ向けプログラミング言語、例えば「C」言語又は類似しているプログラミング言語も含まれる。プログラムコードは、完全にユーザコンピュータにて実行されてもよく、部分的にユーザコンピュータにおいて実行されてもよく、一つの独立のソフトウェアパッケージとして実行されてもよく、部分的にユーザコンピュータにおいて実行され且つ部分的に遠隔コンピュータにおいて実行されてもよく、又は完全に遠隔コンピュータ又はサーバにおいて実行されてもよい。遠隔コンピュータに係る場合に、遠隔コンピュータは、ローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意の種類のネットワークを介して、ユーザコンピュータ、又は、外部コンピュータに接続できる(例えば、インターネットサービス事業者を利用してインターネットを介して接続できる)。
【0108】
添付図面におけるフローチャートおよびブロック図は、本願の各実施形態によるシステム、方法およびコンピュータプログラム製品により実現可能なシステム構造、機能および操作を示した。この点において、フローチャート又はブロック図における各ブロックは、一つのモジュール、プログラムセグメント、又はコードの一部を表すことができ、該モジュール、プログラムセグメント、又はコードの一部には、一つ又は複数の所定のロジック機能を実現するための実行可能なコマンドが含まれる。注意すべきなのは、幾つかの置換としての実現において、ブロックに示される機能は図面に示される順序と異なって発生されてもよい。例えば、二つの接続的に表示されるブロックは実際に基本的に併行に実行されてもよく、場合によっては逆な順序で実行されてもよく、関連の機能に従って決定される。注意すべきなのは、ブロック図および/又はフローチャートにおける各ブロック、およびブロック図および/又はフローチャートにおけるブロックの組み合わせは、所定の機能又は操作を実行する専用のハードウェアによるシステムで実現されてもよく、或いは専用のハードウェアとコンピュータコードの組み合わせで実現されてもよい。
【0109】
別の態様として、本願は更にコンピュータ読取可能な媒体を提供し、前記コンピュータ読取可能な媒体には一つ以上のプログラムが組み込まれており、前記一つ以上のプログラムが人工知能チップによって実行されるとき、該人工知能チップは、少なくとも一つのプロセッサコアにおけるターゲットプロセッサコアが、実行対象命令をデコードして、演算識別子およびなくとも一つのオペランドを取得し、デコードされた演算識別子が予め設定された複雑演算識別子であることが確定されたことに応答して、デコードされた演算識別子と少なくとも一つのオペランドとを用いて、複雑演算命令を生成し、生成された複雑演算命令を複雑演算命令キューに追加し、演算アクセラレータが、複雑演算命令キューから複雑演算命令を選択し、選択された複雑演算命令中の少なくとも一つのオペランドを入力パラメータとして、選択された複雑演算命令中の複雑演算識別子の表示する複雑演算を実行して、演算結果を取得し、取得された演算結果を複雑演算結果として複雑演算結果キューに書き込むようにする。
【0110】
以上の記載は、ただ本願の好適な実施形態および運用される技術原理に対する説明である。当業者であればわかるように、本願にかかる発明範囲は、前記技術的特徴の特定の組み合わせからなる技術的手段に限定されず、前記発明構想から逸脱されない場合に前記技術特徴又は均等の特徴による任意の組み合わせで形成される他の技術的手段も同時に含まれるべきである。例えば、前記特徴と本願に開示された(それらに限定されない)類似の機能を具備する技術的特徴が互いに置換されて得られる技術的手段は該当する。