(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022017993
(43)【公開日】2022-01-26
(54)【発明の名称】ハードウェアとニューラルアーキテクチャとの共同探索
(51)【国際特許分類】
G06N 3/063 20060101AFI20220119BHJP
【FI】
G06N3/063
【審査請求】有
【請求項の数】18
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2020120906
(22)【出願日】2020-07-14
(11)【特許番号】
(45)【特許公報発行日】2021-06-16
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SMALLTALK
(71)【出願人】
【識別番号】520171826
【氏名又は名称】エッジコーティックス ピーティーイー. リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ウェイウェン ジアン
(72)【発明者】
【氏名】サキャシンガ ダスグプタ
(72)【発明者】
【氏名】イユ シ
(57)【要約】 (修正有)
【課題】ハードウェアとニューラルアーキテクチャとの共同探索による機能の仕様及び複数のハードウェア設計パラメータを取得する。
【解決手段】ハードウェアとニューラルアーキテクチャとの共同探索は、機能の仕様及び複数のハードウェア設計パラメータを取得する。ハードウェア設計パラメータは、メモリ容量、計算リソースの数、通信帯域幅及びニューラルアーキテクチャ推論を実行するためのテンプレート構成を含む。操作は、複数のニューラルアーキテクチャのうちの各ニューラルアーキテクチャに対して、ハードウェア設計パラメータ内でアクセラレータによるニューラルアーキテクチャの推論の実行の全体の待ち時間を決定することを含む。各ニューラルアーキテクチャは、ある精度で機能を実行するよう訓練されている。操作は、複数のニューラルアーキテクチャの中から、全体の待ち時間及び精度に基づいてニューラルアーキテクチャを選択することをさらに含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータによって実行可能で前記コンピュータに操作を実行させる命令を含むコンピュータプログラムであって、前記操作は、
機能の仕様及び複数のハードウェア設計パラメータを取得することであって、前記ハードウェア設計パラメータはメモリ容量、計算リソースの数、通信帯域幅、及び、ニューラルアーキテクチャ推論を実行するためのテンプレート構成を含む、前記取得することと、
各ニューラルアーキテクチャはある精度で前記機能を実行するよう訓練されている、複数のニューラルアーキテクチャのうちの各ニューラルアーキテクチャに対して、前記ハードウェア設計パラメータ内でアクセラレータによる前記ニューラルアーキテクチャの推論の実行の全体の待ち時間を決定することと、
前記複数のニューラルアーキテクチャのうちから、前記全体の待ち時間及び前記精度に基づいてニューラルアーキテクチャを選択することと
を備えるコンピュータプログラム。
【請求項2】
前記全体の待ち時間を決定することは、活性化データを格納している外部メモリと相互作用しつつ前記アクセラレータによって前記ニューラルアーキテクチャの推論の前記実行を遂行するために複数のハイパー・パラメータの待ち時間モデルを決定することをさらに含む請求項1に記載のコンピュータプログラム。
【請求項3】
前記複数のハイパー・パラメータは、タイリング設計、及び、前記アクセラレータによる前記ニューラルアーキテクチャの推論の実行中の帯域幅の割当を含む請求項2に記載のコンピュータプログラム。
【請求項4】
前記待ち時間モデルを決定することは、
各層に対して、待ち時間要因のうちの待ち時間ボトルネックを検出することをさらに含み、
前記待ち時間要因は、
外部メモリから前記アクセラレータの内部メモリへの活性化データのコピー、
前記外部メモリから前記内部メモリへの重み付け値のコピー、
前記活性化データに対しての計算の実行及び、
前記内部メモリから前記外部メモリへの前記活性化データのコピー、
である請求項2または3に記載のコンピュータプログラム。
【請求項5】
前記待ち時間モデルを決定することは、前記選択されたニューラルアーキテクチャの少なくとも1つの層に対し、前記待ち時間ボトルネックに対応する待ち時間削減技術を割り当てることをさらに含み、
各待ち時間削減技術は前記複数のハイパー・パラメータのうちのあるハイパー・パラメータ及び範囲に関連付けられる請求項4に記載のコンピュータプログラム。
【請求項6】
前記待ち時間モデル決定することは、前記選択されたニューラルアーキテクチャの少なくとも1つの層に対して、前記待ち時間ボトルネック以外の前記待ち時間要因のうちのいずれかに対応する精度向上技術を割り当てることをさらに含み、各待ち時間削減技術は前記複数のハイパー・パラメータのうちのあるハイパー・パラメータ及び範囲に関連付けられている、請求項4または5に記載のコンピュータプログラム。
【請求項7】
前記全体の待ち時間を決定することは、前記待ち時間モデル内の前記ハイパー・パラメータの値の一意の組み合わせを複数生成することをさらに含む請求項2から6のいずれか1項に記載のコンピュータプログラム。
【請求項8】
前記全体の待ち時間を決定することは、前記ハイパー・パラメータの値の一意の組み合わせの前記複数の各々に対し、結果として得られる待ち時間を計算することをさらに含む請求項7に記載のコンピュータプログラム。
【請求項9】
前記待ち時間モデルの前記ハイパー・パラメータの値を決定することをさらに備える請求項2から8のいずれか1項に記載のコンピュータプログラム。
【請求項10】
前記待ち時間モデルの前記ハイパー・パラメータの前記値を決定することは、前記待ち時間モデルに機能近似器を適用することをさらに含む請求項9に記載のコンピュータプログラム。
【請求項11】
前記機能近似器は、待ち時間要素及び精度要素を含む報酬を用いた強化学習を有する再帰型ニューラルネットワークである請求項10に記載のコンピュータプログラム。
【請求項12】
前記待ち時間モデルの前記ハイパー・パラメータの前記値を決定することは、ホールドアウト訓練データセットを用いた前記ニューラルアーキテクチャの訓練によって前記精度要素を決定することを含む請求項10に記載のコンピュータプログラム。
【請求項13】
前記選択することは、待ち時間閾値より低い推論の実行の待ち時間を有する前記複数のニューラルアーキテクチャ内のニューラルアーキテクチャのうちから、最も高い精度で前記機能を実行するよう訓練されたニューラルアーキテクチャを選択することをさらに含む請求項1から12のいずれか1項に記載のコンピュータプログラム。
【請求項14】
機能の仕様及び複数のハードウェア設計パラメータを取得する段階であって、前記ハードウェア設計パラメータは、メモリ容量、計算リソースの数、通信帯域幅及びニューラルアーキテクチャの推論を実行するためのテンプレート構成を含む、前記取得する段階と、
各ニューラルアーキテクチャがある精度で前記機能を実行するよう訓練されている複数のニューラルアーキテクチャのうちの各ニューラルアーキテクチャに対して、前記ハードウェア設計パラメータ内でアクセラレータによるニューラルアーキテクチャの推論の実行の全体の待ち時間を決定する段階と、
前記複数のニューラルアーキテクチャのうちから、前記全体の待ち時間及び前記精度に基づいてニューラルアーキテクチャを選択する段階と
を備える方法。
【請求項15】
前記全体の待ち時間を決定する段階は、活性化データを格納する外部メモリと相互作用しつつ前記アクセラレータによって前記ニューラルアーキテクチャの推論の前記実行を遂行するために複数のハイパー・パラメータの待ち時間モデルを決定する段階をさらに含む請求項14に記載の方法。
【請求項16】
前記複数のハイパー・パラメータは、前記アクセラレータによる前記ニューラルアーキテクチャの推論の実行中の、タイリング設計と帯域幅割当とを含む請求項15に記載の方法。
【請求項17】
前記待ち時間モデルを決定する段階は、
各層に対して、待ち時間要因のうち待ち時間ボトルネックを検出する段階をさらに含み、
前記待ち時間要因は、
外部メモリから前記アクセラレータの内部メモリへの活性化データのコピー、
前記外部メモリから前記内部メモリへの重み付け値のコピー、
前記活性化データに対しての計算の実行、及び、
前記内部メモリから前記外部メモリへの前記活性化データのコピー
である請求項15または16に記載の方法。
【請求項18】
前記待ち時間モデルを決定する段階は、前記選択されたニューラルアーキテクチャの少なくとも1つの層に対して、前記待ち時間ボトルネックに対応する待ち時間削減技術を割り当てる段階をさらに含み、各待ち時間削減技術は、前記複数のハイパー・パラメータのうちのあるハイパー・パラメータ及び範囲に関連付けられている、請求項17に記載の方法。
【請求項19】
前記待ち時間モデルを決定する段階は、前記選択されたニューラルアーキテクチャの少なくとも1つの層に対して、前記待ち時間ボトルネック以外の前記待ち時間要因うちのいずれかに対応する精度向上技術を割り当てる段階をさらに含み、各待ち時間削減技術は前記複数のハイパー・パラメータのうちのあるハイパー・パラメータ及び範囲に関連付けられている、請求項17または18に記載の方法。
【請求項20】
機能の仕様及び複数のハードウェア設計パラメータを取得するよう構成された取得部であって、前記ハードウェア設計パラメータは、メモリ容量、計算リソースの数、通信帯域幅及びニューラルアーキテクチャの推論を実行するためのテンプレート構成を含む、前記取得部と、
各ニューラルアーキテクチャがある精度で前記機能を実行するよう訓練されている複数のニューラルアーキテクチャのうちの各ニューラルアーキテクチャに対して、前記ハードウェア設計パラメータ内でアクセラレータによる前記ニューラルアーキテクチャの推論の実行の全体の待ち時間を決定するよう構成された決定部と、
前記複数のニューラルアーキテクチャのうちから、前記全体の待ち時間及び前記精度に基づいてニューラルアーキテクチャを選択するよう構成された選択部と
を備える装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はハードウェアとニューラルアーキテクチャとの共同探索に関する。より具体的に、本発明は事前訓練済ニューラルアーキテクチャからのハードウェアとニューラルアーキテクチャとの共同探索に関する。
【背景技術】
【0002】
ディープニューラルネットワーク(DNN)の成功は、人工知能(AI)を我々の生活のあらゆる態様に入り込むことを推進してきており、異型のハードウェア上の多様なアプリケーションに広く使用されている。ニューラルアーキテクチャ探索(NAS)、自動機械学習(AutoML)の成功した成果物、は所与のデータセットから最新式の精度を有するニューラルアーキテクチャまでの道を築いてきた。
【0003】
最近、ニューラルアーキテクチャとハードウェア設計との間のギャップを埋め合わせるのに、ニューラルアーキテクチャ及びハードウェア設計(アーキテクチャ・ハードウェアと略す)共同探索フレームワークが提唱されてきている。これらのフレームワークは、高精度かつ低コストシステムを生成するという有望な結果を示してきている。しかし、それらの探索の効率は低く、既存の共同探索フレームワークは普通、目的とするハードウェアあたり数百GPU時間かかる。これは、迅速なターンアラウンドまたは短い市場化までの時間が要求される多くの新興アプリケーションにおいてボトルネックになり得る。一方、一つのニューラルネットワークモデルに対するNASの二酸化炭素排出量(CO2の重量)は、自動車のライフタイム排出の約5倍近くに相当することがすでに示されている。本研究において、我々は、既存の共同探索フレームワーク、それは、探査が大きな探索時間及び低い効率をもたらす最初から必ず開始する(すなわち、コールドスタート)、によって用いられる初期設定を再考している。
【発明の概要】
【0004】
本発明のある態様によれば、ハードウェアとニューラルアーキテクチャとの共同探索のための操作をコンピュータに実行させるためのコンピュータで実行可能な命令を含むコンピュータプログラムを提供する。操作は、機能の仕様及び複数のハードウェア設計パラメータを取得することを含む。ハードウェア設計パラメータは、メモリ容量、計算リソースの数、通信帯域幅、及び、ニューラルアーキテクチャ推論を実行するためのテンプレート構成を含む。操作は、複数のニューラルアーキテクチャのうちの各ニューラルアーキテクチャに対して、ハードウェア設計パラメータ内でアクセラレータによるニューラルアーキテクチャの推論の実行の全体の待ち時間を決定することをさらに含む。各ニューラルアーキテクチャはある精度で機能を実行するよう訓練されている。操作は、複数のニューラルアーキテクチャのうちから、全体の待ち時間及び精度に基づいてニューラルアーキテクチャを選択することをさらに含む。
【0005】
この態様はさらに、コンピュータプログラムの命令を実行するプロセッサにより実行される方法、及び、当該方法を実行する装置を含んでよい。装置は、機能の仕様及び複数のハードウェア設計パラメータを取得するよう構成された取得部と、アクセラレータによるニューラルアーキテクチャの推論の実行の全体の待ち時間を決定するよう構成される決定部と、複数のニューラルアーキテクチャのうちから、全体の待ち時間及び精度に基づいてニューラルアーキテクチャを選択するよう構成された選択部とを含んでよい。
【0006】
上記の発明の概要は、本発明の複数の実施形態の必要な特徴の全てを必ずしも列挙したものではない。上記の特徴群のサブコンビネーションもまた本発明となり得る。
【図面の簡単な説明】
【0007】
【
図1】本発明の実施形態によるハードウェアとニューラルアーキテクチャとの共同探索に対する操作フローを示す。
【0008】
【
図2】本発明の実施形態による複数の事前訓練済ニューラルアーキテクチャを示す。
【0009】
【
図3】本発明の実施形態による、ニューラルアーキテクチャの全体の待ち時間ポテンシャルを決定するための操作フローを示す。
【0010】
【
図4】本発明の実施形態による、ニューラルアーキテクチャの推論を実行するアクセラレータを介したデータフローの図を示す。
【0011】
【
図5】本発明の実施形態による、待ち時間モデルを拡張するための操作フローを示す。
【0012】
【
図6】本発明の実施形態によるパターン枝刈りのための例示的なパターンを示す。
【0013】
【
図7】本願発明の別の実施形態による、パターン枝刈りから待ち時間の減少を実現するための入力特徴マップの並べ替えの図を示す。
【0014】
【
図8】本発明の実施形態によるチャネルカッティングの図を示す。
【0015】
【
図9】本発明の実施形態によるカーネル拡張の図を示す。
【0016】
【
図10】本発明の実施形態による重み付け量子化の図を示す。
【0017】
【
図11】本発明の実施形態による、ハイパー・パラメータ最適化に対する機能近似器のニューラルネットワークを示す。
【0018】
【
図12】本願発明の別の実施形態による、修正されたハイパー・パラメータを決定するための操作フローを示す。
【0019】
【
図13】本発明の実施形態による、ハードウェアとニューラルアーキテクチャとの共同探索のためのハードウェア構成を示す。
【発明を実施するための形態】
【0020】
続いて、本発明の複数の実施形態の例を通じて本発明が説明されるであろう。例示の実施形態は、特許請求の範囲に係る本発明を限定するものではなく、実施形態に記載された特徴の組み合わせは、必ずしも本発明に不可欠なものではない。
【0021】
異なるアプリケーションを使用可能かつ加速するようAIを使用できるように、エッジデバイスに対するリアルタイム制約、IoTデバイスに対する低電力割当量などのような設計仕様が、目的とするハードウェア上で満たされるようなやり方でニューラルアーキテクチャが設計され得る。
【0022】
上述した全ての定義に基づいて、アーキテクチャ・ハードウェア共同探索の最適化問題は以下の通り定義され得る:所与のモデル群(model zoo)M、特定用途FPGA(FP)、FP上のM内のニューラルネットワークモデルAのアクセラレータ設計D、目的タイミング制約T、精度基準線acc、基準線を決定していく:
【0023】
S:群MからA0として示されたアーキテクチャの選択;
【0024】
P,C,X,Q:A0のアーキテクチャハイパー・パラメータの調整;
【0025】
H:D0上のハードウェア設計ハイパー・パラメータの調整。
【0026】
それは、ハードウェア設計D0'における新しいアーキテクチャA0'がタイミング制約Tを満たし得つつ、基準線accを超える精度に匹敵するA0'が特定され得るようになされる。
【0027】
図1は、本発明の実施形態による、ハードウェアとニューラルアーキテクチャとの共同探索のための操作フローを示す。操作フローは、ハードウェアとニューラルアーキテクチャとの共同探索のための方法を提供してよい。この方法は、続いて説明されるであろう、
図11に示される装置等、ある操作を実行するための部を含む装置によって実現されてよい。
【0028】
S100で、取得部は機能の仕様及び複数のハードウェア設計パラメータを取得する。この機能は、自動車のための先進運転支援システム(ADAS)、医学的診断などの画像処理アプリケーション、データ類別、または、ニューラルアーキテクチャ推論によって実現されてよい任意の他の機能等であってよい。ハードウェア設計パラメータは、メモリ容量、計算リソースの数、通信帯域幅、及び、ニューラルアーキテクチャ推論を実行するためのテンプレート構成を含んでよい。幾つかの実施形態において、特定FPGAチップは特定のアプリケーションのために推論を実行するのに用いられるよう選択されていてよい。特定FPGAチップは、あるメモリ容量、計算リソースの数及び通信帯域幅を有するであろう。例えば、XCZU9EGチップ付きXILINX(RTM)ZCU102ボードは、600Kの論理セル、32.1Mbのオンチップバッファ及び2,520個のDSPからなる。オンチップ・オフチップメモリ間のデータ移動に対して、4つのHPポートが存在し、各々は128ビットの帯域幅を有する。
【0029】
S110で、各ニューラルアーキテクチャはある精度で機能を実行するよう訓練されており、決定部は、複数のニューラルアーキテクチャのうちの各ニューラルアーキテクチャに対し、ハードウェア設計パラメータ内で、アクセラレータによってニューラルアーキテクチャの推論を実行する全体の待ち時間を決定する。複数のニューラルアーキテクチャは「モデル群」と呼ばれてよい。モデル群は、関心のある機能を実行するよう事前訓練されたニューラルアーキテクチャを含むであろう。モデル群内の各ニューラルアーキテクチャが訓練されたところの機能は、汎用的なもの、または、取得された関心のある機能に特に当てはまるものであってよい。例えば、もし取得された関心のある機能がADASに対する歩行者の検出であるなら、歩行者の検出の実行に特に訓練されたニューラルアーキテクチャは、勿論モデル群に含まれ得るが、画像ベースの医学的診断またはそのような他のアプリケーションを特に実行するよう訓練されたニューラルアーキテクチャは、おおむね画像解析の特徴認識を実行するものだから、モデル群に含まれてよい。
【0030】
図2は、本発明の実施形態による、モデル群202内の複数の事前訓練済ニューラルアーキテクチャを示す。ニューラルアーキテクチャが中間データ(すなわち、入力及び出力特徴マップ)を表す一組のノードV、及び、一対のノードの間の依存性を表す一組のエッジE⊆V×Vからなるように、ニューラルアーキテクチャAは、A=<V,E,r,c,ch,o,f,para,acc>として定義されてよい。V内のノードv
iは3つのハイパー・パラメータ:それぞれv
iの行、列及びチャネルの数を表すr
i、c
i及びch
iを有する。エッジe
j∈Eは、従来の畳み込み、深さ方向畳み込み、プーリング等などの演算子o
jに関連付けられる。f
jは演算子o
jで用いられるフィルタ(すなわち、重み付け)を表し、それは一組のカーネルからなる。各フィルタは2つのハイパー・パラメータに関連付けられる。すなわち、フィルタのサイズ(例えば1×1、3×3など)を示すs(f
i)、及び、f
iの枝刈りに適用されるパターンを示すp(f
i)。フィルタのサイズ及びパターンの両方は、ハードウェアとニューラルアーキテクチャとの共同探索中に修正され得る。
【0031】
事前訓練済ニューラルアーキテクチャはニューラルネットワークモデルと呼ばれてよく、モデル群M={A0,A1,..,AN-1}はNニューラルネットワークモデルからなる。これらニューラルネットワークモデルは、AlexNet、VGGNet、ResNetのように専門家によって手動で設計され得、MnasNet、ProxylessNas、FBNetのようにニューラルアーキテクチャ探索で自動で探索され得、または、BiTのように他のデータセットに対するニューラルネットワークモデルから移植され得る。 オープンソースTORCHVISONからの既存のモデル群などのが用いられ得る。 最新式の事前訓練済ニューラルネットワークモデルは、GITHUB上の適したオープンソースコードレポジトリから集められてよく、モデル群に追加されてよい。 これはモデル群を構築するコストの著しい減少をもたらすであろう。 当技術分野の知識を有する者は、本開示を読むことにより、モデル群形成のための他のソースを認識するであろう。
【0032】
続いて説明されるであろうように、上述のハイパー・パラメータの全てが決定された後に、ニューラルアーキテクチャAは、ImageNetデータセットまたはCIFAR-10データセットのような一般的な訓練データセットであってよい、アプリケーションに特定した訓練データセットでさらなる訓練がされ得、パラメータ及び重み付けpara(A)が取得される。訓練データセットの部分であってよい、ホールドアウト訓練データセット上の試験精度acc(A)がさらに取得され得る。
【0033】
図3は、本発明の実施形態による、
図1のS110などの、ニューラルアーキテクチャの全体の待ち時間ポテンシャルを決定するための操作フローを示す。この操作フローのうちの操作は、決定部またはこれに対応して名付けられたサブセクションによって実行されてよい。
図1で説明したように、機能仕様及びハードウェア設計パラメータは、ニューラルアーキテクチャの全体の待ち時間を決定する前に取得される。
【0034】
S311で、決定部はニューラルアーキテクチャに対する待ち時間モデルを決定する。各ニューラルアーキテクチャの推論の実行の全体の待ち時間は、推論を実行するハードウェアで変化する。したがって、全体の待ち時間を決定するため、決定部は、ハードウェア仕様内で推論を実行するための待ち時間モデルを決定する。換言すれば、全体の待ち時間を決定することは、活性化データを格納する外部メモリと相互作用しつつアクセラレータによってニューラルアーキテクチャの推論の実行を遂行するために複数のハイパー・パラメータの待ち時間モデルを決定することをさらに含み得る。したがって、待ち時間モデルの複数のハイパー・パラメータは、ニューラルアーキテクチャのハイパー・パラメータAだけではなく、アクセラレータのハイパー・パラメータDをさらに含む。
【0035】
全体として、アクセラレータ設計はD=<Tm,Tn,Tr,Tc,Ib,Wb,Ob>のように定義されてよく、
ここで、ループタイリング設計は<Tm,Tn,Tr,Tc>によって表され、帯域幅割当は<Ib,Wb,Ob>によって表される。 特に、アーキテクチャ内のノードのペアvi→vjに関連する演算子に対して、Tm,Tn,Tr及びTcは出力特徴マップ(OFM)チャネルchj、入力特徴マップ(IFM)チャネルchi、行ri及び列ciのタイリングパラメータであり、一方、<Ib,Wb,Ob>はIFM(すなわちvi)、OFM(すなわちVj)及び重み付け(すなわちfk)を動かすのに割り当てられた帯域幅である。設計D及びアーキテクチャAに対し、okのような各演算子の待ち時間は、ハードウェアとニューラルアーキテクチャとの共同探索中に決定され得る。全演算子の和算はAの待ち時間であり、lat(A)で示されるであろう。
【0036】
図4は、本発明の実施形態による、ニューラルアーキテクチャの推論を実行するアクセラレータ420を介したデータフローの図を示す。アクセラレータ420は、入力特徴マップタイルデータ423、出力特徴マップタイルデータ426及び重み付けタイルデータ428のオンチップメモリを含む。アクセラレータ420はさらに、少なくとも一つの従来の畳み込みモジュール422及び少なくとも一つの深さ方向畳み込みモジュールを含む。アクセラレータ420のモジュールは、特定の機能を実行するよう配置されたロジックゲートのグループであってよい。アクセラレータ420のオンチップメモリは、RAM、フラッシュメモリまたは他の埋め込み型書き込み可能メモリであってよい。
【0037】
アクセラレータ420は外部メモリ430と、入力帯域幅割当(Ib)432、重み付け帯域幅割当(Wb)434及び出力帯域幅割当(Ob)436に分割された帯域幅で通信する。外部メモリ430は、入力特徴マップ(IFM)データ442、フィルタデータ443、重み付けデータ444及び出力特徴マップ(OFM)データ446を含む。
【0038】
ハードウェアの効率は、ニューラルアーキテクチャだけではなく、ハードウェアリソース及びアクセラレータ設計にも関連する。本実施形態において、アクセラレータ420として用いられるFPGA(fp)は3つの属性を有する。すなわち、オンチップメモリのサイズmemfp、計算リソース(例えばDSP)の数compfp、及び、外部メモリ430とオンチップメモリ423、426および428との間の帯域幅BWfpである。
【0039】
アクセラレータ420の設計は、FPGAのリソース制約の全ての範囲内にある。アクセラレータ420の設計は2つの部分からなる。すなわち、計算のサブシステムの設計及び通信サブシステムの設計である。アーキテクチャA内の基本演算子Oは入れ子ループ内で行われるので、ループ最適化、特にループタイリング、は計算サブシステムの設計内で用いられてよい。加えて、大きな量のデータ(すなわち、中間データ、重み付けデータ)及びオンチップメモリ容量の制限を考慮すると、データの全をFPGA上に載せることは実行できないであろう。したがって、データは外部メモリ430とオンチップメモリ423、426および428との間を移動する。そのため、入力帯域幅割当(Ib)432、重み付け帯域幅割当(Wb)434及び出力帯域幅割当(Ob)436が待ち時間モデルに含まれており、ハードウェアとニューラルアーキテクチャとの共同探索中に決定される。
【0040】
従来の畳み込みモジュールに示されるように、従来の畳み込みは、Tm×Tn積和演算(MAC)操作を伴う。 16ビットデータに対して、各MACは一つのDSPを必要とする。 加えて、全データをオンチップメモリ423、426および428内で費やすためには、計算はK・K・Tr・Tc回の繰り返しが必要であり、パイプラインの初期間隔(II)は1サイクルに最適化される必要がある。ここでKはフィルタのサイズである。 これらの条件は、計算リソース及び待ち時間上の以下の制約をもたらすであろう。
【0041】
【0042】
【0043】
【0044】
ここで、tCompはオンチップメモリによって提供された全データに対する計算の待ち時間である。
【0045】
外部メモリ430とアクセラレータ420との間で転送されるデータの3つの型、すなわち、IFMデータ442、OFMデータ446及び重み付けデータ444、のうち、bI、bO及びbWで示される、各データの型に対するオンチップメモリのサイズは、外部メモリ430から決定され得る。一つのオンチップバッファ(BRAM)のサイズは制限されており、例えば、ZCU102FPGAに対してオンチップバッファごとに18Kである。 並列にアクセスされる必要があるデータの次元、例えば、T
nで示される、IFMデータ442のチャネル、は異なるBRAMに分けられる必要がある。従って、並列を要求しないデータの量は、IFMデータ442内のT
r及びT
cで示され、18Kに分割される。 結局、オンチップバッファのサイズはタイルサイズの2倍に等しく、ここで2は、計算によって通信を隠すために利用される倍増バッファを示す。これは以下の制約をもたらす:
【0046】
【0047】
【0048】
【0049】
【0050】
ここで、bitI、bitW及びbitOは、IFMデータ442、重み付けデータ444及びOFMデータ446に対してそれぞれ用いられるデータ型のビット幅であり、Bは最大帯域幅である。
【0051】
データバッファの各型に割り当てられた、バッファサイズ及び帯域幅Ib432、Wb434及びOb436に基づいて、通信待ち時間tImem,tWmem及びtOmemは以下の通り導かれ得る:
【0052】
【0053】
【0054】
【0055】
【0056】
【0057】
上述の数式に基づいて、待ち時間モデルが導びかれてよい。M,N,R及びCがそれぞれOFMチャネル、IFMチャネル、畳み込み層の行及び列の数を表すならば、以下の待ち時間モデルが導かれる。
【0058】
【0059】
【0060】
【0061】
OFM446データが再使用されるから、IFMデータ442及び重み付けデータ444が読み込まれる[N/Tn]時間ごとに対してオフチップメモリに吐き出されるまで、それはオンチップメモリ426に残るであろう。 Lat1は計算の1ラウンド、IFMデータ442の読み込み及び重み付けデータ444の読み込みの待ち時間を示し、Lat2は外部メモリ430に吐き出されるOFMデータ446の1ラウンドの待ち時間を示す。1つの層に対し、オンチップメモリ426に格納されたOFMタイルデータがB×[R/Tr]×[C/Tc]×[M/Tm]の各バッチで外部メモリ430に吐き出され、1つの層に対する総待ち時間Latを取得する。本態様において、待ち時間モデルの複数のハイパー・パラメータは、タイリング設計、及び、アクセラレータによるニューラルアーキテクチャの推論の実行中の帯域幅の割当を含む。
【0062】
深さ方向畳み込みの待ち時間モデルに対し、上述の数式のTmはTm(d)に修正され、Tnは単に1になる。バッチサイズが1の場合(B=1)、2つの型の畳み込みの通信サブシステム(式3から6のオンチップメモリモデル及び式7から9の外部メモリアクセスモデルを含む)は共有される。しかしながら、アクセラレータは独立しており、したがって式1は以下の通りに書き換えられ得る。
【0063】
【0064】
S312で、決定部またはそれらのサブセクション等である拡張部は、圧縮技術及び適用可能なあらゆる精度向上技術を含むよう待ち時間モデルを広げる。
【0065】
図5は、本発明の実施形態による、
図3のS312等の待ち時間モデルを拡張するための操作フローを示す。この操作フローの内の操作は、拡張部またはそれらに対応して名付けられたサブセクションにより実行されてよい。
図3で説明したように、待ち時間モデルは待ち時間モデルを拡張する前に決定される。
【0066】
S551で、拡張部またはそれらのサブセクション等である検出部は、
図3のS311で決定された待ち時間モデル等の、ニューラルアーキテクチャの待ち時間モデルに従ってニューラルアーキテクチャの層内の待ち時間ボトルネックを検出する。待ち時間モデルをどのように広げるか決定する前に、拡張部は、最大の待ち時間に関連する待ち時間要因等の、層の実行ボトルネックを検出してよい。待ち時間ボトルネックを検出すべく、待ち時間モデルは、層毎のマルチ待ち時間要因にブレイクダウンされてよい。幾つかの実施形態において、これらの待ち時間要因の各々は、待ち時間モデル内にすでに現れてよく、そこから導きだされ得る。式13よって定義される待ち時間モデルに対して、待ち時間モデルを決定することにはさらに、各層に対し、4つの待ち時間要因のうち待ち時間ボトルネックを検出することを含む。第1の待ち時間要因は、外部メモリからアクセラレータの内部メモリへ活性化データをコピーすることに関連する待ち時間である。第2の待ち時間要因は、外部メモリから内部メモリへ重み付け値をコピーすることに関連する待ち時間である。第3の待ち時間要因は、活性化データに対して計算を実行することに関連する待ち時間である。第4の待ち時間要因は、内部メモリから外部メモリへ活性化データをコピーすることに関連する待ち時間である。本実施形態において、検出部はS551の1つのインスタンスで1つの層に対し待ち時間要因を決定する。
【0067】
所与の層及び関連するハイパー・パラメータで、検出部は、上記のようにLat1及びLat2を考慮することによって待ち時間ボトルネックを検出し得る。もしLat2がtOmemによって支配されるなら、待ち時間ボトルネックはOFMデータを送信することにあり、それはアクセラレータの内部メモリから外部メモリへ活性化データをコピーすることである。さもなくば、待ち時間ボトルネックはLat1から決定されるであろう。もしLat1がtImemによって支配されるなら、待ち時間ボトルネックはIFMデータを送信することにあり、それは外部メモリからアクセラレータの内部メモリへ活性化データをコピーすることである。もしLat1がtWmemによって支配されるなら、待ち時間ボトルネックは重み付けを送信することにあり、それは外部メモリから内部メモリへ重み付け値をコピーすることである。もしLat1がtCompによって支配されるなら、アクセラレータの関与する計算リソースはフルに利用されており、それは活性化データに対して計算を実行することが待ち時間ボトルネックであると言える。一旦層の待ち時間ボトルネックが検出されると、拡張部は待ち時間ボトルネックに基づいて圧縮技術及び/または精度向上技術を割り当て得る。
【0068】
S552で、拡張部またはそれらのサブセクション等の割当部は、層の待ち時間ボトルネックに対応した層へ圧縮技術を割り当てる。圧縮技術を割り当てることは、待ち時間モデルの複数のハイパー・パラメータのうちいずれのハイパー・パラメータを待ち時間の減少のために修正し得えるか、および、そのハイパー・パラメータをどの程度まで修正し得るかを決定することを含んでよい。換言すると、待ち時間モデルを決定することは、選択されたニューラルアーキテクチャの少なくとも1つの層に対して、待ち時間ボトルネックに対応する待ち時間削減技術を割り当てることをさらに含んでよく、各待ち時間削減技術は複数のハイパー・パラメータのうちのあるハイパー・パラメータ及び範囲に関連付けられる。多くの圧縮技術が存在するが、それらの全てが待ち時間の減少に効果的であるというわけではないであろう。しかしながら、待ち時間ボトルネックを知ることは、いずれの圧縮技術が層に対して効果的であろうかを決定するのを助けるであろう。以下の例において、パターン枝刈り、チャネルカッティング及び量子化の圧縮技術が導入されるであろう。
【0069】
パターン枝刈りは、ニューラルアーキテクチャAのフィルタが枝刈りされるところの圧縮技術である。パターンはマスク行列Mat[x][y]として定義される。Mat[x][y]=0は、位置<x、y>で重み付けが枝刈りされるであろうことを示すが、Mat[x][y]=1は重み付けが残るであろうことを示す。Mat[x][y]のゼロの数に従って、パターンはPATcの異なるカテゴリに分類され得、ここでcはパターン内のゼロの数を示す。パターン枝刈りは、待ち時間を減少させ得る技術である。しかしながら、その実行ボトルネックが通信時である層にパターンを適用することは、待ち時間の減少を助けないであろうし、精度を低下させるであろう。
【0070】
図6は、本発明の実施形態による、パターン枝刈りに対するパターンの例を示す。全パターンのうち、PAT
cの1つのカテゴリが枝刈りのために選択されるであろう。各パターンカテゴリはさらに、多くのパターンからなっている。例えば、PAT
c=3のカテゴリ内に84のポテンシャルパターンが存在する。アクセラレータ上のニューラルアーキテクチャ推論に対して、あるパターンを適用することは、大きな数のマルチプレクサをもたらすであろうし、設計を非効率にする。したがって、PAT
nで示される選択カテゴリから、制限された数のパターンが選択される。
図6において、3×3フィルタに対するパターン枝刈りスペースの例で、PAT
n=4パターンはPAT
c=3のカテゴリから選択され、それはトータルで84の候補を含む。したがって、圧縮技術671はPAT
n=4パターンである。
【0071】
選択されたパターンは、一組のフィルタに対して適用されるであろう。パターンの各型によって枝刈りされたカーネルの数は、タイリング係数Tm及びTnに連結される。
図4に示されるように、重み付けタイルデータ428のオンチップメモリから従来の畳み込みモジュール422へのデータ移動は、画素単位で行われる。結果としてフィルタ全体を通過するのにK×Kの反復が実行される。 待ち時間の減少を実現するために、1つのデータタイル内で全パターンが同じであることが必要である。 そのため、外側のループ内の枝刈りされた重み付けは、計算時間を減少するためにスキップされ得る。 待ち時間モデル上の効果の観点で、式2は以下の通り修正され得る。
【0072】
【0073】
ここで、PATnはパターンマスク内のゼロの数である。
【0074】
式12に示されるように、ユークリッドノルムを適用することによって、フィルタ内の各カーネルに対し一つのパターンが特定され得、すなわち、ニューラルアーキテクチャA内のp(fi)の決定である。カーネルに対するパターン選択はユークリッドノルムに基づいているから、同型のデータタイルに対して異なるパターンが選択されるであろう。しかしながら、アクセラレータ上にパターン枝刈りが実装される場合に、タイル内に複数の型のパターンが適用されるなら、それは実行パイプラインを分解するるであろうし、パターン枝刈りは実行性を全く改善できない。入力特徴マップの並べ替えがこの問題を解決するであろう。
【0075】
図7は、本願発明の別の実施形態によるる、パターン枝刈りからの待ち時間減少を実現するための入力特徴マップ並べ替えの図を示す。入力特徴マップの並べ替えは、実行パイプラインの分割を避けるのに有用であろう。
【0076】
図7で示されるように、演算子o
j,kに用いられる、フィルタ743
A1及びフィルタ743
A2を含む第3のチャネルと、フィルタ743
B1及びフィルタ743
B2を含む第5のチャネルとがスイッチされる。対応して、ノードv
jの特徴マップ745
Aと特徴マップ745
Bとがスイッチされる。これは、重み付け744
Aの第3のフィルタと重み付け744
Bの第5のフィルタとの切り替えを必要とする、v
iからv
jへの演算子にさらに影響するであろう。このやり方において、パターン枝刈りからの計算待ち時間の減少は効果が得られ得る。
【0077】
式5及び式8から、パターン枝刈りはオンチップバッファサイズ及び重み付け読み込待ち時間をさらに減少させ得ることが明らかであろう。しかしながら、ほとんどの実施形態において、バッファサイズに対し、全層がこのバッファを再使用し、したがってサイズは1つの層に対し専用にはできないし、重み付けの読み込みに対し、パターン枝刈りは逐次的メモリアクセスからランダムアクセスへと読み込手順を導き、待ち時間増加に対するポテンシャルをもたらすであろう。したがって、逐次的メモリアクセスは実行を遅らせないよう、維持されてよい。
【0078】
チャネルカッティングは他の圧縮技術である。構造が変化するパターン枝刈りとは異なり、チャネルカッティングはニューラルアーキテクチャを変化させないであろう。
【0079】
図8は、本発明の実施形態によるチャネルカッティングの図を示す。チャネルカッティングは、ノード内の特徴マップのチャネルの数を直接減少させ、それは潜在的に待ち時間を減少させ得る。この実施形態において、チャネルカッティングは、アーキテクチャA内のノードv
i∈Vに対するチャネルの数を修正する。CUT
nは、ノードv
iの特徴マップから切除するチャネルの数を表す。v
iが演算子に対するIFMとして働く場合、式12は以下の通りに修正される:
【0080】
【0081】
そして、viが演算子に対する出力特徴マップとして働く場合、式13は以下の通り訂正される:
【0082】
【0083】
この実施形態において、CUTn=2チャネルがカットされる。したがって圧縮技術873はCUTn=2チャネルである。三連続ノードvi→vj→vkが存在し、チャネルカッティングはvjに適用される。この図において、vj内の特徴マップ845A及び特徴マップ845Bのチャネルが切除される。これらのチャネルの切除によって、リップル効果が、フィルタ844A及びフィルタ844B等のfi→jのフィルタ、及び、フィルタ843A及びフィルタ843B等のfj→kのフィルタにもたらされる。しかしながら、チャネル枝刈りは精度低下を容易にもたらすであろうし、特徴が直接的に削除されるから、チャネルカッティングの圧縮技術は注意深く定式化され、かつ、少なくとも幾つかの実施形態において、待ち時間ボトルネックが、ここで説明された他の圧縮技術等の、他の圧縮技術によって緩和できない場合だけに用いられるだけでよい。
【0084】
チャネル枝刈りは以下の場合に限って層の待ち時間を減少できる:
【0085】
【0086】
【0087】
Lat2は、活性化データをアクセラレータの内部メモリから外部メモリへコピーするtOmemによって支配されない。この特性は、少数のチャネルを枝刈りすることは、待ち時間を減少させないであろうことを示す。そのため、この特性は、段階としてTmまたはTnを取る待ち時間モデルのガイドとして用られ得る。
【0088】
量子化は他の圧縮技術である。量子化は、ニューラルアーキテクチャ推論をFPGAに実装するのに広く用られる。しかしながら、量子化は特定の型の実行ボトルネックを軽減できない。
【0089】
図9は、本発明の実施形態による、重み付け量子化の図を示す。この実施形態において、元のニューラルアーキテクチャは32ビット浮動点のデータ型を用るけれども、これは精度低下せずに16ビット固定点に変換され得る。そのような固定点表示は、<I,F>によって表される2つの部分、整数部及び分数部、からなる。所与の事前訓練済ニューラルアーキテクチャAに対して、拡張部は、一つの演算子の最大及び最小パラメータを取得してよい。その後、拡張部は整数部Iによって必要とされるビットの数を分析してよい。整数部が最も実質的なビットを含むから、それらのビット幅は維持されるであろうし、
図9に示されるようにQuan
fで示される分数部だけをさらに絞るであろう。 本実施形態において、圧縮技術977はQuan
f=4である。
【0090】
混合量子化は、異なる層内での重み付けが異なるビット幅を有する場合に、待ち時間を減少させるポテンシャルを有する。式8から分かり得るように、量子化は重み付けの読み込の待ち時間を減少させるポテンシャルを有する。これは、複数の重み付けを1つのパッケージの中に構成することによって実装され得る。計算待ち時間と同様に、式15で示されるように、初期間隔はすでに1サイクルに対して最適化されているから、下位ビット幅演算はクロックサイクルをさらに減少させることはできない。下位ビット幅演算は、計算リソースの数を減少させ得、クロック周波数を増加させるポテンシャルを有し得る。しかしながら、徹底した実装において、計算エンジンは全層によって共有される。したがって、最大ビット幅の層が設計の実行性を支配するであろう。換言すれば、単一層上の量子化は、重み付けの読み込の待ち時間を減少し得るが、より大きなビット幅の他の層が存在すると、計算待ち時間を減少させないであろう。
【0091】
S554で、拡張部またはそれらのサブセクションは、層の精度を高めるのに適したいずれかの技術が存在するか否かを決定する。もしそのような適した精度向上技術が存在するなら、操作フローはS555に進んで精度向上技術を割り当てる。もしそのような適した精度向上技術が存在しないなら、操作フローはS557に進んで、ニューラルアーキテクチャ内に他の残存層が存在するかどうかを決定する。
【0092】
S555で、割当部は層に精度向上技術を割り当てる。精度向上技術を割り当てることには、精度を向上させるのに、待ち時間モデル内の複数のハイパー・パラメータのうちいずれのハイパー・パラメータが修正され得るか、及び、そのハイパー・パラメータをどの程度まで修正し得るかを決定することを含んでよい。待ち時間ボトルネックに対応してよい圧縮技術を割り当てることとは異なり、精度向上技術は、待ち時間を増加させるポテンシャルを有し、したがって他の待ち時間要因に適用されてよい。換言すれば、待ち時間モデルを決定することは、選択されたニューラルアーキテクチャの少なくとも1つの層に対して、待ち時間ボトルネック以外の待ち時間要因のうちのいずれかに対応する精度向上技術を割り当てることをさらに含んでよく、各待ち時間削減技術は、複数のハイパー・パラメータのうちのあるハイパー・パラメータ及び範囲に関連付けられる。多くの精度向上技術が存在するが、それらの全てが精度を高めるのにまたは待ち時間の増加を避けるのに効果的なわけではないであろう。しかしながら、待ち時間ボトルネックを知ることは、いずれの精度向上技術が層に対して効果的であろうかを決定するのを助けるであろう。以下の例において、カーネル拡張の精度向上技術が導入されるであろう。
【0093】
フィルタ拡張は、ニューラルアーキテクチャAだけのハイパー・パラメータの修正である。(1)多くの最新式のニューラルアーキテクチャがより大きなサイズのフィルタを含むこと、及び、(2)特定の層に対して、フィルタサイズの増加が待ち時間オーバーヘッドを加えることにならないであろうということから、フィルタ拡張の使用が動機付けられるであろう。
【0094】
図10は、本発明の実施形態によるカーネル拡張の図を示す。この実施形態において、EXP
nはフィルタ上の拡張係数として定義される。この実施形態において、元のカーネルフィルタ1043
Oは拡張カーネルフィルタ1043
Xへ変換される。一つのカーネルによって全側面上でフィルタが増加したから、精度向上技術1075に対して、EXP
n=1である。K=2・EXP
n+K、であるようなKの増加によって、カーネル拡張は待ち時間モデルに影響を与えるであろう。
【0095】
以下の理論は、カーネルを拡張することによって精度が減少しないであろうことを保証するであろう:所与の事前訓練済ニューラルネットワークモデルA=<V,E,r,c,ch,o,f,para,acc>で、エッジe
i上のいかなる演算子o
iに対しても、もしf
i上に新たに加算された重み付けの初期重み付けがゼロに設定され、o
iが
図10に示されるようにEXP
nによってパディングされるならば、係数EXP
nでのフィルタf
iの拡張は精度を低下させないであろう。カーネルサイズを増加させてさらなるゼロでパッディングする場合に全ての計算は同じままであるから、これの証明は容易である。精度低下がない保証ともに、拡張カーネルはさらなる訓練で精度を向上させることがあり得る。
【0096】
S557で、拡張部またはそれらのサブセクションは、ニューラルアーキテクチャ内に残存層が存在するか否かを決定する。もしニューラルアーキテクチャ内に層がもっと存在するなら、操作フローは、S551の他の反復に進む前に次の層を選択し(S558)、次の層の待ち時間ボトルネックを検出する。もしニューラルアーキテクチャ内に層がもう存在しないなら、全ての層に対して待ち時間モデルが完了し、操作フローは終了する。
【0097】
S313で、決定部またはそれらのサブセクション等である試験部は、待ち時間モデルにモンテカルロテストを適用する。モンテカルロテストにおいて、待ち時間モデルの制約のうちで無作為に生成されたハイパー・パラメータのサンプルが待ち時間モデルに入力され、これらのハイパー・パラメータで結果として得られる全体の待ち時間を決定する。S313の反復が進むにつれ、試験部またはそれらのサブセクション等である生成部は、結果として得られる待ち時間の統計情報を決定するべく入力のための多くのサンプルを生成してよい。換言すれば、全体の待ち時間を決定することは、待ち時間モデル内のハイパー・パラメータの値の一意の組み合わせを複数生成することをさらに含み得る。全体の待ち時間を決定することは、ハイパー・パラメータの値の一意の組み合わせの複数の各々に対して、結果として得られる待ち時間を計算することをさらに含んでよい。ほとんどの実施形態において、サンプルは、前のモンテカルロテストで結果として得られる待ち時間のいずれにも関係なく、ハイパー・パラメータの、完全に無作為抽出された値から成る。
【0098】
S314で、決定部またはそれらのサブセクションは、テストのために残っているサンプルが存在するか否かを決定する。もし未検査のサンプルがもっと存在するなら、操作フローは、S313の他の反復に進む前に次のサンプルを選択し(S315)、モンテカルロテストを次のサンプルに対して適用する。もし未検査のサンプルがもう存在しないなら、操作フローはS317に進み、そこで待ち時間の結果が統合される。
【0099】
S317で決定部またはそれらのサブセクション等である統合部は、モンテカルロテストからの待ち時間の結果を統合する。最小待ち時間、平均待ち時間及び最大待ち時間等の統計情報は、いずれのニューラルアーキテクチャが最も速い及び/または最も正確となるポテンシャルを有するかを決定するのに役立つであろうし、したがって、待ち時間モデルの機能の近似を介するハイパー・パラメータ最適化に適している。
【0100】
S318で、決定部またはそれらのサブセクションは、全体の待ち時間決定のために残っているニューラルアーキテクチャが存在するか否かを決定する。もし未決定のニューラルアーキテクチャがもっと存在するなら、操作フローは、S311の他の反復に進む前に次のニューラルアーキテクチャを選択し(S319)、次のニューラルアーキテクチャに対する待ち時間モデルを決定する。もし未決定のニューラルアーキテクチャがもう存在しないなら、操作フローは終了する。
【0101】
最適化に進む前に、多くの実施形態において、選択部は、モンテカルロテストの結果の集合からの各ニューラルアーキテクチャの統計情報に基づいて、モデル群の中の複数のニューラルアーキテクチャのうちから、最も速い及び/または最も正確になるポテンシャルを有するニューラルアーキテクチャのサブセットを選択するであろう。幾つかの実施形態において、最小の全体の待ち時間だけがニューラルアーキテクチャのサブセットの選択に用いられる。他の実施形態において、選択は最小及び平均に基づいてよい。
【0102】
S160で、決定部は、最適化に適すると思われるあらゆるニューラルアーキテクチャのハイパー・パラメータ値を決定する。幾つかの実施形態において、決定部はハイパー・パラメータ値を決定するため機能近似器を待ち時間モデルに適用する。例えば、機能近似器は、待ち時間要素及び精度要素を含む報酬を用いた強化学習を有する再帰型ニューラルアーキテクチャであってよい。これらの実施形態において、決定部は待ち時間モデルのハイパー・パラメータの値を決定してよい。他の実施形態において、総当たり法がハイパー・パラメータ値を決定するのに用いられてよい。幾つかの実施形態において、目標は、待ち時間を最小にしかつ精度を最大にするようハイパー・パラメータ値を最適化することである。幾つかの実施形態において、目標は、待ち時間閾値またはそれ以下でに精度を最大にすることである。幾つかの実施形態において、S160でのハイパー・パラメータ値の決定は、最低待ち時間をもたらしたモンテカルロテストを用いたサンプル、または、待ち時間閾値より低い推論の実行の待ち時間で最大の精度をもたらしたサンプルの単純な取り込みである。
【0103】
図11は、本発明の実施形態による、ハイパー・パラメータ値の最適化のための機能近似器のニューラルネットワーク1170を示す。この実施形態において、ニューラルネットワーク1170は、強化学習によって訓練された、ロングショートタームメモリ(LSTM)再帰型ニューラルネットワーク(RNN)である。より具体的には、RNNコントローラは、ニューラルアーキテクチャの各層の、パターン枝刈りハイパーパラメータ1171、チャネルカッティングハイパーパラメータ1173及び量子化ハイパーパラメータ1177を含む割り当てられた圧縮技術、並びに、カーネル拡張ハイパーパラメータ1175、及び、タイリング設計及び帯域幅割当等、ハードウェア設計ハイパーパラメータ1179を含む割り当てられた精度向上技術の各々に対するハイパーパラメータ値を予測するソフトマックス分類器からなる。予測されたハイパーパラメータ値は、特定のニューラルアーキテクチャ及びハードウェア設計を特定するであろうし、それは精度及び待ち時間の観点で報酬を導出し得る。探索プロセスは、報酬の期待置を最大にするそのパラメータθ
cを調整することによってコントローラを最適化するであろう。方策勾配法は、一連のエピソードに渡ってより良いアーキテクチャを予測することを目的とし、パラメータθ
cを更新するのに使用されるであろう。
【0104】
図12は、本発明の実施形態による、
図1のS160等の、ハイパー・パラメータ値を決定するための操作フローを示す。この操作フローのうちの操作は、決定部またはこれに対応して名付けられたサブセクションによって実行されてよい。
図1で説明されたように、待ち時間モデルは、ハイパー・パラメータ値が決定される前に決定されかつ拡張される。
【0105】
この実施形態において、ハイパー・パラメータは、
図11の機能近似器のニューラルネットワーク1170等の、強化学習によって訓練された機能近似器のニューラルネットワークを用いて決定される。
【0106】
S1261で、決定部またはそれらのサブセクション等である初期化部は、機能近似器のニューラルネットワークのコントローラを初期化する。初期化は、コントローラへの最初の入力を形成するハイパー・パラメータへ無作為な値を割り当てることによって得られてよい。
【0107】
S1263で、決定部またはそれらのサブセクション等である予測部は、精度及び待ち時間の観点で報酬を最大にするであろうハイパー・パラメータ値を予測する。S1263の最初の反復において、予測されたハイパー・パラメータ値は高い報酬を導出することは期待されない。しかしながら、S1263からS1268の反復が進むにつれ、S1263で予測されたハイパー・パラメータ値は、どんどん高い報酬を導出するであろう。各反復、場合によりエピソードと呼ばれる、において、予測されたハイパー・パラメータは行動とみなされ得る。行動に基づいて、最適化されたニューラルアーキテクチャA及びハードウェア設計が導出されてよい。次のエピソードに対してコントローラを更新するため、報酬は以下の手順に従って算出される。
【0108】
S1264で、決定部またはそれらのサブセクション等である算出部は、S1263で予測されたハイパー・パラメータ値に従って、アクセラレータによるニューラルアーキテクチャ推論の実行の待ち時間を算出する。算出部は、全体の待ち時間を算出するために、単に、ハイパー・パラメータ値を各層の待ち時間モデルに入力してよい。算出部は、待ち時間モデルを用いることによって、設計D上のニューラルアーキテクチャAの待ち時間latを算出する。
【0109】
S1265で、決定部は、予測されたハイパー・パラメータ値から算出された待ち時間が受け入れられるか否かを決定する。幾つかの実施形態において、待ち時間の受け入れ可能性は、場合によりタイミング制約と呼ばれる待ち時間閾値によって定義される。もし算出された待ち時間が受け入れられるなら、操作フローはS1266に進み、そこでニューラルアーキテクチャは制限された訓練に供される。もし算出された待ち時間が受け入れられないなら、操作フローはS1267に進み、そこで報酬が算出される。換言すれば、決定部はタイミング制約Tが満され得るか否かを照合している。もしlat>Tなら、ニューラルアーキテクチャを微調整せずに、報酬が直接的に算出される。さもなくば、報酬は精度及び待ち時間に基づいて算出される。
【0110】
S1266で、決定部またはそれらのサブセクション等である訓練部は、制限された量の訓練データでニューラルアーキテクチャを訓練する。幾つかの実施形態において、訓練データの量は予測されたハイパー・パラメータでニューラルアーキテクチャを微調整するのにちょうど十分である。その後、訓練部は、ホールドアウトデータセットを使用してニューラルネットワークモデルの精度を試験する。例えば、訓練部は、ホールドアウトデータセット上の精度accを取得するため、ニューラルアーキテクチャを微調整してよい。ニューラルネットワークモデルは事前訓練されているから、ニューラルネットワークモデルを最初から訓練する必要がない。そうではなく、訓練部はaccを取得するため、β=10等、少数のデータバッチに対してニューラルネットワークモデルを微調整してよい。換言すれば、待ち時間モデルのハイパー・パラメータの値を決定することは、ホールドアウト訓練データセットを用いたニューラルアーキテクチャの訓練によって精度要素を決定することを含む。他の実施形態において、βはニューラルネットワークモデルのより細かい調整のために増加し得、それは精度の向上につながるであろう。
【0111】
S1267で、算出部は、制限された訓練の後に試験から算出された待ち時間及び結果として得られる精度に基づいて報酬を算出する。報酬の算出は以下の式に基づいてよい:
【0112】
【0113】
ここで、αは、より高い精度(すなわち、より大きいα)またはより低い待ち時間(すなわち、より小さいα)に対して、探索で制御するスケーリングパラメータであり、もし、タイミング制約を満たすことができないことを示す、lat>Tならば、算出部は、racc=-1及びrlat=T-latを設定するであろう。さもなくば、算出部は以下の通りに、racc及びrlatを-1から1までの範囲に正規化する:
【0114】
【0115】
【0116】
ここで、Aoriはニューラルアーキテクチャの元の精度であり、Tはタイミング制約であり、Amin及びTminは正規化の改善に関与させられた精度及び待ち時間の下界である。
【0117】
S1268で、決定部またはそれらのサブセクション等である更新部は、報酬に基づいてコントローラのパラメータを更新する。コントローラがハイパー・パラメータ値を予測して、かつ、報酬Rが算出された後に、更新部はコントローラを更新すべくモンテカルロ方策勾配アルゴリズムを適用してよい。
【0118】
【0119】
ここで、mはバッチサイズであり、Tは各エピソード内の段階の数である。報酬は段階ごとに指数の底γだけ割り引かれ、基準線bは報酬の指数移動平均である。
【0120】
S1269で、決定部またはそれらのサブセクションは、ハイパー・パラメータ値の決定が完了したか否かを決定する。もしハイパー・パラメータ値の決定が完了していないなら、操作フローはS1263に戻り、そこでコントローラはS1263-S1268の他の反復のため、予測されたハイパー・パラメータを出力する。もしハイパー・パラメータ値の決定が完了しているなら、操作フローは終了する。
【0121】
S170で、選択部はニューラルアーキテクチャを選択する。幾つかの実施形態において、選択部は、S160でハイパー・パラメータ値決定に供されたニューラルアーキテクチャのうちから選択する。幾つかの実施形態において、選択部は、待ち時間閾値より低い推論の実行の待ち時間を有する複数のニューラルアーキテクチャ内のニューラルアーキテクチャのうちから、最も高い精度で機能を実行するよう訓練されたニューラルアーキテクチャを選択する。他の実施形態において、S160でのハイパー・パラメータ値の決定が、最低待ち時間をもたらしたモンテカルロテストを用いたサンプル、または、待ち時間閾値より低い推論の実行の待ち時間で最大の精度をもたらしたサンプルの単純な取り込みである場合のように、選択部は、モデル群の全てのニューラルアーキテクチャのうちから選択する。
【0122】
上述の実施形態において、コールドスタート共同探索と比較して、事前訓練済ニューラルネットワークモデルのモデル群で始めることによって、最新式のニューラルネットワークモデルに匹敵する精度を実現しつつ、探索時間は、数百GPU時間から、ImageNetに対して3GPU時間未満及びプロキシなしでCIFAR-10に対して20GPU分未満に減少し得る。ここで説明された本発明の複数の実施形態は、CIFAR-10及びImageNet等の異なるデータセットに対して、精度・待ち時間パレートフロンティアを推し進めるであろう。換言すれば、ハードウェアに依存しない、ベースラインアーキテクチャと同様の精度を実現しつつ、厳密な待ち時間制約が満され得る。
【0123】
図13は、本発明の実施形態による、ハードウェアとニューラルアーキテクチャとの共同探索に対するハードウェア構成1390を示す。例示的ハードウェア構成は、装置1390を含み、それは、ネットワーク1398と通信するとともに、推論環境1396と相互作用する。装置1390は、業務用アプリケーションを実行し、それを使用するクライアントコンピューターをホストするサーバコンピュータまたはメインフレームコンピュータなどのホストコンピュータであってよく、その場合の装置1390は推論環境1396に直接接続されていなくてもよいが、ネットワーク1398を介して端末デバイスを介して接続される。装置1390は、2つまたはそれ以上のコンピュータを含むコンピュータシステムであってよい。装置1390は、装置1390のユーザのためアプリケーションを実行するパーソナルコンピュータであってよい。
【0124】
装置1390は、論理部1370、格納部1380、通信インターフェース1392及び入出力コントローラ1394を含む。論理部1370は、様々な部分の操作をプロセッサまたはプログラマブル回路に実行させるためにプロセッサまたはプログラマブル回路で実行可能なプログラム命令を集合的に格納している1または複数のコンピュータ可読記憶媒体を含むコンピュータプログラムプロダクトであってよい。論理部1370は、あるいは、アナログもしくはデジタルプログラマブル回路、またはそれらのいずれかの組み合わせであり得る。論理部1370は、通信を介して相互作用する、物理的に切り離された記憶装置または回路から構成され得る。格納部1380は、本書のプロセスの実行中に論理部1370がアクセスするための実行不能データを格納することができる不揮発性コンピュータ可読媒体であり得る。通信インターフェース1392は、格納部1380等の記録媒体に設けられた送信バッファ領域に格納され得る送信データを読み取り、読み取った送信データをネットワーク1398へ送信する、またはネットワーク1398から受信した受信データを、記録媒体に設けられた受信バッファ領域に書き込む。入出力コントローラ1394は、推論環境1396などの様々な入出力ユニットに、パラレルポート、シリアルポート、キーボードポート、マウスポート、モニターポート、及び、コマンドを受け入れたり情報を表示したりするそのようなもので接続する。推論環境1396はFPGAなどニューラルアーキテクチャ推論を実行できるハードウェアチップであってよく、または、スマートフォンやスマートカー等など、それらもメモリと通信するFPGAを含むような、プロセッサ及びメモリを有するコンピュータまたはそれと同様のデバイスであってよい。
【0125】
論理部1370は、取得部1372、決定部1374及び選択部1378を含み、決定部1374は拡張部1376を含む。格納部1380は、ハードウェア設計パラメータ1382、機能仕様1383、事前訓練済ニューラルアーキテクチャ候補1385、訓練データ1386、待ち時間モデル1388及び機能近似器1389を含む。
【0126】
取得部1372は、ハードウェアとニューラルアーキテクチャとの共同探索に対する情報を取得する論理部1370の一部である。例えば、取得部1372は、機能仕様及びハードウェア設計パラメータを取得するよう構成し得る。取得部1372は取得された情報をハードウェア設計パラメータ1382及び機能仕様1383として格納部1380に保存し得る。取得部1372は、上記フローチャートで記載されたように、追加の機能を実行するためのサブセクションを含んでよい。そのようなサブセクションは、それらの機能に関連付けられた名前によって呼ばれてよい。
【0127】
決定部1374は、待ち時間、待ち時間モデル、ハイパー・パラメータ値などのような、ハードウェアとニューラルアーキテクチャとの共同探索に対する様々な決定をする論理部1370の部分である。決定中に、決定部1374は、ハードウェア設計パラメータ1382、訓練データ1386、待ち時間モデル1388及び機能近似器1389にアクセスし得る。決定部1374は、上記フローチャートで記載されたように、追加の機能を実行するためのサブセクションを含んでよい。そのようなサブセクションは、それらの機能に関連付けられた名前によって呼ばれてよい。
【0128】
拡張部1375は、待ち時間モデルを圧縮技術及び/または精度向上技術を含むよう広げる論理部1370の部分である。拡張中に、拡張部1375は待ち時間モデル1388にアクセスし得る。拡張部1375は、上記フローチャートで記載されたように、追加の機能を実行するためのサブセクションを含んでよい。そのようなサブセクションは、それらの機能に関連付けられた名前によって呼ばれてよい。
【0129】
選択部1377は、ハードウェアとニューラルアーキテクチャとの共同探索中にニューラルアーキテクチャを選択する論理部1370の部分である。例えば、選択部1377は、ハイパー・パラメータ値決定に適したニューラルアーキテクチャを選択するよう、及び/または、最終ニューラルアーキテクチャを選択するよう構成され得る。選択中に、選択部1377は待ち時間モデル1388及び機能近似器1389にアクセスし得る。選択部1377は、上記フローチャートで記載されたように、追加の機能を実行するためのサブセクションを含んでよい。そのようなサブセクションは、それらの機能に関連付けられた名前によって呼ばれてよい。
【0130】
他の実施形態において、装置は、ここでの処理を実行するために論理的機能を処理することができる任意の他のデバイスであってよい。装置は、入力、出力及び全ての情報が直接接続された環境において、ネットワークに接続される必要はなくてよい。論理部及び記憶部は完全に切り離された装置である必要はなく、1または複数のコンピュータ可読媒体を共有し得る。例えば、記憶部は、論理セクションによってアクセスされる、コンピュータが実行可能な命令及びデータの両方を記憶するハードドライブであってよく、論理セクションは、中央処理装置(CPU)及びランダムアクセスメモリ(RAM)の組み合わせであってよく、論理セクションでは、本書のプロセスの実行中にCPUによって実行されるために、コンピュータが実行可能な命令が全体的にまたは部分的に複製され得る。
【0131】
装置がコンピュータである実施形態において、当該コンピュータにインストールされるプログラムは、当該コンピュータに、本発明の複数の実施形態の装置またはそれらの1または複数のセクション(モジュール、コンポーネント、要素などを含む)として機能させ、または、それらに関連付けられた操作を実行させ、及び/または、当該コンピュータに本発明の複数の実施形態の処理またはそれらのステップを実行させ得る。上記プログラムはプロセッサによって実行され、コンピュータに、本書に記載のフロー図及びブロック図のブロックの一部または全てに関連付けられた特定の操作を実行させ得る。
【0132】
本発明の様々な実施形態は、ブロックが(1)操作が実行されるプロセスのステップ、または(2)操作を実行する役割を果たす装置のセクションを表し得るフロー図及びブロック図を参照して、説明することができる。あるステップ及びセクションは、専用回路、コンピュータ可読媒体上に記憶されたコンピュータ可読命令が供給されているプログラマブル回路、及び/またはコンピュータ可読媒体上に記憶されたコンピュータ可読命令が供給されているプロセッサによって実装され得る。専用回路は、デジタル及び/またはアナログハードウェア回路を含んでいてよく、集積回路(IC)及び/または個別の回路を含み得る。プログラマブル回路は、論理AND、OR、XOR、NAND、NOR、及び他の論理演算、フリップ-フロップ、レジスタ、メモリ素子等、例えばフィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)等などを含む再構成可能なハードウェア回路を含み得る。
【0133】
本発明は、システム、方法、及び/または、コンピュータプログラムプロダクトであり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実現させるためのコンピュータ可読プログラム命令を有する(1または複数の)コンピュータ可読記憶媒体を含んでよい。
【0134】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持及び保存できる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、ただしこれに限定されないが、電気的格納デバイス、磁気的格納デバイス、光学的格納デバイス、電磁気的格納デバイス、半導体格納デバイス、または、それらの任意の好適な組み合わせであってよい。コンピュータ可読記憶媒体のより詳細な例の非限定的リストは以下を含む:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラミング可能リードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、メモリスティック、フロッピディスク、パンチカードや、その上に記録された命令を有する溝内の突起構造などの機械的に暗号化されたデバイス、それらの任意の好適な組み合わせ。コンピュータ可読記憶媒体は、ここで用いられる場合において、ラジオ波や他の自由に伝搬する電磁波、導波管や他の伝送媒体を介して伝搬する電磁波(例えば光ファイバケーブルを透過する光パルス)、または、電線を介して伝送される電気信号、などの一時的な信号それ自体と解釈されるべきでない。
【0135】
ここで記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から対応する計算・処理デバイスまたは外部コンピュータ若しくは外部格納デバイスへ、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/または無線ネットワークなどのネットワークを介して、ダウンロードされ得る。ネットワークは、銅送信ケーブル、光送信ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/またはエッジサーバーを備えてよい。各計算・処理デバイスのネットワークアダプターカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、各々の計算・処理デバイス内のコンピュータ可読記憶媒体に格納するためのコンピュータ可読プログラム命令を送る。
【0136】
本発明の操作を遂行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャー(ISA)命令、機械的命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk、C++等のオブジェクト指向プログラミング言語、及び、"C"プログラミング言語や同様のプログラミング言語など従来の手続きプログラミング言語を含む、1または複数のプログラミング言語のいずれかの組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全て実行され得るか、スタンドアロンのソフトウェアパッケージとして部分的にユーザのコンピュータ上で実行され得るか、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で実行され得るか、または、リモートコンピュータまたはサーバ上で全て実行され得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてもよく、または外部コンピュータ(例えばインターネットサービスプロバイダを用いてインターネットを通して)接続が行われてもよい。いくつかの実施形態において、例えば、プログラミング可能論理回路、フィールドプログラマブルゲートアレイ(FPGA)またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行するため、電子回路を適合させるコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行してよい。
【0137】
以上、本発明の複数の実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0138】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【手続補正書】
【提出日】2021-03-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータによって実行可能で前記コンピュータに操作を実行させる命令を含むコンピュータプログラムであって、前記操作は、
機能の仕様及び複数のハードウェア設計パラメータを取得することであって、前記ハードウェア設計パラメータはメモリ容量、計算リソースの数、通信帯域幅、及び、ニューラルアーキテクチャ推論を実行するためのテンプレート構成を含む、前記取得することと、
各ニューラルアーキテクチャはある精度で前記機能を実行するよう訓練されている、複数のニューラルアーキテクチャのうちの各ニューラルアーキテクチャに対して、前記ハードウェア設計パラメータ内でアクセラレータによる前記ニューラルアーキテクチャの推論の実行の全体の待ち時間を決定することと、
前記複数のニューラルアーキテクチャのうちから、前記全体の待ち時間及び前記精度に基づいてニューラルアーキテクチャを選択することと
を備え、前記全体の待ち時間を決定することは、活性化データを格納している外部メモリと相互作用しつつ前記アクセラレータによって前記ニューラルアーキテクチャの推論の前記実行を遂行するために複数のハイパー・パラメータの待ち時間モデルを決定することをさらに含む、コンピュータプログラム。
【請求項2】
前記複数のハイパー・パラメータは、タイリング設計、及び、前記アクセラレータによる前記ニューラルアーキテクチャの推論の実行中の帯域幅の割当を含む請求項1に記載のコンピュータプログラム。
【請求項3】
前記待ち時間モデルを決定することは、
各層に対して、待ち時間要因のうちの待ち時間ボトルネックを検出することをさらに含み、
前記待ち時間要因は、
外部メモリから前記アクセラレータの内部メモリへの活性化データのコピー、
前記外部メモリから前記内部メモリへの重み付け値のコピー、
前記活性化データに対しての計算の実行及び、
前記内部メモリから前記外部メモリへの前記活性化データのコピー、
である請求項1または2に記載のコンピュータプログラム。
【請求項4】
前記待ち時間モデルを決定することは、前記選択されたニューラルアーキテクチャの少なくとも1つの層に対し、前記待ち時間ボトルネックに対応する待ち時間削減技術を割り当てることをさらに含み、
各待ち時間削減技術は前記複数のハイパー・パラメータのうちのあるハイパー・パラメータ及び範囲に関連付けられる請求項3に記載のコンピュータプログラム。
【請求項5】
前記待ち時間モデル決定することは、前記選択されたニューラルアーキテクチャの少なくとも1つの層に対して、前記待ち時間ボトルネック以外の前記待ち時間要因のうちのいずれかに対応する精度向上技術を割り当てることをさらに含み、各待ち時間削減技術は前記複数のハイパー・パラメータのうちのあるハイパー・パラメータ及び範囲に関連付けられている、請求項3または4に記載のコンピュータプログラム。
【請求項6】
前記全体の待ち時間を決定することは、前記待ち時間モデル内の前記ハイパー・パラメータの値の一意の組み合わせを複数生成することをさらに含む請求項1から5のいずれか1項に記載のコンピュータプログラム。
【請求項7】
前記全体の待ち時間を決定することは、前記ハイパー・パラメータの値の一意の組み合わせの前記複数の各々に対し、結果として得られる待ち時間を計算することをさらに含む請求項6に記載のコンピュータプログラム。
【請求項8】
前記待ち時間モデルの前記ハイパー・パラメータの値を決定することをさらに備える請求項1から7のいずれか1項に記載のコンピュータプログラム。
【請求項9】
前記待ち時間モデルの前記ハイパー・パラメータの前記値を決定することは、前記待ち時間モデルに機能近似器を適用することをさらに含む請求項8に記載のコンピュータプログラム。
【請求項10】
前記機能近似器は、待ち時間要素及び精度要素を含む報酬を用いた強化学習を有する再帰型ニューラルネットワークである請求項9に記載のコンピュータプログラム。
【請求項11】
前記待ち時間モデルの前記ハイパー・パラメータの前記値を決定することは、ホールドアウト訓練データセットを用いた前記ニューラルアーキテクチャの訓練によって前記精度要素を決定することを含む請求項9に記載のコンピュータプログラム。
【請求項12】
前記選択することは、待ち時間閾値より低い推論の実行の待ち時間を有する前記複数のニューラルアーキテクチャ内のニューラルアーキテクチャのうちから、最も高い精度で前記機能を実行するよう訓練されたニューラルアーキテクチャを選択することをさらに含む請求項1から11のいずれか1項に記載のコンピュータプログラム。
【請求項13】
機能の仕様及び複数のハードウェア設計パラメータを取得する段階であって、前記ハードウェア設計パラメータは、メモリ容量、計算リソースの数、通信帯域幅及びニューラルアーキテクチャの推論を実行するためのテンプレート構成を含む、前記取得する段階と、
各ニューラルアーキテクチャがある精度で前記機能を実行するよう訓練されている複数のニューラルアーキテクチャのうちの各ニューラルアーキテクチャに対して、前記ハードウェア設計パラメータ内でアクセラレータによるニューラルアーキテクチャの推論の実行の全体の待ち時間を決定する段階と、
前記複数のニューラルアーキテクチャのうちから、前記全体の待ち時間及び前記精度に基づいてニューラルアーキテクチャを選択する段階と
を備え、前記全体の待ち時間を決定する段階は、活性化データを格納する外部メモリと相互作用しつつ前記アクセラレータによって前記ニューラルアーキテクチャの推論の前記実行を遂行するために複数のハイパー・パラメータの待ち時間モデルを決定する段階をさらに含む、方法。
【請求項14】
前記複数のハイパー・パラメータは、前記アクセラレータによる前記ニューラルアーキテクチャの推論の実行中の、タイリング設計と帯域幅割当とを含む請求項13に記載の方法。
【請求項15】
前記待ち時間モデルを決定する段階は、
各層に対して、待ち時間要因のうち待ち時間ボトルネックを検出する段階をさらに含み、
前記待ち時間要因は、
外部メモリから前記アクセラレータの内部メモリへの活性化データのコピー、
前記外部メモリから前記内部メモリへの重み付け値のコピー、
前記活性化データに対しての計算の実行、及び、
前記内部メモリから前記外部メモリへの前記活性化データのコピー
である請求項13または14に記載の方法。
【請求項16】
前記待ち時間モデルを決定する段階は、前記選択されたニューラルアーキテクチャの少なくとも1つの層に対して、前記待ち時間ボトルネックに対応する待ち時間削減技術を割り当てる段階をさらに含み、各待ち時間削減技術は、前記複数のハイパー・パラメータのうちのあるハイパー・パラメータ及び範囲に関連付けられている、請求項15に記載の方法。
【請求項17】
前記待ち時間モデルを決定する段階は、前記選択されたニューラルアーキテクチャの少なくとも1つの層に対して、前記待ち時間ボトルネック以外の前記待ち時間要因うちのいずれかに対応する精度向上技術を割り当てる段階をさらに含み、各待ち時間削減技術は前記複数のハイパー・パラメータのうちのあるハイパー・パラメータ及び範囲に関連付けられている、請求項15または16に記載の方法。
【請求項18】
機能の仕様及び複数のハードウェア設計パラメータを取得するよう構成された取得部であって、前記ハードウェア設計パラメータは、メモリ容量、計算リソースの数、通信帯域幅及びニューラルアーキテクチャの推論を実行するためのテンプレート構成を含む、前記取得部と、
各ニューラルアーキテクチャがある精度で前記機能を実行するよう訓練されている複数のニューラルアーキテクチャのうちの各ニューラルアーキテクチャに対して、前記ハードウェア設計パラメータ内でアクセラレータによる前記ニューラルアーキテクチャの推論の実行の全体の待ち時間を決定するよう構成された決定部と、
前記複数のニューラルアーキテクチャのうちから、前記全体の待ち時間及び前記精度に基づいてニューラルアーキテクチャを選択するよう構成された選択部と
を備え、前記決定部は、活性化データを格納している外部メモリと相互作用しつつ前記アクセラレータによって前記ニューラルアーキテクチャの推論の前記実行を遂行するために複数のハイパー・パラメータの待ち時間モデルをさらに決定する、装置。
【外国語明細書】