(57)【要約】      （修正有）【課題】人工知能チップと中央処理ユニットとの間の頻繁な相互作用を回避し、人工知能チップの性能を向上する命令実行方法及び装置を提供する。【解決手段】命令実行方法は、中央処理ユニットから送信された、ニューラルネットワークモデルを記述するための、少なくとも一つの操作命令を含む記述情報を受信し、記述情報を解析して、少なくとも一つの操作命令を取得し、少なくとも一つの操作命令における操作命令に対して、操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに操作命令を送信し、操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除することを含む。【選択図】図２
2020038626.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備える人工知能チップに用いられる命令実行方法であって、前記方法は、
中央処理ユニットから送信された、ニューラルネットワークモデルを記述するための記述情報を受信するステップであって、前記記述情報は、少なくとも一つの操作命令を含む、ステップと、
前記記述情報を解析して、前記少なくとも一つの操作命令を取得するステップと、
前記少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに当該操作命令を送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するステップと、を含む
人工知能チップに用いられる命令実行方法。
【請求項２】
前記確定された専用実行コンポーネントをロックするステップは、
確定された専用実行コンポーネントのロックを取得するステップと、
取得成功に応答して、ロック操作を実行するステップとを含む請求項１に記載の方法。
【請求項３】
前記確定された専用実行コンポーネントをロックするステップは、さらに、
取得失敗に応答して、確定された専用実行コンポーネントのロック状態をポーリング方式で照会するステップと、
確定された専用実行コンポーネントのロック状態がアンロックであることが照会されたことに応答して、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うステップとを含む請求項２に記載の方法。
【請求項４】
前記確定された専用実行コンポーネントをロックするステップは、さらに、
取得失敗に応答して、待機状態に移行するステップと、
確定された専用実行コンポーネントのロック解除済みを示すウェイクアップ通知が受信されたことに応答して、待機状態を終了し、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うステップとを含む請求項２に記載の方法。
【請求項５】
前記方法は、
前記少なくとも一つの操作命令の実行済みが確定されたことに応答して、前記少なくとも一つの操作命令の実行済みを示すための通知を前記中央処理ユニットに送信するステップをさらに含む請求項１に記載の方法。
【請求項６】
前記少なくとも一つの汎用実行コンポーネントは並列接続され、前記少なくとも一つの専用実行コンポーネントは直列接続される請求項１に記載の方法。
【請求項７】
前記少なくとも一つの汎用実行コンポーネントはプログラム可能なＧＰＵを含み、前記少なくとも一つの専用実行コンポーネントは、畳み込みエンジン、単一データプロセッサ、プレーンデータプロセッサ、チャネルデータプロセッサ、専用メモリ及びデータ再構成エンジンのうちの少なくとも一つを含む請求項６に記載の方法。
【請求項８】
少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備える人工知能チップに用いられる命令実行装置であって、前記装置は、
中央処理ユニットから送信された、ニューラルネットワークモデルを記述するための記述情報を受信するように配置された情報受信ユニットであって、前記記述情報は、少なくとも一つの操作命令を含む、情報受信ユニットと、
前記記述情報を解析して、前記少なくとも一つの操作命令を取得するように配置された情報解析ユニットと、
前記少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに該操作命令を送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するように配置された命令送信ユニットとを備える人工知能チップに用いられる命令実行装置。
【請求項９】
前記命令送信ユニットは、
確定された専用実行コンポーネントのロックを取得するように配置されたロック取得モジュールと、
取得成功に応答して、ロック操作を実行するように配置されたロックモジュールとを含む請求項８に記載の装置。
【請求項１０】
前記ロックモジュールはさらに、
取得失敗に応答して、確定された専用実行コンポーネントのロック状態をポーリング方式で照会し、
確定された専用実行コンポーネントのロック状態がアンロックであることが照会されたことに応答して、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うように配置される請求項９に記載の装置。
【請求項１１】
前記ロックモジュールはさらに、
取得失敗に応答して、待機状態に移行し、
確定された専用実行コンポーネントのロック解除済みを示すためのウェイクアップ通知が受信されたことに応答して、待機状態を終了し、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うように配置される請求項１１に記載の装置。
【請求項１２】
前記装置は、
前記少なくとも一つの操作命令の実行済みが確定されたことに応答して、前記少なくとも一つの操作命令の実行済みを示すための通知を前記中央処理ユニットに送信するように配置された通知送信ユニットをさらに備える請求項８に記載の装置。
【請求項１３】
前記少なくとも一つの汎用実行コンポーネントは並列接続され、前記少なくとも一つの専用実行コンポーネントは直列接続される請求項８に記載の装置。
【請求項１４】
前記少なくとも一つの汎用実行コンポーネントはプログラム可能なＧＰＵを含み、前記少なくとも一つの専用実行コンポーネントは、畳み込みエンジン、単一データプロセッサ、プレーンデータプロセッサ、チャネルデータプロセッサ、専用メモリ及びデータ再構成エンジンのうちの少なくとも一つを含む請求項１３に記載の装置。
【請求項１５】
少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備える人工知能チップであって、
汎用実行コンポーネントは、中央処理ユニットから送信された、ニューラルネットワークモデルを記述するための、少なくとも一つの操作命令を含む記述情報を受信し、前記記述情報を解析して、前記少なくとも一つの操作命令を取得し、前記少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに該操作命令を送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するように配置され、
専用実行コンポーネントは、汎用実行コンポーネントから送信された操作命令の受信に応答して、受信された操作命令を実行し、受信された操作命令が実行された後、操作命令実行済みを示すための通知を返すように配置される、
人工知能チップ。
【請求項１６】
コンピュータプログラムが格納されたコンピュータ可読媒体であって、前記コンピュータプログラムが実行コンポーネントにより実行されるときに、請求項１〜７のいずれか１項に記載の方法を実現する、コンピュータ可読媒体。
【請求項１７】
中央処理ユニット、記憶装置および少なくとも一つの請求項１５に記載の人工知能チップを備える電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本願の実施形態は、コンピュータ技術分野に関し、具体的に、人工知能チップに用いられる命令実行方法及び装置に関する。
【背景技術】
【０００２】
近年、ディープラーニングを代表とするモデルアルゴリズムの出現と発展に伴い、ニューラルネットワークモデルは、音声認識、画像認識、自然言語処理など様々な分野で幅広く利用されている。
【０００３】
ニューラルネットワークモデルには、例えば、行列計算、畳み込み、プーリング、活性化、正規化など大量の計算集約型演算子がある。これらの演算は非常に時間がかかるため、従来のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理ユニット）の演算能力は需要を満たすのが難しく、異種コンピューティングが主流になっている。したがって、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、グラフィックプロセッサ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、フィールド・プログラマブル・ゲート・アレイ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ、特定用途向け集積回路）などのような様々なニューラルネットワークアクセラレータが開発された。
【０００４】
従来技術では、ニューラルネットワークプロセッサのタスクスケジューリングは、ホストのＣＰＵによって実現することができる。例えば、ホストのＣＰＵとニューラルネットワークプロセッサとの絶え間ない交互作用によって、ニューラルネットワークプロセッサのタスクスケジューリングが実現される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本願の実施形態は、人工知能チップに用いられる命令実行方法及び装置を開示する。
【０００６】
第１の態様では、本願実施形態は、人工知能チップに用いられる命令実行方法を提供する。人工知能チップは、少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備える。当該方法は、中央処理ユニットから送信された、ニューラルネットワークモデルを記述するための、少なくとも一つの操作命令を含む記述情報を受信するステップと、記述情報を解析して、少なくとも一つの操作命令を取得するステップと、少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに該操作命令を送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するステップとを含む。
【０００７】
いくつかの実施形態では、確定された専用実行コンポーネントをロックするステップは、確定された専用実行コンポーネントのロックを取得するステップと、取得成功に応答して、ロック操作を実行するステップとを含む。
【０００８】
いくつかの実施形態では、確定された専用実行コンポーネントをロックするステップは、さらに、取得失敗に応答して、確定された専用実行コンポーネントのロック状態をポーリング方式で照会するステップと、確定された専用実行コンポーネントのロック状態がアンロックであることが照会されたことに応答して、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うステップとを含む。
【０００９】
いくつかの実施形態では、確定された専用実行コンポーネントをロックするステップは、さらに、取得失敗に応答して、待機状態に移行するステップと、確定された専用実行コンポーネントのロック解除済みを示すウェイクアップ通知が受信されたことに応答して、待機状態を終了し、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うステップとを含む。
【００１０】
いくつかの実施形態では、当該方法は、前記少なくとも一つの操作命令の実行済みが確定されたことに応答して、前記少なくとも一つの操作命令の実行済みを示すための通知を前記中央処理ユニットに送信するステップをさらに含む。
【００１１】
いくつかの実施形態では、少なくとも一つの汎用実行コンポーネントは並列接続され、少なくとも一つの専用実行コンポーネントは直列接続される。
【００１２】
いくつかの実施形態では、少なくとも一つの汎用実行コンポーネントはプログラム可能なＧＰＵを含み、少なくとも一つの専用実行コンポーネントは、畳み込みエンジン、単一データプロセッサ、プレーンデータプロセッサ、チャネルデータプロセッサ、専用メモリ及びデータ再構成エンジンのうちの少なくとも一つを含む。
【００１３】
第２の態様では、本願実施形態は、人工知能チップに用いられる命令実行装置を提供する。人工知能チップは、少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備える。当該装置は、中央処理ユニットから送信された、ニューラルネットワークモデルを記述するための、少なくとも一つの操作命令を含む記述情報を受信するように配置された情報受信ユニットと、記述情報を解析して、少なくとも一つの操作命令を取得するように配置された情報解析ユニットと、少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに該操作命令を送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するように配置された命令送信ユニットとを含む。
【００１４】
いくつかの実施形態では、命令送信ユニットは、確定された専用実行コンポーネントのロックを取得するように配置されたロック取得モジュールと、取得成功に応答して、ロック操作を実行するように配置されたロックモジュールとを含む。
【００１５】
いくつかの実施形態では、ロックモジュールはさらに、取得失敗に応答して、確定された専用実行コンポーネントのロック状態をポーリング方式で照会し、確定された専用実行コンポーネントのロック状態がアンロックであることが照会されたことに応答して、確定された専用実行コンポーネントのロックを継続して取得し、ロック操作するように配置されている。
【００１６】
いくつかの実施形態では、ロックモジュールはさらに、取得失敗に応答して、待機状態に移行し、確定された専用実行コンポーネントのロック解除済みを示すためのウェイクアップ通知が受信されたことに応答して、待機状態を終了し、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うように配置される。
【００１７】
いくつかの実施形態では、当該装置はさらに、少なくとも一つの操作命令の実行済みが確定されたことに応答して、少なくとも一つの操作命令の実行済みを示すための通知を中央処理ユニットに送信するように配置される通知送信ユニットを含む。
【００１８】
いくつかの実施形態では、少なくとも一つの汎用実行コンポーネントは並列接続され、少なくとも一つの専用実行コンポーネントは直列接続される。
【００１９】
いくつかの実施形態では、少なくとも一つの汎用実行コンポーネントはプログラム可能なＧＰＵを含み、少なくとも一つの専用実行コンポーネントは、畳み込みエンジン、単一データプロセッサ、プレーンデータプロセッサ、チャネルデータプロセッサ、専用メモリ及びデータ再構成エンジンのうちの少なくとも一つを含む。
【００２０】
第３の態様では、本願実施形態は、人工知能チップを提供する。人工知能チップは、少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備える。汎用実行コンポーネントは、中央処理ユニットから送信された、ニューラルネットワークモデルを記述するための、少なくとも一つの操作命令を含む記述情報を受信し、記述情報を解析して、少なくとも一つの操作命令を取得し、少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに該操作命令を送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するように配置され、専用実行コンポーネントは、汎用実行コンポーネントからの操作命令が受信されたことに応答して、受信した操作命令を実行し、受信された操作命令が実行された後、操作命令の実行済みを示すための通知を返すように配置される。
【００２１】
第４の態様では、本願実施形態は、コンピュータプログラムが格納されたコンピュータ可読媒体を提供する。コンピュータプログラムが実行コンポーネントにより実行されるとき、上記第１の態様のいずれかの実現方法に記載された方法を実現する。
【００２２】
第５の態様では、本願実施形態は、中央処理ユニット、記憶装置および少なくとも一つの第３の態様に記載の人工知能チップを備える電子機器を提供する。
【００２３】
本願の実施形態による人工知能チップに用いられる命令実行方法および装置は、中央処理装置によって送信された、ニューラルネットワークモデルを記述するための記述情報を受信した後、記述情報を解析して少なくとも１つの操作命令を取得し、その後、操作命令を実行する専用実行コンポーネントを確定するとともに専用実行コンポーネントをロックした後、専用実行コンポーネントに操作命令を送信し、最後に、操作命令の実行が済んだ後に専用実行コンポーネントをロック解除する。これにより、人工知能チップとＣＰＵとの間の頻繁な交互作用が回避され、人工知能チップの性能を向上させることができる。
【図面の簡単な説明】
【００２４】
以下、添付図面を参照ながら非限定的実施形態を詳細に説明することで、本願のその他特徴、目的及び利点は一層明確になる。
【００２５】
【図１】本願の実施形態による適用可能な例示的システム構造図である。
【図２】本願による人工知能チップに用いられる命令実行方法の一実施形態のフローチャートである。
【図３Ａ】本願による人工知能チップに用いられる命令実行方法の一つの適用シナリオの概略図である。
【図３Ｂ】本願による人工知能チップに用いられる命令実行方法の一つの適用シナリオの概略図である。
【図３Ｃ】本願による人工知能チップに用いられる命令実行方法の一つの適用シナリオの概略図である。
【図４】本願による人工知能チップに用いられる命令実行方法のほかの一実施形態のフローチャートである。
【図５】本願による人工知能チップに用いられる命令実行装置の一実施形態の構造概略図である。
【図６】本願による人工知能チップの一実施形態の構造概略図である。
【図７】図６に示された実施形態の人工知能チップの動作タイミング図である。
【図８】本願による電子機器の一実施形態のコンピュータシステムの構造概略図である。
【発明を実施するための形態】
【００２６】
以下、添付図面及び実施形態に合わせて本願をさらに詳細に説明する。本明細書に記載された特定の実施形態は、関連本発明を解釈するためのものであり、本発明を限定するためのものではないことを理解されたい。なお、説明の便宜上、図面には関連発明に関わる部分のみ示されていることである。
【００２７】
説明すべきことは、本願における実施形態及び実施形態における特徴は、衝突しない限り、互いに組み合わせ可能であることである。以下、添付図面を参照し、実施形態に合わせて本発明を詳細に説明する。
【００２８】
図１は、本願を適用することができる人工知能チップに用いられる命令実行方法、または人工知能チップに用いられる命令実行装置の実施形態の例示的システムアーキテクチャー１００を示す。
【００２９】
図１に示すように、システムアーキテクチャー１００は、ＣＰＵ１１、人工知能チップ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ  Ｃｈｉｐ）１２、およびバス１３を含むことができる。バス１３は、例えば、ＰＣＩＥ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ、高速シリアルコンピュータ拡張バス規格）バスなどの、ＣＰＵ１１と人工知能チップ１２との間に通信リンクを提供する媒体として用いられる。
【００３０】
ＣＰＵ１１は、バス１３を介して人工知能チップ１２と交互作用することによって、メッセージを送受信することができる。ＣＰＵ１１は、ニューラルネットワークモデルの記述情報を人工知能チップ１２に送信し、人工知能チップ１２から返された処理結果を受信することができる。
【００３１】
人工知能チップ１２は、ＡＩアクセラレータまたはコンピューティングカードとも呼ばれ、人工知能アプリケーションにおける大量計算集約型の計算タスクを処理する２０１ためのものである。人工知能チップ１２は、少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備えることができる。汎用実行コンポーネントは、各専用実行コンポーネントにそれぞれ通信可能に接続される。汎用実行コンポーネントは、ＣＰＵ１１から送信されたニューラルネットワークモデルの記述情報を受信し解析した後、解析された操作命令を特定された専用実行コンポーネント（例えば、汎用実行コンポーネントによってロックされた専用実行コンポーネント）に送信することができる。専用実行コンポーネントは、汎用実行コンポーネントによって送信された操作命令を実行可能になっている。
【００３２】
説明すべきことは、本願の実施形態による人工知能チップに用いられる命令実行方法は、一般的には汎用実行コンポーネントによって実行されるため、これ対応して、人工知能チップに用いられる命令実行装置は一般的に汎用実行コンポーネントに設けられる。
【００３３】
図１におけるＣＰＵ、バス、人工知能チップ、汎用実行コンポーネント、および専用実行コンポーネントの数は、単なる一例にすぎないことを理解されたい。実現の必要性に応じて、任意の適切な数のＣＰＵ、バス、人工知能チップ、汎用実行コンポーネント、および専用実行コンポーネントを有することができる。
【００３４】
図２を続けて参照し、本願による人工知能チップに用いられる命令実行方法の一実施形態のプロセス２００を示す。人工知能チップに用いられる命令実行方法は、次のステップを含むことができる。
【００３５】
ステップ２０１において、ＣＰＵによって送信された、ニューラルネットワークモデルを記述するための記述情報を受信する。
【００３６】
本実施形態において、人工知能チップは、少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備えることができる。人工知能チップは、ＣＰＵと通信可能に接続することができる。人工知能チップに用いられる命令実行方法の実行主体（例えば、図１の人工知能チップ１２の汎用実行コンポーネント）は、ＣＰＵから送信された、ニューラルネットワークモデルを記述するための記述情報を受信することができる。該記述情報は、少なくとも一つの操作命令を含むことができる。ここで、操作命令は、例えば、行列計算命令、ベクトル演算命令などの、人工知能チップの専用実行コンポーネントによって実行可能な命令である。記述情報は、静的マップ、データストリームグラフなどの、人工知能チップの汎用実行コンポーネントが解釈可能な言語を使用してニューラルネットワークモデルを記述する様々な情報であってもよい。
【００３７】
ここで、ニューラルネットワークモデルは、人工ニューラルネットワーク（Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ、ＡＮＮ）であってもよい。人工ニューラルネットワークは、人間の脳神経ネットワークに対する基本的な認識に基づいて、数学的及び物理的方法並びに情報処理の角度からヒト脳神経ネットワークを抽象化して確立されたある簡単なモデルである。例えば、ニューラルネットワークモデルは、畳み込みニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ、ＣＮＮ）モデルおよびディープニューラルネットワーク（Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ、ＤＮＮ）モデルなどを含むことができる。
【００３８】
ステップ２０２において、記述情報を解析して、少なくとも一つの操作命令を取得する。
【００３９】
本実施形態において、前記実行主体は、ステップ２０１で受信された記述情報を解析することにより、記述情報に含まれた少なくとも一つの操作命令を取得することができる。
【００４０】
ステップ２０３において、操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックする。
【００４１】
本実施形態では、前記少なくとも１つの操作命令における各々の操作命令について、前記実行主体は、当該操作命令を実行する専用実行コンポーネントを確定した後、確定された専用実行コンポーネントをロック掛け（またはロック）することができる。一例として、当該操作命令が畳み込み命令であると、当該操作命令を実行する専用実行コンポーネントを畳み込みエンジン（畳み込み演算が固定化された集積回路）に確定し、当該畳み込みエンジンをロックすることができる。
【００４２】
本実施形態では、各々の汎用実行コンポーネントが各専用実行コンポーネントに通信可能に接続されているので、すなわち、各々の専用実行コンポーネントが複数の汎用実行コンポーネントに呼び出されるて操作命令を実行すうことができるので、ロックメカニズムを採用することで、各汎用実行コンポーネント間が専用実行コンポーネントを呼び出すときに発生する衝突を回避することができる。例えば、各専用実行コンポーネントは呼び出し可能なロックを有することができる。ここで、ロックはソフトウェアプログラミング方法によって実現することができる。専用実行コンポーネントのロックを呼び出すロック掛け方法により専用実行コンポーネントをロックすることができる（すなわち、ロックされた専用実行コンポーネントは、他の汎用実行コンポーネントにより呼び出されることができない）。
【００４３】
本実施形態のいくつかの好ましい実施態様では、確定された専用実行コンポーネントをロックするステップは、具体的に、まず、確定された専用実行コンポーネントのロックの取得を試み、その後、取得成功に応答して、ロック操作を実行することを含むことができる。一例として、確定された専用実行コンポーネントが畳み込みエンジンである場合、前記実行主体は該畳み込みエンジンのロックの取得を試みることができ、当該畳み込みエンジンのロックを取得した場合は、取得したロックのロック方法を呼び出すことで該畳み込みエンジンをロックすることができる。
【００４４】
本実施形態のいくつかの好ましい実施態様では、確定された専用実行コンポーネントをロックするステップは、具体的に、まず、確定された専用実行コンポーネントのロックの取得を試みた後、取得失敗に応答して、確定された専用実行コンポーネントのロック状態をポーリング方式で照会し、その後、確定された専用実行コンポーネントのロック状態がアンロックであることが照会されたことに応答して、確定された専用実行コンポーネントのロックを継続して取得し、ロック操作することを含むことができる。一例として、確定された専用実行コンポーネントが畳み込みエンジンであり、且つ該畳み込みエンジンが他の汎用実行コンポーネントによってロックされている場合、前記実行主体は該畳み込みエンジンのロックの取得を試み、失敗した後、当該畳み込みエンジンのロック状態をポーリング方式で問い合わせることができる（たとえば、所定の時間間隔で継続的に問い合わせる）。もし、当該畳み込みエンジンのロック状態がアンロックである（すなわち、当該畳み込みエンジンが別の汎用実行コンポーネントによって解放された）ことが照会された場合、当該畳み込みエンジンのロックの取得を再度試み、取得が成功すれば、取得されたロックのロック方法を呼び出すことによって該畳み込みエンジンをロックすることができる。
【００４５】
ステップ２０４において、確定された専用実行コンポーネントに操作命令を送信する。
【００４６】
本実施形態では、前記少なくとも１つの操作命令における各々の操作命令について、前記実行主体は、当該操作命令を実行する専用実行コンポーネントをロックした後、当該操作命令を、当該操作命令を実行する専用実行コンポーネント、すなわち、ステップ２０３によって確定された専用実行コンポーネントに送信する。ここで、専用実行コンポーネントは、汎用実行コンポーネントから送信された操作命令を実行し、操作命令の実行が済んだ後、操作命令実行済みを示す通知を返すように配置することができる。
【００４７】
本実施形態のいくつかの好ましい実施態様では、操作命令実行済みを示すための通知は、中断（Ｉｎｔｅｒｒｕｐｔ、処理ユニットとハードウェアデバイスとが通信する１種の方法）を含むことができる。ここで、中断は、ハードウェア中断、またはソフトウェア中断であってもよい。
【００４８】
ステップ２０５は、操作命令実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除する。
【００４９】
本実施形態では、前記少なくとも１つの操作命令における各々の操作命令について、前記実行主体は、当該操作命令が実行されたことを示す通知を受信した後に、当該操作命令を実行する専用実行コンポーネントをロック解除することができる（例えば、専用実行コンポーネントのロックのロック解除方法を呼び出すことによって該専用実行コンポーネントを解放する）。
【００５０】
一般的には、ニューラルネットワークモデルの記述情報には複数の操作命令を含むことができるため、すべての操作命令が実行されるまで、ステップ２０３からステップ２０５を順番に数回実行することができる。
【００５１】
本実施形態のいくつかの好ましい実施態様では、当該人工知能チップに用いられる命令実行方法は、さらに、前記少なくとも１つの操作命令の実行済みが確定されたことに応答して、前記少なくとも１つの操作命令の実行済みを示すための通知をＣＰＵに送信することを含むことができる。
【００５２】
前記少なくとも１つの操作命令の実行済みを示すための通知は、中断を含むことが好ましい。ここで、中断は、ハードウェア中断、またはソフトウェア中断であってもよい。
【００５３】
本実施形態のいくつかの好ましい実施態様では、前記少なくとも１つの汎用実行コンポーネントは並列に通信することができ、前記少なくとも１つの専用実行コンポーネントは直列に通信することができる。
【００５４】
本実施形態のいくつかの好ましい実施態様において、前記汎用実行コンポーネントは、プログラム可能な汎用計算グラフィックプロセッサを含むことができ、例えば、ＡＲＭ（Ａｄｖａｎｃｅｄ  ＲＩＳＣ  Ｍａｃｈｉｎｅ又はＡｃｏｒｎ  ＲＩＳＣ  Ｍａｃｈｉｎｅ、高度縮小命令セットマシン）コア、５１コア等である。前記少なくとも一つの専用実行コンポーネントは、畳み込みエンジン、単一データプロセッサ、プレーンデータプロセッサ、チャネルデータプロセッサ、専用メモリ、およびデータ再構成エンジンのうち少なくとも１つを含むことができるが、それらに限定されない。ここで、畳み込みエンジンはニューラルネットワークモデルの畳み込み層のデータ処理に使用され、単一データプロセッサはニューラルネットワークモデルの活性化関数層のデータ処理に使用され、プレーンデータプロセッサはニューラルネットワークモデルのプーリング層のデータ処理に使用され、チャネルデータプロセッサはニューラルネットワークモデルの標準化層のデータ処理に使用され、専用メモリとデータ再構成エンジンはテンソル再構成とメモリからメモリへの変換高速化のコピー操作に用いられる。
【００５５】
引き続き図３Ａ〜図３Ｃを参照すると、本願による人工知能チップに用いられる命令実行方法の一つの適用シナリオが示される。図３Ａにおいて、ＣＰＵ３１は、人間顔認識モデルの記述情報を、人工知能チップ３２内の汎用実行モジュールＧ１〜Ｇ４のうち、汎用実行モジュールＧ１に送信する。汎用実行モジュールＧ１は、当該記述情報を解析して命令１〜命令６を取得する。汎用実行モジュールＧ１は、まず、専用実行モジュールＥ１〜Ｅ６から、命令１を実行する専用実行モジュールを確定して専用実行モジュールＥ１とする。その後、汎用実行モジュールＧ１は、専用実行モジュールＥ１のロックを取得して専用実行モジュールＥ１をロックした後、専用実行モジュールＥ１に命令１を送信し（専用実行モジュールＥ１により命令１が実行され）、命令１の実行のフィードバックを待つ。最後に、汎用実行モジュールＧ１は、専用実行モジュールＥ１から返された中断１を受信する（すなわち、命令１は実行済みである）。同様に、図３Ｂでは、汎用実行モジュールＧ１は、引き続き、専用実行モジュールＥ１〜Ｅ６から、命令２を実行する専用実行モジュールを確定して専用実行モジュールＥ２とする。その後、汎用実行モジュールＧ１は、専用実行モジュールＥ２のロックを取得して専用実行モジュールＥ２をロックした後、専用実行モジュールＥ２に命令２を送信し（専用実行モジュールＥ２により命令２が実行され）、命令２の実行のフィードバックを待つ。最後に、汎用実行モジュールＧ１は、専用実行モジュールＥ２から返された中断２を受信する（すなわち、命令２は実行済みである）。このようにして、命令６まで実行され、図３Ｃに示すように、汎用実行モジュールＧ１は、引き続き、専用実行モジュールＥ１〜Ｅ６から、命令６を実行する専用実行モジュールを確定して専用実行モジュールＥ６とする。その後、汎用実行モジュールＧ１は、専用実行モジュールＥ６のロックを取得して専用実行モジュールＥ６をロックした後、専用実行モジュールＥ６に命令６を送信し（専用実行モジュールＥ６により命令６が実行され）、命令６の実行のフィードバックを待つ。最後に、汎用実行モジュールＧ１が専用実行モジュールＥ６から返された中断６を受信する（すなわち、命令６が実行済みである）ことで、汎用実行モジュールＧ１は、人間顔識別モデルの記述情報における命令が全て実行済みであると確定し、ＣＰＵ３１に中断を送信する。
【００５６】
本願の上記実施形態による人工知能チップに用いられる命令実行方法は、ＣＰＵによって送信された、ニューラルネットワークモデルの記述情報を受信し解析して少なくとも１つの操作命令を取得した後、操作命令を実行する専用実行コンポーネントを確定してロックした後、操作命令を実行する専用実行コンポーネントに操作命令を送信して専用実行コンポーネントからの実行のフィードバックを待ち、最後に、操作命令実行済みの通知を受信した後に操作命令を実行する専用実行コンポーネントをロック解除することにより、人工知能チップとＣＰＵとの間の頻繁な交互作用が回避され、人工知能チップの性能を向上させることができる。
【００５７】
さらに図４を参照し、本願による人工知能チップに用いられる命令実行方法の一実施形態のプロセス４００が示される。該人工知能チップに用いられる命令実行方法は、次のステップを含むことができる。
【００５８】
ステップ４０１において、ＣＰＵによって送信された、ニューラルネットワークモデルを記述するための記述情報を受信する。
【００５９】
本実施形態において、人工知能チップは、少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備えることができる。人工知能チップは、ＣＰＵと通信可能に接続することができる。人工知能チップに用いられる命令実行方法の実行主体（例えば、図１の人工知能チップ１２の汎用実行コンポーネント）は、ＣＰＵから送信された、ニューラルネットワークモデルを記述するための記述情報が受信することができる。該記述情報は少なくとも一つの操作命令を含むことができる。ここで、操作命令は、例えば、行列計算命令、ベクトル演算命令など、人工知能チップの専用実行コンポーネントによって実行可能な命令である。記述情報は、静的マップ、データストリームグラフなど、人工知能チップの汎用実行コンポーネントが解釈可能な言語を使用してニューラルネットワークモデルを記述する様々な情報を含むことができる。
【００６０】
ステップ４０２において、記述情報を解析して、少なくとも一つの操作命令を取得する。
【００６１】
本実施形態において、前記実行主体は、ステップ４０１で受信された記述情報を解析することにより、記述情報に含まれた少なくとも一つの操作命令を取得することができる。
【００６２】
ステップ４０３において、操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントのロックを取得する。
【００６３】
本実施形態では、前記少なくとも１つの操作命令における各々の操作命令について、前記実行主体は、当該操作命令を実行する専用実行コンポーネントを確定した後、確定された専用実行コンポーネントのロックを取得するよう試みることができる。一例として、当該操作命令が畳み込み命令である場合、当該操作命令を実行する専用実行コンポーネントが畳み込みエンジンであると確定し、当該畳み込みエンジンのロックを取得することができる。
【００６４】
ステップ４０４において、取得失敗に応答して、待機状態に入る。
【００６５】
本実施形態では、前記少なくとも１つの操作命令における各々の操作命令について、前記実行主体は、当該操作命令を実行する専用実行コンポーネントのロックを取得することに失敗した後（すなわち、操作命令を実行する専用実行コンポーネントが他の汎用実行コンポーネントによってロックされている）、ウェイクアップされるまで（例えば、ウェイクアップ通知を受信することによってウェイクアップされる）、待機状態に入る。
【００６６】
ステップ４０５において、確定された専用実行コンポーネントのロック解除済みを示すためのウェイクアップ通知が受信されたことに応答して、待機状態を終了し、確定された専用実行コンポーネントのロックを継続して取得し、ロック操作を行う。
【００６７】
本実施形態では、前記少なくとも１つの操作命令における各々の操作命令について、前記実行主体は、ウェイクアップ通知を受信した後（すなわち、当該操作命令を実行する専用実行モジュールが他の汎用実行モジュールによってロック解除／開放された）、待機状態を終了し、その後、当該操作命令を実行する専用実行モジュールのロックを取得しようと再び試みることができる。取得に成功したら、当該操作指令を実行する専用実行モジュールをロック掛けし、例えば、取得されたロックのロック方法を呼び出してロックする。
【００６８】
ステップ４０６において、確定された専用実行コンポーネントに操作命令を送信する。
【００６９】
本実施形態では、前記少なくとも１つの操作命令における各々の操作命令について、前記実行主体は、当該操作命令を実行する専用実行コンポーネントをロックした後、当該操作命令を、当該操作命令を実行する専用実行コンポーネント、すなわち、ステップ４０３によって確定された専用実行コンポーネントに送信する。ここで、専用実行コンポーネントは、汎用実行コンポーネントから送信された操作命令を実行し、操作命令の実行が済んだ後、操作命令実行済みを示す通知を返すように配置することができる。
【００７０】
ステップ４０７において、操作命令実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除する。
【００７１】
本実施形態では、少なくとも１つの操作命令における各々の操作命令について、前記実行主体は、当該操作命令が実行済みであることを示す通知を受信した後に、当該操作命令を実行する専用実行コンポーネントをロック解除することができる（例えば、専用実行コンポーネントのロックのロック解除方法を呼び出すことによって該専用実行コンポーネントを解放する）。
【００７２】
ステップ４０８において、少なくとも一つの操作命令の実行済みが確定されたことに応答して、少なくとも一つの操作命令の実行済みを示すための通知をＣＰＵに送信する。
【００７３】
本実施形態において、前記実行主体は、前記少なくとも１つの操作命令が実行されたことを確定した後（例えば、前記少なくとも１つの操作命令の中断を受信したことを確定した後）、ＣＰＵが継続して後処理を行うように、前記少なくとも１つの操作命令が実行されたことを示すための通知をＣＰＵに送信する。
【００７４】
図４から分かるように、本実施形態における人工知能チップに用いられる命令実行方法のフロー４００は、図２に対応する実施形態と比較して、ロック取得が失敗して待機状態に移行し、ＣＰＵに実行済み通知を送信するステップを強調している。これにより、本実施形態で説明した手法は、汎用実行モジュールのコストを削減し、ＣＰＵがニューラルネットワークモデルを取得して進捗を実行する効率を向上させることができる。
【００７５】
さらに図５を参照すると、図２および図４に示された方法の実施として、本願は、人工知能チップに用いられる命令実行装置の一実施形態を提供し、当該装置の実施形態は、図２に示された方法の実施形態に対応し、当該装置は、人工知能チップの汎用実行コンポーネントに適用することができる。
【００７６】
図５に示すように、本実施形態の人工知能チップに用いられる命令実行装置５００は、情報受信ユニット５０１、情報解析ユニット５０２及び命令送信ユニット５０３を備えることができる。情報受信ユニット５０１は、ＣＰＵから送信された、ニューラルネットワークモデルを記述するための、少なくとも一つの操作命令を含む記述情報を受信するように配置され、情報解析ユニット５０２は、記述情報を解析して、少なくとも一つの操作命令を取得するように配置され、命令送信ユニット５０３は、少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに該操作命令を送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するように配置される。
【００７７】
本実施形態において、人工知能チップは、少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備えることができる。人工知能チップは、ＣＰＵと通信可能に接続することができる。人工知能チップに用いられる命令実行装置５００の前記情報受信ユニット５０１は、ＣＰＵから送信された、ニューラルネットワークモデルを記述するための記述情報を受信することができる。該記述情報は少なくとも一つの操作命令を含むことができる。ここで、操作命令は、例えば、行列計算命令、ベクトル演算命令などの、人工知能チップの専用実行コンポーネントによって実行可能な命令である。記述情報は、静的マップ、データストリームグラフなどの、人工知能チップの汎用実行コンポーネントが解釈可能な言語を使用してニューラルネットワークモデルを記述する様々な情報であってもよい。
【００７８】
本実施形態において、前記情報解析ユニット５０２は、前記情報受信ユニット５０１により受信された記述情報を解析することにより、記述情報に含まれた少なくとも一つの操作命令を取得することができる。
【００７９】
本実施形態では、前記少なくとも一つの操作命令における各々の操作命令に対して、前記命令送信ユニット５０３は、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロック掛け（またはロック）した後、当該操作命令を実行する専用実行コンポーネントに該操作命令を送信し、その後、当該操作命令が実行済みであることを示す通知を受信した後、当該操作命令を実行する専用実行コンポーネントをロック解除することができる。ここで、専用実行コンポーネントは、汎用実行コンポーネントから送信された操作命令を実行し、操作命令が実行された後、操作命令実行済みを示す通知を返すように配置することができる。
【００８０】
本実施形態のいくつかの好ましい実施形態において、前記命令送信ユニット５０３は、ロック取得モジュール及びロックモジュールを備えることができる。ロック取得モジュールは、確定された専用実行コンポーネントのロックを取得するように配置され、ロックモジュールは、取得が成功したことに応答して、ロック操作を実行するように配置される。
【００８１】
好ましくは、ロックモジュールはさらに、取得が失敗したことに応答して、確定された専用実行コンポーネントのロック状態をポーリング方式で問い合わせし、確定された専用実行コンポーネントのロック状態がアンロックであるとの問い合わせ結果に応答して、確定された専用実行コンポーネントのロックを継続して取得し、ロック操作を行うように配置されている。
【００８２】
好ましくは、ロックモジュールはさらに、取得が失敗したことに応答して、待機状態に移行し、確定された専用実行コンポーネントのロック解除済みを示すためのウェイクアップ通知が受信されたことに応答して、待機状態を終了し、確定された専用実行コンポーネントのロックを継続して取得し、ロック操作を行うように配置される。
【００８３】
本実施形態のいくつかの好ましい実施態様では、操作命令実行済みを示すための通知は、中断（Ｉｎｔｅｒｒｕｐｔ、処理ユニットとハードウェアデバイスとが通信する１種の方法）を含むことができる。ここで、中断は、ハードウェア中断、またはソフトウェア中断であってもよい。
【００８４】
本実施形態のいくつかの好ましい実施形態において、装置５００は通知送信ユニットをさらに備えることができる。通知送信ユニットは、前記少なくとも一つの操作命令の実行済みが確定されたことに応答して、前記少なくとも一つの操作命令の実行済みを示すための通知をＣＰＵに送信するように配置される。
【００８５】
本実施形態のいくつかの好ましい実施態様では、前記少なくとも１つの汎用実行コンポーネントは並列で通信可能に接続することができ、前記少なくとも１つの専用実行コンポーネントは直列で通信可能に接続することができる。
【００８６】
本実施形態のいくつかの好ましい実施態様において、前記少なくとも一つの汎用実行コンポーネントは、プログラム可能な汎用計算グラフィックプロセッサを含むことができ、例えば、ＡＲＭコア、５１コアなどである。前記少なくとも一つの専用実行コンポーネントは、畳み込みエンジン、単一データプロセッサ、プレーンデータプロセッサ、チャネルデータプロセッサ、専用メモリ、およびデータ再構成エンジンのうち少なくとも１つを含むことができるが、それらに限定されない。
【００８７】
本願の上記実施形態による人工知能チップに用いられる命令実行装置は、ＣＰＵによって送信された、ニューラルネットワークモデルの記述情報を受信し解析して少なくとも１つの操作命令を取得した後、操作命令を実行する専用実行コンポーネントを確定してロックし、それから、操作命令を実行する専用実行コンポーネントに操作命令を送信し専用実行コンポーネントからの実行のフィードバックを待ち、最後に、操作命令が実行済みである通知を受信した後操作命令を実行する専用実行コンポーネントをロック解除し、それによって人工知能チップとＣＰＵとの間の頻繁な交互作用が回避され、人工知能チップの性能を向上させることができる。
【００８８】
本願実施形態はさらに人工知能チップを提供する。該人工知能チップの構造は図６を参考することができ、本願による人工知能チップの一実施形態の構造概略図が示される。図６に示すように、本実施形態における人工知能チップ６００は、少なくとも一つの汎用実行コンポーネント６０１及び少なくとも一つの専用実行コンポーネント６０２を備えることができる。
【００８９】
次に、人工知能チップの動作原理について、図７を参照して説明する。図７は、人工知能チップ６００の動作タイミング７００を示す。
【００９０】
まず、ブロック７０１において、ＣＰＵは、ニューラルネットワークモデルを記述するための記述情報を人工知能チップの汎用実行コンポーネントに送信する。該記述情報は、少なくとも一つの操作命令を含むことができる。
【００９１】
次に、ブロック７０２において、汎用実行コンポーネントは、受信された記述情報を解析し、記述情報に含まれた少なくとも１つの操作命令を取得する。
【００９２】
その後、ブロック７０３〜ブロック７０７のステップは、前記少なくとも１つの命令が全て実行されるまで、各命令に対して順番に循環して実行される。
【００９３】
ブロック７０３では、前記少なくとも１つの操作命令における各々の操作命令について、汎用実行コンポーネントは、当該操作命令を実行する専用実行コンポーネントを確定した後、確定された専用実行コンポーネントをロック掛け（またはロック）することができる。一例として、当該操作命令が畳み込み命令であると、当該操作命令を実行する専用実行コンポーネントが畳み込みエンジンであることを確定し、当該畳み込みエンジンをロックすることができる。
【００９４】
ロック７０４において、少なくとも１つの操作命令における各々の操作命令について、汎用実行コンポーネントは、当該操作命令を実行する専用実行コンポーネントをロックした後、当該操作命令を、当該操作命令を実行する専用実行コンポーネントに送信することができる。
【００９５】
ブロック７０５において、専用実行コンポーネントは、汎用実行コンポーネントによって送信された操作命令を実行することができる。
【００９６】
ブロック７０６において、汎用実行コンポーネントは、専用実行コンポーネントによって返された、操作命令が実行済みであることを示すための通知を受信することができる。
【００９７】
ブロック７０７では、汎用実行モジュールは、前記少なくとも１つの操作命令における各々について、当該操作命令が実行されたことを示す通知を受信した後に、当該操作命令を実行する専用実行モジュールをロック解除する。
【００９８】
最後に、ブロック７０８では、汎用実行モジュールは、前記少なくとも一つの操作命令が実行されたことを確定した後、前記少なくとも一つの操作命令が実行されたことを示すための通知をＣＰＵに送信することができる。
【００９９】
本願の上記実施形態による人工知能チップは、ＣＰＵによって送信された、ニューラルネットワークモデルの記述情報を受信し解析して少なくとも１つの操作命令を取得し、その後、汎用実行部が専用実行部を順次呼び出して操作命令を実行することにより、ＣＰＵとの頻繁な交互作用が回避され、人工知能チップの性能を向上させることができる。
【０１００】
本願実施形態はさらに電子機器を提供する。該電子機器の構造は図８を参照することができ、図７は、本願の電子機器の一実施形態のコンピュータシステム８００の構造模式図を示す。図８に示された電子機器は一つの例示に過ぎず、本願の実施形態の機能及び使用範囲に対して制限するものではない。
【０１０１】
図８に示すように、コンピュータシステム８００は、一つ又は複数の中央処理ユニット（ＣＰＵ）８０１及び一つ又は複数の人工知能チップ８０４を備える。ＣＰＵ８０１は、読み出し専用メモリ（ＲＯＭ）８０２に記憶されているプログラム又は記憶部８０７からランダムアクセスメモリ（ＲＡＭ）８０３にロードされたプログラムに基づいて様々な適当な動作および処理を実行することができる。人工知能チップ８０４は、一つ又は複数の汎用実行コンポーネント及びも一つ又は複数の専用実行コンポーネントを備え、人工知能チップ８０４は、ＣＰＵ８０１から受信されたプログラムに基づいて様々な適当な動作および処理を実行することができる。ＲＡＭ８０３には、システム８００の操作に必要な様々なプログラムおよびデータがさらに記憶されている。ＣＰＵ８０１、ＲＯＭ８０２およびＲＡＭ８０３及び人工知能チップ８０４は、バス８０５を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース８０６もバス８０５に接続されている。
【０１０２】
ハードディスクなどを含む記憶部８０７、およびＬＡＮカード、モデムなどを含むネットワークインターフェースカードの通信部８０８は、Ｉ／Ｏインターフェース８０６に接続されている。通信部８０８は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライバ８０９は、必要に応じてＩ／Ｏインターフェース８０６に接続される。リムーバブルメディア８１０は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライバ８０９に取り付けられ、したがって、ドライバ７０９から読み出されたコンピュータプログラムが必要に応じて記憶部８０７にインストールされる。
【０１０３】
特に，本発明の実施形態によれば、上記のフローチャートに参照して説明された過程はコンピュータソフトウェアプログラムに実現されてもよい。例えば、本発明の実施形態は、コンピュータ読取可能な媒体にロードされるコンピュータプログラムを含むコンピュータプログラム製品を備え、当該コンピュータプログラムは、フローチャートに示される方法を実行するためのプログラムコードを含む。このような実施形態において、当該コンピュータプログラムは、通信部８０８を介してネットワークからダウンロードしてインストールされ、及び／又はリムーバブルメディア８１０からインストールされてもよい。該コンピュータプログラムは、人工知能チップ８０４の汎用アクチュエータにより実行される場合に、本願の方法に限定される前記機能を実行する。
【０１０４】
説明すべきなのは、本願に記載のコンピュータ読取可能な媒体は、コンピュータ読取可能な信号媒体又はコンピュータ読取可能な記憶媒体又は前記両者の任意の組み合わせであってもよい。コンピュータ読取可能な記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、或いは半導体のシステム、装置又はデバイス、或いはこれらの任意の組み合わせであってもよいが、それらに限定されない。コンピュータ読取可能な記憶媒体についてのより具体的な例は、一つ又は複数の導線を含む電気的な接続、携帯可能なコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去可能なプログラミング読取専用メモリ（ＥＰＲＯＭ又はフラッシュ）、光ファイバ、携帯可能なコンパクト磁気ディスク読取専用メモリ（ＣＤ−ＲＯＭ）、光学記憶素子、磁気記憶素子、或いは前記任意の適当の組み合わせを含むが、それらに限定されない。本願において、コンピュータ読取可能な記憶媒体は、プログラムを含むか記憶する任意の有形の媒体であっても良く、当該プログラムは、コマンドによりシステム、装置又はデバイスの使用を実行し、或いはそれらに組み合わせて使用されてもよい。本願において、コンピュータ読取可能な信号媒体は、ベースバンドに伝送され或いはキャリアの一部として伝送され、コンピュータ読取可能なプログラムコードがロードされるデータ信号を含んでもよい。このような伝送されるデータ信号は、各種類の形式を採用しても良く、電磁気信号、光信号又は前記任意の適当の組み合わせを含むが、それらに限定されない。コンピュータ読取可能な信号媒体は、コンピュータ読取可能な記憶媒体以外の任意のコンピュータ読取可能な媒体であっても良く、当該コンピュータ読取可能な媒体は、コマンドによりシステム、装置又はデバイスの使用を実行し又はそれらと組み合わせて使用されるプログラムを送信し、伝播し又は伝送することができる。コンピュータ読取可能な媒体に含まれるプログラムコードは、任意の適当の媒体で伝送されても良く、無線、電線、光ケーブル、ＲＦなど、或いは前記任意の適当の組み合わせを含むが、それらに限定されない。
【０１０５】
一つ又は複数種類のプログラミング言語又はそれらの組合わせで、本願の操作を実行するためのコンピュータプログラムコードを編集することができ、前記プログラミング言語には、オブジェクト向けのプログラミング言語、例えばＪａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋が含まれ、通常のプロシージャ向けプログラミング言語、例えば「Ｃ」言語又は類似しているプログラミング言語も含まれる。プログラムコードは、完全にユーザコンピュータにて実行されてもよく、部分的にユーザコンピュータにおいて実行されてもよく、１つの独立のソフトウェアパッケージとして実行されてもよく、部分的にユーザコンピュータにおいて実行され且つ部分的に遠隔コンピュータにおいて実行されてもよく、又は完全に遠隔コンピュータ又はサーバにおいて実行されてもよい。遠隔コンピュータに係る場合に、遠隔コンピュータは、ローカルエリアネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介して、ユーザコンピュータ、又は、外部コンピュータに接続できる（例えば、インターネットサービス事業者を利用してインターネットを介して接続できる）。
【０１０６】
図面におけるフローチャート及びブロック図は、本願の各実施形態によるシステム、方法及びコンピュータプログラム製品により実現可能なシステム構造、機能及び操作を示す。この点において、フローチャート又はブロック図における各ブロックは、一つのモジュール、プログラムセグメント、又はコードの一部を表すことができ、当該モジュール、プログラムセグメント、又はコードの一部には、一つ又は複数の所定のロジック機能を実現するための実行可能なコマンドが含まれる。注意すべきなのは、幾つかの置換としての実現において、ブロックに示される機能は図面に示される順序と異なって発生されてもよい。例えば、二つの接続的に表示されるブロックは実際に基本的に併行に実行されてもよく、場合によっては逆な順序で実行されてもよく、関連の機能に従って決定される。注意すべきなのは、ブロック図及び／又はフローチャートにおける各ブロック、及びブロック図及び／又はフローチャートにおけるブロックの組み合わせは、所定の機能又は操作を実行する専用のハードウェアによるシステムで実現されてもよく、或いは専用のハードウェアとコンピュータコードの組み合わせで実現されてもよい。
【０１０７】
本願の実施形態に説明されたユニットは、ソフトウェアの手段で実現されてもよく、ハードウェアの手段で実現されてもよい。説明されたユニットは、例えば、情報受信ユニット、情報解析ユニット及び命令送信ユニットを含む汎用実行コンポーネントとして記述されても良い、プロセッサに設置されてもよい。これらのユニットの名称は場合によって該ユニットの自身に対する限定とされない。例えば、情報受信ユニットは、「ＣＰＵから受信されたニューラルネットワークモデルを記述するための記述情報を受信するユニット」と記載されてもよい。
【０１０８】
別の態様として、本願は更にコンピュータ読取可能な媒体を提供し、当該コンピュータ読取可能な媒体は、前記実施形態に説明された人工知能チップにおける汎用実行コンポーネントに含まれたものであっても良く、当該汎用実行コンポーネントに実装されずに別途に存在するものであってもよい。前記コンピュータ読取可能な媒体には一つ以上のプログラムが組み込まれており、前記一つ以上のプログラムが該汎用実行コンポーネントにより実行されるとき、当該汎用実行コンポーネントが、ＣＰＵから送信された、ニューラルネットワークモデルを記述するための、少なくとも一つの操作命令を含む記述情報を受信し、記述情報を解析して、少なくとも一つの操作命令を取得し、少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、当該操作命令を確定された専用実行コンポーネントに送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するようにする。
【０１０９】
以上の記載は、ただ本願の好適な実施形態及び運用される技術原理に対する説明である。当業者であればわかるように、本願にかかる発明範囲は、前記技術的特徴の特定の組み合わせからなる技術的手段に限定されず、前記発明構想から逸脱されない場合に前記技術特徴又は均等の特徴による任意の組み合わせで形成される他の技術的手段も同時に含まれるべきである。例えば、前記特徴と本願に開示された（それらに限定されない）類似の機能を具備する技術的特徴が互いに置換されて得られる技術的手段は該当する。
【図１】
2020038626.tif 000003
【図２】
2020038626.tif 000004
【図３Ａ】
2020038626.tif 000005
【図３Ｂ】
2020038626.tif 000006
【図３Ｃ】
2020038626.tif 000007
【図４】
2020038626.tif 000008
【図５】
2020038626.tif 000009
【図６】
2020038626.tif 000010
【図７】
2020038626.tif 000011
【図８】
2020038626.tif 000012
【手続補正書】
【提出日】令和1年11月14日(2019.11.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備える人工知能チップに用いられる命令実行方法であって、前記方法は、
中央処理ユニットから送信された、ニューラルネットワークモデルを記述するための記述情報を受信するステップであって、前記記述情報は、少なくとも一つの操作命令を含む、ステップと、
前記記述情報を解析して、前記少なくとも一つの操作命令を取得するステップと、
前記少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに当該操作命令を送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するステップと、を含む
人工知能チップに用いられる命令実行方法。
【請求項２】
前記確定された専用実行コンポーネントをロックするステップは、
確定された専用実行コンポーネントのロックを取得するステップと、
取得成功に応答して、ロック操作を実行するステップとを含む請求項１に記載の方法。
【請求項３】
前記確定された専用実行コンポーネントをロックするステップは、さらに、
取得失敗に応答して、確定された専用実行コンポーネントのロック状態をポーリング方式で照会するステップと、
確定された専用実行コンポーネントのロック状態がアンロックであることが照会されたことに応答して、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うステップとを含む請求項２に記載の方法。
【請求項４】
前記確定された専用実行コンポーネントをロックするステップは、さらに、
取得失敗に応答して、待機状態に移行するステップと、
確定された専用実行コンポーネントのロック解除済みを示すウェイクアップ通知が受信されたことに応答して、待機状態を終了し、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うステップとを含む請求項２に記載の方法。
【請求項５】
前記方法は、
前記少なくとも一つの操作命令の実行済みが確定されたことに応答して、前記少なくとも一つの操作命令の実行済みを示すための通知を前記中央処理ユニットに送信するステップをさらに含む請求項１に記載の方法。
【請求項６】
前記少なくとも一つの汎用実行コンポーネントは並列接続され、前記少なくとも一つの専用実行コンポーネントは直列接続される請求項１に記載の方法。
【請求項７】
前記少なくとも一つの汎用実行コンポーネントはプログラム可能なＧＰＵを含み、前記少なくとも一つの専用実行コンポーネントは、畳み込みエンジン、単一データプロセッサ、プレーンデータプロセッサ、チャネルデータプロセッサ、専用メモリ及びデータ再構成エンジンのうちの少なくとも一つを含む請求項６に記載の方法。
【請求項８】
少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備える人工知能チップに用いられる命令実行装置であって、前記装置は、
中央処理ユニットから送信された、ニューラルネットワークモデルを記述するための記述情報を受信するように配置された情報受信ユニットであって、前記記述情報は、少なくとも一つの操作命令を含む、情報受信ユニットと、
前記記述情報を解析して、前記少なくとも一つの操作命令を取得するように配置された情報解析ユニットと、
前記少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに該操作命令を送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するように配置された命令送信ユニットとを備える人工知能チップに用いられる命令実行装置。
【請求項９】
前記命令送信ユニットは、
確定された専用実行コンポーネントのロックを取得するように配置されたロック取得モジュールと、
取得成功に応答して、ロック操作を実行するように配置されたロックモジュールとを含む請求項８に記載の装置。
【請求項１０】
前記ロックモジュールはさらに、
取得失敗に応答して、確定された専用実行コンポーネントのロック状態をポーリング方式で照会し、
確定された専用実行コンポーネントのロック状態がアンロックであることが照会されたことに応答して、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うように配置される請求項９に記載の装置。
【請求項１１】
前記ロックモジュールはさらに、
取得失敗に応答して、待機状態に移行し、
確定された専用実行コンポーネントのロック解除済みを示すためのウェイクアップ通知が受信されたことに応答して、待機状態を終了し、確定された専用実行コンポーネントのロックを継続して取得して、ロック操作を行うように配置される請求項１１に記載の装置。
【請求項１２】
前記装置は、
前記少なくとも一つの操作命令の実行済みが確定されたことに応答して、前記少なくとも一つの操作命令の実行済みを示すための通知を前記中央処理ユニットに送信するように配置された通知送信ユニットをさらに備える請求項８に記載の装置。
【請求項１３】
前記少なくとも一つの汎用実行コンポーネントは並列接続され、前記少なくとも一つの専用実行コンポーネントは直列接続される請求項８に記載の装置。
【請求項１４】
前記少なくとも一つの汎用実行コンポーネントはプログラム可能なＧＰＵを含み、前記少なくとも一つの専用実行コンポーネントは、畳み込みエンジン、単一データプロセッサ、プレーンデータプロセッサ、チャネルデータプロセッサ、専用メモリ及びデータ再構成エンジンのうちの少なくとも一つを含む請求項１３に記載の装置。
【請求項１５】
少なくとも一つの汎用実行コンポーネント及び少なくとも一つの専用実行コンポーネントを備える人工知能チップであって、
汎用実行コンポーネントは、中央処理ユニットから送信された、ニューラルネットワークモデルを記述するための、少なくとも一つの操作命令を含む記述情報を受信し、前記記述情報を解析して、前記少なくとも一つの操作命令を取得し、前記少なくとも一つの操作命令における操作命令に対して、当該操作命令を実行する専用実行コンポーネントを確定し、確定された専用実行コンポーネントをロックし、確定された専用実行コンポーネントに該操作命令を送信し、当該操作命令の実行済みを示すための通知が受信されたことに応答して、確定された専用実行コンポーネントをロック解除するように配置され、
専用実行コンポーネントは、汎用実行コンポーネントから送信された操作命令の受信に応答して、受信された操作命令を実行し、受信された操作命令が実行された後、操作命令実行済みを示すための通知を返すように配置される、
人工知能チップ。
【請求項１６】
コンピュータプログラムが格納されたコンピュータ可読媒体であって、前記コンピュータプログラムが実行コンポーネントにより実行されるときに、請求項１〜７のいずれか１項に記載の方法を実現する、コンピュータ可読媒体。
【請求項１７】
中央処理ユニット、記憶装置および少なくとも一つの請求項１５に記載の人工知能チップを備える電子機器。
【請求項１８】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項１ないし請求項７のいずれか一項に記載の方法を実現させるコンピュータプログラム。
【外国語明細書】
2020038626000001.pdf