(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-27
(45)【発行日】2023-05-10
(54)【発明の名称】人工知能チップ検証
(51)【国際特許分類】
G06F 11/22 20060101AFI20230428BHJP
G06F 11/277 20060101ALI20230428BHJP
G06F 11/36 20060101ALI20230428BHJP
G06F 30/33 20200101ALI20230428BHJP
G06N 3/063 20230101ALI20230428BHJP
G06F 119/02 20200101ALN20230428BHJP
【FI】
G06F11/22 605B
G06F11/277
G06F11/36 184
G06F30/33
G06N3/063
G06F119:02
(21)【出願番号】P 2021557138
(86)(22)【出願日】2020-09-30
(86)【国際出願番号】 CN2020119406
(87)【国際公開番号】W WO2021238006
(87)【国際公開日】2021-12-02
【審査請求日】2021-09-24
(31)【優先権主張番号】202010476115.3
(32)【優先日】2020-05-29
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520180323
【氏名又は名称】上▲海▼商▲湯▼智能科技有限公司
【氏名又は名称原語表記】SHANGHAI SENSETIME INTELLIGENT TECHNOLOGY CO., LTD.
【住所又は居所原語表記】Room 1605A, Building 3, 391 Guiping Road, Xuhui District, Shanghai 200233 China
(74)【代理人】
【識別番号】110000729
【氏名又は名称】弁理士法人ユニアス国際特許事務所
(72)【発明者】
【氏名】侯 化成
(72)【発明者】
【氏名】卜 凡▲偉▼
(72)【発明者】
【氏名】蒋 科
【審査官】多賀 実
(56)【参考文献】
【文献】中国特許出願公開第111178512(CN,A)
【文献】中国特許出願公開第111045880(CN,A)
【文献】米国特許出願公開第2020/0042419(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 11/22-11/36
G06F 30/30-30/398
G06F 119/02
G06N 3/00-99/00
G01R 31/28-31/3193
(57)【特許請求の範囲】
【請求項1】
人工知能(AI)チップ検証システムであって、
検証待ち対象の情報および所定のユースケーステンプレートに基づいて前記検証待ち対象の検証ユースケースを生成するためのユースケースジェネレータと、
前記ユースケースジェネレータに接続し、テスト待ち設計によって前記検証ユースケースを実行してテスト結果を得るためのテスト待ちチップ部品と、
前記テスト待ちチップ部品に接続し、前記テスト結果と前記検証ユースケースに対応する参考結果とを比較して、前記テスト待ち設計の前記検証待ち対象に対する検証結果を得るための比較部品と、を含み、
前記検証ユースケースは、前記所定のユースケーステンプレートによって定義されたフォーマットを満たし、前記検証待ち対象は、ニューラルネットワークモデル中の目標演算子またはニューラルネットワークモデルを含む
ことを特徴とするAIチップ検証システム。
【請求項2】
前記所定のユースケーステンプレートは、
前記検証ユースケースの命令フローテンプレートを含む命令フローテンプレートファイルと、
前記検証ユースケースの初期化データテンプレートを含む初期化データテンプレートファイルと、
前記検証ユースケースのレジスタ構成テンプレートを含むレジスタ構成テンプレートファイルと、の中の少なくとも1つを含む
ことを特徴とする請求項1に記載のAIチップ検証システム。
【請求項3】
前記ユースケースジェネレータおよび前記テスト待ちチップ部品に接続し、前記所定のユースケーステンプレートに基づいて、前記検証ユースケースを前記テスト待ちチップ部品に駆動することによって、前記テスト待ち設計によって前記検証ユースケースを実行するための環境ドライバーをさらに含む
ことを特徴とする請求項1または2に記載のAIチップ検証システム。
【請求項4】
前記所定のユースケーステンプレートは、前記検証ユースケースの出力結果テンプレートを含む結果テンプレートファイルを含み、
前記AIチップ検証システムは、前記テスト待ちチップ部品および前記比較部品に接続し、前記結果テンプレートファイルに基づいて、前記テスト待ちチップ部品から前記テスト結果をサンプリングし、サンプリングして得られた前記テスト結果を前記比較部品に伝送するための環境サンプラーをさらに含む
ことを特徴とする請求項1~3のいずれか1項に記載のAIチップ検証システム。
【請求項5】
前記ユースケースジェネレータは、
前記検証待ち対象のパラメータファイルを取得し、前記検証待ち対象の前記パラメータファイルに含まれている対象パラメータを解析することによって、前記検証待ち対象の前記検証ユースケースを生成するためのオリエンテーションジェネレータを含む
ことを特徴とする請求項1~4のいずれか1項に記載のAIチップ検証システム。
【請求項6】
前記パラメータファイルは、固定小数点パラメータファイルおよびネットワーク構成ファイルを含む
ことを特徴とする請求項5に記載のAIチップ検証システム。
【請求項7】
前記所定のユースケーステンプレートは、前記検証ユースケースに対応する参考結果を含む参考結果ファイルを含み、
前記比較部品が比較するときに利用した前記参考結果は、前記所定のユースケーステンプレートから取得したものである
ことを特徴とする請求項5または6に記載のAIチップ検証システム。
【請求項8】
前記ユースケースジェネレータは、
前記検証待ち対象の構成ファイルを取得し、前記構成ファイルに基づいて検証待ち対象の対象パラメータをランダムに生成し、生成された前記対象パラメータに基づいて、前記検証待ち対象の前記検証ユースケースを生成するためのランダムジェネレータを含む
ことを特徴とする請求項1~7のいずれか1項に記載のAIチップ検証システム。
【請求項9】
前記ユースケースジェネレータおよび前記比較部品に接続し、前記ユースケースジェネレータが生成した前記検証ユースケースを実行することによって、前記検証ユースケースに対応する参考結果を得るための参考モデル部品をさらに含む
ことを特徴とする請求項1~8のいずれか1項に記載のAIチップ検証システム。
【請求項10】
前記所定のユースケーステンプレートは、前記検証ユースケースのスケジューリングコア命令フローテンプレートを含むスケジューリングコア命令フローテンプレートファイルを含み、
前記AIチップ検証システムは、前記ユースケースジェネレータ、前記テスト待ちチップ部品、および、前記比較部品に接続し、前記スケジューリングコア命令フローテンプレートファイルに基づいて、前記テスト待ち設計のスケジューリングコア命令フローを生成するためのスケジューリング命令コンパイラをさらに含み、
ここで、前記テスト待ち設計のスケジューリングコア命令フローは、前記検証ユースケース中に含まれており、
前記テスト待ち設計は、前記検証ユースケース中の前記スケジューリングコア命令フローに基づいて、前記検証ユースケース中の命令フローに対して処理を実行する
ことを特徴とする請求項1~9のいずれか1項に記載のAIチップ検証システム。
【請求項11】
前記テスト待ちチップ部品に接続し、前記テスト待ち設計の前記検証ユースケースを実行する性能パラメータを取得し、前記性能パラメータに基づいて性能統計結果を得るための性能統計器をさらに含む
ことを特徴とする請求項1~10のいずれか1項に記載のAIチップ検証システム。
【請求項12】
AIチップ検証方法であって、
検証待ち対象の情報および所定のユースケーステンプレートに基づいて、前記検証待ち対象の検証ユースケースを生成することと、
テスト待ち設計によって前記検証ユースケースを実行してテスト結果を得ることと、
前記テスト結果と前記検証ユースケースに対応する参考結果とを比較して、前記テスト待ち設計の前記検証待ち対象に対する検証結果を得ることと、を含み、
前記検証ユースケースは、前記所定のユースケーステンプレートによって定義されたフォーマットを満たし、前記検証待ち対象は、ニューラルネットワークモデル中の目標演算子またはニューラルネットワークモデルを含む
ことを特徴とするAIチップ検証方法。
【請求項13】
前記所定のユースケーステンプレートは、
前記検証ユースケースの命令フローテンプレートを含む命令フローテンプレートファイルと、
前記検証ユースケースの初期化データテンプレートを含む初期化データテンプレートファイルと、
前記検証ユースケースのレジスタ構成テンプレートを含むレジスタ構成テンプレートファイルと、の中の少なくとも1つを含む
ことを特徴とする請求項12に記載のAIチップ検証方法。
【請求項14】
前記検証待ち対象の情報および所定のユースケーステンプレートに基づいて、前記検証待ち対象の検証ユースケースを生成した後に、
前記所定のユースケーステンプレートに含まれている少なくとも1つのテンプレートファイルに基づいて、前記検証ユースケースを前記テスト待ちチップ部品に駆動することによって、前記テスト待ち設計によって前記検証ユースケースを実行することをさらに含む
ことを特徴とする請求項12または13に記載のAIチップ検証方法。
【請求項15】
前記所定のユースケーステンプレートは、前記検証ユースケースの出力結果テンプレートを含む結果テンプレートファイルを含み、
前記テスト待ち設計によって前記検証ユースケースを実行してテスト結果を得た後に、
前記結果テンプレートファイルに基づいて、前記テスト待ちチップ部品から前記テスト結果をサンプリングし、サンプリングして得られた前記テスト結果を
比較部品に伝送することをさらに含む
ことを特徴とする請求項12~14のいずれか1項に記載のAIチップ検証方法。
【請求項16】
前記検証待ち対象の情報および所定のユースケーステンプレートに基づいて、前記検証待ち対象の検証ユースケースを生成することは、
前記検証待ち対象のパラメータファイルを取得し、前記検証待ち対象の前記パラメータファイルに含まれている対象パラメータを解析することによって、前記検証待ち対象の前記検証ユースケースを生成することを含む
ことを特徴とする請求項12~15のいずれか1項に記載のAIチップ検証方法。
【請求項17】
前記所定のユースケーステンプレートは、前記検証ユースケースの参考結果を含む参考結果ファイルを含む
ことを特徴とする請求項16に記載のAIチップ検証方法。
【請求項18】
前記検証待ち対象の情報および所定のユースケーステンプレートに基づいて、前記検証待ち対象の検証ユースケースを生成することは、
前記検証待ち対象の構成ファイルを取得し、前記構成ファイルに基づいて検証待ち対象の対象パラメータをランダムに生成し、生成された前記対象パラメータに基づいて、前記検証待ち対象の前記検証ユースケースを生成することを含み、
前記所定のユースケーステンプレートは、前記検証ユースケースのスケジューリングコア命令フローテンプレートを含むスケジューリングコア命令フローテンプレートファイルを含み、
前記AIチップ検証方法は、
前記スケジューリングコア命令フローテンプレートファイルに基づいて、前記テスト待ち設計のスケジューリングコア命令フローを生成することと、
前記スケジューリングコア命令フローに基づいて、前記検証待ち対象の検証ユースケースを生成することと、
前記テスト待ち設計によって、前記検証ユースケース中の前記スケジューリングコア命令フローに基づいて、前記検証ユースケース中の命令フローに対して処理を実行することと、をさらに含む
ことを特徴とする請求項12~17のいずれか1項に記載のAIチップ検証方法。
【請求項19】
コンピューターデバイスであって、
メモリと、プロセッサと、メモリに記憶されており、プロセッサ上で
実行可能
なコンピュータープログラムと、を含み、
前記プロセッサによって前記プログラムが実行されるときに、請求項12~18のいずれか1項に記載の方法が実現される
ことを特徴とするコンピューターデバイス。
【請求項20】
コンピュータープログラムが記憶されているコンピューター可読記録媒体であって、
前記プログラムがプロセッサによって実行されるときに、前記プロセッサが請求項12~18のいずれか1項に記載の方法を実現するようにする
ことを特徴とするコンピューター可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人工知能(Artificial Intelligence、AI)チップ検証の分野に関し、具体的には、AIチップ検証システム、方法、デバイス、及び記録媒体に関する。
【背景技術】
【0002】
検証は、チップ開発過程で非常に重要な段階であり、チップを製造業者に引き渡して生産する前に、チップの機能の正確性を保証するために検証が必要である。
【0003】
AIチップの開発プロジェクトでは、様々なタイプのニューラルネットワークの導入により、チップはより強い適応性およびロバスト性を有することが要求され、したがって、チップの機能の検証も様々なタイプのニューラルネットワークに適応されることが要求される。
【発明の概要】
【0004】
本発明は、AIチップ検証システム、方法、デバイス、記録媒体、及びコンピュータープログラム製品を提供する。
【0005】
本発明の実施例の第1の態様によると、AIチップ検証システムを提供し、前記システムは、検証待ち対象の情報および所定のユースケーステンプレートに基づいて前記検証待ち対象の検証ユースケースを生成するためのユースケースジェネレータと、前記ユースケースジェネレータに接続し、テスト待ち設計によって前記検証ユースケースを実行してテスト結果を得るためのテスト待ちチップ部品と、前記テスト待ちチップ部品に接続し、前記テスト結果と前記検証ユースケースに対応する参考結果とを比較して、前記テスト待ち設計の前記検証待ち対象に対する検証結果を得るための比較部品と、を含み、前記検証ユースケースは、前記所定のユースケーステンプレートによって定義されたフォーマットを満たし、前記検証待ち対象は、ニューラルネットワークモデル中の目標演算子またはニューラルネットワークモデルを含む。
【0006】
本発明の実施例において、フォーマットが事前に定義された所定のユースケーステンプレートによって検証ユースケースを生成することによって、本発明の実施例によって提供されるAIチップ検証システムが、様々なタイプのニューラルネットワークモデルを検証するように適合させることができる。
【0007】
いくつかのオプションの実施例において、前記所定のユースケーステンプレートは、前記検証ユースケースの命令フローテンプレートを含む命令フローテンプレートファイルと、前記検証ユースケースの初期化データテンプレートを含む初期化データテンプレートファイルと、前記検証ユースケースのレジスタ構成テンプレートを含むレジスタ構成テンプレートファイルと、の中の少なくとも1つを含む。
【0008】
いくつかのオプションの実施例において、前記システムは、前記ユースケースジェネレータおよび前記テスト待ちチップ部品に接続し、前記所定のユースケーステンプレートに基づいて、前記検証ユースケースを前記テスト待ちチップ部品に駆動することによって、前記テスト待ち設計によって前記検証ユースケースを実行するための環境ドライバーをさらに含む。
【0009】
いくつかのオプションの実施例において、前記所定のユースケーステンプレートは、前記検証ユースケースの出力結果テンプレートを含む結果テンプレートファイルを含み、前記システムは、前記テスト待ちチップ部品および前記比較部品に接続し、前記結果テンプレートファイルに基づいて、前記テスト待ちチップ部品から前記テスト結果をサンプリングし、サンプリングして得られた前記テスト結果を前記比較部品に伝送するための環境サンプラーをさらに含む。
【0010】
いくつかのオプションの実施例において、前記ユースケースジェネレータは、前記検証待ち対象のパラメータファイルを取得し、前記検証待ち対象の前記パラメータファイルに含まれている対象パラメータを解析することによって、前記検証待ち対象の前記検証ユースケースを生成するためのオリエンテーションジェネレータを含む。
【0011】
本発明の実施例において、ニューラルネットワークモデルの層レベルを検証することができ、さらに、ニューラルネットワークモデル全体を検証することができて、テスト待ち設計のニューラルネットワークに対する検証の深さおよび柔軟性を向上させた。
【0012】
いくつかのオプションの実施例において、前記パラメータファイルは、固定小数点パラメータファイルおよびネットワーク構成ファイルを含む。
【0013】
いくつかのオプションの実施例において、前記所定のユースケーステンプレートは、前記検証ユースケースに対応する参考結果を含む参考結果ファイルを含み、前記比較部品が比較するときに利用した前記参考結果は、前記所定のユースケーステンプレートから取得したものである。
【0014】
本発明の実施例において、検証ユースケースから当該検証ユースケースの参考結果を直接取得することができ、参考モデル部品を利用して検証ユースケースを実行する必要がなくなり、比較装置の実行効率を向上させ、テスト待ち設計に対する検証効率を向上させた。
【0015】
いくつかのオプションの実施例において、前記ユースケースジェネレータは、前記検証待ち対象の構成ファイルを取得し、前記構成ファイルに基づいて検証待ち対象の対象パラメータをランダムに生成し、生成された前記対象パラメータに基づいて、前記検証待ち対象の前記検証ユースケースを生成するためのランダムジェネレータを含む。
【0016】
本発明の実施例において、ランダムジェネレータは、構成ファイルによって、特定の検証ユースケースに基づいて、ランダム技術を利用して異なる検証ユースケースを生成することによって、検証シナリオがより包括的になり、検証の完全性を効果的に向上させた。
【0017】
いくつかのオプションの実施例において、前記システムは、前記ユースケースジェネレータおよび前記比較部品に接続し、前記ユースケースジェネレータが生成した前記検証ユースケースを実行することによって、前記検証ユースケースに対応する参考結果を得るための参考モデル部品をさらに含む。
【0018】
いくつかのオプションの実施例において、前記所定のユースケーステンプレートは、前記検証ユースケースのスケジューリングコア命令フローテンプレートを含むスケジューリングコア命令フローテンプレートファイルを含み、前記システムは、前記ユースケースジェネレータ、前記テスト待ちチップ部品、および、前記比較部品に接続し、前記スケジューリングコア命令フローテンプレートファイルに基づいて、前記テスト待ち設計のスケジューリングコア命令フローを生成するためのスケジューリング命令コンパイラをさらに含み、ここで、前記テスト待ち設計のスケジューリングコア命令フローは、前記検証ユースケース中に含まれており、前記テスト待ち設計は、前記検証ユースケース中の前記スケジューリングコア命令フローに基づいて、前記検証ユースケース中の命令フローに対して処理を実行する。
【0019】
本発明の実施例において、レベル1のDUTに対するAIチップ検証システムの他のモジュールを再利用した。チップ検証の作業量を削減し、テスト待ち設計に対する検証効率を向上させ、検証リソースを節約した。
【0020】
いくつかのオプションの実施例において、前記システムは、前記テスト待ちチップ部品に接続し、前記テスト待ち設計の前記検証ユースケースを実行する性能パラメータを取得し、前記性能パラメータに基づいて性能統計結果を得るための性能統計器をさらに含む。
【0021】
本発明の実施例において、性能統計器は、テスト待ち設計によってニューラルネットワークモデルの層レベルの検証ユースケースを実行する演算時間および帯域幅を統計することができ、さらに、テスト待ち設計によってニューラルネットワークモデル全体のネットワークレベルの検証ユースケースを実行する演算時間および帯域幅を統計することができ、テスト待ち設計に対する検証の性能統計を強化した。
【0022】
本発明の実施例の第2の態様によると、AIチップ検証方法を提供し、前記方法は、検証待ち対象の情報および所定のユースケーステンプレートに基づいて、前記検証待ち対象の検証ユースケースを生成することと、テスト待ち設計によって前記検証ユースケースを実行してテスト結果を得ることと、前記テスト結果と前記検証ユースケースに対応する参考結果とを比較して、前記テスト待ち設計の前記検証待ち対象に対する検証結果を得ることと、を含み、前記検証ユースケースは、前記所定のユースケーステンプレートによって定義されたフォーマットを満たし、前記検証待ち対象は、ニューラルネットワークモデル中の目標演算子またはニューラルネットワークモデルを含む。
【0023】
本発明の実施例において、検証待ち対象の情報に基づいて生成した検証ユースケースは、所定のユースケーステンプレートに事前に定義されたフォーマットに基づいて生成した検証ユースケースである。異なるタイプのニューラルネットワークに対応する検証待ち対象によって生成された検証ユースケースが統一されたフォーマットを有するで、本発明の実施例によって提供されるAIチップ検証システムが、様々なタイプのニューラルネットワークを検証するように適合させることができる。
【0024】
いくつかのオプションの実施例において、前記所定のユースケーステンプレートは、前記検証ユースケースの命令フローテンプレートを含む命令フローテンプレートファイルと、前記検証ユースケースの初期化データテンプレートを含む初期化データテンプレートファイルと、前記検証ユースケースのレジスタ構成テンプレートを含むレジスタ構成テンプレートファイルと、の中の少なくとも1つを含む。
【0025】
いくつかのオプションの実施例において、前記検証待ち対象の情報および所定のユースケーステンプレートに基づいて、前記検証待ち対象の検証ユースケースを生成した後に、前記所定のユースケーステンプレートに基づいて、前記検証ユースケースを前記テスト待ちチップ部品に駆動することによって、前記テスト待ち設計によって前記検証ユースケースを実行することをさらに含む。
【0026】
いくつかのオプションの実施例において、前記所定のユースケーステンプレートは、前記検証ユースケースの出力結果テンプレートを含む結果テンプレートファイルを含み、前記テスト待ち設計によって前記検証ユースケースを実行してテスト結果を得た後に、前記結果テンプレートファイルに基づいて、前記テスト待ちチップ部品から前記テスト結果をサンプリングし、サンプリングして得られた前記テスト結果を前記比較部品に伝送することをさらに含む。
【0027】
いくつかのオプションの実施例において、前記検証待ち対象の情報および所定のユースケーステンプレートに基づいて、前記検証待ち対象の検証ユースケースを生成することは、前記検証待ち対象のパラメータファイルを取得し、前記検証待ち対象の前記パラメータファイルに含まれている対象パラメータを解析することによって、前記検証待ち対象の前記検証ユースケースを生成することを含む。
【0028】
いくつかのオプションの実施例において、前記パラメータファイルは、固定小数点パラメータファイルおよびネットワーク構成ファイルを含む。
【0029】
いくつかのオプションの実施例において、前記所定のユースケーステンプレートは、前記検証ユースケースの参考結果を含む参考結果ファイルを含む。
【0030】
いくつかのオプションの実施例において、前記検証待ち対象の情報および所定のユースケーステンプレートに基づいて、前記検証待ち対象の検証ユースケースを生成することは、前記検証待ち対象の構成ファイルを取得し、前記構成ファイルに基づいて検証待ち対象の対象パラメータをランダムに生成し、生成された前記対象パラメータに基づいて、前記検証待ち対象の前記検証ユースケースを生成することを含む。
【0031】
いくつかのオプションの実施例において、前記方法は、参考モデル部品を利用して前記検証ユースケースを実行して対応する参考結果を得ることをさらに含む。
【0032】
いくつかのオプションの実施例において、前記所定のユースケーステンプレートは、前記検証ユースケースのスケジューリングコア命令フローテンプレートを含むスケジューリングコア命令フローテンプレートファイルを含み、前記方法は、前記スケジューリングコア命令フローテンプレートファイルに基づいて、前記テスト待ち設計のスケジューリングコア命令フローを生成することと、前記スケジューリングコア命令フローに基づいて、前記検証待ち対象の検証ユースケースを生成することと、前記テスト待ち設計によって、前記検証ユースケース中の前記スケジューリングコア命令フローに基づいて、前記検証ユースケース中の命令フローに対して処理を実行することと、をさらに含む。
【0033】
いくつかのオプションの実施例において、前記方法は、前記テスト待ち設計の前記検証ユースケースを実行する性能パラメータを取得し、前記性能パラメータに基づいて性能統計結果を得ることをさらに含む。
【0034】
本発明の実施例の第3の態様によると、コンピューターデバイスを提供し、当該デバイスは、メモリと、プロセッサと、メモリに記憶されており、プロセッサ上で運行可能のコンピュータープログラムと、を含み、前記プロセッサによって前記プログラムが実行されるときに、第2の態様のいずれか1項に記載のAIチップ検証方法が実現される。
【0035】
本発明の実施例の第4の態様によると、コンピュータープログラムが記憶されているコンピューター可読記録媒体を提供し、前記プログラムがプロセッサによって実行されるときに、前記プロセッサが第2の態様のいずれか1項に記載のAIチップ検証方法を実現する。
【0036】
本発明の実施例の第5の態様によると、コンピュータープログラムを含むコンピュータープログラム製品を提供し、前記プログラムがプロセッサによって実行されるときに、前記プロセッサが第2の態様のいずれか1項に記載のAIチップ検証方法を実現する。
【0037】
上記の一般的な説明および以下の詳細な説明は、例示的および解釈的なものに過ぎず、本発明を限定するものではないことを理解すべきである。
【図面の簡単な説明】
【0038】
ここでの図面は、明細書に組み込まれて本明細書の一部を構成し、これら図面は本発明に一致する実施例を示し、明細書とともに本発明の技術的解決策を説明する。
【
図1】例示的な1実施例に係るAIチップ検証システムを示す模式図である。
【
図2】例示的な1実施例に係る所定のユースケーステンプレートを示す模式図である。
【
図3】例示的なもう1実施例に係るAIチップ検証システムを示す模式図である。
【
図4】例示的なもう1実施例に係る所定のユースケーステンプレートを示す模式図である。
【
図5】例示的な別の1実施例に係るAIチップ検証システムを示す模式図である。
【
図6】例示的なさらなる1実施例に係るAIチップ検証システムを示す模式図である。
【
図7】例示的な1実施例に係る構成ファイルを示す模式図である。
【
図8】例示的な1実施例に係る二次テスト待ち設計を示す模式図である。
【
図9】例示的なさらなる1実施例に係るAIチップ検証システムを示す模式図である。
【
図10】例示的な1実施例に係るAIチップ検証方法を示すフローチャートである。
【発明を実施するための形態】
【0039】
ここで、例示的な実施例を詳細に説明し、その例を図面に示す。以下の説明が図面を言及している場合、特に明記しない限り、異なる図面での同じ符号は同じまたは類似の要素を表す。以下の例示的な実施例で説明する実施形態は、本発明に一致するすべての実施形態を表すわけではない。逆に、それらは、添付の特許請求の範囲に詳述されているように、本発明のいくつかの態様に一致する装置と方法の単なる例である。
【0040】
本発明で使用する用語は、特定の実施例を説明することのみを目的としており、本発明を限定することを意図するものではない。本発明および添付の特許請求の範囲で使用される「1種」、「前記」、および、「当該」の単数形も、文脈が他の意味を明確に示さない限り、複数形を含むことを意図する。本明細書で使用される「および/または」という用語は、1つまたは複数の関連するリストされた項目の任意またはすべての可能な組み合わせを指すことをさらに理解すべきである。
【0041】
本発明では、第1、第2、第3などの用語を使用してさまざまな情報を説明することができるが、これら情報はこれら用語に限定されるべきではないことを理解すべきである。これら用語は、同じタイプの情報を互いに区別するためにのみ使用される。たとえば、本発明の範囲から逸脱することなく、第1情報はまた第2情報と呼ばれ得、同様に、第2情報もまた第1情報と呼ばれ得る。文脈に応じて、ここで使用される「もし」という単語は、「……と」または「……場合」または「確定されたことに応答して」と解釈することができる。
【0042】
以下、本発明によって提供されるAIチップ検証の技術的解決策をより明確にするために、図面を参照して本発明の実施例の技術的解決策さらに詳細に説明する。
【0043】
図1を参照すると、
図1は、本発明によって提供される実施例のAIチップ検証システムを示す模式図である。ここで、
図1に示すように、当該AIチップ検証システムは、ユースケースジェネレータ101と、テスト待ちチップ部品102と、比較部品103と、を含み得る。ここで、ユースケースジェネレータ101は、検証ユースケースを生成する。当該検証ユースケースは、テスト待ちチップ部品102に入力され、テスト待ち設計処理が実行されて、テスト結果を得られる。当該テスト結果および当該テスト結果に対応する検証ユースケースは、比較部品103に入力され、処理が実行されて、テスト待ち設計の検証結果が得られる。
【0044】
いくつかの例において、AIチップ検証では、新たに設計したAIがニューラルネットワークモデル中の特定の操作(演算子)を実装できるか否かを検証することができ、たとえば、当該AIチップを用いてニューラルネットワーク中の畳み込み、プーリングなどの操作を実行できるか否かを検証することができる。このような検証ニューラルネットワークモデル中の特定の演算子の場合、ニューラルネットワークモデル中の演算子を検証待ち対象として設定する。いくつかの例において、さらに、新たに設計したAIチップが完全なニューラルネットワークモデルを構築できるか否かを検証することができる。このような完全なニューラルネットワークモデルを検証する場合、ニューラルネットワークモデル全体を検証待ち対象として設定する。ここで、ニューラルネットワークモデルは、畳み込みニューラルネットワークなどの、画像識別に用いられるニューラルネットワークであり得、また、音声識別に用いられるニューラルネットワークまたはテキスト識別に用いられるニューラルネットワークであり得、本発明はこれに対して限定しない。
【0045】
図1に示すAIチップ検証システムでは、ユースケースジェネレータ101は、検証待ち対象の情報を解析して、当該検証待ち対象の検証ユースケースを生成するためのパラメータを得ることができる。ここで、検証待ち対象の情報は、たとえば、検証待ち対象の特徴を参考して、検証待ち対象の設計仕様から抽出することができる。検証待ち対象の情報は、固定小数点パラメータファイルおよびネットワーク構成ファイルに含まれているパラメータ情報であってもよいし、当該検証待ち対象に対応する構成ファイル中のパラメータ情報であってもよい。固定小数点パラメータファイルは、たとえば、AIネットワークの特性に対して、浮動小数点パラメータに対して固定小数点処理を実行して得られたパラメータであり得る。たとえば、ニューラルネットワークモデル中の畳み込み操作を検証待ち対象とする場合、ユースケースジェネレータ101は、当該畳み込み操作に対応する固定小数点パラメータファイルおよびネットワーク構成ファイル中のパラメータ情報を解析して、当該畳み込み操作の検証ユースケースを生成するためのパラメータを得ることができる。または、完全なニューラルネットワークモデルを検証待ち対象とする場合、ユースケースジェネレータ101は、当該ニューラルネットワークモデルに対応する固定小数点パラメータファイルおよびネットワーク構成ファイルを解析して、当該ニューラルネットワークモデルの検証ユースケースを生成するためのパラメータを得得ることができる。
【0046】
ユースケースジェネレータ101は、検証待ち対象の検証ユースケースを生成するためのパラメータを得た後に、当該パラメータおよび所定のユースケーステンプレートに定義されたフォーマットに基づいて、検証待ち対象の検証ユースケースを生成する。ここで、所定のユースケーステンプレートは、生成しようとする検証ユースケース中のデータのフォーマットを定義する。たとえば、所定のユースケーステンプレートは、生成しようとする検証ユースケースの特定部分のデータのフォーマットを定義する。具体的に、所定のユースケーステンプレートは、生成しようとする検証ユースケース中の命令フローデータおよび初期化データのフォーマットを定義することができ、つまり、特定部分(命令フローデータおよび初期化データ)のフォーマットを定義することができる。生成しようとする検証ユースケース中の特定部分以外のデータフォーマットの場合、所定のユースケーステンプレートは、具体的な状況に応じて定義することができる。または、所定のユースケーステンプレートは、生成しようとする検証ユースケースのすべてのデータに対してフォーマットを定義することができ、本発明の実施例はこれに対して限定しない。
【0047】
いくつかのオプションの実施例において、前記所定のユースケーステンプレートは、前記検証ユースケースの命令フローテンプレートを含む命令フローテンプレートファイルと、前記検証ユースケースの初期化データテンプレートを含む初期化データテンプレートファイルと、前記検証ユースケースのレジスタ構成テンプレートを含むレジスタ構成テンプレートファイルと、の中の少なくとも1つを含む。
【0048】
前記実施例において、ユースケースジェネレータ101は、所定のユースケーステンプレート中の各々のテンプレートファイルに基づいて、検証ユースケース中の異なるデータを生成することができる。ユースケースジェネレータ101は、命令フローテンプレートファイル中の命令フローテンプレートに基づいて、当該命令フローテンプレートに定義されたフォーマットの命令フローを生成し、初期化データテンプレートファイル中の初期化データテンプレートに基づいて、当該初期化データテンプレートに定義されたフォーマットの初期化データを生成し、レジスタ構成テンプレートファイル中のレジスタ構成テンプレートに基づいて、当該レジスタ構成テンプレートに定義されたフォーマットのレジスタ構成データを生成することができる。ユースケースジェネレータ101は、所定のユースケーステンプレートによって定義されたフォーマットに基づいて、検証待ち対象の検証ユースケースを生成することができる。
【0049】
例示的に、
図2は、所定のユースケーステンプレートを示す。ユースケースジェネレータ101は、「命令フロー」のテンプレートファイルに基づいて検証ユースケース中の命令フローを生成し、「画像/重みデータ」のテンプレートファイルおよび初期化リスト(Initial list)のテンプレートファイルに基づいて、「画像/重みデータ」および「Initial list」データなどの、検証ユースケース中の初期化データを生成し、レジスタ構成(Register config)のテンプレートファイルに基づいて、検証ユースケース中のレジスタ構成データを生成することができる。
【0050】
ユースケースジェネレータ101が検証ユースケースを生成した後に、テスト待ちチップ部品102は、検証ユースケースを取得し、テスト待ち設計(Design Under Test、DUT)によって当該検証ユースケースを実行して、テスト結果を得ることができる。
【0051】
いくつかの例において、複数のテストユースケースを使用してテスト待ちチップ部品をテストすることができる。複数のテストユースケースには、複数の異なる命令フローおよび/または異なる画像/重みデータが存在することができる。
【0052】
いくつかのオプションの実施例において、
図3に示すように、前記システムは、環境ドライバー301をさらに含み、当該環境ドライバー301は、前記所定のユースケーステンプレートに基づいて、前記検証ユースケースを前記テスト待ちチップ部品102中に駆動して、前記テスト待ち設計によって前記検証ユースケースを実行する。
【0053】
前記実施例において、環境ドライバー301は、検証ユースケース中の具体的なデータを解析して、解析後のデータに対して激励駆動を実行することができる。たとえば、環境ドライバー301は、検証ユースケース中の命令フロー、初期化データ、および、レジスタ構成データをテスト待ちチップ部品102に送信し、および/または、これらデータに基づいてテスト待ちチップ部品102を構成することによって、テスト待ち設計によって当該検証ユースケースを実行するようにする。
【0054】
図2に示す所定のユースケーステンプレートに基づいて生成された検証ユースケースの例を説明する。環境ドライバー301は、検証ユースケース中の初期化データ、命令フロー、および、レジスタ構成データを解析し、UVM(Universal Verification Methodology、ユニバーサル検証方法論)中のDriver構成要素を利用して、テスト待ちチップ部品102の4つの部分に対して激励駆動を実行することができる。
【0055】
第1の部分において、検証ユースケース中のレジスタ構成データを利用してテスト待ち設計のレジスタを配置する。ここで、レジスタ構成操作は、AHB(Advanced High performance Bus、高度な高性能バス)およびAPB(Advanced Peripheral Bus、高度なペリフェラルバス)などインターフェースプロトコルに厳密に従う必要がある。
【0056】
第2部分において、テスト待ち設計に接続された外部記憶モデル(たとえば、vip model)を初期化する。ここで、外部記憶モデルの初期化は、vip backdoor技術を利用して外部記憶モジュールに使用されるmemory領域を操作する必要がある。
【0057】
第3部分において、テスト設計待ち内部記憶モデル(たとえば、memory model)を初期化する。ここで、DUT内部記憶モデルの初期化は、DUT memory関数をカプセル化し、内部共有ストレージスペースに対して精密なアドレス書き込み操作を実行する必要がある。
【0058】
第4部分において、検証ユースケース中の命令フローに対して激励駆動を実行する。UVM Driverのタイミング特性を利用して、検証ユースケース命令フローファイル中の命令フローを所定のフォーマットに従ってDUTの命令インターフェースに送信する。
【0059】
環境ドライバー301は、検証ユースケースのデータをテスト待ちチップ部品102中に駆動し、テスト待ち設計によって前記検証ユースケースを実行する。当該テスト待ちチップ部品102に含まれているテスト待ち設計は、検証待ちの新たに設計した完全なチップであってもよいし、検証待ちの完全なチップを構成する新たに設計した特定の部分の回路および/またはコードであってもよいし、たとえば特定の機能を完了した回路および/またはコードであり得、本発明は限定しない。
【0060】
テスト待ちチップ部品102中のテスト待ち設計によって検証ユースケースを実行した後に、検証ユースケースに対応するテスト結果を得る。比較部品103は、テスト待ちチップ部品102からテスト待ち設計によって検証ユースケースを実行した後のテスト結果を取得することができる。
【0061】
いくつかのオプションの実施例において、前記所定のユースケーステンプレートは、前記検証ユースケースの出力結果テンプレートを含む結果テンプレートファイルを含む。
図3に示すように、前記システムは、環境サンプラー302をさらに含み、当該環境サンプラー302は、前記結果テンプレートファイルに基づいて、前記テスト待ちチップ部品102から前記テスト結果をサンプリングし、サンプリングして得られた前記テスト結果を前記比較部品103に伝送する。
【0062】
図5に示した所定のユースケーステンプレートを参照すると、検証ユースケースの出力結果テンプレートを含む、ダンプリスト(Dump list)テンプレートファイルを、結果テンプレートファイルとして使用することができる。環境サンプラー302は、「Dump list」のテンプレートファイル中の出力結果テンプレートに基づいて、テスト待ちチップ部品102からテスト待ち設計をサンプリングして検証ユースケースを実行した後にテスト結果を得ることができる。
【0063】
たとえば、環境サンプラー302は、UVM中のMonitor構成要素を利用して拡張して、結果データdump_dataのサンプリングタスクをカスタマイズし、DUT入力/出力インターフェースのタイミング要件に従って、外部記憶モデル中の結果データを一時アレイにサンプリングすることができる。次に、結果テンプレートファイル中の出力結果テンプレートのフォーマット、たとえば「Dump list」のテンプレートファイルのフォーマットに基づいて、一時アレイをファイルに記憶する。ここで、サンプリングした結果データは、AIネットワークのネットワーク層レベル演算結果を含み、サンプリング条件は、msg信号などの、ネットワーク層が終了された信号である。
【0064】
ここで、
図3に示すAIチップ検証システム中の環境ドライバー301および環境サンプラー302は、テスト待ちチップ部品102から独立している。他の実装可能な形態において、テスト待ちチップ部品102中に環境ドライバー301および環境サンプラー302を統合することができ、本発明はこれに対して具体的に限定しない。
【0065】
比較部品103中のテスト結果と比較するための参考結果は、比較部品103により直接検証ユースケースから取得した結果データ、または、検証ユースケース参考モデル部品を利用して検証ユースケースを実行して得た結果データであり得る。ここで、参考モデル部品は、検証待ちAIチップまたはテスト待ち設計の各機能を検証するためのモデルであり、テスト待ち設計のDUTの論理動作をシミュレートする役割を果たす。たとえば、System Cコーディングモデルを使用して参考モデル部品を実現することができる。当該参考モデル部品は、比較のためのゴールデン(Golden)結果を生成する役割を果たす。Golden結果を生成するときに、環境サンプラーで収集されたデータとの一貫性を保証する必要がある。いくつかの実装可能な形態において、参考モデル部品は、単独の1つの構成要素であり得る。
【0066】
いくつかの実装可能な形態において、比較部品103は、環境サンプラー302のテスト結果および当該検証ユースケースに対応する参考結果に対して正確性比較を実行する役割を果たし、また、様々な形の結果データの比較を支援する。たとえば、DUT内部記憶結果データの比較を支援し、外部記憶モデル中のネットワーク結果の比較を支援する。ネットワークの各ネットワーク層が終了したときにデータ比較を実行することができ、各々の層のデータ結果を比較することができる。検証ユースケースの実行が終了したときに、すべてのネットワーク層のデータ結果を比較することができる。したがって、開発者は、当該検証結果に基づいて現在検証するテスト待ち設計に的を絞った変更を加えることができる。
【0067】
本発明の実施例において、フォーマットが事前に定義された所定のユースケーステンプレートによって検証ユースケースを生成することによって、異なるタイプのニューラルネットワークに対応する検証待ち対象によって生成された検証ユースケースが統一されたフォーマットを有するで、本発明の実施例によって提供されるAIチップ検証システムが、様々なタイプのニューラルネットワークを検証するように適合させることができる。
【0068】
いくつかのオプションの実施例において、
図5に示すように、本発明の別の実施例は、AIチップ検証システムを提供し、当該システム中のユースケースジェネレータ101は、オリエンテーションジェネレータ401を含む。オリエンテーションジェネレータ401は、検証待ち対象のパラメータファイルを取得し、検証待ち対象のパラメータファイルに含まれている検証待ち対象の対象パラメータを解析して、検証待ち対象の検証ユースケースを生成する。ここで、パラメータファイル中の対象パラメータは、検証待ち対象の検証ユースケースを生成するときにオリエンテーションジェネレータ401によって必要とされるパラメータである。たとえば、パラメータファイルは、固定小数点パラメータファイルまたはネットワーク構成ファイル中の1つまたは複数であってもよいし、または、対象パラメータを含む他のパラメータファイルであってもよく、本発明の実施例はこれに対して限定しない。
【0069】
パラメータファイルが固定小数点パラメータファイルおよびネットワーク構成ファイルのような2つのファイルを含む例をとると、オリエンテーションジェネレータ401は、検証待ち対象の固定小数点パラメータファイルおよびネットワーク構成ファイルを取得し、2つのファイルに含まれている対象パラメータを解析して、対象パラメータに基づいて検証待ち対象の検証ユースケースを生成することができる。
【0070】
具体的に、プログラミング言語としてC++を例として説明する。オリエンテーションジェネレータ401は、ニューラルネットワークモデルの固定小数点パラメータファイルおよびネットワーク構成ファイルを解析し、解析して得られた対象パラメータに基づいてPrintf関数を呼び出して命令フローを生成する。オリエンテーションジェネレータ401は、生成された命令フローに基づいて、所定のユースケーステンプレート中の命令フローテンプレートによって定義されたフォーマットに従って、検証ユースケースの命令フローを生成し、さらに、所定のユースケーステンプレート中の他のテンプレートファイルに基づいて、検証ユースケース中の他のデータを生成することによって、完全な検証ユースケースを得る。環境ドライバー301(
図5に図示せず)を利用して、検証ユースケースのデータをテスト待ちチップ部品102に駆動し、テスト待ち設計のDUTによって検証ユースケースを実行する。環境サンプラー302(
図5に図示せず)を利用して検証ユースケースに対応するテスト結果をサンプリングして得る。関連する具体的な過程は、前述した実施例中の関連する説明と同様であり、ここでは繰り返して説明しない。
【0071】
本発明の実施例において、オリエンテーションジェネレータ401によって生成された検証ユースケースには、当該検証ユースケースの参考結果が含まれ得る。これに応じて、所定のユースケーステンプレートは、参考結果ファイルを含み、検証ユースケースの参考結果を含む。
図4に示す所定のユースケーステンプレートの例をとると、ここで「層レベルデータ」のテンプレートファイルは、参考結果ファイルとして使用されることができ、オリエンテーションジェネレータ401によって生成された当該検証ユースケースの参考結果を含む。このようにすると、比較部品103は、直接検証ユースケースから参考結果を取得し、参考結果とテスト待ちチップ部品102から得たテスト結果とを比較することができる。
【0072】
実装可能なもう1形態において、オリエンテーションジェネレータ401は、検証ユースケースを生成するときに、当該検証ユースケースの参考結果を生成するかに関わらず、いずれも参考モデル部品を利用して当該検証ユースケースを実行して参考結果を得ることができ、参考モデル部品によって参考結果を比較部品103に伝送する。ここで、参考モデル部品は、検証待ちチップまたはテスト待ち設計の各機能を検証するモデルであり、テスト待ち設計のDUTの論理動作をシミュレートする役割を果たす。
【0073】
本実施例のAIチップ検証方法によると、比較部品が検証ユースケースから当該検証ユースケースの参考結果を直接取得することができ、参考モデル部品を利用して検証ユースケースを実行する必要がなくなり、比較装置の実行効率を向上させ、テスト待ち設計に対する検証効率を向上させた。
【0074】
いくつかのオプションの実施例において、オリエンテーションジェネレータ401は、ニューラルネットワークモデル中の特定の層または複数の特定の層を検証待ち対象とする検証ユースケースを生成することができる。たとえば、畳み込みニューラルネットワークモデル中の特定の畳み込み層を検証待ち対象とする検証ユースケースを生成することができる。ニューラルネットワークモデル中の特定の層または複数の特定の層を検証待ち対象とすることを、層レベル検証対象と呼ぶことができる。
【0075】
図5に示すAIチップ検証システムの例をとると、層レベル検証を支援するときに、オリエンテーションジェネレータ401は、ニューラルネットワークモデル中の目標ネットワーク層に対応するパラメータファイルを解析し、所定のユースケーステンプレートによって定義されたフォーマットに基づいて、目標ネットワーク層を層レベル検証対象とする検証ユースケースを生成することができる。ここで、目標ネットワーク層は、ニューラルネットワークモデル中の検証待ちの1つまたは複数のネットワーク層であり得、たとえば、1つの畳み込み層、プーリング層、または、複数の畳み込み層、複数の完全接続層などであり得る。
【0076】
具体的に、たとえば、畳み込みニューラルネットワークモデル中の特定の畳み込み層を検証することで、テスト待ち設計によって当該畳み込み層の演算を実行できるか否かをテストする。本発明の実施例において、オリエンテーションジェネレータ401は、当該ニューラルネットワークモデル中の当該畳み込み層に対応する固定小数点パラメータファイルおよびネットワーク構成ファイルを解析し、所定のユースケーステンプレートによって定義されたフォーマットに基づいて、当該畳み込み層を層レベル検証対象とする検証ユースケースを生成する。
【0077】
本発明の実施例において、オリエンテーションジェネレータ401は、さらに、特定の完全ニューラルネットワークモデルを検証待ち対象とする検証ユースケースを生成することができる。たとえば、畳み込みニューラルネットワークモデルに対応する検証ユースケースを生成することができる。このようにニューラルネットワークモデルの全体を検証待ち対象とすることを、ネットワークレベル検証対象と呼ぶことができる。
【0078】
具体的に、たとえば、画像識別のための畳み込みニューラルネットワークモデルを検証することで、テスト待ち設計によって当該畳み込みニューラルネットワークモデル中の演算を完全に実行できるか否かをテストすることができる。本発明の実施例において、オリエンテーションジェネレータ401は、当該畳み込みニューラルネットワークモデルに対応する固定小数点パラメータファイルおよびネットワーク構成ファイルに解析し、所定のユースケーステンプレートによって定義されたフォーマットに基づいて、当該畳み込みニューラルネットワークモデルをネットワークレベル検証対象とする検証ユースケースを生成する。
【0079】
本発明の実施例によって提供されるAIチップ検証方法によると、ニューラルネットワークモデルの層レベルを検証することができ、さらにニューラルネットワークモデルの全体を検証することができ、テスト待ち設計のニューラルネットワークに対する検証の深さおよび柔軟性を向上させた。したがって、チップ開発で発生した欠陥(Bug)をより正確に特定して修正し、チップ検証の収束をスピードアップする。
【0080】
いくつかのオプションの実施例において、
図6に示すように、本発明の更なる実施例は、AIチップ検証システムを提供し、当該システムでは、ユースケースジェネレータ101は、ランダムジェネレータ501を含み、検証ユースケースと比較装置103との間は、参考モデル部品502をさらに含む。ここで、参考モデル部品502は、検証待ちAIチップまたはテスト待ち設計の各機能を検証するモデルであり、テスト待ち設計のDUTの論理動作をシミュレートする役割を果たす。たとえば、System Cコーディングモデルを利用して実現する。比較のためのGolden結果を生成する役割を果たす。Golden結果を生成するときに環境サンプラーによって収集されるデータとの一貫性を保証する必要がある。
【0081】
本実施例において、ランダムジェネレータ501は、検証待ち対象の構成ファイルを取得し、構成ファイル中のパラメータに基づいてランダム化技術を利用して、検証待ち対象の対象パラメータを生成し、ランダムに生成された対象パラメータを利用して検証ユースケースを生成する。ここで、構成ファイルは、検証者が検証待ちのテスト待ち設計に対して構成したファイルであり、たとえば検証者は、Excelなどのテーブルツールを利用して、パラメータ構成のテーブルファイルを生成することができる。
図7は、テーブル構成ファイルを示す。
【0082】
ランダムジェネレータ501は、構成ファイルを解析し、構成ファイルのパラメータを利用して、検証待ち対象の対象パラメータをランダムに生成し、および/または、対象パラメータの数値を変更することができる。たとえば、SystemVerilog言語のrandom constraint技術を利用して、ソースオペランド範囲、ソースオペランドアドレス、目標オペランド範囲、目標オペランドアドレス、および、演算子の計算パラメータなどをランダムに生成することができる。
図7に例示した構成ファイルの例をとると、ランダムジェネレータ501は、テーブル構成ファイル中のcase-1中のn個のパラメータを解析し、random constraint技術を利用してこのn個のパラメータ中の一部のパラメータおよび/またはこの部分のパラメータの数値をランダムに生成することができる。ここで、「一部のパラメータ」は、n個のパラメータ中の1つであってもよいし、n個のパラメータ中の複数であってもよく、本発明の実施例はこれに対して限定しない。ランダム化を通じた後に、case-1とは異なる複数組のパラメータおよび/またはパラメータ値を得て、検証待ち対象の対象パラメータとして使用することができ、ランダムジェネレータ501は、これらランダムに生成した対象パラメータおよび/またはパラメータ値に基づいて検証ユースケースを生成することができる。
【0083】
図7は、検証者が検証待ちのニューラルネットワークモデルおよびテスト待ち設計に対して構成したテーブル構成ファイルを示し、当該構成ファイルは、複数の特定検証ユースケースを生成するパラメータおよび/またはパラメータ値を含む。たとえば、シリアルナンバー1が位置する行は、param-1-1・・・・param-1-nのようなcase-1のn個のパラメータを含み、これに応じて、case-2、case-3・・・・・・case-nなどはいずれもn個のパラメータから構成される。各case中のn個の構成パラメータおよびそのパラメータ値は、当該caseの1つの特定検証ユースケースに対応する。ランダムジェネレータ501は、ランダム化技術を利用して、特定検証ユースケースを基として、カバー範囲がより広い検証ユースケースを生成することができる。
【0084】
ランダムジェネレータ501は、検証ユースケースを生成する過程で、ランダム技術を使用して検証待ち対象の対象パラメータおよび/またはパラメータの数値を生成するため、生成された検証ユースケースの参考結果は不明である。したがって、本発明の実施例において、
図6に示すAIチップ検証システムは、参考モデル部品502を含む。ここで、参考モデル部品502は、ランダムジェネレータ501が生成した検証ユースケースを実行することで、当該検証ユースケースの参考結果を得る。参考モデル部品502は、検証待ちチップまたはテスト待ち設計の各機能を検証するモデルであり、テスト待ち設計のDUTの論理動作をシミュレートする役割を果たす。たとえば、System Cコーディングモデルを利用して実現して、比較のためのGolden結果を生成する役割を果たす。Golden結果を生成するときに環境サンプラーによって収集されるデータとの一貫性を保証する必要がある。異なるテスト待ちチップ部品102に対して、異なる参考モデル部品502があることができる。
【0085】
前記実施例において、ランダムジェネレータ501は、構成ファイルに基づいて、特定の検証ユースケースを利用して、ランダム技術を利用して異なる検証ユースケースを生成することによって、検証シナリオがより包括的になり、検証の完全性を効果的に向上させた。
【0086】
図6に示すAIチップ検証システムでは、ユースケースジェネレータ101は、ランダムジェネレータ501のみを含む。他の実装可能な形態において、ユースケースジェネレータ101は、オリエンテーションジェネレータ401およびランダムジェネレータ501を同時に含むことができる。
図5および
図6に示すAIチップ検証システムは、実施例の説明を明確にするために、両者をそれぞれしめし、いかなる形の限定もしない。
【0087】
オリエンテーションジェネレータ401によって生成されたテストユースケースの場合、参考モデル部品502を使用して当該テストユースケースを実行することで、当該検証ユースケースの参考結果を得てよいし、参考モデル部品502を使用せずに、直接オリエンテーションジェネレータ401によって生成された当該検証ユースケースの参考結果を使用することができる。
【0088】
AIチップ検証過程において、検証待ちのテスト待ち設計をレベル1のDUTおよびレベル2のDUTに分割することができる。
図8を参照すると、レベル2のDUTは、レベル1のDUTの基に、スケジューリングコアが追加された。ここで、レベル1のDUTは、検証ユースケース中の命令フローを実行することができる。レベル2のDUT中のスケジューリングコアは、スケジューリングコア命令フローを実行することで、検証ユースケース中の命令フローに対して、輸送、スケジューリング、制御、及び配布を実行して、テスト待ち設計の柔軟性を向上させることができる。
【0089】
図4の所定のユースケーステンプレートを利用して生成した検証ユースケースの例をとる。レベル1のDUTは、直接検証ユースケース中の命令フローテンプレートファイルに基づいて生成された命令フローを実行し、レベル2のDUT中のスケジューリングコアは、検証ユースケース中のスケジューリングコア命令フローテンプレートファイルに基づいて生成されたスケジューリングコア命令フローを実行することによって、当該検証ユースケース中の命令フローに対して、輸送、スケジューリング、制御、および配布を実行することができる。以上の実施例によって提供されるユースケースジェネレータ(ランダムジェネレータおよびオリエンテーションジェネレータを含む)の場合、「スケジューリングコア命令フロー」を生成することができないため、対応するレベル1のDUTの検証ユースケースのみを生成することができる。
【0090】
図9に示すように、本発明の更なる実施例は、AIチップ検証システムを提供する。レベル2のDUTに対応して、当該AIチップ検証システムは、スケジューリング命令コンパイラ601をさらに含む。スケジューリング命令コンパイラ601は、命令制御フローをコンパイルすることで、レベル2のDUT中のスケジューリングコアによって実行可能なスケジューリングコア命令フローを得ることができる。ここで、命令制御フローは、検証ユースケース中の命令フローを制御するための、特定のプログラミング言語で記述された命令である。たとえば、スケジューリング命令コンパイラ601は、C言語コードによって記述された命令制御フローをコンパイルして、レベル2のDUT中のスケジューリングコアによって実行可能なバイナリアセンブリファイルを出力し、つまり、スケジューリングコア命令フローを得る。
【0091】
図9に示すAIチップ検証システムに対応して、所定のユースケーステンプレートは、スケジューリングコア命令フローテンプレートファイルを含み得、ここで、当該ファイルは検証ユースケースのスケジューリングコア命令フローテンプレートを含む。スケジューリング命令コンパイラ601は、命令制御フローをコンパイルし、スケジューリングコア命令フローテンプレートによって定義されたフォーマットに基づいて、検証ユースケース中のスケジューリングコア命令フローを生成する。
図4に示す所定のユースケーステンプレートの例をとる。ユースケースジェネレータ101は、さらに、「スケジューリングコア命令フローテンプレートファイル」以外の他のテンプレートファイルに基づいて、レベル2の検証ユースケース中の「スケジューリングコア命令フロー」以外の他のデータを生成することによって、レベル2のDUTに対応する完全な検証ユースケースを生成することができる。
【0092】
本発明の実施例中のAIチップ検証システムは、レベル1のDUTに対応するAIチップ検証システムと比較すると、スケジューリング命令コンパイラ601のみを追加し、レベル1のDUTに対するAIチップ検証システムの他のモジュールを再利用した。このようにして、チップ検証の作業量を削減し、テスト待ち設計に対する検証効率を向上させ、検証リソースを節約した。
【0093】
いくつかのオプションの実施例において、
図9に示すように、当該AIチップ検証システムは、テスト待ちチップ部品102に接続された性能統計器602をさらに含む。これは例示的なのAIチップ検証システムの具体的な構成に過ぎず、前述した
図1、
図3、
図5、または
図6に記載のレベル1のDUTを検証するシステムに性能統計器602を追加して得られた構成などの、他の構成形式であってもよいことを理解できる。本発明の実施例において、性能統計器602は、テスト待ちチップ部品102からテスト待ち設計を取得して検証ユースケースの性能パラメータを実行し、得られた性能パラメータに基づいて性能統計を実行する。
【0094】
いくつかの実装可能な形態において、性能統計器602は、テスト待ち設計によって検証ユースケースを実行する時間を統計することができる。たとえば、性能統計器602は、リセット信号によってトリガーされて、たとえばリセット信号が低レベルから高レベルに変化されることを開始点として、ニューラルネットワークモデルの各層(layer)の演算時間を統計し、または、ニューラルネットワークモデルの全体の実行時間を統計することができる。
【0095】
たとえば、テスト待ち設計によって実行する検証ユースケースが層レベル検証対象の検証ユースケースであると、性能統計器602は、ニューラルネットワークモデル中の検証ユースケースに対応するネットワーク層がテスト待ち設計によって実行される時間を統計することができ、たとえば畳み込み層のテスト待ち設計における演算時間を統計することができる。たとえば、テスト待ち設計によって実行する検証ユースケースがニューラルネットワークモデル全体に対応する検証ユースケースであると、性能統計器602は、テスト待ち設計の演算ニューラルネットワークモデル全体における時間を統計することができ、たとえば、畳み込みニューラルネットワークモデルの全体のテスト待ち設計における演算時間を統計することができる。
【0096】
いくつかの実装可能な形態において、性能統計器602は、さらに、テスト待ち設計の実際の帯域幅を統計することができる。具体的に、性能統計器602は、統計テスト待ち設計中のすべてのインターフェースの読み取りおよび書き込みデータ量を統計し、統計したテスト待ち設計に対応する当該読み取りおよび書き込みデータ量の演算時間に組み合わせて、テスト待ち設計の実際の帯域幅を計算することができ、たとえばテスト待ち設計のAHBおよびAPBのバスの帯域幅を計算することができる。たとえば、テスト待ち設計によって実行するが層レベルに対するレベル検証ユースケースであると、性能統計器602は、テスト待ち設計によってニューラルネットワークモデルに対応するネットワーク層を実行する実際の帯域幅を計算することができる。たとえば、テスト待ち設計によって畳み込み層の検証ユースケースを実行する実際の帯域幅を計算することができる。たとえば、テスト待ち設計によって実行するがネットワークレベルに対する検証ユースケースであると、性能統計器602は、計算テスト待ち設計によってニューラルネットワークモデル全体を実行する実際の帯域幅を計算することができる。たとえば、テスト待ち設計によって畳み込みニューラルネットワーク全体を実行する実際の帯域幅を計算することができる。
【0097】
前記実施例においては、AIチップ検証システムに性能統計器を追加して、テスト待ち設計によって検証ユースケースを実行する時間および帯域幅などの性能パラメータを統計することができる。また、性能統計器は、テスト待ち設計によってニューラルネットワークモデルの層レベルの検証ユースケースを実行する演算時間および帯域幅を統計することができ、さらに、テスト待ち設計によってニューラルネットワークモデル全体のネットワークレベルの検証ユースケースを実行する演算時間および帯域幅を統計することができ、テスト待ち設計に対する検証の性能統計を強化した。
【0098】
前記実施例において、AIチップ検証システムは、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせによって、全体的または部分的に実装することができる。たとえば、上記の各部品の機能に対応するコードは、SystemVerilog言語で実装でき、コードをサーバのメモリに記憶することができる。テスト待ちチップ部品を検証するときに、サーバのプロセッサで当該コードを運行させることで、テスト待ちチップ部品を検証することができる。また、たとえば、上記の各部品は、1つまたは複数の特定用途向け集積回路(ASIC)、デジタルシグナルプロセッサ(DSP)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラー、マイクロコントローラー、マイクロプロセッサまたは他の電子部品などの、回路の形態で実装することができる。また、たとえば、ソフトウェアで実装するときに、全体的または部分的にコンピュータープログラム製品の形態で実装することができる。
【0099】
いくつかのオプションの実施例において、
図10に示すように、本発明の実施例は、AIチップ検証方法を示す。本発明の実施列提供のAIチップ検証方法またはAIチップ検証システムは、AIチップ検証を実行するサーバ、端末デバイス、または他のタイプの電子デバイスに適用され得る。
図10に示すAIチップ検証の流れは、以下のステップを含み得る。
【0100】
ステップ101において、検証待ち対象の情報および所定のユースケーステンプレートに基づいて、前記検証待ち対象の検証ユースケースを生成することと、ここで、前記検証ユースケースは、前記所定のユースケーステンプレートによって定義されたフォーマットを満たし、前記検証待ち対象は、ニューラルネットワークモデル中の目標演算子またはニューラルネットワークモデルを含む。
【0101】
本ステップにおいて、検証待ち対象の情報を解析して、当該検証対象の検証ユースケースを生成するためのパラメータを得る。ここで、検証待ち対象は、ニューラルネットワークモデル中の演算子、または、ニューラルネットワークモデルの全体であり得る。検証待ち対象の情報は、固定小数点パラメータファイルおよびネットワーク構成ファイルに含まれているパラメータ情報であってもよいし、または、当該検証対象に対応する構成ファイル中のパラメータ情報であってもよい。
【0102】
検証対象の検証ユースケースを生成するためのパラメータを得た後に、生成されたパラメータおよび所定のユースケーステンプレートによって定義されたフォーマットに基づいて、検証待ち対象の検証ユースケースを生成する。ここで、所定のユースケーステンプレートは、生成しようとする検証ユースケース中のデータのフォーマットを定義し、具体的な説明は検証システムの一部の実施例の関連する説明を参照することができる。
【0103】
いくつかの実装可能な形態において、検証待ち対象のパラメータファイルを取得し、検証待ち対象のパラメータファイルに含まれている対象パラメータを解析して、検証待ち対象の検証ユースケースを生成することができる。ここで、関連する説明は、検証システム実施例の関連する一部の説明を参照することができる。このような実施形態において、検証ユースケース中に対応する参考結果を生成することによって、参考モデル部品を利用して検証ユースケースを実行して得る必要がなくなり、テスト待ち設計に対する検証の効率を向上させた。また、ニューラルネットワークモデルの層レベルを検証することができ、ニューラルネットワークモデル全体を検証することができ、テスト待ち設計のニューラルネットワークに対する検証の深さおよび柔軟性を改善した。
【0104】
他の実装可能な形態において、検証待ち対象の構成ファイルを取得し、構成ファイル中のパラメータに基づいてランダム化技術を利用して、検証待ち対象の対象パラメータをランダムに生成し、ランダムに生成された対象パラメータを利用して検証ユースケースを生成することができる。関連する具体的な説明は、同様に、本発明の検証システムの実施例の関連する部分の説明を参照することができる。当該実施形態において、特定の検証ユースケースに基づいて、ランダム技術を利用して異なる検証ユースケースを生成することによって、検証シナリオがより包括的になり、検証の完全性を効果的に向上させた。
【0105】
ステップ102において、テスト待ち設計によって前記検証ユースケースを実行してテスト結果を得る。
【0106】
検証待ち対象の検証ユースケースを生成した後に、テスト待ち設計によって当該検証ユースケースを実行して、実行後のテスト結果を得ることができる。ここで、テスト待ち設計は、テスト待ちチップ部品に含まれることができ、また、所定のユースケーステンプレートに基づいて、環境ドライバーを利用して検証ユースケースのデータをテスト待ちチップ部品中に駆動して、テスト待ち設計によって実行されることができる。テスト待ち設計によって検証ユースケースを実行した後に、環境サンプラーを利用してテスト待ちチップ部品から当該検証ユースケースを実行した後のテスト結果をサンプリングすることができる。関連する説明は、本発明の検証システムの実施例の関連する説明と同様であり、ここでは繰り返して説明しない。
【0107】
ステップ103において、前記テスト結果と前記検証ユースケースに対応する参考結果とを比較して、前記テスト待ち設計の前記検証待ち対象に対する検証結果を得る。
【0108】
本ステップにおいて検証ユースケースのテスト結果と比較するための参考結果は、検証ユースケースにすでに存在している結果データであってもよいし、または、参考モデル部品を利用して検証ユースケースを実行して得られた結果データであってもよい。ここで、参考モデル部品は、検証待ちAIチップまたはテスト待ち設計の各機能を検証するモデルであり、テスト待ち設計のDUTの論理動作をシミュレートする役割を果たす。
【0109】
本発明の実施例において、所定のユースケーステンプレートを利用して検証ユースケースのフォーマットを事前に定義し、異なるタイプのニューラルネットワークに対応する検証待ち対象によって生成された検証ユースケースが統一されたフォーマットを有するで、当該AIチップ検証方法は様々なタイプのニューラルネットワークを検証することができる。
【0110】
いくつかのオプションの実施例において、命令制御フローをコンパイルして、レベル2のDUT中のスケジューリングコアによって実行可能なスケジューリングコア命令フローを得ることができる。対応する所定のユースケーステンプレートは、スケジューリングコア命令フローテンプレートファイルを含み、ここで、当該ファイルは、検証ユースケースのスケジューリングコア命令フローテンプレートを含む。
【0111】
具体的に、命令制御フローをコンパイルし、スケジューリングコア命令フローテンプレートによって定義されたフォーマットに基づいて、検証ユースケース中のスケジューリングコア命令フローを生成することができる。次に、「スケジューリングコア命令フローテンプレートファイル」以外の他のテンプレートファイルに基づいて、レベル2の検証ユースケース中の「スケジューリングコア命令フロー」以外の他のデータを生成することによって、レベル2のDUTに対応する完全な検証ユースケースを生成することができる。テスト待ち設計は、レベル2のDUTの検証ユースケースに含まれているスケジューリングコア命令フローに基づいて、当該検証ユースケース中の命令フローに対して処理を実行する。レベル2のDUT検証ユースケースを生成するこのような方法は、レベル1のDUT検証ユースケースを生成するモジュールを再利用することができ、チップ検証の作業量を削減し、検証効率を向上させた。
【0112】
いくつかのオプションの実施例において、テスト待ち設計によって検証ユースケースを実行する性能パラメータを取得し、得られた性能パラメータに基づいて性能統計を実行することができる。たとえば、テスト待ち設計によって検証ユースケースを実行する時間を統計して、テスト待ち設計の実際の帯域幅を統計することができる。具体的な統計過程は、検証システムの実施例の関連する一部の説明を参照することができ、ここで繰り返して説明しない。本実施例の性能統計は、テスト待ち設計によってニューラルネットワークモデルの層レベルの検証ユースケースを実行する演算時間および帯域幅を統計し、さらに、テスト待ち設計によってニューラルネットワークモデル全体のネットワークレベルの検証ユースケースを実行する演算時間および帯域幅を統計することができ、テスト待ち設計に対する検証の性能統計を強化した。
【0113】
本発明は、コンピューターデバイスをさらに提供し、当該デバイスは、メモリと、プロセッサと、メモリに記憶されており、プロセッサ上で運行可能のコンピュータープログラムと、を含み、前記プロセッサによって前記プログラムが実行されるときに、本発明の任意の実施例のAIチップ検証方法を実装することができる。
【0114】
本発明は、コンピュータープログラムが記憶されているコンピューター可読記録媒体をさらに提供し、前記プログラムがプロセッサによって実行されるときに、前記プロセッサが本発明の任意の実施例のAIチップ検証方法を実装する。
【0115】
ここで、前記非一時的なコンピューター可読記録媒体は、ROM、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶デバイスなどであり得、本発明はこれに対して限定しない。
【0116】
本発明は、コンピュータープログラムを含むコンピュータープログラム製品をさらに提供し、前記プログラムがプロセッサによって実行されるときに、本発明の任意の実施例のAIチップ検証方法が実装される。
【0117】
当業者は、明細書を検討し、また、ここに開示した発明を実施した後に、本発明の他の実施形態を容易に考えることができる。本発明は、本発明の任意の変形、用途、または適応的変更をカバーすることを意図しており、これら変形、用途、または適応的変更は、本発明の一般原則に従い、本発明の技術分野における常識または従来の技術的手段を含む。明細書および実施例は、例示的なものとしてのみ見なされるべきであり、本発明の真の範囲および精神は、以下の特許請求の範囲によって指摘される。
【0118】
本発明は、上記に説明され、図面に示された正確な構造に限定されず、その範囲から逸脱することなく、様々な修正および変更を行うことができることを理解されたい。本発明の範囲は、添付の特許請求の範囲によってのみ制限される。
【0119】
上記は、本発明のより好ましい実施例に過ぎず、本発明を限定するために使用されるものではない。本開示の精神および原則の範囲内で行われた修正、同等の置き換え、改善などは、本発明の保護の範囲に含まれるものとする。