(57)【要約】  本願実施例はデータ処理方法と関連製品を開示しており、ここで、データ処理方法は、前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成しつつ、前記バイナリ命令に従って人工知能学習タスクを生成し、前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行し、前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定し、ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成されることとを含む。本願を実施することにより、人工知能アルゴリズムモデルと人工知能プロセッサとの間のデバッグ作業を事前に実現できる。【選択図】図１
2021521500.tif 000002
【特許請求の範囲】
【請求項１】
データ処理方法であって、前記方法はデータ処理システムに用いられ、前記データ処理システムは、汎用プロセッサとクラウド側人工知能プロセッサとを含み、
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成し、前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行することと、
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成することと、
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定し、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成されることとを含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含むことを特徴とする方法。
【請求項３】
請求項２に記載の方法であって、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含むことを特徴とする方法。
【請求項４】
請求項１に記載の方法であって、
前記汎用プロセッサは、前記端末側人工知能プロセッサのデバイス情報を受信することをさらに含むことを特徴とする方法。
【請求項５】
請求項４に記載の方法であって、
前記汎用プロセッサは、デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを適応させることをさらに含むことを特徴とする方法。
【請求項６】
請求項１に記載の方法であって、前記実行結果に従って前記オフライン実行ファイルを決定し、
前記実行結果が事前設定された要件を満たしている場合に、前記事前設定された要件を満たしているバイナリ命令に従って対応するオフライン実行ファイルを生成することを特徴とする方法。
【請求項７】
請求項１に記載の方法であって、前記実行結果に従って前記オフライン実行ファイルを決定することは、
前記実行結果が事前設定された要件を満たしていない場合に、以下の工程の内に少なくとも１つの最適化方法を、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たしているバイナリ命令に従って対応するオフライン実行ファイルを生成することをさらに含み、前記最適化方法は、
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整することと、
前記端末側人工知能プロセッサの動作環境パラメータを調整することと、
または、人工知能学習タスクを最適化することとを含むことを特徴とする方法。
【請求項８】
請求項７に記載の方法であって、前記人工知能学習タスクを最適化するステップは、
専用のプログラミング言語により人工知能学習タスクを最適化することを含むことを特徴とする方法。
【請求項９】
請求項７または８に記載の方法であって、前記人工知能学習タスクを最適化するステップは、
人工知能学習ライブラリのバージョンを更新することで人工知能学習タスクを最適化することをさらに含むことを特徴とする方法。
【請求項１０】
請求項７−９のいずれか１項に記載の方法であって、前記人工知能学習タスクを最適化するステップは、
人工知能アルゴリズムモデルを調整することをさらに含むことを特徴とする方法。
【請求項１１】
請求項１−１０のいずれか１項に記載の方法であって、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間と、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報と、前記人工知能学習タスクを実行した結果が予想の要件を満たしているか否かのこととの内に少なくとも１つを含むことを特徴とする方法。
【請求項１２】
請求項１に記載の方法であって、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティと、フィールドプログラマブルゲートアレイと、シミュレータとの内に少なくとも１つを含むことを特徴とする方法。
【請求項１３】
請求項１２に記載の方法であって、前記人工知能プロセッサのハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサハードウェアであることを特徴とする方法。
【請求項１４】
データ処理装置であって、メモリと、汎用プロセッサと、クラウド側人工知能プロセッサとを備え、前記メモリは、前記汎用プロセッサおよび／または前記クラウド側人工知能プロセッサで実行されるコンピュータプログラムを格納し、
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成し、前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行するためであり、
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成するためであり、
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定するためでもあり、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成されることを特徴とする装置。
【請求項１５】
請求項１４に記載の装置であって、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含むことを特徴とする装置。
【請求項１６】
請求項１５に記載の装置であって、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数と、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅と、オンチップメモリサイズと、端末側人工知能プロセッサのコア数と、端末側人工知能プロセッサのオペレーターのタイプとの内に少なくとも１つを含むことを特徴とする装置。
【請求項１７】
請求項１４に記載の装置であって、前記汎用プロセッサは、
前記端末側人工知能プロセッサのデバイス情報を受信するためでもあることを特徴とする装置。
【請求項１８】
請求項１７に記載の装置であって、前記汎用プロセッサは、
デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを適応させるためでもあることを特徴とする装置。
【請求項１９】
請求項１４に記載の装置であって、前記汎用プロセッサはさらに前記実行結果に従って前記オフライン実行ファイルを決定するためでもあり、
前記実行結果が事前設定された要件を満たしている場合に、前記事前設定された要件を満たしているバイナリ命令に従って対応するオフライン実行ファイルを生成することを特徴とする方法。
【請求項２０】
請求項１４に記載の装置であって、前記汎用プロセッサはさらに前記実行結果に従って前記オフライン実行ファイルを決定するためでもあり、
前記実行結果が事前設定された要件を満たしていない場合に、以下の工程の内に少なくとも１つの最適化方法を、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たしているバイナリ命令に従って対応するオフライン実行ファイルを生成することをさらに含み、前記最適化方法は、
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整することと、
前記端末側人工知能プロセッサの動作環境パラメータを調整することと、
または、人工知能学習タスクを最適化することとを含むことを特徴とする方法。
【請求項２１】
請求項２０に記載の装置であって、前記人工知能学習タスクを最適化するステップは、
専用のプログラミング言語により人工知能学習タスクを最適化することを含むことを特徴とする装置。
【請求項２２】
請求項２０または２１に記載の装置であって、前記人工知能学習タスクを最適化するステップは、
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化することをさらに含むことを特徴とする装置。
【請求項２３】
請求項２０−２２のいずれか１項に記載の装置であって、前記人工知能学習タスクを最適化するステップは、
人工知能アルゴリズムモデルを調整することをさらに含むことを特徴とする装置。
【請求項２４】
請求項１４−２３のいずれか１項に記載の装置であって、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間と、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報と、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かのこととの内に少なくとも１つを含むことを特徴とする装置。
【請求項２５】
請求項１４に記載の装置であって、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティと、フィールドプログラマブルゲートアレイと、シミュレータとの内に少なくとも１つを含むことを特徴とする装置。
【請求項２６】
請求項２５に記載の装置であって、前記人工知能プロセッサのハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサハードウェアであることを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本願は２０１９年４月１８日に出願され、出願番号は２０１９１０３１５９６２．９であり、発明名称は「データ処理方法および関連製品」の優先権を主張する。
【０００２】
本願は２０１９年５月２３日に出願され、出願番号は２０１９１０４３６８０１．５であり、発明名称は「データ処理方法および関連製品」の優先権を主張する。
【０００３】
［技術分野］
本願は、人工知能プロセッサ技術の分野に係り、特に、データ処理方法および関連製品に係る。
【背景技術】
【０００４】
従来技術では、アルゴリズムアプリケーション開発者は、人工知能プロセッサが成功にテープアウトされた後だけに、人工知能プロセッサ（ハードウェアエンティティ）の対応するバージョンで開発およびテストする。
【０００５】
上記の説明から、従来技術では、開発された人工知能アルゴリズムは、人工知能プロセッサの対応するバージョンで実行された機能結果および性能結果は、人工知能プロセッサがテープアウトされた後だけにすることがわかる。それにより、人工知能プロセッサがテープアウトされていない際に、端末側から人工知能アルゴリズムモデルと人工知能プロセッサとの間のデバッグ作業を実現する方法は、解決すべき差し迫った需要である。
【発明の概要】
【０００６】
本願の実施例はデータ処理方法および関連製品を提供し、端末側人工知能プロセッサがテープアウトされているか否かに関係なく、本技術案は、人工知能アルゴリズムモデルと人工知能プロセッサとの間の適応デバッグ作業を事前に実現できる。
【０００７】
上記の目的を実現するために、本願はデータ処理方法を提案し、前記方法はデータ処理システムに用いられ、前記データ処理システムは、汎用プロセッサとクラウド側人工知能プロセッサとを含む。それは以下を含む。
【０００８】
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行する。
【０００９】
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成する。
【００１０】
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定し、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００１１】
任意選択で、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
任意選択で、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
任意選択で、さらに以下を含む。
前記汎用プロセッサは、前記端末側人工知能プロセッサのデバイス情報を受信する。
任意選択で、さらに以下を含む。
前記汎用プロセッサは、デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
任意選択で、前記実行結果に従って前記オフライン実行ファイルを決定することは、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
任意選択で、前記実行結果に従って前記オフライン実行ファイルを決定することは、さらに以下を含む。
前記実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成し、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
任意選択で、前記人工知能学習タスクを最適化するステップは以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
任意選択で、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
任意選択で、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
任意選択で、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
任意選択で、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
任意選択で、前記人工知能プロセッサハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサである。
【００１２】
上記の目的を実現するために、本願はデータ処理装置を提案し、それは、メモリ、汎用プロセッサ、およびクラウド側人工知能プロセッサを備え、前記メモリは、前記汎用プロセッサおよび／またはクラウド側人工知能プロセッサで実行されるコンピュータプログラムを格納する。
【００１３】
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行するために用いられる。
【００１４】
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成するために用いられる。
【００１５】
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成されるためにさらに用いられる。
【００１６】
任意選択で、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
任意選択で、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
任意選択で、前記汎用プロセッサはさらに次のように用いられる。
前記端末側人工知能プロセッサのデバイス情報を受信する。
任意選択で、前記汎用プロセッサはさらに次のように用いられる。
デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
任意選択で、前記汎用プロセッサは、前記実行結果に従って前記オフライン実行ファイルを決定するためさらに次のように用いられる。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
任意選択で、前記汎用プロセッサは、前記実行結果に従って前記オフライン実行ファイルを決定するためさらに次のように用いられる。
前記実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成し、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
任意選択で、前記人工知能学習タスクを最適化するステップは以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
任意選択で、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
任意選択で、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
任意選択で、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
任意選択で、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
任意選択で、前記人工知能プロセッサハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサである。
【００１７】
上記の目的を実現するために、本願はデータ処理方法を提案し、前記方法は汎用プロセッサに用いられ、それは以下を含む。
【００１８】
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
【００１９】
前記汎用プロセッサは、前記人工知能学習タスクを、クラウド側人工知能プロセッサに送信して実行する。
【００２０】
前記汎用プロセッサは、前記人工知能学習タスクに対応する実行結果を受信する。
【００２１】
前記汎用プロセッサは、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００２２】
任意選択で、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
任意選択で、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
任意選択で、さらに以下を含む。
前記汎用プロセッサは、前記端末側人工知能プロセッサのデバイス情報を受信する。
任意選択で、さらに以下を含む。
前記汎用プロセッサは、デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
任意選択で、前記実行結果に従って前記オフライン実行ファイルを決定することは、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
任意選択で、前記実行結果に従って前記オフライン実行ファイルを決定することは、さらに以下を含む。
前記実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成し、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
任意選択で、前記人工知能学習タスクを最適化するステップは以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
任意選択で、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
任意選択で、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
任意選択で、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
【００２３】
上記の目的を実現するために、本願はデータ処理装置を提案し、それは、メモリおよび汎用プロセッサを備え、前記メモリは、前記汎用プロセッサで実行できるコンピュータプログラムを格納し、前記汎用プロセッサは前記コンピュータプログラムを実行する際に実現されているデータ処理フローは以下を含む。
【００２４】
端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
【００２５】
前記人工知能学習タスクを、クラウド側人工知能プロセッサに送信して実行する。
【００２６】
前記人工知能学習タスクに対応する実行結果を受信する。
【００２７】
前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００２８】
任意選択で、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
任意選択で、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
任意選択で、前記汎用プロセッサがコンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
前記端末側人工知能プロセッサのデバイス情報を受信する。
任意選択で、前記汎用プロセッサがコンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
任意選択で、前記汎用プロセッサが前記実行結果に従って前記オフライン実行ファイルを決定する際に、前記コンピュータプログラムを実行する際にデータ処理フローを実現することは、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
任意選択で、前記汎用プロセッサが前記実行結果に従って前記オフライン実行ファイルを決定する際に、前記コンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
前記実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成し、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
任意選択で、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
任意選択で、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、さらに以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
任意選択で、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、さらに以下を含む。
人工知能アルゴリズムモデルを調整する。
任意選択で、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
【００２９】
上記の目的を実現するために、本願はデータ処理方法を提案し、前記方法はクラウド側人工知能プロセッサ用にいられ、それは以下を含む。
【００３０】
人工知能学習タスクを受信する。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
【００３１】
前記人工知能学習タスクを実行して、実行結果を生成する。
【００３２】
任意選択で、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
任意選択で、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
任意選択で、前記クラウド側人工知能プロセッサハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサである。
【００３３】
上記の目的を実現するために、本願は人工知能プロセッサを提案し、それは以下を含む。
【００３４】
受信モジュールは、人工知能学習タスクを受信するために用いられる。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
【００３５】
実行モジュールは、前記人工知能学習タスクを実行して、実行結果を生成するために用いられる。
【００３６】
任意選択で、前記実行モジュールにより前記実行結果は、前記前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
任意選択で、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
任意選択で、前記クラウド側人工知能プロセッサハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサである。
【００３７】
上記の目的を実現するために、本願はデータ処理方法を提案し、前記方法は端末側人工知能プロセッサ用にいられ、それは以下を含む。
【００３８】
オフライン実行ファイルを取得する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００３９】
任意選択で、前記方法はさらに以下を含む。
リクエスト情報を送信する。ここで、前記リクエスト情報は前記端末側人工知能プロセッサのデバイス情報を含む。
任意選択で、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
任意選択で、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
【００４０】
上記の目的を実現するために、本願は人工知能プロセッサを提案し、それは以下を含む。
【００４１】
取得モジュールは、オフライン実行ファイルを取得するために用いられる。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００４２】
任意選択で、さらに以下を含む。
送信モジュール、リクエスト情報を送信するために用いられ、ここで、前記リクエスト情報は前記端末側人工知能プロセッサのデバイス情報を含む。
任意選択で、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
任意選択で、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
【００４３】
本技術案について技術的効果は、技術案に提供されたソフトウェア開発プラットフォームで、顧客は、当該ソフトウェア開発プラットフォームでアルゴリズムと人工知能プロセッサとの間の機能、パフォーマンス、および精度のデバッグを完成し、デバッグの完成後に生成されたオフライン実行ファイルは、互換性のあるアーキテクチャ上の多種なＳｏＣチップで使用でき、上記の利点は、顧客がハードウェアエンティティを取得することなく、アルゴリズムと人工知能プロセッサとの間の機能、パフォーマンス、および精度を事前にデバッグできることであり、これにより、製品開発サイクルが大幅に短縮される。さらに、各ＳｏＣチップ用に一連の開発環境を個別に開発または適応させる必要はない。
【図面の簡単な説明】
【００４４】
本開示の開示形態の技術案をより明確に例示するために、実施形態の説明に使用された図面を以下に簡単に説明する。以下の説明における図面は、本開示のいくつかの実施形態を明らかにするに過ぎず、本開示に対する限定にならない。
【図１】図１は本技術案の概略構造図である。
【図２】図２は人工知能プロセッサのソフトウェアスタックの概略構造図である。
【図３】図３は技術案について適用シナリオの第１の概略図である。
【図４】図４は技術案について適用シナリオの第２の概略図である。
【図５】図５は本願によって提案されたデータ処理方法の第１のフローチャートである。
【図６】図６は人工知能学習ライブラリによってサポートされた各種類の基本的な演算子の概略図。
【図７】図７は本願によって提案されたデータ処理方法の第２のフローチャートである。
【図８】図８は本願によって提案されたデータ処理方法の第３のフローチャートである。
【図９】図９は本願によって提案されたデータ処理方法の第４のフローチャートである。
【図１０】図１０は本願によって提案されたデータ処理装置の機能ブロック図である。
【図１１】図１１は本願によって提案されたデータ人工知能プロセッサの第１の機能ブロック図である。
【図１２】図１２は本願によって提案されたデータ人工知能プロセッサの第２の機能ブロック図である。
【図１３】図１３は本願によって提案されたデータ処理システムの概略構造図である。
【発明を実施するための形態】
【００４５】
以下、添付図面を参照しながら、本開示の実施例について明確に説明する。本開示の例示的な実施例ならびにそれらの様々な特徴および有利な詳細は、添付の図面に示された非限定的で例示的な実施例を参照してより全面的に説明される。図に示されている特徴は必ずしも縮尺通りに描かれていないことに注意されよう。本開示は、本開示の例示的な実施例を不明確にしないように、既知の材料、構成要素、およびプロセス技術の説明を省略する。これらの例は、本開示の例示的な実施例の実現について理解を容易にし、さらに当業者が例示的な実施形態を実施できるようにするためであることが過ぎない。したがって、これらの例は、本開示の実施例の範囲を限定するものと解釈されるべきではない。
【００４６】
他に特に定義されない限り、本開示で使用された技術用語または科学用語は、本開示の技術分野に関係する当業者によって通常の意味で理解されるものとする。本開示で使用された「第１」、「第２」、および同様の用語は、順序、量、または重要性を示すものではなく、異なる構成要素を区別するために使用されるに過ぎない。また、本開示の各実施例において、同じまたは類似の参照符号は、同じまたは類似の構成要素を示す。
【００４７】
技術案のより良い理解を促進するために、まず本出願の実施形態に含まれる技術用語を以下に説明する：
【００４８】
テープアウト：集積回路設計の分野では、テープアウトとは試作品、すなわち、プリセット機能を満たす集積回路を設計した後、最初にテスト用に数個または数十個の製品を生産することを指し、テスト要求を満たす場合は、テスト要求を満たした集積回路の構造によって大量生産される。
【００４９】
人工知能プロセッサのソフトウェアスタック：図２を参照しながら、ソフトウェアスタック構造２０は、人工知能アプリケーション２００、人工知能フレームワーク２０２、人工知能学習ライブラリ２０４、人工知能ランタイムライブラリ２０６、およびドライバー２０８を含む。次に、それに対して詳細に説明する。
【００５０】
人工知能アプリケーション２００は、異なるアプリケーションシナリオに対応し、対応する人工知能アルゴリズムモデルを提供する。当該アルゴリズムモデルは、人工知能フレームワーク２０２のプログラミングインタフェースによって直接解析されでき、１つの可能な実現方法では、人工知能学習ライブラリ２０４は、人工知能アルゴリズムモデルをバイナリ命令に変換し、人工知能ランタイムライブラリ２０６を呼び出してバイナリ命令を人工知能学習タスクに変換し、当該人工知能学習タスクをタスクキューに差し入れてドライバー２０８によってスケジュールし、それにより基礎となる人工知能プロセッサによって実行する。もう１つの可能な実現方法では、直接に人工知能ランタイムライブラリ２０６を呼び出すことができ、前に静的に生成したオフラインファイルを実行し、中間ソフトウェアアーキテクチャのコストを削減し、運用効率を向上させる。
【００５１】
バイナリ命令：基礎となる人工知能プロセッサが認識できる情報である。
【００５２】
人工知能プロセッサ：専用プロセッサとも呼ばれ、特定のアプリケーションまたは分野に対するプロセッサである。例えば、グラフィックス  プロセッシング  ユニット（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略称ＧＰＵ）は、ディスプレイコア、ビジュアルプロセッサ、ディスプレイチップとも呼ばれ、パーソナルコンピューター、ワークステーション  、ゲームコンソール、  およびあるモバイルデバイス  （  タブレットＰＣ  、  スマートフォンなど）で画像計算演算を実行するための専用プロセッサである。例えば、ニューラル  プロセッシング  ユニット（Ｎｅｕｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略称ＧＰＵ）は、人工知能の分野での行列乗算に対して専用プロセッサであり、「データ駆動型並列コンピューティング」のアーキテクチャを採用しており、特にビデオ、および画像の大量のマルチメディアデータの処理に優れている。
【００５３】
再構成可能アーキテクチャ：人工知能プロセッサが再利用可能なハードウェアリソースを利用できる場合に、様々なアプリケーションの要求に応じて、特定のアプリケーション要求ごとにマッチングするアーキテクチャを提供するために柔軟に自身のアーキテクチャを変更するなら、この人工知能プロセッサは再構成可能コンピューティングシステムと呼ばれ、そのアーキテクチャは再構成可能アーキテクチャと呼ばれる。
【００５４】
専用プログラミング言語：特定のハードウェア開発に基づいた高水準のプログラミング言語である。例えば、Ｃｕｄａ  Ｃである。
【００５５】
以下は、添付の図面を参照しながら、本開示の実施例によって提供されたデータ処理方法および関連製品の具体実施形態について詳細に説明する。
【００５６】
従来技術では、アルゴリズムアプリケーション開発者は、対応するバージョンのハードウェアの実体だけで人工知能アルゴリズムモデルと人工知能プロセッサとの間の適応デバッグ作業を実行する。従来技術の実現案は、テープアウトされていないチップとアルゴリズムとの間のデバック作業を実現できず、故にアルゴリズムモデルとチップとの間の適応を完成するために専用な時間が必要であり、製品の発売の締め切りは延ばされ、時間の問題により市場を占有する機会を見逃しがちである。
【００５７】
これに基づいて、本願により提供した技術案において、テープアウトされているかどうかに関係なく、端末側人工知能プロセッサのデバイス情報に従ってクラウド側から適切な人工知能プロセッサを照合することにより、端末側人工知能プロセッサをシミュレートし、本技術案におけるソフトウェア開発プラットフォームは、クライアントが提供するアルゴリズムモデルに対して一連の処理を通じて対応する人工知能学習タスクを提供し、当該人工知能学習タスククラウド側の人工知能プロセッサで実行されて、実行結果を取得する。実行結果に応じて、ソフトウェア開発プラットフォームで人工知能学習タスクを調整し、本技術案については、人工知能アルゴリズムモデルを調整するかどうかに関わらず、人工知能学習ライブラリの最適化および／または端末側人工知能プロセッサのデバイス情報に対する調整により、どちらも人工知能学習タスクを調整する目的を達成でき、端末側人工知能プロセッサと人工知能アルゴリズムモデル間の適応を実現する。
【００５８】
図１に示すように、本技術案におけるシステムアーキテクチャ図であり、図１に示すように、当該システムアーキテクチャは、クラウド側デバイス１０１、ソフトウェア開発プラットフォーム１０２、および端末側デバイス１０３を含む。
【００５９】
具体的に実現では、ソフトウェア開発プラットフォーム１０２は、アプリケーション開発、パフォーマンスチューニング、機能デバッグなどための一連のツールキットを提供する。アプリケーション開発ツールには、人工知能学習ライブラリ、人工知能ランタイムライブラリ、コンパイラ、特定の分野向け（ビデオ分析など）のソフトウェア開発ツールが含まれる。機能デバッグツールは、プログラミングフレームワークや人工知能学習ライブラリなどのさまざまなレベルのデバッグ要求を満たすことができ、パフォーマンスチューニングツールはパフォーマンス分析ツール、システム監視ツール等を含む。コンパイラは、Ｃ  ＋＋言語の従来のコンパイラを含んでもよいし、また、Ｃ系言語に基づく機械学習コンパイラを含んでもよいし、また、他の高水準言語又は特別に設計されたドメイン専用のプログラミング言語（Ｄｏｍａｉｎ  Ｓｐｅｃｉｆｉｃ  Ｌａｎｇｕａｇｅ）機械学習コンパイラを含んでもよい。任意選択で、ソフトウェア開発プラットフォームは、クラウド側デバイス１０１におけるプロセッサで実行されてもよいし、またはローカル（ｈｏｓｔ）コンピュータデバイスのプロセッサ上で実行されてもよいし、当該コンピュータデバイスは、汎用プロセッサ（ＣＰＵなど）とディスプレイとを含み得るものであり、ここでは特に限定されない。さらに任意選択で、上述のソフトウェア開発プラットフォームは、ローカルコンピュータデバイスまたはクラウド側デバイスでクライアントの形態で実行されてもよいし、本願の実施例では限定されない。図３に示すように、当該図面は概略に技術案について第１の適用シナリオを示している。ユーザは、デスクトップコンピュータでソフトウェア開発プラットフォームにログインし、ソフトウェア開発プラットフォームでアルゴリズムモデルに対応する人工知能学習タスクを生成し、クラウド側人工知能プロセッサで人工知能学習タスクの実行結果に基づいて人工知能学習タスクを調整する。図４に示すように、当該図面は概略に技術案について第二の適用シナリオを示している。クラウド側デバイス１０１には、人工知能ソフトウェア開発クライアントが設えられる。具体的には、クラウド側デバイスは完全なコンピューターシステムであり、汎用プロセッサと少なくとも１つの人工知能プロセッサとを含んでもよい。例えば、人工知能プロセッサには８つのクラスター（ｃｌｕｓｔｅｒ）を含めることができ、各クラスターはごとに４つの人工知能プロセッサコアが含まれる。実際には、ソフトウェア開発プラットフォーム１０２は、データブロックなどのツールによって保存されたユーザ記録を維持し、当該ユーザ記録はユーザ個人情報（アカウント情報など）およびユーザが必要とするサービス情報を含む。サービス情報は、デバッグ要求と端末側の人工知能プロセッサのデバイス情報とを含むがそれに限定されない。当該デバッグ要求は、機能デバッグとパフォーマンスデバッグとを含むがそれに限定されない。デバイス情報は、ハードウェアアーキテクチャ情報と動作環境パラメータとを含む。動作環境パラメータは、端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプを含むがそれに限定されない。
【００６０】
具体的な実現では、クラウド側デバイス１０１は人工知能プロセッサを備えており、当該人工知能プロセッサはクラウド側人工知能プロセッサと呼ばれる。クラウド側人工知能プロセッサは、人工知能プロセッサチップ、フィールドプログラマブルゲートアレイ、およびシミュレータを含むがそれに限定されない。人工知能プロセッサチップは、再構成可能なチップまたは非再構成可能なチップであり得る。クラウド側デバイス１０１は、サーバーボードまたはサーバーボードクラスターであり得る。
【００６１】
具体的な実現では、端末側デバイス１０３は人工知能プロセッサを備えており、当該人工知能プロセッサは端末側人工知能プロセッサと呼ばれる。端末側デバイスは、タブレットコンピューターや携帯電話などの端末デバイスであり得る。端末側デバイスは、カメラなどのエッジデバイスでもよい。本願の実施例では、端末側デバイス１０３は、テープアウトされていない状態のデバイスでもよいし、テープアウトされたデバイスでもよいことは注意されよう。
【００６２】
本技術案の動作原理は、ソフトウェア開発プラットフォーム１０２で、ドライバーが端末側人工知能プロセッサのデバイス情報に従ってクラウド側デバイス１０３から端末側デバイス１０３と一致する人工知能プロセッサをスクリーニングすることである。スクリーニングされたクラウド側人工知能プロセッサのハードウェアアーキテクチャ情報は、対応する端末側人工知能プロセッサのハードウェアアーキテクチャ情報と互換性があり、かつクラウド側人工知能プロセッサの命令セットも、対応する端末側人工知能プロセッサの命令セットと互換性がある。ここで、対応する端末側人工知能プロセッサのハードウェアアーキテクチャ情報と互換性があるクラウド側人工知能プロセッサのハードウェアアーキテクチャ情報は、クラウド側人工知能プロセッサの計算能力は、端末側人工知能プロセッサの計算能力より大きいか等しいことを含んでもよい。
【００６３】
ソフトウェア開発プラットフォーム１０２で、端末側人工知能プロセッサのデバイス情報に従って人工知能学習ライブラリのコンパイルインターフェースに対応するソフトウェアパラメータを設定し、プログラミングフレームワークによって取得されたアルゴリズムモデルを組み合わせ、設定された人工知能学習ライブラリのコンパイルインターフェースを呼び出してコンパイルすることにより、対応する端末側人工知能プロセッサのバイナリ命令を取得する。当該バイナリ命令はランタイムライブラリによって処理され、人工知能学習タスクが生成される。人工知能学習タスクはタスクキューに入れられ、最終的にドライバーによってタスクキューの内の人工知能学習タスクをタスクスケジューリングして、クラウド側人工知能プロセッサによって実行される。
【００６４】
クラウド側人工知能プロセッサによって実行された人工知能学習タスクによれば、実行結果をソフトウェア開発プラットフォーム１０２にフィードバックする。任意選択で、ソフトウェア開発プラットフォーム１０２は、実行結果を表示することができる。実行結果に従って、ソフトウェア開発プラットフォーム１０２は、ユーザの操作命令を受け取り、ソフトウェア開発プラットフォーム１０２は、操作命令を実行する３つの方法のうちの少なくとも１つに従ってバイナリ命令を調整する。この３つの方法は、端末側人工知能プロセッサのハードウェアアーキテクチャ情報の調整、端末側人工知能プロセッサの動作環境パラメータの調整、および人工知能学習タスクの最適化に分かれる。調整されたバイナリ命令を人工知能学習タスクに変換してタスクキューに入れられ、ドライバーによってタスクキューの内の人工知能学習タスクをタスクスケジューリングして、クラウド側人工知能プロセッサによって実行される。クラウド側人工知能プロセッサからのフィードバックの結果は、期待のどおりまで実行する。
【００６５】
本技術案では、端末側人工知能プロセッサのデバイス情報は人工知能学習ライブラリのコンパイルインターフェイスのソフトウェアパラメータに対応し、当該ソフトウェアパラメータには、ＲＡＭサイズ、キャッシュサイズ、キャッシュでキャッシュするかどうかなどのより多くの詳細情報が含まれる。これらの情報は、バイナリ命令の生成時に割り当てられた操作ドメインに関連しているため、人工知能アルゴリズムモデルを変更しない場合に、端末側人工知能プロセッサのデバイス情報を変更することにより、バイナリ命令を調整して、人工知能学習タスクを調整できる。端末側人工知能プロセッサがテープアウトされたかどうかに関係なく、端末側人工知能プロセッサのデバイス情報に従ってクラウド側デバイス１０１から適応したクラウド側人工知能プロセッサは、端末側人工知能プロセッサを置き換えて、クラウド側人工知能プロセッサで対応する人工知能学習タスクを実行する。実行結果に従って、当該ソフトウェア開発プラットフォームでアルゴリズムモデルと人工知能プロセッサとの間の機能、パフォーマンス、および精度のデバッグを完成し、デバッグの完成後に生成されたオフライン実行ファイルは、互換性があるアーキテクチャ上の多種な端末側ＳｏＣチップで使用でき、それによる利点は、顧客がハードウェアエンティティを取得することなくて、アルゴリズムモデルと人工知能プロセッサとの間の機能、パフォーマンス、および精度を事前にデバッグできることであり、これにより、製品開発サイクルが大幅に短縮される。さらに、各端末側ＳｏＣチップ用に一連の開発環境を個別に開発または適応させる必要はない。
【００６６】
さらに、本技術案では、クラウド側人工知能プロセッサのデバイス情報に対応する現在の動作環境パラメータは、実際の動作環境パラメータと同じであってもよいし、実際の動作パラメータと異なっていてもよい。クラウド側人工知能プロセッサによる特定の人工知能学習タスクに対する実行結果に応じて、端末側人工知能プロセッサのデバイス情報が期待された条件を満たすか否かを判断する。端末側人工知能プロセッサのデバイス情報が期待された条件を満たさない場合には、端末側人工知能プロセッサのデバイス情報を、当該端末側人工知能プロセッサのデバイス情報が期待された条件を満たすまでさらに調整してもよい。したがって、本技術案として、端末側人工知能プロセッサのアーキテクチャが設計段階の際に、端末側のＳｏＣチップの設計仕様をもアプリケーションに基づいて評価できる。
【００６７】
上記の説明に基づいて、図５に示すように、本願によって提案されたデータ処理方法のフローチャートである。前記方法は、汎用プロセッサに適用され、図１のソフトウェア開発プラットフォームに対応する。上述のように、当該汎用プロセッサは、クラウド側デバイス１０１の汎用プロセッサまたはローカルコンピュータデバイスの汎用プロセッサであり得る。含まれるものは：
【００６８】
ステップ５０１）：前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
【００６９】
本技術案では、ソフトウェア開発プラットフォーム１０２には、複数のプログラミングフレームワークを統合し、例えば、グーグルテンソル人工学習システムＴｅｎｓｏｒＦｌｏｗ、ディープラーニングフレームワークＣａｆｆｅ、Ｃａｆｆｅ２、ＭＸＮｅｔなどである。Ｃａｆｆｅを例にとると、Ｃａｆｆｅには、Ｂｌｏｂ、Ｌａｙｅｒ、Ｎｅｔという３つのコアモジュールがある。Ｂｌｏｂｓはデータストレージ、データの相互作用と処理に使用され、Ｂｌｏｂｓにより、データメモリのインターフェイスを統一制定する。Ｌａｙｅｒｓは、ニューラルネットワークの核心であり、多くの層構造を定義し、それはＢｌｏｂを入力および出力として扱う。ＮｅｔｓはＬａｙｅｒｓの集合であり、これらの層構造は結合することによりネットワークマップを形成する。
【００７０】
本ステップとして、端末側人工知能プロセッサのデバイス情報に従って人工知能学習ライブラリのコンパイルインターフェースに対応するソフトウェアパラメータを設定し、プログラミングフレームワークによって取得されたアルゴリズムモデルを組み合わせ、設定された人工知能学習ライブラリのコンパイルインターフェースを呼び出してコンパイルすることにより、対応する端末側人工知能プロセッサのバイナリ命令を取得する。当該バイナリ命令はランタイムライブラリによって処理され、人工知能学習タスクを生成する。人工知能学習タスクはタスクキューに入れられ、最終的にドライバーによってタスクキューの内の人工知能学習タスクをタスクスケジューリングして、クラウド側人工知能プロセッサによって実行される。
【００７１】
実際の運用では、人工知能学習ライブラリは、人工知能プロセッサでさまざまな人工知能学習アルゴリズムを高速化することために用いられる。ここで、人工知能学習アルゴリズムは、深層学習アルゴリズムを含むがそれに限定されなく、例えば、畳み込みニューラルネットワークアルゴリズム、回帰型ニューラルネットワークアルゴリズムなどである。具体的には、人工知能学習ライブラリは主に次の機能を含む。
【００７２】
（１）各種類の基本的な演算子をサポートする。
具体的な実現では、基本的な演算子を組み合わせてさまざまな機械学習アルゴリズムを実現できるため、汎用性、柔軟性、およびスケーラビリティについて要望を満たす。
【００７３】
具体的には、ここに係る様々なタイプの基本的な演算子は、一般的なニューラルネットワーク演算子１、行列、ベクトル、スカラー演算子２、および回帰型ニューラルネットワーク演算子３を含み得る。図６に参照すると、本願の実施例によって提供された人工知能学習ライブラリがサポートする複数のタイプの基本的な演算子の概略図であり、図６に示すように人工知能学習ライブラリがサポートする複数のタイプの基本的な演算子は、一般的なニューラルネットワーク演算子１を含み、当該ニューラルネットワーク演算子１は、畳み込み／逆畳み込み演算子１１、プーリング演算子１２、活性化演算子１３、局所コントラスト正規化ＬＲＮ（ＬＲＮ、Ｌｏｃａｌ  Ｒｅｓｐｏｎｓｅ  Ｎｏｒｍａｌｉｚａｔｉｏｎ）／バッチ正規化演算子１４、分類器（Ｓｏｆｔｍａｘ）演算子１５、および全結合演算子１６を含む。ここで、活性化演算子１３は、ＲｅＬＵ、Ｓｉｇｍｏｉｄ、Ｔａｎｈ、および他の補間により実現できる演算子を含むがそれに限定されない。行列、ベクトル、スカラー演算子２は、行列乗算演算子２１、テンソル加算、減算演算子２２、テンソル論理演算演算子２３、テンソル（Ｔｅｎｓｏｒ）変換演算子２４、ＲＯＩＰｏｏｌｉｎｇ演算子２５、およびＰｒｏｐｏｓａｌ演算子２６を含む。ここで、テンソル変換演算子２４は、Ｃｒｏｐ、テンソル再整形Ｒｅｓｈａｐｅ、テンソル分割Ｓｌｉｃｅ、テンソル連結Ｃｏｎｃａｔなどを含むことができるがそれに限定されない。回帰型ニューラルネットワーク演算子３は、長・短期記憶ネットワークＬＳＴＭ（ＬＳＴＭ、Ｌｏｎｇ  Ｓｈｏｒｔ−Ｔｅｒｍ  Ｍｅｍｏｒｙ）演算子３１、基本回帰型ニューラルネットワーク演算子ＲＮＮ（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ、ＲＮＮ）、回帰型ニューラルネットワークＲＮＮ演算子３２、およびＳＶＤＦ演算子３３を含む。実際の運用では、ユーザは自身のニーズに応じて自由に新しい演算子を人工知能学習ライブラリに追加したり、人工知能学習ライブラリの異なるバージョンを変更したりできるが、ここでは詳しく説明せず、人工知能学習タスクをデバックする際に如何に開発プラットフォームで人工知能学習ライブラリに基づいて人工知能学習タスクを最適化することを説明する。
【００７４】
（２）基本的な演算子の融合をサポートする。
具体的な実現では、融合された演算子は、コンパイル中にメモリの再利用、メモリアクセスの最適化、命令パイプライン、データタイプの最適化（適用可能なさまざまなデータ型に対して選択を行うなど）などのコンパイラ最適化方法を使用するため、融合演算子の全体的なパフォーマンスを大幅に向上させる。
【００７５】
（３）オフライン実行ファイルの生成をサポートする。
ここで、オフライン実行ファイルの生成は、人工知能アルゴリズムモデル内の各コンピューティングノードのネットワーク重みと命令となどの必要なネットワーク構造情報を含むことができ、命令は当該コンピューティングノードはどのようなコンピューティング機能を示すことができ、具体的には人工知能学習モデルにおける各コンピューティングノードのコンピューティング属性および各コンピューティングノードの間の接続関係などの情報を含む。
【００７６】
具体的な実現では、オフライン実行ファイルは、人工知能学習ライブラリから分離され、人工知能ランタイムライブラリに基づいて個別に実行できる。実際の運用では、オフライン実行ファイルは上位ソフトウェアスタックから分離されているため、オフライン実行ファイルの実行についてパフォーマンスと汎用性を向上させる。
【００７７】
ステップ５０２）：前記汎用プロセッサは前記人工知能学習タスクを送信する。
【００７８】
本技術案として、端末側人工知能プロセッサのデバイス情報に従ってクラウド側デバイス１０１から適応したクラウド側人工知能プロセッサは、端末側人工知能プロセッサを置き換えることができる。次いで、ソフトウェア開発プラットフォーム１０２で生成された人工知能学習タスクは、クラウド側人工知能プロセッサに送信されて実行される。
【００７９】
ステップ５０３）：前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信する。
【００８０】
クラウド側人工知能プロセッサは人工知能学習タスクを実行する際に、実行結果を生成し、当該実行結果をソフトウェア開発プラットフォーム１０２にフィードバックして表示する。本技術案として、実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に１つまたは１つ以上のものを含むがそれに限定されない。本技術案では、クラウド側の人工知能処理システムは、汎用プロセッサとクラウド側人工知能プロセッサを含んでいる。前記人工知能学習タスクを実行する際に、前記人工知能学習タスクを実行するときにクラウド側の人工知能プロセッサの負荷情報を知るだけでなく、実行プロセス中にメモリ使用量情報と汎用プロセッサ使用率を知ることも必要である。負荷情報が実行結果に含まれる理由は、人工知能学習タスクが汎用プロセッサで過大なリソースを必要とする場合、それを端末側デバイスで実行が不十分になるか実行できない可能性が高いである。
【００８１】
ステップ５０４）：前記汎用プロセッサは、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００８２】
オフライン実行ファイルは、オフライン実行ファイルのバージョン情報、人工知能プロセッサのバージョン情報、バイナリ命令、定数テーブル、入力／出力データ規模、データレイアウト説明情報、およびパラメータ情報を含むことは明らかにされよう具体的には、オフライン実行ファイルのバージョン情報は、オフライン実行ファイルの異なるバージョンを表すものである。人工知能プロセッサのバージョン情報は、端末側人工知能プロセッサのハードウェアアーキテクチャ情報を指す。例えば、チップアーキテクチャのバージョン番号によりハードウェアアーキテクチャ情報を表してもよいし、機能説明によりアーキテクチャ情報を表してもよい。データレイアウト説明情報は、ハードウェアの特性に基づいて入出力データのレイアウトとタイプなどを前処理することを指す。定数テーブル、入出力データ規模、およびパラメータ情報は、開発された人工知能アルゴリズムモデルに基づいて決定される。パラメータ情報は、人工知能アルゴリズムモデルにおける重みデータであり得る。定数テーブルには、バイナリ命令演算プロセスの実行に使用する必要があるデータが格納されている。
【００８３】
端末側人工知能プロセッサのデバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
【００８４】
本技術案では、前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。実行結果が事前設定された要件を満たしていない場合に、  機能デバッグツールおよび／またはパフォーマンスチューニングツールにより以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報の調整、前記端末側人工知能プロセッサの動作環境パラメータの調整、および人工知能学習タスクの最適化を含む。
【００８５】
具体的には、クラウド側人工知能プロセッサによってフィードバックされた実行結果が事前設定された要件を満たすと、現在実行されている人工知能学習タスクを対応するバイナリ命令がオフラインでオフライン実行ファイルに固定化する。
【００８６】
クラウド側人工知能プロセッサによってフィードバックされた実行結果が事前設定された要件を満たしていない場合には、人工知能学習タスクに対するデバッグは２つのアプリケーションシナリオとする。第１のアプリケーションシナリオは、アプリケーションに基づいたチップ設計フェーズで、本技術案を利用してチップ設計仕様を評価する。この状況で、チップのハードウェアアーキテクチャ情報と動作環境パラメータとはどちらも変更可能である。次に、ソフトウェア開発プラットフォームで、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報の調整、端末側人工知能プロセッサの動作環境パラメータの調整、および人工知能学習タスクの最適化という３つの方法の内に少なくとも１つを含むものを実行することにより、人工知能学習タスクに対応するバイナリ命令を適宜に調整できる。毎回調整の後で、ドライバーによってタスクキューの内の調整された人工知能学習タスクをタスクスケジューリングして、対応するクラウド側人工知能プロセッサによって実行して、新たな実行結果を取得する。新たな実行結果がまだ期待どおりでない場合は、ユーザは実行結果が期待どおりになるまで上記の手順を繰り返すことができる。最終にデバッグで取得したバイナリ命令は、オフライン方式でオフライン実行ファイルに固定化される。
【００８７】
第２のアプリケーションシナリオは、端末側人工知能プロセッサがテープアウトされているか否かに関係なく、ユーザはソフトウェア開発プラットフォームに基づいて設計開発を展開でき、端末側人工知能プロセッサと人工知能アルゴリズムモデルとの間の適応を実現できる。この状況で、実際には、他のアーキテクチャバージョンのチップ使用権を再購入しない限り、チップのハードウェアアーキテクチャ情報は簡単に変更されない。チップのハードウェアアーキテクチャ情報が変更されないと仮定すると、フトウェア開発プラットフォームで、現在のハードウェアアーキテクチャ情報に対応するチップにサポートされた動作環境パラメータの範囲内で動作環境パラメータを調整すること、および人工知能学習タスクの最適化という２つの方法の内に少なくとも１つを実行することにより、人工知能学習タスクに対応するバイナリ命令を適宜に調整できる。毎回調整の後で、ドライバーによってタスクキューの内の調整された人工知能学習タスクをタスクスケジューリングして、対応するクラウド側人工知能プロセッサによって実行して、新たな実行結果を取得する。新たな実行結果がまだ期待どおりでない場合は、ユーザは実行結果が期待どおりになるまで上記の手順を繰り返すことができる。最終にデバッグで取得したバイナリ命令は、オフライン方式でオフライン実行ファイルに固定化される。
【００８８】
重要なのは、オフライン実行ファイルをクラウド側人工知能プロセッサまたは端末側人工知能プロセッサで実行できるようにし、かつ人工知能学習タスクをクラウド側人工知能プロセッサで実行する際に生成された実行結果と端末側人工知能プロセッサで実行する際に生成された実行結果とは、特定の許容誤差範囲内または完全に一致しており、本技術案では、端末側人工知能プロセッサのデバイス情報に従ってクラウド側人工知能プロセッサの集合から対応する端末側人工知能プロセッサを置き換えできるクラウド側人工知能プロセッサをスクリーニングし、スクリーニングされたクラウド側人工知能プロセッサのハードウェアアーキテクチャ情報は、対応する端末側人工知能プロセッサのハードウェアアーキテクチャ情報と互換性があり、クラウド側人工知能プロセッサの命令セットは、対応する端末側人工知能プロセッサの命令セットと互換性があるため、オフライン実行ファイルについてシームレスな移行を実現できる。
【００８９】
本技術案では、異なる端末側人工知能プロセッサのデバイス情報は、ソフトウェア開発プラットフォーム１０２に事前に格納されてもよい。実際の必要に応じて、事前格納されたデバイス情報からターゲット情報を選択し、ターゲット情報に従ってクラウド側デバイス１０１から端末側人工知能プロセッサを置き換えるクラウド側人工知能プロセッサを決定する。本技術案として、他の実行可能な解決策は、実際のニーズに応じて、毎回にデバイス情報を調整するたびに、ユーザがソフトウェア開発プラットフォーム１０２に異なるデバイス情報を設定し、ソフトウェア開発プラットフォーム１０２が端末側人工知能プロセッサのデバイス情報を受信し、現在の受信した端末側人工知能プロセッサのデバイス情報に従ってクラウド側デバイス１０１からクラウド側人工知能プロセッサを選択して、端末側人工知能プロセッサの人工知能プロセッサを置き換える。説明すべきなのは、前記端末側人工知能プロセッサのデバイス情報を取得する方法は単なる例示であり、網羅的ではなく、当業者は、本願の技術案の本質を理解した場合に、本願の技術案に基づいて他の変形または変換を生成すことが可能であり、例えば、端末側デバイス１０３は、リクエスト情報をソフトウェア開発プラットフォーム１０２に送信し、ソフトウェア開発プラットフォーム１０２はリクエスト情報を解析して端末側人工知能プロセッサのデバイス情報を取得する。しかしながら、実現された機能および達成された技術的効果が本願に類似している限り、それらはすべて本願の請求範囲内にあるべきである。
【００９０】
実際の運用では、クラウド側デバイス１０１から端末側人工知能プロセッサを置き換えるクラウド側人工知能プロセッサを選択する際に、現在の有効な端末側デバイス情報をドライバプログラムに書き込み、ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを適応する。クラウド側人工知能プロセッサを適応するプロセスは以下を含む。
【００９１】
端末側人工知能プロセッサのードウェアアーキテクチャ情報に従ってクラウド側人工知能プロセッサをスクリーニングし、スクリーニングされたクラウド側人工知能プロセッサのハードウェアアーキテクチャ情報は、対応する端末側人工知能プロセッサのハードウェアアーキテクチャ情報と互換性があり、クラウド側人工知能プロセッサの命令セットは、対応する端末側人工知能プロセッサの命令セットと互換性がある。
【００９２】
端末側人工知能プロセッサの動作環境パラメータに従ってスクリーニングされたクラウド側人工知能プロセッサの周波数と帯域幅とに対して調整する。
【００９３】
また、人工知能学習タスクの最適化に対する４つの方式があってもよい。第１の方式では、ユーザは、ソフトウェア開発プラットフォームでプログラミング言語に基づいてファイルをダイナミックリンクライブラリにコンパイルし、フレームワークで当該ダイナミックリンクライブラリを呼び出すことができる。
【００９４】
第２の方式では、ユーザは、ソフトウェア開発プラットフォームでプログラミング言語に基づいて新たな演算子を開発し、ローカルにおいてすでに有した人工知能学習ライブラリと組み合わせて、新たなオフライン実行ファイルを取得できる。例えば、ｐｒｏｐｏｓａｌ演算子を例とする。Ｆａｓｔｅｒ−Ｒ−ＣｎｎにおけるＰｒｏｐｏｓａｌ演算子をＰｌｕｇｉｎＯｐ演算子に置き換え、専用なプログラミング言語で作られたｐｒｏｐｐｏｓａｌ＿ｋｅｒｎｅｌ．ｍｌｕ演算子を呼び出し、Ｃａｍｂｒｉｃｏｎ−ＣａｆｆｅフレームワークにおけるＰｒｏｐｏｓａｌ演算子はＰｌｕｇｉｎＯｐにより専用なプログラミング言語で実現されたＰｒｏｐｏｓａｌＫｅｒｎｅｌに置き換えられて、専用なプログラミング言語を既存の人工知能学習ライブラリとリンクし、人工知能学習ライブラリにおける各機能とオンライン、オフライン、レイヤーバイレイヤー、フュージョンなどの動作モードをサポートする。
【００９５】
第１の方式と第２の方式とから、フレームワークの内に多数の層と演算子とがサポートされ、一般的なモデルはすべてクラウドのサーバーボードで実行できる。しかしながら、アルゴリズムの更新は頻繁であるため、個人または組織は、カスタムな演算子とアルゴリズムとを蓄積する場合もあり、一つは、カスタムアルゴリズムを公開したくないことか、二つは、基礎となるライブラリにより直接に実際のアプリケーションへのサポート効率は要件を満たさないことであり、よって、専用なプログラミング言語を提供して、開発者が自主的なアルゴリズムを開発することを支援し、従来の開発モードにおいて柔軟性が欠如という問題点を解決する。
【００９６】
第３の方式では、ユーザは、ソフトウェア開発プラットフォームで現在のローカル人工知能学習ライブラリのバージョンの１つを選択し、それに対応する人工知能ランタイムライブラリを照合し、現在のローカル人工知能学習ライブラリが要望を満たさない場合、ソフトウェア開発プラットフォームに介してリクエストを送信し、ローカル人工知能学習ライブラリのバージョンをアップグレードする目的を達成する。ソフトウェア開発プラットフォームのオペレーターは、リクエストに応じてソフトウェア開発プラットフォームに対応する新バージョンの人工知能学習ライブラリおよび対応する工知能ランタイムライブラリを提供し、ユーザは、ソフトウェア開発プラットフォームで最新バージョンの人工知能学習ライブラリおよび対応する工知能ランタイムライブラリを選択し、最新バージョンの人工知能学習ライブラリに基づいてデバッグされたバイナリ命令を取得する。
【００９７】
第４の方式では、ユーザは人工知能アルゴリズムモデルを調整して、人工知能学習タスクを最適化する目的を達成できる。
【００９８】
実際の運用では、上記の４つの人工知能学習タスクを最適化する方式の少なくとも１つが使用し、人工知能学習タスクを最適化するという目標を達成する。人工知能アルゴリズムモデルを調整するかどうかに関わらず、人工知能学習ライブラリの最適化および／または端末側人工知能プロセッサのデバイス情報に対する調整により、どちらも人工知能学習タスクを調整する目的を達成でき、端末側人工知能プロセッサと人工知能アルゴリズムモデル間の適応を実現する。
【００９９】
図５に示す技術案に提供されたソフトウェア開発プラットフォームで、顧客は、当該ソフトウェア開発プラットフォームでアルゴリズムと人工知能プロセッサとの間の機能、パフォーマンス、および精度のデバッグを完成し、デバッグの完成後に生成されたオフライン実行ファイルは、互換性のあるアーキテクチャ上の多種な端末側ＳｏＣチップで使用でき、上記の利点は、顧客がハードウェアエンティティを取得する必要がなく、アルゴリズムと人工知能プロセッサとの間の機能、パフォーマンス、および精度を事前にデバッグできることであり、これにより、製品開発サイクルが大幅に短縮される。さらに、各端末側ＳｏＣチップ用に一連の開発環境を個別に開発または適応させる必要はない。
【０１００】
図７に示すように、それは本願によって提供されたデータ処理方法の第２のフローチャートである。前記方法は、クラウド側人工知能プロセッサに適用する。それは以下を含む。
【０１０１】
ステップ７０１）：人工知能学習タスクを受信する。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
【０１０２】
ステップ７０２）：前記人工知能学習タスクを実行して、実行結果を生成する。
【０１０３】
本ステップでは、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かを含む。
【０１０４】
強調すべきなのは、図５に示された関連する技術案はすべて、図７に示された技術案に適用可能であるが、ここで説明は繰り返さない。
【０１０５】
クラウド側デバイス１０１に対しては、一つのアプリケーションシナリオは、クラウド側人工知能プロセッサの集合は、端末側人工知能プロセッサのすべてのバージョンのハードウェアアーキテクチャ情報が可能な限りカバーすることが明確されよう。例えば、モデルはハードウェアアーキテクチャ情報のバージョンに対応し、端末側人工知能プロセッサのモデルはＡ、Ｂ、およびＣである。クラウド側人工知能プロセッサの集合には、モデルＡの人工知能プロセッサ、モデルＢの人工知能プロセッサ、およびモデルＣの人工知能プロセッサのいずれも含まれる。もう一つのアプリケーションシナリオは、クラウド側人工知能プロセッサの集合の内に、すべての人工知能プロセッサは、高性能バージョンのハードウェアアーキテクチャ情報を有す。例えば、異なるアプリケーションシナリオと実際のニーズに応じて、人工知能プロセッサの高性能バージョンの一部の機能を切り取り、低性能バージョンの人工知能プロセッサまたは中性能バージョンの人工知能プロセッサに変換してさまざまな顧客の要望を満足する。この状況では、本技術案におけるソフトウェア開発プラットフォーム１０２はバイナリ命令を生成する際は端末側人工知能プロセッサのデバイス情報に基づいており、かつ、ドライバプログラムによりスクリーニングされたクラウド側人工知能プロセッサによってサポートされた異なる動作環境パラメータを変更することにより、高性能バージョンの人工知能プロセッサの内に一部の機能の一部が無効され、実現された機能のみが対応する端末側人工知能プロセッサの機能と適応する。したがって、高性能バージョンの人工知能プロセッサの動作環境パラメータの値の範囲には、端末側人工知能プロセッサでサポートされているすべての動作環境パラメータが含まれる。例えば、クラウド側人工知能プロセッサのオンチップメモリサイズは１００Ｍであり、端末側人工知能プロセッサのオンチップメモリサイズはある１００Ｍより小さい値でもよい。
【０１０６】
さらに、時分割多重方式を使用して、仮想マシン技術により、ユーザがクラウド側デバイス１０１の人工知能プロセッサのリソースを使用する時間帯に従って、クラウド側デバイス１０１の人工知能プロセッサを合理的に割り当て、リソースを異なる時間帯の人工知能学習タスクに割り当て、展開する必要があるクラウド側人工知能プロセッサの開発環境の数を減らしできる。
【０１０７】
さらに、クラウド側デバイス１０１の人工知能プロセッサの集合に、必ずしもチップエンティティである必要はなく、ＦＰＧＡであってもよい。現代的なＩＣ設計に検証された技術主流を参照しながら、ハードウェア記述言語（ＶｅｒｉｌｏｇまたはＶＨＤＬ）により完成された回路設計は、簡単な統合およびレイアウトに介して速やかにＦＰＧＡに書き込むことができる。本技術案として、クラウド側人工知能プロセッサに適応したチップエンティティがない場合は、ＦＰＧＡを使用してユーザにサービスを提供できる。端末側人工知能プロセッサのデバイス情報に従って要求が適合したＦＰＧＡをスクリーニングして、当該ＦＰＧＡは端末側人工知能プロセッサのハードウェアアーキテクチャ情報に対応するイメージファイルを有する。適応したＦＰＧＡが存在しない場合に、ソフトウェア開発プラットフォーム１０２は、端末側人工知能プロセッサのハードウェアアーキテクチャ情報に対応するイメージファイルをアイドルＦＰＧＡに書き込み、当該ＦＰＧＡをソフトウェア開発プラットフォームから送信された人工知能学習タスクを実行させる。
【０１０８】
クラウド側人工知能プロセッサに対しては、より高い粒度のリソース構成を提供できる。例えば、ユーザＡは、ソフトウェア開発プラットフォーム１０２でＭ個のコアに基づいて構成された端末側人工知能プロセッサにより人工知能学習タスクを生成し、適応されたクラウド側人工知能プロセッサは総数はＮ個のコアを有し、かつＮ個のコアの内にＰ個のコアは既にユーザＢによって起動された人工知能学習タスクで使用される。Ｍ＋Ｐ＜＝Ｎが満たされ、かつユーザＡに対応する端末側人工知能プロセッサのデバイス情報とユーザＢに対応する端末側人工知能プロセッサのデバイス情報が同じでなければならない場合、ソフトウェア開発プラットフォーム１０２における人工知能ランタイムライブラリは、異なるユーザによって起動された人工知能学習タスクを異なるコアに割り当て、各コアごとに異なる人工知能学習タスクを実行することにより、クラウド側人工知能プロセッサのリソースをより高い粒度な割り当てを実現する。
【０１０９】
また、クラウド側人工知能プロセッサに対して、従来の非再構成可能なアーキテクチャの人工知能プロセッサであってもいし、再構成可能なアーキテクチャの人工知能プロセッサであってもよい。再構成可能アーキテクチャの人工知能プロセッサに対しては  、ドライバーにおいてデバイス情報を使用して再構成可能チップ内の環境動作パラメータを調整し、ソフトウェア開発プラットフォーム１０２から送信された人工知能学習タスクに従って再構成可能チップの内部の対応する機能モジュールを呼び出す。つまり、実際の運用における差異に従って、再構成可能チップの内部の機能モジュールを調整し、再構成されたチップは端末側人工知能プロセッサを置き換える。
【０１１０】
上記のクラウド人工知能プロセッサの説明に基づいて、本技術案として、ソフトウェア開発プラットフォーム１０２は一定期間内の各時間帯で異なるハードウェアアーキテクチャ情報のクラウド側人工知能プロセッサを使用するユーザ数を統計し、ユーザの要望を満たす最小値Ｖを予想し、当該数字Ｖは配置されたクラウド側人工知能プロセッサの数の最小値である。これに基づいて、少数のＷ個人工知能プロセッサを耐障害性やユーザの急激な増加の場合を防ぐために冗長として追加し、よって（Ｖ＋Ｗ）はクラウド側デバイス１０１に配置された必要な人工知能プロセッサの数である。同時に、ソフトウェア開発プラットフォーム１０２は、ユーザ量の変化を定期的に統計し、クラウド側デバイス１０１に配置された人工知能プロセッサの数を変更してユーザのニーズを満たし、かつクラウド側費用を削減する。
【０１１１】
総括して、前記説明により、リアルタイムの配置方法を利用して、ソフトウェア開発プラットフォームから送信された人工知能学習タスクに従ってクラウド側デバイス１０１を動的に調整し、ユーザが気付けないままに時分割多重方式を利用することによりユーザはクラウド側デバイス１０１の人工知能プロセッサリソースを使用する時間帯に従って、異なる開発環境を配置することにより、同じクラウド側人工知能プロセッサリソースを異なる時間帯の人工知能学習タスクに割り当て、クラウド側人工知能プロセッサの開発環境の数を減らすことができる。
【０１１２】
図８に示すように、それは本願によって提供されたデータ処理方法の第３のフローチャートである。前記方法は、端末側人工知能プロセッサに適用する。それは以下を含む。
【０１１３】
ステップ８０１）：オフライン実行ファイルを読み込む。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って決定される。
【０１１４】
強調すべきなのは、図５、図７に示された関連する技術案はすべて、図８に示された技術案に適用可能であるが、ここで説明は繰り返さない。
【０１１５】
端末側人工知能プロセッサに対して生成された人工知能学習タスクは、ソフトウェア開発プラットフォームでクラウド側人工知能プロセッサからフィードバックされた実行結果に従って人工知能学習タスクに対して最適化およびデバッグし、実行結果は期待された要件を満たした後、デバッグされた人工知能学習タスクのバイナリ命令は固定化処理によりオフライン実行ファイルに変更され、前のデバッグおよびパフォーマンス成果の固定化を実現する。その後、オフラインのアプリケーションを作成する必要があり、プログラミングフレームワークから切り離して実際のアプリケーションシナリオにおいて精度が正常であることを保証してから、端末側デバイス１０３にクロスコンパイルして実際に配置できる。
【０１１６】
図９に示すように、それは本願によって提供されたデータ処理の第４のフローチャートである。前記システムは、汎用プロセッサとクラウド側人工知能プロセッサとを含む。それは以下を含む。
【０１１７】
ステップａ：前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行する。
【０１１８】
ステップｂ：前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成する。
【０１１９】
ステップｃ：前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【０１２０】
強調すべきなのは、図５、図７に示された関連する技術案はすべて、図９に示された技術案に適用可能であるが、ここで説明は繰り返さない。
【０１２１】
図１０に示すように、一つのデータ処理装置の機能ブロック図である。前記装置は、メモリおよび汎用プロセッサを備え、前記メモリは、前記汎用プロセッサで実行できるコンピュータプログラムを格納し、前記汎用プロセッサは前記コンピュータプログラムを実行する際に実現されたデータ処理フローは以下を含む。
【０１２２】
端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
【０１２３】
前記人工知能学習タスクを、クラウド側人工知能プロセッサに送信して実行する。
【０１２４】
前記人工知能学習タスクに対応する実行結果を受信する。
【０１２５】
前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【０１２６】
任意選択で、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
任意選択で、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
任意選択で、前記汎用プロセッサがコンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
前記端末側人工知能プロセッサのデバイス情報を受信する。
任意選択で、前記汎用プロセッサがコンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを適応する。
任意選択で、前記汎用プロセッサが前記実行結果に従って前記オフライン実行ファイルを決定する際に、前記コンピュータプログラムを実行する際にデータ処理フローを実現することは、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
任意選択で、前記汎用プロセッサが前記実行結果に従って前記オフライン実行ファイルを決定する際に、前記コンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
任意選択で、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
任意選択で、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、さらに以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
任意選択で、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、さらに以下を含む。
人工知能アルゴリズムモデルを調整する。
任意選択で、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
【０１２７】
そのメモリと汎用プロセッサは、具体的な機能を実現し、本明細書における前述の実施形態と比較して説明することができ、かつ前述実施形態の技術的効果を達成することができ、ここで説明は繰り返さない。
【０１２８】
本実施形態では、前記メモリは、情報を格納するための物理装置を含んでもよいし、通常は、情報をデジタル化してから、電気的、磁気的または光学的方法を利用する媒体に格納する。実施形態に係るメモリは、ＲＡＭ、ＲＯＭなどの電気エネルギー方式を使用して情報を保存するデバイスと、ハードディスク、フロッピーディスク、磁気テープ、磁気コアメモリ、磁気バブルメモリ、ＵＳＢフラッシュドライブなどの磁気エネルギー方式を使用して情報を保存するデバイスと、ＣＤやＤＶＤなどの光学方式を使用して情報を保存するデバイスとをさらに含んでもよい。無論、量子メモリ、グラフェンメモリなどの他の方式のメモリもある。
【０１２９】
図１１に示すように、一つの人工知能処理プロセッサの第１の機能ブロック図である。含まれるものは：
受信モジュール１１０１は、人工知能学習タスクを受信するために用いられる。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
実行モジュール１１０２は、前記人工知能学習タスクを実行して、実行結果を生成するために用いられる。
【０１３０】
任意選択で、前記実行モジュールにより前記実行結果は、前記人工知能学習タスクの前記クラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
任意選択で、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
任意選択で、前記人工知能プロセッサは、再構成可能なアーキテクチャの人工知能プロセッサである。
【０１３１】
図１２に示すように、一つの人工知能処理プロセッサの第２の機能ブロック図である。含まれるものは：
取得モジュール１２０１は、オフライン実行ファイルを取得するために用いられる。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って決定される。
【０１３２】
任意選択で、さらに以下を含む。
送信モジュール、リクエスト情報を送信するために用いられ、ここで、前記リクエスト情報は前記端末側人工知能プロセッサのデバイス情報を含む。
任意選択で、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
任意選択で、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
【０１３３】
図１３に示すように、データ処理システムである。汎用プロセッサ１３１０とクラウド側人工知能プロセッサ１３２０とを含む。本実施例では、汎用プロセッサ１３１０およびクラウド側人工知能プロセッサ１３２０について具体的な実現は、前述の説明を参照すると理解されよう、ここで説明は繰り返さない。
【０１３４】
本実施例では、本願の実施例はさらに読み取り可能な記憶媒体を提供し、それはコンピュータプログラムを格納し、コンピュータプログラムを実行するフローは図５、図７、図８、および図９に示されたデータ処理方法を体現する。
【０１３５】
上記からわかるように、本願の実施例はデータ処理方法および関連製品を提供し、端末側人工知能プロセッサがテープアウトされているか否かに関係なく、本技術案は、人工知能アルゴリズムモデルと人工知能プロセッサとの間の適応デバッグ作業を事前に実現できる。
【０１３６】
純粋なコンピューター読み取り可能なプログラムコードによりクライアントとサーバーに実現することに加えて、本技術案におけるステップをクライアントとサーバーで論理ゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラー、および組み込みマイクロコントローラーなどの形で完全に実現できることも、当業者には知られている。したがって、そのようなクライアントとサーバーはハードウェアコンポーネントと見なすことができ、そこに含まれるさまざまな機能を実現する装置もハードウェアコンポーネント内の構造と見なすことができる。また、さまざまな機能を実現するためのデバイスさえを、方法を実現するためのソフトウェアモジュールと見なしてもよいか、ハードウェアコンポーネント内の構造と見なしてもよい。
【０１３７】
上記の実施形態の説明から、本出願を、ソフトウェアに加えて必要な汎用ハードウェアプラットフォームによって実施できることは、当業者には明らかであろう。そのような理解に基づいて、本質的に本出願の技術案は、または関連技術に寄与する技術案の一部は、ＲＯＭ／ＲＡＭ、磁気ディスク、コンパクトディスクなどの記憶媒体に格納されるソフトウェア製品の形で具現化され得る。本開示の各実施形態またはその一部において説明される前記方法をコンピュータデバイス（パーソナルコンピュータ、サーバー、またはネットワークデバイスなどであってもよい）に実行させるための命令を含む。
【０１３８】
本明細書における各実施形態は漸進的に説明されており、各実施形態間の同一または類似の部分は相互に参照されでき、各実施形態は他の実施形態との違いに焦点を当てる。特に、クライアントとサーバーに対して実施形態については、前述方法の実施形態についての紹介を参照できる。
【０１３９】
本願は、プログラムモジュールなどのコンピューターによって実行されるコンピューター実行可能命令は一般的なコンテキストで説明できる。一般に、プログラムモジュールは、特定のタスクを実行したり、特定の抽象データタイプを実現したりするルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本出願は、分散コンピューティング環境で実施することもでき、これらの分散コンピューティング環境では、通信ネットワークを介して接続されたリモート処理デバイスによってタスクを実行する。分散コンピューティング環境では、プログラムモジュールは、ストレージデバイスを含むローカルコンピューター記憶媒体に配置してもよいか、リモートのコンピューター記憶媒体に配置してもよい。
【０１４０】
実施形態で本願を説明したものの、本願精神から逸脱せずにいろんな変形及び変化があり、添付された請求範囲はそれらの変形及び変化は本願精神から逸脱しないことを、当業者には明らかであろう。
【０１４１】
さらに、上記の内容は次の用語に従ってよりよく理解できる。
【０１４２】
Ａ１．データ処理方法として、前記方法はデータ処理システムに用いられ、前記データシステムは、汎用プロセッサとクラウド側人工知能プロセッサとを含む。それは以下を含む。
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成しつつ、前記バイナリ命令に従って人工知能学習タスクを生成する。前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行する。
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成する。
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
Ａ２．Ａ１に説明した方法によると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ａ３．Ａ２に説明した方法によると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
Ａ４．Ａ１に説明した方法によると、さらに以下を含む。
前記汎用プロセッサは、前記端末側人工知能プロセッサのデバイス情報を受信する。
Ａ５．Ａ４に説明した方法によると、さらに以下を含む。
前記汎用プロセッサは、デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
Ａ６．前記実行結果に従って前記オフライン実行ファイルを決定するＡ１に説明した前記方法は、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
Ａ７．前記実行結果に従って前記オフライン実行ファイルを決定するＡ１に説明した前記方法は、さらに以下を含む。
実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
Ａ８．Ａ７に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
Ａ９．Ａ７またはＡ８に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
Ａ１０．Ａ７−Ａ９のいずれか１項に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
Ａ１１．Ａ１−Ａ１０のいずれか１項に説明した方法には、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
Ａ１２．Ａ１に説明した方法によると、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
Ａ１３．Ａ１２に説明した方法によると、前記人工知能プロセッサのハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサハードウェアである。
【０１４３】
Ｂ１４．データ処理装置であって、メモリ、汎用プロセッサ、およびクラウド側人工知能プロセッサを備え、前記メモリは、前記汎用プロセッサおよび／またはクラウド側人工知能プロセッサで実行されるコンピュータプログラムを格納し、
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成しつつ、前記バイナリ命令に従って人工知能学習タスクを生成する。前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行するために用いられる。
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成するために用いられる。
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成されるためにさらに用いられる。
Ｂ１５．Ｂ１４に説明した装置によると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ｂ１６．Ｂ１５に説明した装置によると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
Ｂ１７．Ｂ１４に説明した装置によると、前記汎用プロセッサがさらに以下のため用いられる。
前記端末側人工知能プロセッサのデバイス情報を受信する。
Ｂ１８．Ｂ１７に説明した装置によると、前記汎用プロセッサがさらに以下のため用いられる。
デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
Ｂ１９．Ｂ１４に説明した装置によると、前記汎用プロセッサは前記実行結果に従って前記オフライン実行ファイルを決定し、さらに以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
Ｂ２０．Ｂ１４に説明した装置によると、前記汎用プロセッサは前記実行結果に従って前記オフライン実行ファイルを決定し、さらに以下を含む。
実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
Ｂ２１．Ｂ２０に説明した装置によると、前記人工知能学習タスクを最適化するステップは以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
Ｂ２２．Ｂ２０またはＢ２１に説明した装置によると、前記人工知能学習タスクを最適化するステップは以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
Ｂ２３．Ｂ２０−Ｂ２２のいずれか１項に説明した装置によると、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
Ｂ２４．Ｂ１４−Ｂ２３のいずれか１項に説明した装置によると、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
Ｂ２５．Ｂ１４に説明した装置によると、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
Ｂ２６．Ｂ２５に説明した装置によると、前記人工知能プロセッサのハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサハードウェアである。
【０１４４】
Ｃ１．データ処理方法として、前記方法は汎用プロセッサに用いられ、それは以下を含む。
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
前記汎用プロセッサは、前記人工知能学習タスクを、クラウド側人工知能プロセッサに送信して実行する。
前記汎用プロセッサは、前記人工知能学習タスクに対応する実行結果を受信する。
前記汎用プロセッサは、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
Ｃ２．Ｃ１に説明した方法によると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ｃ３．Ｃ２に説明した方法によると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
Ｃ４．Ｃ１に説明した方法によると、さらに以下を含む。
前記汎用プロセッサは、前記端末側人工知能プロセッサのデバイス情報を受信する。
Ｃ５．Ｃ４に説明した方法によると、さらに以下を含む。
前記汎用プロセッサは、デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
Ｃ６．前記実行結果に従って前記オフライン実行ファイルを決定するＣ１に説明した前記方法は、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
Ｃ７．前記実行結果に従って前記オフライン実行ファイルを決定するＣ１に説明した前記方法は、さらに以下を含む。
実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
Ｃ８．Ｃ７に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
Ｃ９．Ｃ７またはＣ８に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
Ｃ１０．Ｃ７−Ｃ９のいずれか１項に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
Ｃ１１．Ｃ１−Ｃ１０のいずれか１項に説明した方法によると、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
【０１４５】
Ｄ１２．データ処理装置であって、前記装置は、メモリおよび汎用プロセッサを備え、前記メモリは、前記汎用プロセッサで実行できるコンピュータプログラムを格納し、前記汎用プロセッサは前記コンピュータプログラムを実行する際に実現されるデータ処理フローは以下を含む。
端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
前記人工知能学習タスクを、クラウド側人工知能プロセッサに送信して実行する。
前記人工知能学習タスクに対応する実行結果を受信する。
前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
Ｄ１３．Ｄ１２に説明した装置によると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ｄ１４．Ｄ１３に説明した装置によると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
Ｄ１５．Ｄ１２に説明した装置によると、前記汎用プロセッサがコンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
前記端末側人工知能プロセッサのデバイス情報を受信する。
Ｄ１６．Ｄ１２またはＤ１５に説明した装置によると、前記汎用プロセッサがコンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
Ｄ１７．Ｄ１２に説明した装置によると、前記汎用プロセッサが前記実行結果に従って前記オフライン実行ファイルを決定する際に、前記コンピュータプログラムを実行する際にデータ処理フローを実現することは、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
Ｄ１８．Ｄ１２に説明した装置によると、前記汎用プロセッサが前記実行結果に従って前記オフライン実行ファイルを決定する際に、前記コンピュータプログラムを実行する際にデータ処理フローを実現することは、以下をさらに含む。
実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
Ｄ１９．Ｄ１８に説明した装置によると、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
Ｄ２０．Ｄ１８またはＤ１９に説明した装置によると、前記人工知能学習タスクを汎用プロセッサ最適化するステップは以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
Ｄ２１．Ｄ１８−Ｄ２０のいずれか１項に説明した装置によると、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
Ｄ２２．Ｄ１２−Ｄ２１のいずれか１項に説明した装置によると、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
【０１４６】
Ｅ２３．データ処理方法として、前記方法はクラウド側人工知能プロセッサ用にいられ、それは以下を含む。
人工知能学習タスクを受信する。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
前記人工知能学習タスクを実行して、実行結果を生成する。
Ｅ２４．Ｅ２３に説明した方法によると、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
Ｅ２５．Ｅ２３に説明した方法によると、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
Ｅ２６．Ｅ２５に説明した方法によると、前記クラウド側人工知能プロセッサのハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサハードウェアである。
【０１４７】
Ｆ２７人工知能プロセッサであって、それは以下を含む。
受信モジュールは、人工知能学習タスクを受信するために用いられる。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
実行モジュールは、前記人工知能学習タスクを実行して、実行結果を生成するために用いられる。
Ｆ２８．Ｆ２７に説明した人工知能プロセッサによると、前記実行モジュールにより生成された実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
Ｆ２９．Ｆ２７に説明した人工知能プロセッサによると、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
Ｆ３０．Ｆ２９に説明した人工知能プロセッサによると、前記クラウド側人工知能プロセッサのハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサハードウェアである。
【０１４８】
Ｇ３１．データ処理方法として、前記方法は端末側人工知能プロセッサ用にいられ、それは以下を含む。
オフライン実行ファイルを取得する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
Ｇ３２．Ｇ３１に説明した方法によると、前記方法はさらに以下を含む。
リクエスト情報を送信する。ここで、前記リクエスト情報は前記端末側人工知能プロセッサのデバイス情報を含む。
Ｇ３３．Ｇ３１に説明した方法によると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ｇ３４．Ｇ３３に説明した方法によると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
【０１４９】
Ｈ３５人工知能プロセッサであって、それは以下を含む。
取得モジュールは、オフライン実行ファイルを取得するために用いられる。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
Ｈ３６．Ｈ３５に説明した人工知能プロセッサによると、それは以下をさらに含む。
送信モジュール、リクエスト情報を送信するために用いられ、ここで、前記リクエスト情報は前記端末側人工知能プロセッサのデバイス情報を含む。
Ｈ３７．Ｈ３６に説明した人工知能プロセッサによると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ｈ３８．Ｈ３７に説明した人工知能プロセッサによると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
【図１】
2021521500.tif 000003
【図２】
2021521500.tif 000004
【図３】
2021521500.tif 000005
【図４】
2021521500.tif 000006
【図５】
2021521500.tif 000007
【図６】
2021521500.tif 000008
【図７】
2021521500.tif 000009
【図８】
2021521500.tif 000010
【図９】
2021521500.tif 000011
【図１０】
2021521500.tif 000012
【図１１】
2021521500.tif 000013
【図１２】
2021521500.tif 000014
【図１３】
2021521500.tif 000015
【手続補正書】
【提出日】令和1年12月6日(2019.12.6)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本願は２０１９年４月１８日に出願され、出願番号は２０１９１０３１５９６２．９であり、発明名称は「データ処理方法および関連製品」の優先権を主張する。
【０００２】
本願は２０１９年５月２３日に出願され、出願番号は２０１９１０４３６８０１．５であり、発明名称は「データ処理方法および関連製品」の優先権を主張する。
【０００３】
［技術分野］
本願は、人工知能プロセッサ技術の分野に係り、特に、データ処理方法および関連製品に係る。
【背景技術】
【０００４】
従来技術では、アルゴリズムアプリケーション開発者は、人工知能プロセッサが成功にテープアウトされた後だけに、人工知能プロセッサ（ハードウェアエンティティ）の対応するバージョンで開発およびテストする。
【０００５】
上記の説明から、従来技術では、開発された人工知能アルゴリズムは、人工知能プロセッサの対応するバージョンで実行された機能結果および性能結果は、人工知能プロセッサがテープアウトされた後だけにすることがわかる。それにより、人工知能プロセッサがテープアウトされていない際に、端末側から人工知能アルゴリズムモデルと人工知能プロセッサとの間のデバッグ作業を実現する方法は、解決すべき差し迫った需要である。
【発明の概要】
【０００６】
本願の実施例はデータ処理方法および関連製品を提供し、端末側人工知能プロセッサがテープアウトされているか否かに関係なく、本技術案は、人工知能アルゴリズムモデルと人工知能プロセッサとの間の適応デバッグ作業を事前に実現できる。
【０００７】
上記の目的を実現するために、本願はデータ処理方法を提案し、前記方法はデータ処理システムに用いられ、前記データ処理システムは、汎用プロセッサとクラウド側人工知能プロセッサとを含む。それは以下を含む。
【０００８】
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行する。
【０００９】
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成する。
【００１０】
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定し、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００１１】
上記の目的を実現するために、本願はデータ処理装置を提案し、それは、メモリ、汎用プロセッサ、およびクラウド側人工知能プロセッサを備え、前記メモリは、前記汎用プロセッサおよび／またはクラウド側人工知能プロセッサで実行されるコンピュータプログラムを格納する。
【００１２】
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行するために用いられる。
【００１３】
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成するために用いられる。
【００１４】
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成されるためにさらに用いられる。
【００１５】
上記の目的を実現するために、本願はデータ処理方法を提案し、前記方法は汎用プロセッサに用いられ、それは以下を含む。
【００１６】
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
【００１７】
前記汎用プロセッサは、前記人工知能学習タスクを、クラウド側人工知能プロセッサに送信して実行する。
【００１８】
前記汎用プロセッサは、前記人工知能学習タスクに対応する実行結果を受信する。
【００１９】
前記汎用プロセッサは、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００２０】
上記の目的を実現するために、本願はデータ処理装置を提案し、それは、メモリおよび汎用プロセッサを備え、前記メモリは、前記汎用プロセッサで実行できるコンピュータプログラムを格納し、前記汎用プロセッサは前記コンピュータプログラムを実行する際に実現されているデータ処理フローは以下を含む。
【００２１】
端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
【００２２】
前記人工知能学習タスクを、クラウド側人工知能プロセッサに送信して実行する。
【００２３】
前記人工知能学習タスクに対応する実行結果を受信する。
【００２４】
前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００２５】
上記の目的を実現するために、本願はデータ処理方法を提案し、前記方法はクラウド側人工知能プロセッサ用にいられ、それは以下を含む。
【００２６】
人工知能学習タスクを受信する。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
【００２７】
前記人工知能学習タスクを実行して、実行結果を生成する。
【００２８】
上記の目的を実現するために、本願は人工知能プロセッサを提案し、それは以下を含む。
【００２９】
受信モジュールは、人工知能学習タスクを受信するために用いられる。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
【００３０】
実行モジュールは、前記人工知能学習タスクを実行して、実行結果を生成するために用いられる。
【００３１】
上記の目的を実現するために、本願はデータ処理方法を提案し、前記方法は端末側人工知能プロセッサ用にいられ、それは以下を含む。
【００３２】
オフライン実行ファイルを取得する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００３３】
上記の目的を実現するために、本願は人工知能プロセッサを提案し、それは以下を含む。
【００３４】
取得モジュールは、オフライン実行ファイルを取得するために用いられる。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００３５】
本技術案について技術的効果は、技術案に提供されたソフトウェア開発プラットフォームで、顧客は、当該ソフトウェア開発プラットフォームでアルゴリズムと人工知能プロセッサとの間の機能、パフォーマンス、および精度のデバッグを完成し、デバッグの完成後に生成されたオフライン実行ファイルは、互換性のあるアーキテクチャ上の多種なＳｏＣチップで使用でき、上記の利点は、顧客がハードウェアエンティティを取得することなく、アルゴリズムと人工知能プロセッサとの間の機能、パフォーマンス、および精度を事前にデバッグできることであり、これにより、製品開発サイクルが大幅に短縮される。さらに、各ＳｏＣチップ用に一連の開発環境を個別に開発または適応させる必要はない。
【図面の簡単な説明】
【００３６】
本開示の開示形態の技術案をより明確に例示するために、実施形態の説明に使用された図面を以下に簡単に説明する。以下の説明における図面は、本開示のいくつかの実施形態を明らかにするに過ぎず、本開示に対する限定にならない。
【図１】図１は本技術案の概略構造図である。
【図２】図２は人工知能プロセッサのソフトウェアスタックの概略構造図である。
【図３】図３は技術案について適用シナリオの第１の概略図である。
【図４】図４は技術案について適用シナリオの第２の概略図である。
【図５】図５は本願によって提案されたデータ処理方法の第１のフローチャートである。
【図６】図６は人工知能学習ライブラリによってサポートされた各種類の基本的な演算子の概略図。
【図７】図７は本願によって提案されたデータ処理方法の第２のフローチャートである。
【図８】図８は本願によって提案されたデータ処理方法の第３のフローチャートである。
【図９】図９は本願によって提案されたデータ処理方法の第４のフローチャートである。
【図１０】図１０は本願によって提案されたデータ処理装置の機能ブロック図である。
【図１１】図１１は本願によって提案されたデータ人工知能プロセッサの第１の機能ブロック図である。
【図１２】図１２は本願によって提案されたデータ人工知能プロセッサの第２の機能ブロック図である。
【図１３】図１３は本願によって提案されたデータ処理システムの概略構造図である。
【発明を実施するための形態】
【００３７】
以下、添付図面を参照しながら、本開示の実施例について明確に説明する。本開示の例示的な実施例ならびにそれらの様々な特徴および有利な詳細は、添付の図面に示された非限定的で例示的な実施例を参照してより全面的に説明される。図に示されている特徴は必ずしも縮尺通りに描かれていないことに注意されよう。本開示は、本開示の例示的な実施例を不明確にしないように、既知の材料、構成要素、およびプロセス技術の説明を省略する。これらの例は、本開示の例示的な実施例の実現について理解を容易にし、さらに当業者が例示的な実施形態を実施できるようにするためであることが過ぎない。したがって、これらの例は、本開示の実施例の範囲を限定するものと解釈されるべきではない。
【００３８】
他に特に定義されない限り、本開示で使用された技術用語または科学用語は、本開示の技術分野に関係する当業者によって通常の意味で理解されるものとする。本開示で使用された「第１」、「第２」、および同様の用語は、順序、量、または重要性を示すものではなく、異なる構成要素を区別するために使用されるに過ぎない。また、本開示の各実施例において、同じまたは類似の参照符号は、同じまたは類似の構成要素を示す。
【００３９】
技術案のより良い理解を促進するために、まず本出願の実施形態に含まれる技術用語を以下に説明する：
【００４０】
テープアウト：集積回路設計の分野では、テープアウトとは試作品、すなわち、プリセット機能を満たす集積回路を設計した後、最初にテスト用に数個または数十個の製品を生産することを指し、テスト要求を満たす場合は、テスト要求を満たした集積回路の構造によって大量生産される。
【００４１】
人工知能プロセッサのソフトウェアスタック：図２を参照しながら、ソフトウェアスタック構造２０は、人工知能アプリケーション２００、人工知能フレームワーク２０２、人工知能学習ライブラリ２０４、人工知能ランタイムライブラリ２０６、およびドライバー２０８を含む。次に、それに対して詳細に説明する。
【００４２】
人工知能アプリケーション２００は、異なるアプリケーションシナリオに対応し、対応する人工知能アルゴリズムモデルを提供する。当該アルゴリズムモデルは、人工知能フレームワーク２０２のプログラミングインタフェースによって直接解析されでき、１つの可能な実現方法では、人工知能学習ライブラリ２０４は、人工知能アルゴリズムモデルをバイナリ命令に変換し、人工知能ランタイムライブラリ２０６を呼び出してバイナリ命令を人工知能学習タスクに変換し、当該人工知能学習タスクをタスクキューに差し入れてドライバー２０８によってスケジュールし、それにより基礎となる人工知能プロセッサによって実行する。もう１つの可能な実現方法では、直接に人工知能ランタイムライブラリ２０６を呼び出すことができ、前に静的に生成したオフラインファイルを実行し、中間ソフトウェアアーキテクチャのコストを削減し、運用効率を向上させる。
【００４３】
バイナリ命令：基礎となる人工知能プロセッサが認識できる情報である。
【００４４】
人工知能プロセッサ：専用プロセッサとも呼ばれ、特定のアプリケーションまたは分野に対するプロセッサである。例えば、グラフィックス  プロセッシング  ユニット（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略称ＧＰＵ）は、ディスプレイコア、ビジュアルプロセッサ、ディスプレイチップとも呼ばれ、パーソナルコンピューター、ワークステーション  、ゲームコンソール、  およびあるモバイルデバイス  （  タブレットＰＣ  、  スマートフォンなど）で画像計算演算を実行するための専用プロセッサである。例えば、ニューラル  プロセッシング  ユニット（Ｎｅｕｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、略称ＧＰＵ）は、人工知能の分野での行列乗算に対して専用プロセッサであり、「データ駆動型並列コンピューティング」のアーキテクチャを採用しており、特にビデオ、および画像の大量のマルチメディアデータの処理に優れている。
【００４５】
再構成可能アーキテクチャ：人工知能プロセッサが再利用可能なハードウェアリソースを利用できる場合に、様々なアプリケーションの要求に応じて、特定のアプリケーション要求ごとにマッチングするアーキテクチャを提供するために柔軟に自身のアーキテクチャを変更するなら、この人工知能プロセッサは再構成可能コンピューティングシステムと呼ばれ、そのアーキテクチャは再構成可能アーキテクチャと呼ばれる。
【００４６】
専用プログラミング言語：特定のハードウェア開発に基づいた高水準のプログラミング言語である。例えば、Ｃｕｄａ  Ｃである。
【００４７】
以下は、添付の図面を参照しながら、本開示の実施例によって提供されたデータ処理方法および関連製品の具体実施形態について詳細に説明する。
【００４８】
従来技術では、アルゴリズムアプリケーション開発者は、対応するバージョンのハードウェアの実体だけで人工知能アルゴリズムモデルと人工知能プロセッサとの間の適応デバッグ作業を実行する。従来技術の実現案は、テープアウトされていないチップとアルゴリズムとの間のデバック作業を実現できず、故にアルゴリズムモデルとチップとの間の適応を完成するために専用な時間が必要であり、製品の発売の締め切りは延ばされ、時間の問題により市場を占有する機会を見逃しがちである。
【００４９】
これに基づいて、本願により提供した技術案において、テープアウトされているかどうかに関係なく、端末側人工知能プロセッサのデバイス情報に従ってクラウド側から適切な人工知能プロセッサを照合することにより、端末側人工知能プロセッサをシミュレートし、本技術案におけるソフトウェア開発プラットフォームは、クライアントが提供するアルゴリズムモデルに対して一連の処理を通じて対応する人工知能学習タスクを提供し、当該人工知能学習タスククラウド側の人工知能プロセッサで実行されて、実行結果を取得する。実行結果に応じて、ソフトウェア開発プラットフォームで人工知能学習タスクを調整し、本技術案については、人工知能アルゴリズムモデルを調整するかどうかに関わらず、人工知能学習ライブラリの最適化および／または端末側人工知能プロセッサのデバイス情報に対する調整により、どちらも人工知能学習タスクを調整する目的を達成でき、端末側人工知能プロセッサと人工知能アルゴリズムモデル間の適応を実現する。
【００５０】
図１に示すように、本技術案におけるシステムアーキテクチャ図であり、図１に示すように、当該システムアーキテクチャは、クラウド側デバイス１０１、ソフトウェア開発プラットフォーム１０２、および端末側デバイス１０３を含む。
【００５１】
具体的に実現では、ソフトウェア開発プラットフォーム１０２は、アプリケーション開発、パフォーマンスチューニング、機能デバッグなどための一連のツールキットを提供する。アプリケーション開発ツールには、人工知能学習ライブラリ、人工知能ランタイムライブラリ、コンパイラ、特定の分野向け（ビデオ分析など）のソフトウェア開発ツールが含まれる。機能デバッグツールは、プログラミングフレームワークや人工知能学習ライブラリなどのさまざまなレベルのデバッグ要求を満たすことができ、パフォーマンスチューニングツールはパフォーマンス分析ツール、システム監視ツール等を含む。コンパイラは、Ｃ  ＋＋言語の従来のコンパイラを含んでもよいし、また、Ｃ系言語に基づく機械学習コンパイラを含んでもよいし、また、他の高水準言語又は特別に設計されたドメイン専用のプログラミング言語（Ｄｏｍａｉｎ  Ｓｐｅｃｉｆｉｃ  Ｌａｎｇｕａｇｅ）機械学習コンパイラを含んでもよい。任意選択で、ソフトウェア開発プラットフォームは、クラウド側デバイス１０１におけるプロセッサで実行されてもよいし、またはローカル（ｈｏｓｔ）コンピュータデバイスのプロセッサ上で実行されてもよいし、当該コンピュータデバイスは、汎用プロセッサ（ＣＰＵなど）とディスプレイとを含み得るものであり、ここでは特に限定されない。さらに任意選択で、上述のソフトウェア開発プラットフォームは、ローカルコンピュータデバイスまたはクラウド側デバイスでクライアントの形態で実行されてもよいし、本願の実施例では限定されない。図３に示すように、当該図面は概略に技術案について第１の適用シナリオを示している。ユーザは、デスクトップコンピュータでソフトウェア開発プラットフォームにログインし、ソフトウェア開発プラットフォームでアルゴリズムモデルに対応する人工知能学習タスクを生成し、クラウド側人工知能プロセッサで人工知能学習タスクの実行結果に基づいて人工知能学習タスクを調整する。図４に示すように、当該図面は概略に技術案について第二の適用シナリオを示している。クラウド側デバイス１０１には、人工知能ソフトウェア開発クライアントが設えられる。具体的には、クラウド側デバイスは完全なコンピューターシステムであり、汎用プロセッサと少なくとも１つの人工知能プロセッサとを含んでもよい。例えば、人工知能プロセッサには８つのクラスター（ｃｌｕｓｔｅｒ）を含めることができ、各クラスターはごとに４つの人工知能プロセッサコアが含まれる。実際には、ソフトウェア開発プラットフォーム１０２は、データブロックなどのツールによって保存されたユーザ記録を維持し、当該ユーザ記録はユーザ個人情報（アカウント情報など）およびユーザが必要とするサービス情報を含む。サービス情報は、デバッグ要求と端末側の人工知能プロセッサのデバイス情報とを含むがそれに限定されない。当該デバッグ要求は、機能デバッグとパフォーマンスデバッグとを含むがそれに限定されない。デバイス情報は、ハードウェアアーキテクチャ情報と動作環境パラメータとを含む。動作環境パラメータは、端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプを含むがそれに限定されない。
【００５２】
具体的な実現では、クラウド側デバイス１０１は人工知能プロセッサを備えており、当該人工知能プロセッサはクラウド側人工知能プロセッサと呼ばれる。クラウド側人工知能プロセッサは、人工知能プロセッサチップ、フィールドプログラマブルゲートアレイ、およびシミュレータを含むがそれに限定されない。人工知能プロセッサチップは、再構成可能なチップまたは非再構成可能なチップであり得る。クラウド側デバイス１０１は、サーバーボードまたはサーバーボードクラスターであり得る。
【００５３】
具体的な実現では、端末側デバイス１０３は人工知能プロセッサを備えており、当該人工知能プロセッサは端末側人工知能プロセッサと呼ばれる。端末側デバイスは、タブレットコンピューターや携帯電話などの端末デバイスであり得る。端末側デバイスは、カメラなどのエッジデバイスでもよい。本願の実施例では、端末側デバイス１０３は、テープアウトされていない状態のデバイスでもよいし、テープアウトされたデバイスでもよいことは注意されよう。
【００５４】
本技術案の動作原理は、ソフトウェア開発プラットフォーム１０２で、ドライバーが端末側人工知能プロセッサのデバイス情報に従ってクラウド側デバイス１０３から端末側デバイス１０３と一致する人工知能プロセッサをスクリーニングすることである。スクリーニングされたクラウド側人工知能プロセッサのハードウェアアーキテクチャ情報は、対応する端末側人工知能プロセッサのハードウェアアーキテクチャ情報と互換性があり、かつクラウド側人工知能プロセッサの命令セットも、対応する端末側人工知能プロセッサの命令セットと互換性がある。ここで、対応する端末側人工知能プロセッサのハードウェアアーキテクチャ情報と互換性があるクラウド側人工知能プロセッサのハードウェアアーキテクチャ情報は、クラウド側人工知能プロセッサの計算能力は、端末側人工知能プロセッサの計算能力より大きいか等しいことを含んでもよい。
【００５５】
ソフトウェア開発プラットフォーム１０２で、端末側人工知能プロセッサのデバイス情報に従って人工知能学習ライブラリのコンパイルインターフェースに対応するソフトウェアパラメータを設定し、プログラミングフレームワークによって取得されたアルゴリズムモデルを組み合わせ、設定された人工知能学習ライブラリのコンパイルインターフェースを呼び出してコンパイルすることにより、対応する端末側人工知能プロセッサのバイナリ命令を取得する。当該バイナリ命令はランタイムライブラリによって処理され、人工知能学習タスクが生成される。人工知能学習タスクはタスクキューに入れられ、最終的にドライバーによってタスクキューの内の人工知能学習タスクをタスクスケジューリングして、クラウド側人工知能プロセッサによって実行される。
【００５６】
クラウド側人工知能プロセッサによって実行された人工知能学習タスクによれば、実行結果をソフトウェア開発プラットフォーム１０２にフィードバックする。任意選択で、ソフトウェア開発プラットフォーム１０２は、実行結果を表示することができる。実行結果に従って、ソフトウェア開発プラットフォーム１０２は、ユーザの操作命令を受け取り、ソフトウェア開発プラットフォーム１０２は、操作命令を実行する３つの方法のうちの少なくとも１つに従ってバイナリ命令を調整する。この３つの方法は、端末側人工知能プロセッサのハードウェアアーキテクチャ情報の調整、端末側人工知能プロセッサの動作環境パラメータの調整、および人工知能学習タスクの最適化に分かれる。調整されたバイナリ命令を人工知能学習タスクに変換してタスクキューに入れられ、ドライバーによってタスクキューの内の人工知能学習タスクをタスクスケジューリングして、クラウド側人工知能プロセッサによって実行される。クラウド側人工知能プロセッサからのフィードバックの結果は、期待のどおりまで実行する。
【００５７】
本技術案では、端末側人工知能プロセッサのデバイス情報は人工知能学習ライブラリのコンパイルインターフェイスのソフトウェアパラメータに対応し、当該ソフトウェアパラメータには、ＲＡＭサイズ、キャッシュサイズ、キャッシュでキャッシュするかどうかなどのより多くの詳細情報が含まれる。これらの情報は、バイナリ命令の生成時に割り当てられた操作ドメインに関連しているため、人工知能アルゴリズムモデルを変更しない場合に、端末側人工知能プロセッサのデバイス情報を変更することにより、バイナリ命令を調整して、人工知能学習タスクを調整できる。端末側人工知能プロセッサがテープアウトされたかどうかに関係なく、端末側人工知能プロセッサのデバイス情報に従ってクラウド側デバイス１０１から適応したクラウド側人工知能プロセッサは、端末側人工知能プロセッサをシミュレート、クラウド側人工知能プロセッサで対応する人工知能学習タスクを実行する。実行結果に従って、当該ソフトウェア開発プラットフォームでアルゴリズムモデルと人工知能プロセッサとの間の機能、パフォーマンス、および精度のデバッグを完成し、デバッグの完成後に生成されたオフライン実行ファイルは、互換性があるアーキテクチャ上の多種な端末側ＳｏＣチップで使用でき、それによる利点は、顧客がハードウェアエンティティを取得することなくて、アルゴリズムモデルと人工知能プロセッサとの間の機能、パフォーマンス、および精度を事前にデバッグできることであり、これにより、製品開発サイクルが大幅に短縮される。さらに、各端末側ＳｏＣチップ用に一連の開発環境を個別に開発または適応させる必要はない。
【００５８】
さらに、本技術案では、クラウド側人工知能プロセッサのデバイス情報に対応する現在の動作環境パラメータは、実際の動作環境パラメータと同じであってもよいし、実際の動作パラメータと異なっていてもよい。クラウド側人工知能プロセッサによる特定の人工知能学習タスクに対する実行結果に応じて、端末側人工知能プロセッサのデバイス情報が期待された条件を満たすか否かを判断する。端末側人工知能プロセッサのデバイス情報が期待された条件を満たさない場合には、端末側人工知能プロセッサのデバイス情報を、当該端末側人工知能プロセッサのデバイス情報が期待された条件を満たすまでさらに調整してもよい。したがって、本技術案として、端末側人工知能プロセッサのアーキテクチャが設計段階の際に、端末側のＳｏＣチップの設計仕様をもアプリケーションに基づいて評価できる。
【００５９】
上記の説明に基づいて、図５に示すように、本願によって提案されたデータ処理方法のフローチャートである。前記方法は、汎用プロセッサに適用され、図１のソフトウェア開発プラットフォームに対応する。上述のように、当該汎用プロセッサは、クラウド側デバイス１０１の汎用プロセッサまたはローカルコンピュータデバイスの汎用プロセッサであり得る。含まれるものは：
【００６０】
ステップ５０１）：前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
【００６１】
本技術案では、ソフトウェア開発プラットフォーム１０２には、複数のプログラミングフレームワークを統合し、例えば、グーグルテンソル人工学習システムＴｅｎｓｏｒＦｌｏｗ、ディープラーニングフレームワークＣａｆｆｅ、Ｃａｆｆｅ２、ＭＸＮｅｔなどである。Ｃａｆｆｅを例にとると、Ｃａｆｆｅには、Ｂｌｏｂ、Ｌａｙｅｒ、Ｎｅｔという３つのコアモジュールがある。Ｂｌｏｂｓはデータストレージ、データの相互作用と処理に使用され、Ｂｌｏｂｓにより、データメモリのインターフェイスを統一制定する。Ｌａｙｅｒｓは、ニューラルネットワークの核心であり、多くの層構造を定義し、それはＢｌｏｂを入力および出力として扱う。ＮｅｔｓはＬａｙｅｒｓの集合であり、これらの層構造は結合することによりネットワークマップを形成する。
【００６２】
本ステップとして、端末側人工知能プロセッサのデバイス情報に従って人工知能学習ライブラリのコンパイルインターフェースに対応するソフトウェアパラメータを設定し、プログラミングフレームワークによって取得されたアルゴリズムモデルを組み合わせ、設定された人工知能学習ライブラリのコンパイルインターフェースを呼び出してコンパイルすることにより、対応する端末側人工知能プロセッサのバイナリ命令を取得する。当該バイナリ命令はランタイムライブラリによって処理され、人工知能学習タスクを生成する。人工知能学習タスクはタスクキューに入れられ、最終的にドライバーによってタスクキューの内の人工知能学習タスクをタスクスケジューリングして、クラウド側人工知能プロセッサによって実行される。
【００６３】
実際の運用では、人工知能学習ライブラリは、人工知能プロセッサでさまざまな人工知能学習アルゴリズムを高速化することために用いられる。ここで、人工知能学習アルゴリズムは、深層学習アルゴリズムを含むがそれに限定されなく、例えば、畳み込みニューラルネットワークアルゴリズム、回帰型ニューラルネットワークアルゴリズムなどである。具体的には、人工知能学習ライブラリは主に次の機能を含む。
【００６４】
（１）各種類の基本的な演算子をサポートする。
具体的な実現では、基本的な演算子を組み合わせてさまざまな機械学習アルゴリズムを実現できるため、汎用性、柔軟性、およびスケーラビリティについて要望を満たす。
【００６５】
具体的には、ここに係る様々なタイプの基本的な演算子は、一般的なニューラルネットワーク演算子１、行列、ベクトル、スカラー演算子２、および回帰型ニューラルネットワーク演算子３を含み得る。図６に参照すると、本願の実施例によって提供された人工知能学習ライブラリがサポートする複数のタイプの基本的な演算子の概略図であり、図６に示すように人工知能学習ライブラリがサポートする複数のタイプの基本的な演算子は、一般的なニューラルネットワーク演算子１を含み、当該ニューラルネットワーク演算子１は、畳み込み／逆畳み込み演算子１１、プーリング演算子１２、活性化演算子１３、局所コントラスト正規化ＬＲＮ（ＬＲＮ、Ｌｏｃａｌ  Ｒｅｓｐｏｎｓｅ  Ｎｏｒｍａｌｉｚａｔｉｏｎ）／バッチ正規化演算子１４、分類器（Ｓｏｆｔｍａｘ）演算子１５、および全結合演算子１６を含む。ここで、活性化演算子１３は、ＲｅＬＵ、Ｓｉｇｍｏｉｄ、Ｔａｎｈ、および他の補間により実現できる演算子を含むがそれに限定されない。行列、ベクトル、スカラー演算子２は、行列乗算演算子２１、テンソル加算、減算演算子２２、テンソル論理演算演算子２３、テンソル（Ｔｅｎｓｏｒ）変換演算子２４、ＲＯＩＰｏｏｌｉｎｇ演算子２５、およびＰｒｏｐｏｓａｌ演算子２６を含む。ここで、テンソル変換演算子２４は、Ｃｒｏｐ、テンソル再整形Ｒｅｓｈａｐｅ、テンソル分割Ｓｌｉｃｅ、テンソル連結Ｃｏｎｃａｔなどを含むことができるがそれに限定されない。回帰型ニューラルネットワーク演算子３は、長・短期記憶ネットワークＬＳＴＭ（ＬＳＴＭ、Ｌｏｎｇ  Ｓｈｏｒｔ−Ｔｅｒｍ  Ｍｅｍｏｒｙ）演算子３１、基本回帰型ニューラルネットワーク演算子ＲＮＮ（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ、ＲＮＮ）、回帰型ニューラルネットワークＲＮＮ演算子３２、およびＳＶＤＦ演算子３３を含む。実際の運用では、ユーザは自身のニーズに応じて自由に新しい演算子を人工知能学習ライブラリに追加したり、人工知能学習ライブラリの異なるバージョンを変更したりできるが、ここでは詳しく説明せず、人工知能学習タスクをデバックする際に如何に開発プラットフォームで人工知能学習ライブラリに基づいて人工知能学習タスクを最適化することを説明する。
【００６６】
（２）基本的な演算子の融合をサポートする。
具体的な実現では、融合された演算子は、コンパイル中にメモリの再利用、メモリアクセスの最適化、命令パイプライン、データタイプの最適化（適用可能なさまざまなデータ型に対して選択を行うなど）などのコンパイラ最適化方法を使用するため、融合演算子の全体的なパフォーマンスを大幅に向上させる。
【００６７】
（３）オフライン実行ファイルの生成をサポートする。
ここで、オフライン実行ファイルの生成は、人工知能アルゴリズムモデル内の各コンピューティングノードのネットワーク重みと命令となどの必要なネットワーク構造情報を含むことができ、命令は当該コンピューティングノードはどのようなコンピューティング機能を示すことができ、具体的には人工知能学習モデルにおける各コンピューティングノードのコンピューティング属性および各コンピューティングノードの間の接続関係などの情報を含む。
【００６８】
具体的な実現では、オフライン実行ファイルは、人工知能学習ライブラリから分離され、人工知能ランタイムライブラリに基づいて個別に実行できる。実際の運用では、オフライン実行ファイルは上位ソフトウェアスタックから分離されているため、オフライン実行ファイルの実行についてパフォーマンスと汎用性を向上させる。
【００６９】
ステップ５０２）：前記汎用プロセッサは前記人工知能学習タスクを送信する。
【００７０】
本技術案として、端末側人工知能プロセッサのデバイス情報に従ってクラウド側デバイス１０１から適応したクラウド側人工知能プロセッサは、端末側人工知能プロセッサをシミュレートすることができる。次いで、ソフトウェア開発プラットフォーム１０２で生成された人工知能学習タスクは、クラウド側人工知能プロセッサに送信されて実行される。
【００７１】
ステップ５０３）：前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信する。
【００７２】
クラウド側人工知能プロセッサは人工知能学習タスクを実行する際に、実行結果を生成し、当該実行結果をソフトウェア開発プラットフォーム１０２にフィードバックして表示する。本技術案として、実行結果は、以下の１つまたは１つ以上のものを含むがそれに限定されず、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間が予想の要件を満たすか否かのことと、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報が予想の要件を満たすか否かのことと、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かのこととである。本技術案では、クラウド側の人工知能処理システムは、汎用プロセッサとクラウド側人工知能プロセッサを含んでいる。前記人工知能学習タスクを実行する際に、前記人工知能学習タスクを実行するときにクラウド側の人工知能プロセッサの負荷情報を知るだけでなく、実行プロセス中にメモリ使用量情報と汎用プロセッサ使用率を知ることも必要である。負荷情報が実行結果に含まれる理由は、人工知能学習タスクが汎用プロセッサで過大なリソースを必要とする場合、それを端末側デバイスで実行が不十分になるか実行できない可能性が高いである。
【００７３】
ステップ５０４）：前記汎用プロセッサは、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【００７４】
オフライン実行ファイルは、オフライン実行ファイルのバージョン情報、人工知能プロセッサのバージョン情報、バイナリ命令、定数テーブル、入力／出力データ規模、データレイアウト説明情報、およびパラメータ情報を含むことは明らかにされよう具体的には、オフライン実行ファイルのバージョン情報は、オフライン実行ファイルの異なるバージョンを表すものである。人工知能プロセッサのバージョン情報は、端末側人工知能プロセッサのハードウェアアーキテクチャ情報を指す。例えば、チップアーキテクチャのバージョン番号によりハードウェアアーキテクチャ情報を表してもよいし、機能説明によりアーキテクチャ情報を表してもよい。データレイアウト説明情報は、ハードウェアの特性に基づいて入出力データのレイアウトとタイプなどを前処理することを指す。定数テーブル、入出力データ規模、およびパラメータ情報は、開発された人工知能アルゴリズムモデルに基づいて決定される。パラメータ情報は、人工知能アルゴリズムモデルにおける重みデータであり得る。定数テーブルには、バイナリ命令演算プロセスの実行に使用する必要があるデータが格納されている。
【００７５】
端末側人工知能プロセッサのデバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
【００７６】
本技術案では、前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。実行結果が事前設定された要件を満たしていない場合に、  機能デバッグツールおよび／またはパフォーマンスチューニングツールにより以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報の調整、前記端末側人工知能プロセッサの動作環境パラメータの調整、および人工知能学習タスクの最適化を含む。
【００７７】
具体的には、クラウド側人工知能プロセッサによってフィードバックされた実行結果が事前設定された要件を満たすと、現在実行されている人工知能学習タスクを対応するバイナリ命令がオフラインでオフライン実行ファイルに固定化する。
【００７８】
クラウド側人工知能プロセッサによってフィードバックされた実行結果が事前設定された要件を満たしていない場合には、人工知能学習タスクに対するデバッグは２つのアプリケーションシナリオとする。第１のアプリケーションシナリオは、アプリケーションに基づいたチップ設計フェーズで、本技術案を利用してチップ設計仕様を評価する。この状況で、チップのハードウェアアーキテクチャ情報と動作環境パラメータとはどちらも変更可能である。次に、ソフトウェア開発プラットフォームで、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報の調整、端末側人工知能プロセッサの動作環境パラメータの調整、および人工知能学習タスクの最適化という３つの方法の内に少なくとも１つを含むものを実行することにより、人工知能学習タスクに対応するバイナリ命令を適宜に調整できる。毎回調整の後で、ドライバーによってタスクキューの内の調整された人工知能学習タスクをタスクスケジューリングして、対応するクラウド側人工知能プロセッサによって実行して、新たな実行結果を取得する。新たな実行結果がまだ期待どおりでない場合は、ユーザは実行結果が期待どおりになるまで上記の手順を繰り返すことができる。最終にデバッグで取得したバイナリ命令は、オフライン方式でオフライン実行ファイルに固定化される。
【００７９】
第２のアプリケーションシナリオは、端末側人工知能プロセッサがテープアウトされているか否かに関係なく、ユーザはソフトウェア開発プラットフォームに基づいて設計開発を展開でき、端末側人工知能プロセッサと人工知能アルゴリズムモデルとの間の適応を実現できる。この状況で、実際には、他のアーキテクチャバージョンのチップ使用権を再購入しない限り、チップのハードウェアアーキテクチャ情報は簡単に変更されない。チップのハードウェアアーキテクチャ情報が変更されないと仮定すると、フトウェア開発プラットフォームで、現在のハードウェアアーキテクチャ情報に対応するチップにサポートされた動作環境パラメータの範囲内で動作環境パラメータを調整すること、および人工知能学習タスクの最適化という２つの方法の内に少なくとも１つを実行することにより、人工知能学習タスクに対応するバイナリ命令を適宜に調整できる。毎回調整の後で、ドライバーによってタスクキューの内の調整された人工知能学習タスクをタスクスケジューリングして、対応するクラウド側人工知能プロセッサによって実行して、新たな実行結果を取得する。新たな実行結果がまだ期待どおりでない場合は、ユーザは実行結果が期待どおりになるまで上記の手順を繰り返すことができる。最終にデバッグで取得したバイナリ命令は、オフライン方式でオフライン実行ファイルに固定化される。
【００８０】
重要なのは、オフライン実行ファイルをクラウド側人工知能プロセッサまたは端末側人工知能プロセッサで実行できるようにし、かつ人工知能学習タスクをクラウド側人工知能プロセッサで実行する際に生成された実行結果と端末側人工知能プロセッサで実行する際に生成された実行結果とは、特定の許容誤差範囲内または完全に一致しており、本技術案では、端末側人工知能プロセッサのデバイス情報に従ってクラウド側人工知能プロセッサの集合から対応する端末側人工知能プロセッサをシミュレートできるクラウド側人工知能プロセッサをスクリーニングし、スクリーニングされたクラウド側人工知能プロセッサのハードウェアアーキテクチャ情報は、対応する端末側人工知能プロセッサのハードウェアアーキテクチャ情報と互換性があり、クラウド側人工知能プロセッサの命令セットは、対応する端末側人工知能プロセッサの命令セットと互換性があるため、オフライン実行ファイルについてシームレスな移行を実現できる。
【００８１】
本技術案では、異なる端末側人工知能プロセッサのデバイス情報は、ソフトウェア開発プラットフォーム１０２に事前に格納されてもよい。実際の必要に応じて、事前格納されたデバイス情報からターゲット情報を選択し、ターゲット情報に従ってクラウド側デバイス１０１から端末側人工知能プロセッサをシミュレートするクラウド側人工知能プロセッサを決定する。本技術案として、他の実行可能な解決策は、実際のニーズに応じて、毎回にデバイス情報を調整するたびに、ユーザがソフトウェア開発プラットフォーム１０２に異なるデバイス情報を設定し、ソフトウェア開発プラットフォーム１０２が端末側人工知能プロセッサのデバイス情報を受信し、現在の受信した端末側人工知能プロセッサのデバイス情報に従ってクラウド側デバイス１０１からクラウド側人工知能プロセッサを選択して、端末側人工知能プロセッサの人工知能プロセッサを置き換える。説明すべきなのは、前記端末側人工知能プロセッサのデバイス情報を取得する方法は単なる例示であり、網羅的ではなく、当業者は、本願の技術案の本質を理解した場合に、本願の技術案に基づいて他の変形または変換を生成すことが可能であり、例えば、端末側デバイス１０３は、リクエスト情報をソフトウェア開発プラットフォーム１０２に送信し、ソフトウェア開発プラットフォーム１０２はリクエスト情報を解析して端末側人工知能プロセッサのデバイス情報を取得する。しかしながら、実現された機能および達成された技術的効果が本願に類似している限り、それらはすべて本願の請求範囲内にあるべきである。
【００８２】
実際の運用では、クラウド側デバイス１０１から端末側人工知能プロセッサをシミュレートするクラウド側人工知能プロセッサを選択する際に、現在の有効な端末側デバイス情報をドライバプログラムに書き込み、ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを適応する。クラウド側人工知能プロセッサを適応するプロセスは以下を含む。
【００８３】
端末側人工知能プロセッサのードウェアアーキテクチャ情報に従ってクラウド側人工知能プロセッサをスクリーニングし、スクリーニングされたクラウド側人工知能プロセッサのハードウェアアーキテクチャ情報は、対応する端末側人工知能プロセッサのハードウェアアーキテクチャ情報と互換性があり、クラウド側人工知能プロセッサの命令セットは、対応する端末側人工知能プロセッサの命令セットと互換性がある。
【００８４】
端末側人工知能プロセッサの動作環境パラメータに従ってスクリーニングされたクラウド側人工知能プロセッサの周波数と帯域幅とに対して調整する。
【００８５】
また、人工知能学習タスクの最適化に対する４つの方式があってもよい。第１の方式では、ユーザは、ソフトウェア開発プラットフォームでプログラミング言語に基づいてファイルをダイナミックリンクライブラリにコンパイルし、フレームワークで当該ダイナミックリンクライブラリを呼び出すことができる。
【００８６】
第２の方式では、ユーザは、ソフトウェア開発プラットフォームでプログラミング言語に基づいて新たな演算子を開発し、ローカルにおいてすでに有した人工知能学習ライブラリと組み合わせて、新たなオフライン実行ファイルを取得できる。例えば、ｐｒｏｐｏｓａｌ演算子を例とする。Ｆａｓｔｅｒ−Ｒ−ＣｎｎにおけるＰｒｏｐｏｓａｌ演算子をＰｌｕｇｉｎＯｐ演算子に置き換え、専用なプログラミング言語で作られたｐｒｏｐｐｏｓａｌ＿ｋｅｒｎｅｌ．ｍｌｕ演算子を呼び出し、Ｃａｍｂｒｉｃｏｎ−ＣａｆｆｅフレームワークにおけるＰｒｏｐｏｓａｌ演算子はＰｌｕｇｉｎＯｐにより専用なプログラミング言語で実現されたＰｒｏｐｏｓａｌＫｅｒｎｅｌに置き換えられて、専用なプログラミング言語を既存の人工知能学習ライブラリとリンクし、人工知能学習ライブラリにおける各機能とオンライン、オフライン、レイヤーバイレイヤー、フュージョンなどの動作モードをサポートする。
【００８７】
第１の方式と第２の方式とから、フレームワークの内に多数の層と演算子とがサポートされ、一般的なモデルはすべてクラウドのサーバーボードで実行できる。しかしながら、アルゴリズムの更新は頻繁であるため、個人または組織は、カスタムな演算子とアルゴリズムとを蓄積する場合もあり、一つは、カスタムアルゴリズムを公開したくないことか、二つは、基礎となるライブラリにより直接に実際のアプリケーションへのサポート効率は要件を満たさないことであり、よって、専用なプログラミング言語を提供して、開発者が自主的なアルゴリズムを開発することを支援し、従来の開発モードにおいて柔軟性が欠如という問題点を解決する。
【００８８】
第３の方式では、ユーザは、ソフトウェア開発プラットフォームで現在のローカル人工知能学習ライブラリのバージョンの１つを選択し、それに対応する人工知能ランタイムライブラリを照合し、現在のローカル人工知能学習ライブラリが要望を満たさない場合、ソフトウェア開発プラットフォームに介してリクエストを送信し、ローカル人工知能学習ライブラリのバージョンをアップグレードする目的を達成する。ソフトウェア開発プラットフォームのオペレーターは、リクエストに応じてソフトウェア開発プラットフォームに対応する新バージョンの人工知能学習ライブラリおよび対応する工知能ランタイムライブラリを提供し、ユーザは、ソフトウェア開発プラットフォームで最新バージョンの人工知能学習ライブラリおよび対応する工知能ランタイムライブラリを選択し、最新バージョンの人工知能学習ライブラリに基づいてデバッグされたバイナリ命令を取得する。
【００８９】
第４の方式では、ユーザは人工知能アルゴリズムモデルを調整して、人工知能学習タスクを最適化する目的を達成できる。
【００９０】
実際の運用では、上記の４つの人工知能学習タスクを最適化する方式の少なくとも１つが使用し、人工知能学習タスクを最適化するという目標を達成する。人工知能アルゴリズムモデルを調整するかどうかに関わらず、人工知能学習ライブラリの最適化および／または端末側人工知能プロセッサのデバイス情報に対する調整により、どちらも人工知能学習タスクを調整する目的を達成でき、端末側人工知能プロセッサと人工知能アルゴリズムモデル間の適応を実現する。
【００９１】
図５に示す技術案に提供されたソフトウェア開発プラットフォームで、顧客は、当該ソフトウェア開発プラットフォームでアルゴリズムと人工知能プロセッサとの間の機能、パフォーマンス、および精度のデバッグを完成し、デバッグの完成後に生成されたオフライン実行ファイルは、互換性のあるアーキテクチャ上の多種な端末側ＳｏＣチップで使用でき、上記の利点は、顧客がハードウェアエンティティを取得する必要がなく、アルゴリズムと人工知能プロセッサとの間の機能、パフォーマンス、および精度を事前にデバッグできることであり、これにより、製品開発サイクルが大幅に短縮される。さらに、各端末側ＳｏＣチップ用に一連の開発環境を個別に開発または適応させる必要はない。
【００９２】
図７に示すように、それは本願によって提供されたデータ処理方法の第２のフローチャートである。前記方法は、クラウド側人工知能プロセッサに適用する。それは以下を含む。
【００９３】
ステップ７０１）：人工知能学習タスクを受信する。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
【００９４】
ステップ７０２）：前記人工知能学習タスクを実行して、実行結果を生成する。
【００９５】
本ステップでは、前記実行結果は、以下の１つまたは１つ以上のものを含むがそれに限定されず、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間が予想の要件を満たすか否かのことと、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報が予想の要件を満たすか否かのことと、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かのことである。
【００９６】
強調すべきなのは、図５に示された関連する技術案はすべて、図７に示された技術案に適用可能であるが、ここで説明は繰り返さない。
【００９７】
クラウド側デバイス１０１に対しては、一つのアプリケーションシナリオは、クラウド側人工知能プロセッサの集合は、端末側人工知能プロセッサのすべてのバージョンのハードウェアアーキテクチャ情報が可能な限りカバーすることが明確されよう。例えば、モデルはハードウェアアーキテクチャ情報のバージョンに対応し、端末側人工知能プロセッサのモデルはＡ、Ｂ、およびＣである。クラウド側人工知能プロセッサの集合には、モデルＡの人工知能プロセッサ、モデルＢの人工知能プロセッサ、およびモデルＣの人工知能プロセッサのいずれも含まれる。もう一つのアプリケーションシナリオは、クラウド側人工知能プロセッサの集合の内に、人工知能プロセッサのハードウェアアーキテクチャは、高性能バージョンの機能、中性能バージョンの機能、および低性能バージョンの機能を実現できる。例えば、異なるアプリケーションシナリオと実際のニーズに応じて、人工知能プロセッサの一部の機能を無効にし、低性能バージョンの人工知能プロセッサまたは中性能バージョンの人工知能プロセッサに変換してさまざまな顧客の要望を満足する。この状況では、本技術案におけるソフトウェア開発プラットフォーム１０２はバイナリ命令を生成する際は端末側人工知能プロセッサのデバイス情報に基づいており、かつ、ドライバプログラムによりスクリーニングされたクラウド側人工知能プロセッサによってサポートされた異なる動作環境パラメータを変更することにより、高性能バージョンの人工知能プロセッサの内に一部の機能の一部が無効され、実現された機能のみが対応する端末側人工知能プロセッサの機能と適応する。したがって、高性能バージョンの人工知能プロセッサの動作環境パラメータの値の範囲には、端末側人工知能プロセッサでサポートされているすべての動作環境パラメータが含まれる。例えば、クラウド側人工知能プロセッサのオンチップメモリサイズは１００Ｍであり、端末側人工知能プロセッサのオンチップメモリサイズはある１００Ｍより小さい値でもよい。
【００９８】
さらに、時分割多重方式を使用して、仮想マシン技術により、ユーザがクラウド側デバイス１０１の人工知能プロセッサのリソースを使用する時間帯に従って、クラウド側デバイス１０１の人工知能プロセッサを合理的に割り当て、リソースを異なる時間帯の人工知能学習タスクに割り当て、展開する必要があるクラウド側人工知能プロセッサの開発環境の数を減らしできる。
【００９９】
さらに、クラウド側デバイス１０１の人工知能プロセッサの集合に、必ずしもチップエンティティである必要はなく、ＦＰＧＡであってもよい。現代的なＩＣ設計に検証された技術主流を参照しながら、ハードウェア記述言語（ＶｅｒｉｌｏｇまたはＶＨＤＬ）により完成された回路設計は、簡単な統合およびレイアウトに介して速やかにＦＰＧＡに書き込むことができる。本技術案として、クラウド側人工知能プロセッサに適応したチップエンティティがない場合は、ＦＰＧＡを使用してユーザにサービスを提供できる。端末側人工知能プロセッサのデバイス情報に従って要求が適合したＦＰＧＡをスクリーニングして、当該ＦＰＧＡは端末側人工知能プロセッサのハードウェアアーキテクチャ情報に対応するイメージファイルを有する。適応したＦＰＧＡが存在しない場合に、ソフトウェア開発プラットフォーム１０２は、端末側人工知能プロセッサのハードウェアアーキテクチャ情報に対応するイメージファイルをアイドルＦＰＧＡに書き込み、当該ＦＰＧＡをソフトウェア開発プラットフォームから送信された人工知能学習タスクを実行させる。
【０１００】
クラウド側人工知能プロセッサに対しては、より高い粒度のリソース構成を提供できる。例えば、ユーザＡは、ソフトウェア開発プラットフォーム１０２でＭ個のコアに基づいて構成された端末側人工知能プロセッサにより人工知能学習タスクを生成し、適応されたクラウド側人工知能プロセッサは総数はＮ個のコアを有し、かつＮ個のコアの内にＰ個のコアは既にユーザＢによって起動された人工知能学習タスクで使用される。Ｍ＋Ｐ＜＝Ｎが満たされ、かつユーザＡに対応する端末側人工知能プロセッサのデバイス情報とユーザＢに対応する端末側人工知能プロセッサのデバイス情報が同じでなければならない場合、ソフトウェア開発プラットフォーム１０２における人工知能ランタイムライブラリは、異なるユーザによって起動された人工知能学習タスクを異なるコアに割り当て、各コアごとに異なる人工知能学習タスクを実行することにより、クラウド側人工知能プロセッサのリソースをより高い粒度な割り当てを実現する。
【０１０１】
また、クラウド側人工知能プロセッサに対して、従来の非再構成可能なアーキテクチャの人工知能プロセッサであってもいし、再構成可能なアーキテクチャの人工知能プロセッサであってもよい。再構成可能アーキテクチャの人工知能プロセッサに対しては  、ドライバーにおいてデバイス情報を使用して再構成可能チップ内の環境動作パラメータを調整し、ソフトウェア開発プラットフォーム１０２から送信された人工知能学習タスクに従って再構成可能チップの内部の対応する機能モジュールを呼び出す。つまり、実際の運用における差異に従って、再構成可能チップの内部の機能モジュールを調整し、再構成されたチップは端末側人工知能プロセッサを置き換える。
【０１０２】
上記のクラウド人工知能プロセッサの説明に基づいて、本技術案として、ソフトウェア開発プラットフォーム１０２は一定期間内の各時間帯で異なるハードウェアアーキテクチャ情報のクラウド側人工知能プロセッサを使用するユーザ数を統計し、ユーザの要望を満たす最小値Ｖを予想し、当該数字Ｖは配置されたクラウド側人工知能プロセッサの数の最小値である。これに基づいて、少数のＷ個人工知能プロセッサを耐障害性やユーザの急激な増加の場合を防ぐために冗長として追加し、よって（Ｖ＋Ｗ）はクラウド側デバイス１０１に配置された必要な人工知能プロセッサの数である。同時に、ソフトウェア開発プラットフォーム１０２は、ユーザ量の変化を定期的に統計し、クラウド側デバイス１０１に配置された人工知能プロセッサの数を変更してユーザのニーズを満たし、かつクラウド側費用を削減する。
【０１０３】
総括して、前記説明により、リアルタイムの配置方法を利用して、ソフトウェア開発プラットフォームから送信された人工知能学習タスクに従ってクラウド側デバイス１０１を動的に調整し、ユーザが気付けないままに時分割多重方式を利用することによりユーザはクラウド側デバイス１０１の人工知能プロセッサリソースを使用する時間帯に従って、異なる開発環境を配置することにより、同じクラウド側人工知能プロセッサリソースを異なる時間帯の人工知能学習タスクに割り当て、クラウド側人工知能プロセッサの開発環境の数を減らすことができる。
【０１０４】
図８に示すように、それは本願によって提供されたデータ処理方法の第３のフローチャートである。前記方法は、端末側人工知能プロセッサに適用する。それは以下を含む。
【０１０５】
ステップ８０１）：オフライン実行ファイルを読み込む。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って決定される。
【０１０６】
強調すべきなのは、図５、図７に示された関連する技術案はすべて、図８に示された技術案に適用可能であるが、ここで説明は繰り返さない。
【０１０７】
端末側人工知能プロセッサに対して生成された人工知能学習タスクは、ソフトウェア開発プラットフォームでクラウド側人工知能プロセッサからフィードバックされた実行結果に従って人工知能学習タスクに対して最適化およびデバッグし、実行結果は期待された要件を満たした後、デバッグされた人工知能学習タスクのバイナリ命令は固定化処理によりオフライン実行ファイルに変更され、前のデバッグおよびパフォーマンス成果の固定化を実現する。その後、オフラインのアプリケーションを作成する必要があり、プログラミングフレームワークから切り離して実際のアプリケーションシナリオにおいて精度が正常であることを保証してから、端末側デバイス１０３にクロスコンパイルして実際に配置できる。
【０１０８】
図９に示すように、それは本願によって提供されたデータ処理の第４のフローチャートである。前記システムは、汎用プロセッサとクラウド側人工知能プロセッサとを含む。それは以下を含む。
【０１０９】
ステップａ：前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行する。
【０１１０】
ステップｂ：前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成する。
【０１１１】
ステップｃ：前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【０１１２】
強調すべきなのは、図５、図７に示された関連する技術案はすべて、図９に示された技術案に適用可能であるが、ここで説明は繰り返さない。
【０１１３】
図１０に示すように、一つのデータ処理装置の機能ブロック図である。前記装置は、メモリおよび汎用プロセッサを備え、前記メモリは、前記汎用プロセッサで実行できるコンピュータプログラムを格納し、前記汎用プロセッサは前記コンピュータプログラムを実行する際に実現されたデータ処理フローは以下を含む。
【０１１４】
端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
【０１１５】
前記人工知能学習タスクを、クラウド側人工知能プロセッサに送信して実行する。
【０１１６】
前記人工知能学習タスクに対応する実行結果を受信する。
【０１１７】
前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
【０１１８】
任意選択で、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
任意選択で、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
任意選択で、前記汎用プロセッサがコンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
前記端末側人工知能プロセッサのデバイス情報を受信する。
任意選択で、前記汎用プロセッサがコンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを適応する。
任意選択で、前記汎用プロセッサが前記実行結果に従って前記オフライン実行ファイルを決定する際に、前記コンピュータプログラムを実行する際にデータ処理フローを実現することは、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
任意選択で、前記汎用プロセッサが前記実行結果に従って前記オフライン実行ファイルを決定する際に、前記コンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
任意選択で、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
任意選択で、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、さらに以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
任意選択で、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、さらに以下を含む。
人工知能アルゴリズムモデルを調整する。
任意選択で、前記実行結果は、以下の１つまたは１つ以上のものを含むがそれに限定されず、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間が予想の要件を満たすか否かのことと、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報が予想の要件を満たすか否かのことと、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かのこととである。
【０１１９】
そのメモリと汎用プロセッサは、具体的な機能を実現し、本明細書における前述の実施形態と比較して説明することができ、かつ前述実施形態の技術的効果を達成することができ、ここで説明は繰り返さない。
【０１２０】
本実施形態では、前記メモリは、情報を格納するための物理装置を含んでもよいし、通常は、情報をデジタル化してから、電気的、磁気的または光学的方法を利用する媒体に格納する。実施形態に係るメモリは、ＲＡＭ、ＲＯＭなどの電気エネルギー方式を使用して情報を保存するデバイスと、ハードディスク、フロッピーディスク、磁気テープ、磁気コアメモリ、磁気バブルメモリ、ＵＳＢフラッシュドライブなどの磁気エネルギー方式を使用して情報を保存するデバイスと、ＣＤやＤＶＤなどの光学方式を使用して情報を保存するデバイスとをさらに含んでもよい。無論、量子メモリ、グラフェンメモリなどの他の方式のメモリもある。
【０１２１】
図１１に示すように、一つの人工知能処理プロセッサの第１の機能ブロック図である。含まれるものは：
受信モジュール１１０１は、人工知能学習タスクを受信するために用いられる。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
実行モジュール１１０２は、前記人工知能学習タスクを実行して、実行結果を生成するために用いられる。
【０１２２】
任意選択で、前記実行モジュールにより前記実行結果は、以下の１つまたは１つ以上のものを含むがそれに限定されず、前記人工知能学習タスクの前記クラウド側人工知能プロセッサでの実行時間が予想の要件を満たすか否かのことと、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報が予想の要件を満たすか否かのことと、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かのことである。
任意選択で、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
任意選択で、前記人工知能プロセッサは、再構成可能なアーキテクチャの人工知能プロセッサである。
【０１２３】
図１２に示すように、一つの人工知能処理プロセッサの第２の機能ブロック図である。含まれるものは：
取得モジュール１２０１は、オフライン実行ファイルを取得するために用いられる。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って決定される。
【０１２４】
任意選択で、さらに以下を含む。
送信モジュール、リクエスト情報を送信するために用いられ、ここで、前記リクエスト情報は前記端末側人工知能プロセッサのデバイス情報を含む。
任意選択で、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
任意選択で、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
【０１２５】
図１３に示すように、データ処理システムである。汎用プロセッサ１３１０とクラウド側人工知能プロセッサ１３２０とを含む。本実施例では、汎用プロセッサ１３１０およびクラウド側人工知能プロセッサ１３２０について具体的な実現は、前述の説明を参照すると理解されよう、ここで説明は繰り返さない。
【０１２６】
本実施例では、本願の実施例はさらに読み取り可能な記憶媒体を提供し、それはコンピュータプログラムを格納し、コンピュータプログラムを実行するフローは図５、図７、図８、および図９に示されたデータ処理方法を体現する。
【０１２７】
上記からわかるように、本願の実施例はデータ処理方法および関連製品を提供し、端末側人工知能プロセッサがテープアウトされているか否かに関係なく、本技術案は、人工知能アルゴリズムモデルと人工知能プロセッサとの間の適応デバッグ作業を事前に実現できる。
【０１２８】
純粋なコンピューター読み取り可能なプログラムコードによりクライアントとサーバーに実現することに加えて、本技術案におけるステップをクライアントとサーバーで論理ゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラー、および組み込みマイクロコントローラーなどの形で完全に実現できることも、当業者には知られている。したがって、そのようなクライアントとサーバーはハードウェアコンポーネントと見なすことができ、そこに含まれるさまざまな機能を実現する装置もハードウェアコンポーネント内の構造と見なすことができる。また、さまざまな機能を実現するためのデバイスさえを、方法を実現するためのソフトウェアモジュールと見なしてもよいか、ハードウェアコンポーネント内の構造と見なしてもよい。
【０１２９】
上記の実施形態の説明から、本出願を、ソフトウェアに加えて必要な汎用ハードウェアプラットフォームによって実施できることは、当業者には明らかであろう。そのような理解に基づいて、本質的に本出願の技術案は、または関連技術に寄与する技術案の一部は、ＲＯＭ／ＲＡＭ、磁気ディスク、コンパクトディスクなどの記憶媒体に格納されるソフトウェア製品の形で具現化され得る。本開示の各実施形態またはその一部において説明される前記方法をコンピュータデバイス（パーソナルコンピュータ、サーバー、またはネットワークデバイスなどであってもよい）に実行させるための命令を含む。
【０１３０】
本明細書における各実施形態は漸進的に説明されており、各実施形態間の同一または類似の部分は相互に参照されでき、各実施形態は他の実施形態との違いに焦点を当てる。特に、クライアントとサーバーに対して実施形態については、前述方法の実施形態についての紹介を参照できる。
【０１３１】
本願は、プログラムモジュールなどのコンピューターによって実行されるコンピューター実行可能命令は一般的なコンテキストで説明できる。一般に、プログラムモジュールは、特定のタスクを実行したり、特定の抽象データタイプを実現したりするルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本出願は、分散コンピューティング環境で実施することもでき、これらの分散コンピューティング環境では、通信ネットワークを介して接続されたリモート処理デバイスによってタスクを実行する。分散コンピューティング環境では、プログラムモジュールは、ストレージデバイスを含むローカルコンピューター記憶媒体に配置してもよいか、リモートのコンピューター記憶媒体に配置してもよい。
【０１３２】
実施形態で本願を説明したものの、本願精神から逸脱せずにいろんな変形及び変化があり、添付された請求範囲はそれらの変形及び変化は本願精神から逸脱しないことを、当業者には明らかであろう。
【０１３３】
さらに、上記の内容は次の用語に従ってよりよく理解できる。
【０１３４】
Ａ１．データ処理方法として、前記方法はデータ処理システムに用いられ、前記データシステムは、汎用プロセッサとクラウド側人工知能プロセッサとを含む。それは以下を含む。
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成しつつ、前記バイナリ命令に従って人工知能学習タスクを生成する。前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行する。
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成する。
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
Ａ２．Ａ１に説明した方法によると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ａ３．Ａ２に説明した方法によると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
Ａ４．Ａ１に説明した方法によると、さらに以下を含む。
前記汎用プロセッサは、前記端末側人工知能プロセッサのデバイス情報を受信する。
Ａ５．Ａ４に説明した方法によると、さらに以下を含む。
前記汎用プロセッサは、デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
Ａ６．前記実行結果に従って前記オフライン実行ファイルを決定するＡ１に説明した前記方法は、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
Ａ７．前記実行結果に従って前記オフライン実行ファイルを決定するＡ１に説明した前記方法は、さらに以下を含む。
実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
Ａ８．Ａ７に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
Ａ９．Ａ７またはＡ８に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
Ａ１０．Ａ７−Ａ９のいずれか１項に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
Ａ１１．Ａ１−Ａ１０のいずれか１項に説明した方法には、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間が予想の要件を満たすか否かのことと、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報が予想の要件を満たすか否かのことと、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かのこととの内に少なくとも１つを含む。
Ａ１２．Ａ１に説明した方法によると、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
Ａ１３．Ａ１２に説明した方法によると、前記人工知能プロセッサのハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサハードウェアである。
【０１３５】
Ｂ１４．データ処理装置であって、メモリ、汎用プロセッサ、およびクラウド側人工知能プロセッサを備え、前記メモリは、前記汎用プロセッサおよび／またはクラウド側人工知能プロセッサで実行されるコンピュータプログラムを格納し、
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成しつつ、前記バイナリ命令に従って人工知能学習タスクを生成する。前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行するために用いられる。
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成するために用いられる。
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成されるためにさらに用いられる。
Ｂ１５．Ｂ１４に説明した装置によると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ｂ１６．Ｂ１５に説明した装置によると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
Ｂ１７．Ｂ１４に説明した装置によると、前記汎用プロセッサがさらに以下のため用いられる。
前記端末側人工知能プロセッサのデバイス情報を受信する。
Ｂ１８．Ｂ１７に説明した装置によると、前記汎用プロセッサがさらに以下のため用いられる。
デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
Ｂ１９．Ｂ１４に説明した装置によると、前記汎用プロセッサは前記実行結果に従って前記オフライン実行ファイルを決定し、さらに以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
Ｂ２０．Ｂ１４に説明した装置によると、前記汎用プロセッサは前記実行結果に従って前記オフライン実行ファイルを決定し、さらに以下を含む。
実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
Ｂ２１．Ｂ２０に説明した装置によると、前記人工知能学習タスクを最適化するステップは以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
Ｂ２２．Ｂ２０またはＢ２１に説明した装置によると、前記人工知能学習タスクを最適化するステップは以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
Ｂ２３．Ｂ２０−Ｂ２２のいずれか１項に説明した装置によると、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
Ｂ２４．Ｂ１４−Ｂ２３のいずれか１項に説明した装置によると、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されているときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
Ｂ２５．Ｂ１４に説明した装置によると、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
Ｂ２６．Ｂ２５に説明した装置によると、前記人工知能プロセッサのハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサハードウェアである。
【０１３６】
Ｃ１．データ処理方法として、前記方法は汎用プロセッサに用いられ、それは以下を含む。
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
前記汎用プロセッサは、前記人工知能学習タスクを、クラウド側人工知能プロセッサに送信して実行する。
前記汎用プロセッサは、前記人工知能学習タスクに対応する実行結果を受信する。
前記汎用プロセッサは、前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
Ｃ２．Ｃ１に説明した方法によると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ｃ３．Ｃ２に説明した方法によると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
Ｃ４．Ｃ１に説明した方法によると、さらに以下を含む。
前記汎用プロセッサは、前記端末側人工知能プロセッサのデバイス情報を受信する。
Ｃ５．Ｃ４に説明した方法によると、さらに以下を含む。
前記汎用プロセッサは、デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
Ｃ６．前記実行結果に従って前記オフライン実行ファイルを決定するＣ１に説明した前記方法は、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
Ｃ７．前記実行結果に従って前記オフライン実行ファイルを決定するＣ１に説明した前記方法は、さらに以下を含む。
実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
Ｃ８．Ｃ７に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
Ｃ９．Ｃ７またはＣ８に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
Ｃ１０．Ｃ７−Ｃ９のいずれか１項に説明した方法によると、前記人工知能学習タスクを最適化するステップは以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
Ｃ１１．Ｃ１−Ｃ１０のいずれか１項に説明した方法によると、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
【０１３７】
Ｄ１２．データ処理装置であって、前記装置は、メモリおよび汎用プロセッサを備え、前記メモリは、前記汎用プロセッサで実行できるコンピュータプログラムを格納し、前記汎用プロセッサは前記コンピュータプログラムを実行する際に実現されるデータ処理フローは以下を含む。
端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成する。
前記人工知能学習タスクを、クラウド側人工知能プロセッサに送信して実行する。
前記人工知能学習タスクに対応する実行結果を受信する。
前記実行結果に従ってオフライン実行ファイルを決定する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
Ｄ１３．Ｄ１２に説明した装置によると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ｄ１４．Ｄ１３に説明した装置によると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
Ｄ１５．Ｄ１２に説明した装置によると、前記汎用プロセッサがコンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
前記端末側人工知能プロセッサのデバイス情報を受信する。
Ｄ１６．Ｄ１２またはＤ１５に説明した装置によると、前記汎用プロセッサがコンピュータプログラムを実行する際にデータ処理フローを実現することは、さらに以下を含む。
デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを当てはめる。
Ｄ１７．Ｄ１２に説明した装置によると、前記汎用プロセッサが前記実行結果に従って前記オフライン実行ファイルを決定する際に、前記コンピュータプログラムを実行する際にデータ処理フローを実現することは、以下を含む。
前記実行結果が事前設定された要件を満たしている場合に、事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。
Ｄ１８．Ｄ１２に説明した装置によると、前記汎用プロセッサが前記実行結果に従って前記オフライン実行ファイルを決定する際に、前記コンピュータプログラムを実行する際にデータ処理フローを実現することは、以下をさらに含む。
実行結果が事前設定された要件を満たしていない場合に、以下の最適化方法の内に少なくとも１つを、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たすバイナリ命令に従って対応するオフライン実行ファイルを生成する。ここで、前記最適化方法は、以下を含む。
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整する。
前記端末側人工知能プロセッサの動作環境パラメータを調整する。
または、人工知能学習タスクを最適化する。
Ｄ１９．Ｄ１８に説明した装置によると、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、以下を含む。
専用のプログラミング言語により人工知能学習タスクを最適化する。
Ｄ２０．Ｄ１８またはＤ１９に説明した装置によると、前記人工知能学習タスクを汎用プロセッサ最適化するステップは以下を含む。
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化する。
Ｄ２１．Ｄ１８−Ｄ２０のいずれか１項に説明した装置によると、前記汎用プロセッサが人工知能学習タスクを最適化する際にデータ処理フローを実現することは、以下をさらに含む。
人工知能アルゴリズムモデルを調整する。
Ｄ２２．Ｄ１２−Ｄ２１のいずれか１項に説明した装置によると、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間が予想の要件を満たすか否かのことと、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報が予想の要件を満たすか否かのことと、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かのこととの内に少なくとも１つを含む。
【０１３８】
Ｅ２３．データ処理方法として、前記方法はクラウド側人工知能プロセッサ用にいられ、それは以下を含む。
人工知能学習タスクを受信する。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
前記人工知能学習タスクを実行して、実行結果を生成する。
Ｅ２４．Ｅ２３に説明した方法によると、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間が予想の要件を満たすか否かのことと、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報が予想の要件を満たすか否かのことと、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かのこととの内に少なくとも１つを含む。
Ｅ２５．Ｅ２３に説明した方法によると、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
Ｅ２６．Ｅ２５に説明した方法によると、前記クラウド側人工知能プロセッサのハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサハードウェアである。
【０１３９】
Ｆ２７人工知能プロセッサであって、それは以下を含む。
受信モジュールは、人工知能学習タスクを受信するために用いられる。ここで、前記人工知能学習タスクは、端末側人工知能プロセッサのデバイス情報によって生成されたバイナリ命令に従って決定される。
実行モジュールは、前記人工知能学習タスクを実行して、実行結果を生成するために用いられる。
Ｆ２８．Ｆ２７に説明した人工知能プロセッサによると、前記実行モジュールにより生成された実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かの内に少なくとも１つを含む。
Ｆ２９．Ｆ２７に説明した人工知能プロセッサによると、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティ、フィールドプログラマブルゲートアレイ、およびシミュレータの内に少なくとも１つを含む。
Ｆ３０．Ｆ２９に説明した人工知能プロセッサによると、前記クラウド側人工知能プロセッサのハードウェアエンティティは、再構成可能なアーキテクチャの人工知能プロセッサハードウェアである。
【０１４０】
Ｇ３１．データ処理方法として、前記方法は端末側人工知能プロセッサ用にいられ、それは以下を含む。
オフライン実行ファイルを取得する。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
Ｇ３２．Ｇ３１に説明した方法によると、前記方法はさらに以下を含む。
リクエスト情報を送信する。ここで、前記リクエスト情報は前記端末側人工知能プロセッサのデバイス情報を含む。
Ｇ３３．Ｇ３１に説明した方法によると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ｇ３４．Ｇ３３に説明した方法によると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
【０１４１】
Ｈ３５人工知能プロセッサであって、それは以下を含む。
取得モジュールは、オフライン実行ファイルを取得するために用いられる。ここで、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成される。
Ｈ３６．Ｈ３５に説明した人工知能プロセッサによると、それは以下をさらに含む。
送信モジュール、リクエスト情報を送信するために用いられ、ここで、前記リクエスト情報は前記端末側人工知能プロセッサのデバイス情報を含む。
Ｈ３７．Ｈ３６に説明した人工知能プロセッサによると、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含む。
Ｈ３８．Ｈ３７に説明した人工知能プロセッサによると、前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含む。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ処理方法であって、前記方法はデータ処理システムに用いられ、前記データ処理システムは、汎用プロセッサとクラウド側人工知能プロセッサとを含み、
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成し、前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行することと、
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成することと、
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定し、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成されることとを含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含み、
前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅、オンチップメモリサイズ、端末側人工知能プロセッサのコア数、および端末側人工知能プロセッサのオペレーターのタイプの内に少なくとも１つを含むことを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、
前記汎用プロセッサは、前記端末側人工知能プロセッサのデバイス情報を受信することをさらに含み、
前記汎用プロセッサは、デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを適応させることをさらに含むことを特徴とする方法。
【請求項４】
請求項１に記載の方法であって、前記実行結果に従って前記オフライン実行ファイルを決定し、
前記実行結果が事前設定された要件を満たしている場合に、前記事前設定された要件を満たしているバイナリ命令に従って対応するオフライン実行ファイルを生成することを特徴とする方法。
【請求項５】
請求項１に記載の方法であって、前記実行結果に従って前記オフライン実行ファイルを決定することは、
前記実行結果が事前設定された要件を満たしていない場合に、以下の工程の内に少なくとも１つの最適化方法を、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たしているバイナリ命令に従って対応するオフライン実行ファイルを生成することをさらに含み、前記最適化方法は、
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整することと、
前記端末側人工知能プロセッサの動作環境パラメータを調整することと、
または、人工知能学習タスクを最適化することとを含むことを特徴とする方法。
【請求項６】
請求項５に記載の方法であって、前記人工知能学習タスクを最適化するステップは、
専用のプログラミング言語により人工知能学習タスクを最適化することを含むことと、または、
人工知能学習ライブラリのバージョンを更新することで人工知能学習タスクを最適化することと、または、
人工知能アルゴリズムモデルを調整することとをさらに含むことを特徴とする方法。
【請求項７】
請求項１−６のいずれか１項に記載の方法であって、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間と、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報と、前記人工知能学習タスクを実行した結果が予想の要件を満たしているか否かのこととの内に少なくとも１つを含むことを特徴とする方法。
【請求項８】
請求項１に記載の方法であって、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティと、フィールドプログラマブルゲートアレイと、シミュレータとの内に少なくとも１つを含むことを特徴とする方法。
【請求項９】
データ処理装置であって、メモリと、汎用プロセッサと、クラウド側人工知能プロセッサとを備え、前記メモリは、前記汎用プロセッサおよび／または前記クラウド側人工知能プロセッサで実行されるコンピュータプログラムを格納し、
前記汎用プロセッサは、端末側人工知能プロセッサのデバイス情報に従ってバイナリ命令を生成し、前記バイナリ命令に従って人工知能学習タスクを生成し、前記人工知能学習タスクをクラウド側人工知能プロセッサに送信して実行するためであり、
前記クラウド側人工知能プロセッサは人工知能学習タスクを受信し、前記人工知能学習タスクを実行し、実行結果を生成するためであり、
前記汎用プロセッサは前記人工知能学習タスクに対応する実行結果を受信し、前記実行結果に従ってオフライン実行ファイルを決定するためでもあり、前記オフライン実行ファイルは、実行結果が事前設定された要件に満たしている場合に対応する前記端末側人工知能プロセッサのデバイス情報とバイナリ命令とに従って生成されることを特徴とする装置。
【請求項１０】
請求項９に記載の装置であって、前記デバイス情報は、前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報と動作環境パラメータとを含み、
前記動作環境パラメータは、前記端末側人工知能プロセッサの動作周波数と、オフチップメモリと端末側人工知能プロセッサとの間のメモリアクセス帯域幅と、オンチップメモリサイズと、端末側人工知能プロセッサのコア数と、端末側人工知能プロセッサのオペレーターのタイプとの内に少なくとも１つを含むことを特徴とする装置。
【請求項１１】
請求項９に記載の装置であって、前記汎用プロセッサは、
前記端末側人工知能プロセッサのデバイス情報を受信するためでもあり、
デバイス情報をドライバプログラムに書き込み、前記ドライバプログラムにおけるデバイス情報に従ってクラウド側人工知能プロセッサを適応させるためでもあることを特徴とする装置。
【請求項１２】
請求項９に記載の装置であって、前記汎用プロセッサはさらに前記実行結果に従って前記オフライン実行ファイルを決定するためでもあり、
前記実行結果が事前設定された要件を満たしている場合に、前記事前設定された要件を満たしているバイナリ命令に従って対応するオフライン実行ファイルを生成することを特徴とする方法。
【請求項１３】
請求項９に記載の装置であって、前記汎用プロセッサはさらに前記実行結果に従って前記オフライン実行ファイルを決定するためでもあり、
前記実行結果が事前設定された要件を満たしていない場合に、以下の工程の内に少なくとも１つの最適化方法を、実行結果が事前設定された要件を満たすまで実行して、前記事前設定された要件を満たしているバイナリ命令に従って対応するオフライン実行ファイルを生成することをさらに含み、前記最適化方法は、
前記端末側人工知能プロセッサのハードウェアアーキテクチャ情報を調整することと、
前記端末側人工知能プロセッサの動作環境パラメータを調整することと、
または、人工知能学習タスクを最適化することとを含むことを特徴とする方法。
【請求項１４】
請求項１３に記載の装置であって、前記人工知能学習タスクを最適化するステップは、
専用のプログラミング言語により人工知能学習タスクを最適化することを含むことと、
人工知能学習ライブラリのバージョンを更新することにより人工知能学習タスクを最適化することと、または、
人工知能アルゴリズムモデルを調整することとをさらに含むことを特徴とする装置。
【請求項１５】
請求項９−１４のいずれか１項に記載の装置であって、前記実行結果は、前記人工知能学習タスクのクラウド側人工知能プロセッサでの実行時間と、前記人工知能学習タスクが実行されるときのクラウド側人工知能処理システムの占用される負荷情報と、前記人工知能学習タスクを実行した結果が予想の要件を満たすか否かのこととの内に少なくとも１つを含むことを特徴とする装置。
【請求項１６】
請求項９に記載の装置であって、前記クラウド側人工知能プロセッサは、人工知能プロセッサのハードウェアエンティティと、フィールドプログラマブルゲートアレイと、シミュレータとの内に少なくとも１つを含むことを特徴とする装置。
【国際調査報告】
2021521500.tif 000016
2021521500.tif 000017
2021521500.tif 000018
2021521500.tif 000019