JP7331303B2 - フレキシブルな浮動小数点テンソルを用いた人工ニューラルネットワーク訓練 - Google Patents

フレキシブルな浮動小数点テンソルを用いた人工ニューラルネットワーク訓練 Download PDF

Info

Publication number
JP7331303B2
JP7331303B2 JP2019082718A JP2019082718A JP7331303B2 JP 7331303 B2 JP7331303 B2 JP 7331303B2 JP 2019082718 A JP2019082718 A JP 2019082718A JP 2019082718 A JP2019082718 A JP 2019082718A JP 7331303 B2 JP7331303 B2 JP 7331303B2
Authority
JP
Japan
Prior art keywords
bit
floating point
neural network
bits
exponent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019082718A
Other languages
English (en)
Other versions
JP2019212295A (ja
Inventor
ナイアー クリシュナクマール
ヤン アンドリュー
モリス ブライアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2019212295A publication Critical patent/JP2019212295A/ja
Application granted granted Critical
Publication of JP7331303B2 publication Critical patent/JP7331303B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)

Description

本開示は、ニューラルネットワークの訓練に関する。
ニューラルネットワークは、最も単純な形態として、複数の入力を有する入力層と、1または複数の出力を含む出力層と、入力層および出力層に結合された複数のニューロンを含む少なくとも1つの隠れ層とを含む。隠れ層に含まれるニューロンの各々は、任意の数の入力および任意の数の出力を有し得る。ニューロン入力および/またはニューロン出力の各々は、ニューラルネットワークの決定実行能力に影響するように重み付けされる。これらの重みは通常、初期的に割り当てられ、その後ニューラルネットワークの訓練期間中に提供される訓練データセットに含まれる情報に基づいて更新される。
教師あり訓練においては、入力データ(すなわち入力層におけるデータ)および出力データ(すなわち出力層におけるデータ)の両方がニューラルネットワークに提供される。ネットワークは、入力データを処理し、結果を出力データと比較する。誤差がネットワークを通って伝播し戻されることでネットワークを制御する重みが調整される場合があり、これによりネットワークの正確性および/またはスピードが向上する。訓練プロセスは、エポックにおいて行われる。各エポックは、ニューラルネットワークを通した1回のデータ順伝播、およびニューラルネットワークを通した1回のデータ逆伝播を含む。許容可能な閾値内の高信頼かつ予測可能な出力を生成するために、訓練には多数のエポックが必要となる場合がある。
ディープラーニング(深層構造学習または階層学習としても知られる)は、その上位概念の群である機械学習方法の一部であって、タスク固有のアルゴリズムとは対照的に、データ表現を学習することに基づくものである。ディープラーニングモデルは、様々な刺激とそれらに関連付けられる脳内でのニューロン反応との間の関係を定めることを試みるニューラルコーディングなど、生体神経系における情報処理および通信パターンに大まかに関連する。ディープラーニングは、計算負荷が高く、多大な処理能力およびリソースを必要とする。
IEEE数値フォーマットは、16ビット浮動小数点[FP16]および32ビット浮動小数点[FP32]を含む。FP16についてのIEEE754規格は、単一の符号ビット、10ビットの小数部、および5ビットの指数部を含む。FP32についてのIEEE754規格は、単一の符号ビット、23ビットの小数部、および8ビットの指数部を含む。ニューラルネットワーク訓練においてFP32を用いた場合、特にFP16と比較して、システムの計算負荷が著しく増大する。しかしながら、FP16においては、ディープニューラルネットワーク訓練における勾配が浅くなり過ぎる(すなわち2-24を下回る)場合があり、また「0」になる場合がある。よって、計算上のオーバヘッドおよび時間のコストに関わらず、多くのディープラーニングはFP32において行われる。
以下の詳細な説明が進むにつれて、また図面を参照することで、特許請求の対象の様々な実施形態の特徴および利点が明らかとなるであろう。図面において、同様の符号は同様の部分を指す。
本明細書に記載の少なくとも1つの実施形態に係る、ニューラルネットワークと、ニューラルネットワークに訓練テンソルを提供するためのプロセッサ回路と、プロセッサ回路により実行される命令を格納するための記憶デバイスとを含む例示的システムの俯瞰ブロック図を提供する。 本明細書に記載の少なくとも1つの実施形態に係る、共通6ビット指数(5:0)を共有する複数の16ビット浮動小数点数を含む例示的テンソルである。ここで当該テンソルにおける16ビット浮動小数点数の各々は、単一の符号ビット(15:15)、8ビット指数(14:7)および7ビット仮数(6:0)を含む。 本明細書に記載の少なくとも1つの実施形態に係る、共通6ビット指数(5:0)を共有する複数の16ビット浮動小数点数を含む別の例示的テンソルである。ここで当該テンソルにおける16ビット浮動小数点数の各々は、単一の符号ビット(15:15)、単一の指数ON/OFFスイッチビット(14:14)、8ビット指数(13:6)、および6ビット仮数(5:0)を含む。 本明細書に記載の少なくとも1つの実施形態に係る、例示的な電子的プロセッサベースデバイスの概略図である。当該プロセッサベースデバイスは、図1、2、および3において説明されるような複数の16ビット浮動小数点値を含む訓練テンソルを用いて、当該プロセッサベースデバイスに結合されるニューラルネットワークを訓練するために用いられるプロセッサ回路を含む。 本明細書に記載の少なくとも1つの実施形態に係る、共通の共有指数を有する複数の16ビット浮動小数点値を含む訓練テンソルを用いてニューラルネットワークを訓練する例示的方法の俯瞰フロー図である。 本明細書に記載の少なくとも1つの実施形態に係る、可変ビット長仮数、可変ビット長指数、および共有指数を有する16ビット浮動小数点値を生成する例示的方法の俯瞰フロー図である。 本明細書に記載の少なくとも1つの実施形態に係る、潜在的なオーバーフローまたはアンダーフロー状況を示すデータの検出に応答して、可変ビット長仮数、可変ビット長指数、および共有指数を有する16ビット浮動小数点値を生成する例示的方法の俯瞰フロー図である。 本明細書に記載の少なくとも1つの実施形態に係る、16ビット浮動小数点値に含まれる共有指数スイッチビットの論理状態に基づいて、16ビット浮動小数点値に含まれる可変ビット長指数の指数部分を共有指数値と選択的に組み合わせる例示的方法の俯瞰フロー図である。
例示的実施形態を参照しつつ以下の詳細な説明を進めるが、当業者にはそれらの多くの代替例、改変例、および変形例が明らかであろう。
本明細書に記載のシステムおよび方法は、共通の指数を共有する16ビット浮動小数点(FP16)数を含むニューラルネットワーク訓練テンソルを用いて、ニューラルネットワークにおけるディープラーニングのスピードおよび正確性を向上させるためのシステムおよび方法を提供する。1つの潜在的な変形例は、可変長の小数部分および可変長の指数部分を含む非IEEE規格フォーマットにおいて各浮動小数点数が表されるニューラルネットワーク訓練テンソルを含む。別の潜在的な変形例は、(a)それぞれの浮動小数点数の指数を共有指数と組み合わせること、または(b)それぞれの浮動小数点指数を共有指数と組み合わせない(すなわち浮動小数点指数のみを用いる)ことのいずれかとするために用いられる単一のON/OFFビットを各浮動小数点数が含むニューラルネットワーク訓練テンソルを含む。よって、本明細書に記載のシステムおよび方法は、FP16計算の利点を提供するとともに、5ビット共有指数を用いることによって可能なテスト値の範囲を有益に増大させる。
本明細書に記載のシステムおよび方法の一部は、単一の符号ビット、5ビット指数、および10ビット仮数を各々が含む複数のIEEE754準拠FP16フォーマット数の各々により共有される6ビット共有指数を含むニューラルネットワーク訓練テンソルを生成する。本明細書に記載のシステムおよび方法の一部は、単一の符号ビット、8ビット指数、および7ビット仮数を各々が含む複数のIEEE754非準拠FP16フォーマット数の各々により共有される指数を含むニューラルネットワーク訓練テンソルを生成する。本明細書に記載のシステムおよび方法の一部は、複数のFP16数と、テンソルに含まれる全てのFP16数により共有される6ビット共有指数とを含むニューラルネットワーク訓練テンソルを生成する。FP16数の各々は、単一の符号ビット、単一の共有指数ON/OFFスイッチ、8ビット指数、および6ビット仮数を有してよい。本明細書に記載のシステムおよび方法の一部は、潜在的なオーバーフローまたはアンダーフロー状況を回避するよう、プロセッサ回路が共有指数の値を調整することを可能とする。本明細書に記載のシステムおよび方法の一部は、潜在的なオーバーフローまたはアンダーフロー状況を回避するよう、プロセッサ回路が、追加的にまたは代替的に、テンソルに含まれる一部または全てのFP16数の指数および仮数の値を選択的に調整することを可能とする。よって、潜在的なオーバーフローまたはアンダーフロー状況を回避するべく、プロセッサ回路は、ニューラルネットワークの訓練と同時発生的に、共有指数の値、テンソルにおけるFP16数の一部または全てにおける指数の値、および/またはテンソルにおけるFP16数の一部または全てにおける仮数の値のうちの一部または全てを有益かつ有利に調整してよい。
ニューラルネットワークを訓練するためのシステムが提供される。当該システムは、プロセッサ回路と、プロセッサ回路に結合される記憶デバイスと、機械可読命令を含む記憶デバイスとを備えてよい。機械可読命令は、プロセッサ回路にニューラルネットワーク訓練テンソルを生成させ、ニューラルネットワーク訓練テンソルは、複数の16ビット浮動小数点値であって、それぞれの浮動小数点数の仮数を形成する第1の複数のビット、およびそれぞれの浮動小数点数の指数を形成する第2の複数のビットを各々が含む複数の16ビット浮動小数点値、および訓練テンソルに含まれる16ビット浮動小数点値の各々に共通し、それら各々により共有される6ビット共有指数を含む。
ニューラルネットワーク訓練方法が提供される。 ニューラルネットワーク訓練方法は、プロセッサ回路が、ニューラルネットワーク訓練テンソルを生成する段階であって、ニューラルネットワーク訓練テンソルは、複数の16ビット浮動小数点値であって、それぞれの浮動小数点数の仮数を形成する第1の複数のビット、およびそれぞれの浮動小数点数の指数を形成する第2の複数のビットを各々が含む16ビット浮動小数点値、および訓練テンソルに含まれる16ビット浮動小数点値の各々に共通する6ビット共有指数を含む、生成する段階と、訓練テンソルに含まれる複数の16ビット浮動小数点値のうちの少なくとも1つをニューラルネットワークに入力として提供する段階とを備えてよい。
ニューラルネットワーク訓練システムが提供される。 訓練システムは、プロセッサ回路が、ニューラルネットワーク訓練テンソルを生成するための手段であって、ニューラルネットワーク訓練テンソルは、複数の16ビット浮動小数点値であって、それぞれの浮動小数点数の仮数を形成する第1の複数のビット、およびそれぞれの浮動小数点数の指数を形成する第2の複数のビットを各々が含む16ビット浮動小数点値、および訓練テンソルに含まれる16ビット浮動小数点値の各々に共通する6ビット共有指数を含む、生成するための手段と、訓練テンソルに含まれる複数の16ビット浮動小数点値のうちの少なくとも1つをニューラルネットワークに入力として提供するための手段とを備えてよい。
非一時的機械可読記憶媒体が提供される。 非一時的機械可読記憶媒体は、機械可読命令を含み、機械可読命令は、プロセッサ回路により実行された場合、プロセッサ回路に、ニューラルネットワーク訓練テンソルを生成させ、ニューラルネットワーク訓練テンソルは、複数の16ビット浮動小数点値であって、それぞれの浮動小数点数の仮数を形成する第1の複数のビット、およびそれぞれの浮動小数点数の指数を形成する第2の複数のビットを各々が含む複数の16ビット浮動小数点値、および訓練テンソルに含まれる16ビット浮動小数点値の各々に共通する6ビット共有指数を含む。
ニューラルネットワークを訓練するためのプロセッサベースデバイスが提供される。 プロセッサベースデバイスは、プリント回路基板と、プリント回路基板に結合されるプロセッサ回路と、ニューラルネットワークに結合可能な入出力インタフェースと、プロセッサ回路に結合される記憶デバイスであって、機械可読命令を含む記憶デバイスとを備えてよく、機械可読命令は、プロセッサ回路により実行された場合、プロセッサ回路に、ニューラルネットワーク訓練テンソルを生成させ、ニューラルネットワーク訓練テンソルは、複数の16ビット浮動小数点値であって、それぞれの浮動小数点数の仮数を形成する第1の複数のビット、およびそれぞれの浮動小数点数の指数を形成する第2の複数のビットを各々が含む複数の16ビット浮動小数点値、および訓練テンソルに含まれる16ビット浮動小数点値の各々に共通する6ビット共有指数を含む。
図1は、本明細書に記載の少なくとも1つの実施形態に係る、ニューラルネットワーク110と、ニューラルネットワーク110に訓練テンソル150を提供するためのプロセッサ回路130と、プロセッサ回路130により実行される命令を格納するための記憶デバイス170とを含む例示的システム100の俯瞰ブロック図を提供する。訓練テンソル150は、複数の16ビット浮動小数点値152~152(まとめて「16ビット浮動小数点値152」)と、16ビット浮動小数点値152の少なくとも一部の各々に共通し、それら各々により共有される指数154とを含む。実施形態において、プロセッサ回路130は、ニューラルネットワーク110を訓練する(例えば、その重み付けおよび/またはバイアスを設定する)ために用いられる訓練テンソル150を生成する、またはその生成を引き起こす。実施形態において、記憶デバイス170内、記憶デバイス170上、または記憶デバイス170の周辺に格納される命令の実行は、プロセッサ回路130に、訓練テンソル150をニューラルネットワーク110を通して順伝播および/または逆伝播させてよい。
ニューラルネットワーク110は、複数のニューロン116~116(まとめて「ニューロン116」)を含む隠れ層116により結合される、複数の入力112~112(まとめて「入力112」)および複数の出力114~114(まとめて「出力114」)を含む。隠れ層116は単一のニューロン層のみを含むが、当業者には隠れ層116が任意の数の層を含んでよいことが容易に理解されよう。実施形態において、ニューラルネットワーク110は、ディープラーニングを可能とするニューラルネットワーク、すなわちディープニューラルネットワークを含んでよい。
プロセッサ回路130は、訓練テンソル150に含まれる16ビット浮動小数点値152および6ビット共有指数154をニューラルネットワーク110に提供することが可能である、現在利用可能なおよび/または将来開発される任意の数および/または組み合わせの電気的コンポーネント、半導体デバイス、および/または論理素子を含んでよい。いくつかの実装例において、プロセッサ回路130は、ニューラルネットワーク110および/または訓練テンソル150に関連付けられる1または複数のパラメータに基づいて、指数154を動的に調整してよい。例えば、プロセッサ回路130は、訓練テンソル150に含まれる1または複数の16ビット浮動小数点値152の潜在的なオーバーフローを検出したことに応じて、共有指数154の増大を引き起こす命令を実行してよい。別の例において、プロセッサ回路130は、訓練テンソル150に含まれる1または複数の16ビット浮動小数点値152の潜在的なアンダーフローを検出したことに応じて、共有指数154の減少を引き起こす命令を実行してよい。
実施形態において、プロセッサ回路130は、訓練テンソル150に含まれる1または複数の16ビット浮動小数点値152の増大率または減少率を算出または別の形で決定することで、潜在的なアンダーフローまたはオーバーフロー状況を示す挙動を呈するそれらの16ビット浮動小数点値152を特定するための回路を含んでよい。他の実施形態において、プロセッサ回路130は、訓練テンソル150に含まれる1または複数の16ビット浮動小数点値152の漸進的な増大または減少を算出または別の形で決定することで、潜在的なアンダーフローまたはオーバーフロー状況を示す挙動を呈するそれらの16ビット浮動小数点値152を特定するための回路を含んでよい。
実施形態において、プロセッサ回路130は、訓練テンソル150に含まれる16ビット浮動小数点値152の一部または全てを、ニューラルネットワーク110を通して順伝播してよい。実施形態において、プロセッサ回路130は、訓練テンソル150に含まれる16ビット浮動小数点値152の一部または全てを、ニューラルネットワーク110を通して逆伝播または逆転伝播してよい。実施形態において、プロセッサ回路130は、訓練テンソル150に含まれる16ビット浮動小数点値152を生成する、および/または訓練テンソル150に含まれる16ビット浮動小数点値152をニューラルネットワーク110に提供するよう構成される1または複数の汎用システムおよび/またはデバイスを含んでよい。実施形態において、プロセッサ回路130は、訓練テンソル150に含まれる16ビット浮動小数点値152の少なくとも一部分を、ネットワーク接続されたソースなどの1または複数の外部ソースから受け取ってよい。
訓練テンソル150は、複数の16ビット浮動小数点値152を含む。訓練テンソル150はまた、16ビット浮動小数点値152の少なくとも一部分の各々により共有され得る共有指数154を含む。共有指数154は、符号付き共有指数154を提供するよう、符号ビットを含んでよい。共有指数154は、3ビット値、4ビット値、5ビット値、6ビット値、7ビット値、または8ビット値を含んでよい。例えば、IEEE754規格の16ビット浮動小数点フォーマットを用いる場合、訓練テンソル150に含まれる各16ビット浮動小数点値152は、単一の符号ビットと、10ビット仮数と、16ビット浮動小数点値152に含まれる5ビット指数に5ビット共有指数154を加算した和を含む仮数とを含むこととなる。実施形態において、訓練テンソル150は、複数のIEEE754準拠の半精度(16ビット浮動小数点)値152を含む。実施形態において、訓練テンソル150は、複数のIEEE754非準拠の半精度(16ビット浮動小数点)値152を含む。
記憶デバイス170は、現在利用可能なおよび/または将来開発される、任意の数および/または組み合わせのデータ記憶システムおよび/またはデバイスを含んでよい。実施形態において、記憶デバイス170は、プロセッサ回路130により実行可能な機械可読命令セットを格納してよい。実施形態において、記憶デバイス170は、訓練テンソル150を形成する16ビット浮動小数点値152の少なくとも一部を、1または複数のデータストア、データ構造、および/またはデータベースに保持、格納、または別の形で維持してよい。
図2は、本明細書に記載の少なくとも1つの実施形態に係る、共通6ビット指数(5:0)154を各々が共有する複数の16ビット浮動小数点(FP16)数152~152を含む例示的テンソル200である。ここでFP16数の各々は、それぞれの単一の符号ビット(15:15)204~204、それぞれの8ビット指数(14:7)206~206、およびそれぞれの7ビット仮数(6:0)208~208を含む。訓練テンソル200に含まれる、共有指数154の値、1または複数のFP16数の仮数値、および1または複数のFP16数の指数値のうちの1または複数を動的に変更可能であることにより、ニューラルネットワーク訓練プロセス中における潜在的なオーバーフローまたはアンダーフロー状況を回避するべく、プロセッサ回路130がテンソル200における1または複数のFP16値を予見的に調整することが有益に可能となる。図2に示すフォーマットを用いると、各16ビット浮動小数点値152は、以下のとおり表されてよい。
ここで指数バイアスは、以下により与えられる。
図3は、本明細書に記載の少なくとも1つの実施形態に係る、共通6ビット指数(5:0)154を共有する複数の16ビット浮動小数点(FP16)数152~152を含む別の例示的テンソル300である。ここでFP16数の各々は、それぞれの単一の符号ビット(15:15)204~204、それぞれの共有指数ON/OFFスイッチビット(14:14)302~302、それぞれの8ビット指数(14:7)206~206、およびそれぞれの6ビット仮数(5:0)208~208を含む。訓練テンソル300に含まれる、共有指数154の値、1または複数のFP16数の仮数値、および1または複数のFP16数の指数値のうちの1または複数を動的に変更可能であることにより、ニューラルネットワーク訓練プロセス中における潜在的なオーバーフローまたはアンダーフロー状況を回避するべく、プロセッサ回路130がテンソル200における1または複数のFP16値を予見的に調整することが有益に可能となる。加えて、プロセッサ回路130は、訓練テンソル300に含まれるFP16数152の各々の指数206が共有指数と組み合わされるべきであるか否かを選択的に指定してよく、それにより訓練テンソル300のフレキシビリティがさらに増大する。図3に示すフォーマットを用いると、共有指数スイッチ304が「ON」の論理状態にある場合、16ビット浮動小数点値152は、以下のとおり表されてよい。
ここで指数バイアスは、以下により与えられる。
図3に示すフォーマットを用いると、共有指数スイッチ304が「OFF」の論理状態にある場合、16ビット浮動小数点値152は、以下のとおり表されてよい。
ここで指数バイアスは、以下により与えられる。
図4は、本明細書に記載の少なくとも1つの実施形態に係る、例示的な電子的プロセッサベースデバイス400の概略図である。プロセッサベースデバイス400は、図1、2、および3において説明されるような複数の16ビット浮動小数点値152を含む訓練テンソル150を用いて、プロセッサベースデバイス400に結合されるニューラルネットワーク110を訓練するために用いられるプロセッサ回路130を含む。プロセッサベースデバイス400は追加的に、グラフィカル処理ユニット412、無線入出力(I/O)インタフェース420、有線I/Oインタフェース430、メモリ回路440、電力管理回路450、非一時的記憶デバイス170、およびネットワークインタフェース470のうちの1または複数を含んでよい。以下の記載は、例示的プロセッサベースデバイス400を形成するコンポーネントについての簡単な一般的説明を提供する。非限定的な例としてのプロセッサベースデバイス400は、スマートフォン、ウェアラブルコンピュータ、ポータブルコンピューティングデバイス、ハンドヘルドコンピューティングデバイス、デスクトップコンピューティングデバイス、ブレードサーバデバイス、ワークステーション、および類似のものを含んでよいが、これらに限定されるものではない。
プロセッサベースデバイス400は、ニューラルネットワーク110を訓練するために用いられるテンソル150に含まれる16ビット浮動小数点値152を作成または別の形で生成することが可能なプロセッサ回路130を含む。実施形態において、プロセッサベースデバイス400は追加的に、グラフィクスプロセッサ回路412を含んでよい。実施形態において、プロセッサベースデバイス400は、1または複数の機械可読命令セット414を実行すること、1または複数の記憶デバイス170からデータおよび/または命令セット414を読み出すこと、および1または複数の記憶デバイス170にデータを書き込むことが可能なプロセッサ回路130を含む。プロセッサ回路130は、訓練テンソル150に含まれる16ビット浮動小数点値152の一部または全てを、ニューラルネットワーク110を通して順伝播してよい。プロセッサ回路130は、訓練テンソル150に含まれる16ビット浮動小数点値152の一部または全てを、ニューラルネットワーク110を通して逆転伝播してよい。実施形態において、プロセッサ回路130は、訓練テンソル150に含まれる16ビット浮動小数点値152のうちの1または複数における潜在的なオーバーフローまたはアンダーフロー状況を示す情報および/またはデータを予測および/または検出するための予測回路および/または検出回路を含んでよい。
いくつかの実施形態において、プロセッサベースデバイス400は、機械可読命令セット414を実行すること、およびシステムユーザへのディスプレイ出力の提供を可能とする出力信号を生成することが可能なグラフィクスプロセッサ回路412を含む。当業者であれば、例示されている実施形態および他の実施形態が、例としてスマートフォン、ポータブルコンピュータ、ウェアラブルコンピュータ、民生用電子機器、パーソナルコンピュータ(「PC」)、ネットワークPC、ミニコンピュータ、サーバブレード、およびメインフレームコンピュータ等のポータブル電子デバイスまたはハンドヘルド電子デバイスを含む他のプロセッサベースデバイス構成を用いて実施されてよいことは理解されよう。プロセッサ回路130は、任意の数のハードワイヤードのまたは構成可能な回路を含んでよく、その一部または全ては、プロセッサ可読命令を実行することが可能なPC、サーバ、または他のコンピューティングシステム内に部分的または全体的に配される電子的コンポーネント、半導体デバイス、および/または論理素子のプログラミング可能および/または構成可能な組み合わせを含んでよい。
プロセッサベースデバイス400は、プロセッサ回路130、グラフィクスプロセッサ回路412、1または複数の無線I/Oインタフェース420、1または複数の有線I/Oインタフェース430、1または複数の記憶デバイス170、および/または1または複数のネットワークインタフェース470を含む様々なシステムコンポーネントを通信可能に結合し、それらの間における情報および/またはデータの交換を促進するバスまたは類似の通信リンク416を含む。プロセッサベースデバイス400は、本明細書において単数として言及される場合があるが、特定の実施形態においては、通信可能に結合、配列、またはリモートネットワーク化された任意の数の回路またはデバイスを組み込む、含む、または収容する1つよりも多くのプロセッサベースデバイス400が存在してよく、したがってこれは実施形態を単一のプロセッサベースデバイス400に限定することを意図するものではない。
プロセッサ回路130は、機械可読命令セットを実行することが可能である、現在利用可能なまたは将来開発される任意の数、タイプ、または組み合わせのデバイスを含んでよい。プロセッサ回路130は、1または複数のシステムオンチップ(SOC)、中央処理ユニット(CPU)、デジタルシグナルプロセッサ(DSP)、グラフィクス処理ユニット(GPU)、特定用途向け集積回路(ASIC)、プログラマブル論理ユニット、およびフィールドプログラマブルゲートアレイ(FPGA)等のような、現在または将来開発される任意のシングルコアまたはマルチコアのプロセッサまたはマイクロプロセッサを含んでよいが、これらに限定されない。別途説明のない限り、図4に示す様々なブロックの構成および工程は、従来の設計のものである。したがってそのようなブロックは、当業者には理解されるであろうことから、本明細書においてさらに詳細に説明される必要はない。プロセッサベースデバイス400のコンポーネントの少なくとも一部を相互接続するバス416は、現在利用可能なまたは将来開発される任意のシリアルバスまたはパラレルバスの構造またはアーキテクチャを採用してよい。
システムメモリ440は、リードオンリメモリ(「ROM」)442およびランダムアクセスメモリ(「RAM」)446を含んでよい。ROM442の一部分は、基本入出力システム(「BIOS」)444を格納または別の形で維持するために用いられてよい。BIOS444は、例えばプロセッサ回路130に1または複数の機械可読命令セット414をロードおよび/または実行させることにより、プロセッサベースデバイス400に基本的機能姓を提供する。実施形態において、1または複数の機械可読命令セット414の少なくとも一部は、プロセッサ回路130の少なくとも一部分に、例えば文書処理機械、デジタル画像取得機械、メディア再生機械、ゲーミングシステム、通信デバイス、スマートフォン、または類似のものといった専用の具体的な特定の機械を提供させる、作成させる、生産させる、遷移させる、および/または当該機械として機能させる。
プロセッサベースデバイス400は、少なくとも1つの無線入出力(I/O)インタフェース420を含んでよい。少なくとも1つの無線I/Oインタフェース420は、1または複数の物理出力デバイス422(触覚デバイス、映像ディスプレイ、音声出力デバイス、ハードコピー出力デバイス等)に通信可能に結合されてよい。少なくとも1つの無線I/Oインタフェース420は、1または複数の物理入力デバイス424(ポインティングデバイス、タッチスクリーン、キーボード、触覚デバイス等)に通信可能に結合してよい。少なくとも1つの無線I/Oインタフェース420は、現在利用可能なまたは将来開発される任意の無線I/Oインタフェースを含んでよい。例としての無線I/Oインタフェースは、BLUETOOTH(登録商標)、近距離無線通信(NFC)、および類似のものを含むが、これらに限定されるものではない。
プロセッサベースデバイス400は、1または複数の有線入出力(I/O)インタフェース430を含んでよい。少なくとも1つの有線I/Oインタフェース430は、1または複数の物理出力デバイス422(触覚デバイス、映像ディスプレイ、音声出力デバイス、ハードコピー出力デバイス等)に通信可能に結合されてよい。少なくとも1つの有線I/Oインタフェース430は、1または複数の物理入力デバイス424(ポインティングデバイス、タッチスクリーン、キーボード、触覚デバイス等)に通信可能に結合されてよい。有線I/Oインタフェース430は、現在利用可能なまたは将来開発される任意のI/Oインタフェースを含んでよい。例としての有線I/Oインタフェースは、ユニバーサルシリアルバス(USB)、IEEE1394(「FireWire(登録商標)」)、および類似のものを含んでよいが、これらに限定されるものではない。
プロセッサベースデバイス400は、通信可能に結合された1または複数の非一時的データ記憶デバイス170を含んでよい。データ記憶デバイス170は、1または複数のハードディスクドライブ(HDD)および/または1または複数のソリッドステート記憶デバイス(SSD)を含んでよい。1または複数のデータ記憶デバイス170は、現在または将来開発される任意の記憶機器、ネットワーク記憶デバイス、および/またはシステムを含んでよい。そのようなデータ記憶デバイス170の非限定的な例は、1または複数の磁気記憶デバイス、1または複数の光記憶デバイス、1または複数の電子抵抗記憶デバイス、1または複数の分子記憶デバイス、1または複数の量子記憶デバイス、またはそれらの様々な組み合わせなどの、現在または将来開発される任意の非一時的記憶機器または記憶デバイスを含んでよいが、これらに限定されるものではない。いくつかの実装例において、1または複数のデータ記憶デバイス170は、プロセッサベースデバイス400との通信可能な結合および分離が可能な、1または複数のフラッシュドライブ、フラッシュメモリ、フラッシュ記憶ユニット、または類似の機器またはデバイスなどの1または複数の取り外し可能な記憶デバイスを含んでよい。
1または複数のデータ記憶デバイス170は、それぞれの記憶デバイスまたはシステムをバス416に通信可能に結合するインタフェースまたはコントローラ(不図示)を含んでよい。1または複数のデータ記憶デバイス170は、プロセッサ回路130および/またはグラフィクスプロセッサ回路412に対して、および/またはプロセッサ回路130および/またはグラフィクスプロセッサ回路412上でまたは当該回路により実行される1または複数のアプリケーションに対して有用である、機械可読命令セット、データ構造、プログラムモジュール、データストア、データベース、論理構造、および/または他のデータを格納、維持、または別の形で収容してよい。いくつかの事例において、1または複数のデータ記憶デバイス170は、例えばバス416を介して、または1または複数の有線通信インタフェース430(例えばユニバーサルシリアルバスまたはUSB)、1または複数の無線通信インタフェース420(例えばBluetooth(登録商標)、近距離無線通信またはNFC)、および/または1または複数のネットワークインタフェース470(IEEE802.3またはイーサネット(登録商標)、IEEE802.11、またはWiFi(登録商標)等)を介して、プロセッサ回路130に通信可能に結合されてよい。
プロセッサ可読命令セット414および他のプログラム、アプリケーション、論理セット、および/またはモジュールは、システムメモリ440に全体的または部分的に格納されてよい。そのような命令セット414は、全体的または部分的に、1または複数のデータ記憶デバイス170から伝達されてよい。命令セット414は、プロセッサ回路130および/またはグラフィクスプロセッサ回路412による実行中において、全体的または部分的にシステムメモリ440にロード、格納、または別の形で維持されてよい。プロセッサ可読命令セット414は、訓練テンソル150に含まれる共有指数154の値、1または複数のFP16数の仮数値208、および1または複数のFP16数の指数値206のうちの1または複数を動的に調整することをプロセッサ回路130に行わせることが可能である、機械可読および/またはプロセッサ可読なコード、命令、または類似の論理を含んでよい。プロセッサ可読命令セット414は、各FP16数152~152についての共有指数ON/OFFスイッチ302~302を、選択的かつ個別に、共有指数154がそれぞれのFP16数152~152の指数206~206と選択的に組み合わされる第1の論理状態(「ON」)に設定することをプロセッサ回路130に行わせることが可能である、機械可読および/またはプロセッサ可読なコード、命令、または類似の論理を含んでよい。プロセッサ可読命令セット414は、各FP16数152~152についての共有指数ON/OFFスイッチ302~302を、選択的かつ個別に、共有指数154がそれぞれのFP16数152~152の指数206~206と組み合わされない第2の論理状態(「OFF」)に設定することをプロセッサ回路130に行わせることが可能である、機械可読および/またはプロセッサ可読なコード、命令、または類似の論理を含んでよい。
プロセッサベースデバイス400は、エネルギー貯蔵デバイス452の1または複数の動作態様を制御する電力管理回路450を含んでよい。実施形態において、エネルギー貯蔵デバイス452は、1または複数の一次(すなわち非再充電式)電池または二次(すなわち再充電式)電池または類似のエネルギー貯蔵デバイスを含んでよい。実施形態において、エネルギー貯蔵デバイス452は、1または複数のスーパーキャパシタまたはウルトラキャパシタを含んでよい。実施形態において、電力管理回路450は、外部電源454からエネルギー貯蔵デバイス452および/またはプロセッサベースデバイス400へのエネルギーの流れを変更、調整、または制御してよい。電源454は、太陽光発電システム、商用送電網、ポータブル発電機、外部エネルギー貯蔵デバイス、またはそれらの任意の組み合わせを含んでよいが、それらに限定されない。
便宜上、プロセッサ回路130、グラフィクスプロセッサ回路412、無線I/Oインタフェース420、有線I/Oインタフェース430、電力管理回路450、記憶デバイス460、およびネットワークインタフェース470は、バス416を介して互いに通信可能に結合されることで、上記のコンポーネント間の接続を提供するものとして例示されている。代替的実施形態においては、上記のコンポーネントは、図4に例示するものとは異なる方式で通信可能に結合されてよい。例えば、上記のコンポーネントのうちの1または複数は、他のコンポーネントに直接的に結合されてもよく、または1または複数の中間コンポーネント(不図示)を介して互いに結合されてもよい。別の例において、上記のコンポーネントのうちの1または複数は、プロセッサ回路130および/またはグラフィクスプロセッサ回路412に統合されてよい。いくつかの実施形態において、バス416の全部または一部分が省略されてよく、それらのコンポーネントは、好適な有線または無線の接続を用いて互いに直接的に結合される。
図5は、本明細書に記載の少なくとも1つの実施形態に係る、共通の共有指数154を有する複数の16ビット浮動小数点値152を含む訓練テンソル150を用いてニューラルネットワーク110を訓練する例示的方法500の俯瞰フロー図である。共有指数154は、訓練テンソル150における可能な値の範囲を有益に増大し、それにより訓練テンソル150におけるオーバーフローまたはアンダーフロー状況の可能性を低減する。方法500は、502において開始する。
504において、プロセッサ回路130は、複数の16ビット浮動小数点値152を含む訓練テンソル150を生成する。IEEE754準拠の16ビット浮動小数点値と比較して拡大した範囲を有する16ビット浮動小数点値152を提供するべく、16ビット浮動小数点値152の少なくとも一部分の各々の指数は、訓練テンソル150に関連付けられた共有指数154と組み合わされてよい。
506において、プロセッサ回路130は、訓練テンソル150の少なくとも一部分をニューラルネットワーク110に提供する。実施形態において、プロセッサ回路130は、16ビット浮動小数点値152をニューラルネットワーク110に順伝播する。実施形態において、ニューラルネットワークは、ニューラルネットワーク110からの出力を受け取り、受け取った16ビット浮動小数点値152の少なくとも一部分を、ニューラルネットワークを通して逆方向伝播する。方法500は、508において終了する。
図6は、本明細書に記載の少なくとも1つの実施形態に係る、潜在的なオーバーフローまたはアンダーフロー状況を示すデータの検出に応答して、共有指数154、1または複数のFP16仮数値208~208、および1または複数のFP16指数値206~206のうちの1または複数の値を選択的に調整する例示的方法600の俯瞰フロー図である。方法600は、602において開始する。
604において、プロセッサ回路130は、訓練テンソル150に含まれる16ビット浮動小数点値152のうちの1または複数における潜在的なオーバーフローまたはアンダーフロー状況を示すデータを検出する。実施形態において、プロセッサ回路130は、未来の訓練エポック中における16ビット浮動小数点値152を予測することが可能な予測回路および/またはコンパレータ回路を含んでよい。
606において、16ビット浮動小数点値152のうちの1または複数が未来の訓練エポック中にオーバーフローまたはアンダーフローするであろうとの判定に応答して、プロセッサ回路130は、共有指数154、1または複数のFP16仮数値208~208、および1または複数のFP16指数値206~206のうちの1または複数の値を動的に変更することで、オーバーフローまたはアンダーフロー状況の可能性を最小化または排除する。方法600は、608において終了する。
図7は、本明細書に記載の少なくとも1つの実施形態に係る、訓練テンソル300に含まれるFP16数152~152の各々に含まれる共有指数スイッチ302~302ビットの論理状態に基づいて、16ビット浮動小数点値152に含まれる可変ビット長指数の指数部分を共有指数値と選択的に組み合わせる例示的方法700の俯瞰フロー図である。実施形態において、16ビット浮動小数点値152~152の各々は、それぞれの符号ビット204~204、それぞれの共有指数ON/OFFスイッチビット302~302、それぞれの6ビット仮数208~208、およびそれぞれの8ビット指数208~208を含んでよい。方法700は、訓練テンソル150に含まれるFP16数152~152の各々について複数の異なる指数値を用いることを有益に可能とする。方法700は、702において開始する。
704において、プロセッサ回路130は、訓練テンソル150に含まれるFP16数152~152の1つ1つについて、共有指数スイッチビット302~302を選択的かつ個別に設定する。実施形態において、プロセッサ回路130は、訓練テンソル150に含まれるFP16数152~152の指数値206~206が、それぞれのFP16数152~152の未来のオーバーフローまたはアンダーフローを防ぐのに不十分であるとの判定に基づいて、共有指数スイッチビット304を選択的に設定してよい。16ビット浮動小数点値152に含まれる指数ビットを訓練テンソル150に関連付けられた共有指数と組み合わせることにより、プロセッサ回路130は、オーバーフローまたはアンダーフロー状況の可能性を最小化または排除する。方法700は、706において終了する。
図8は、本明細書に記載の少なくとも1つの実施形態に係る、潜在的なオーバーフローまたはアンダーフロー状況を示すデータの検出に応答して、共有指数154、1または複数のFP16仮数値208~208、および1または複数のFP16指数値206~206のうちの1または複数の値を選択的に調整する、および/または各FP16数152~152についての個々の指数値206~206を共有指数154と組み合わせるか否かを選択的に制御する、例示的方法800の俯瞰フロー図である。方法800は、802において開始する。
804において、プロセッサ回路130は、訓練テンソル150に含まれる16ビット浮動小数点値152~152のうちの1または複数における潜在的なオーバーフローまたはアンダーフロー状況を示すデータを検出する。実施形態において、プロセッサ回路130は、未来の訓練エポック中における16ビット浮動小数点値152を予測することが可能な予測回路および/またはコンパレータ回路を含んでよい。
806において、16ビット浮動小数点値152のうちの1または複数が未来の訓練エポック中にオーバーフローまたはアンダーフローするであろうとの判定に応答して、プロセッサ回路130は、共有指数154、1または複数のFP16仮数値208~208、1または複数のFP16指数値206~206のうちの1または複数の値を動的に変更する、および/または共有指数ON/OFFスイッチ302~302を所望の論理状態に設定することで、オーバーフローまたはアンダーフロー状況の可能性を最小化または排除する。方法800は、808において終了する。
図5から8は、1または複数の実施形態に係る様々な工程を例示するが、他の実施形態については図5から8に示す工程の全てが必須であるとは限らないことを理解されたい。実際に、本開示の他の実施形態においては、図5から8に示す工程、および/または本明細書に記載の他の工程が、図面のいずれにおいても具体的に示されてはいないものの本開示と完全に整合するように組み合わされてよいことが、本明細書において完全に想定されている。よって、1つの図面において厳密に示されてはいない特徴および/または工程を対象とする請求項は、本開示の範囲および内容に収まるものとみなされる。
本出願および特許請求の範囲において用いる場合、「および/または」という用語により結び付けられる項目の列挙は、列挙される項目の任意の組み合わせを意味し得る。例えば、「A、Bおよび/またはC」という文言は、A、B、C、AおよびB、AおよびC、BおよびC、またはA、BおよびCを意味し得る。本出願および特許請求の範囲において用いる場合、「のうちの少なくとも1つ」という用語により結び付けられる項目の列挙は、列挙される用語の任意の組み合わせを意味し得る。例えば、「A、BまたはCのうちの少なくとも1つ」という文言は、A、B、C、AおよびB、AおよびC、BおよびC、またはA、BおよびCを意味し得る。
本明細書におけるいずれかの実施形態において用いる場合、「システム」または「モジュール」という用語は、例えば、上述の工程のいずれかを行うよう構成されるソフトウェア、ファームウェアおよび/または回路を指してよい。ソフトウェアは、非一時的コンピュータ可読記憶媒体に記録されたソフトウェアパッケージ、コード、命令、命令セットおよび/またはデータとして具現化されてよい。ファームウェアは、メモリデバイスにハードコーディングされた(例えば不揮発性の)コード、命令または命令セットおよび/またはデータとして具現化されてよい。本明細書におけるいずれかの実施形態において用いる場合、「回路」は、例えば、単独でまたは任意の組み合わせにおいて、ハードワイヤード回路、1または複数の個々の命令処理コアを含むコンピュータプロセッサなどのプログラマブル回路、ステートマシン回路、および/またはファームウェアを含んでよく、これは、プログラマブル回路、または例えば超並列計算、アナログ計算または量子計算を含む将来の計算パラダイム、ニューラルネットプロセッサなどのアクセラレータのハードウェア実施形態および上記のものの非シリコン実装により実行される命令を格納する。回路は、まとめてまたは個別に、例えば集積回路(IC)、システムオンチップ(SoC)、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォン等の、より大規模なシステムの一部を形成する回路として具現化されてよい。
本明細書に記載の工程のいずれかが、1または複数のプロセッサにより実行された場合に本方法を行う命令を個別にまたは組み合わせにおいて格納した1または複数の媒体(例えば非一時的記憶媒体)を含むシステムにおいて実装されてよい。ここで、プロセッサは例えば、サーバCPU、モバイルデバイスCPU、および/または他のプログラマブル回路を含んでよい。また、本明細書に記載の工程は、1つよりも多くの異なる物理的位置にある処理構造などの複数の物理デバイスにわたって分散されてよいことが意図されている。記憶媒体は、例えば、ハードディスク、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスクリードオンリメモリ(CD-ROM)、コンパクトディスクリライタブル(CD-RW)、および光磁気ディスクを含む任意のタイプのディスク、リードオンリメモリ(ROM)、ダイナミックRAMおよびスタティックRAMなどのランダムアクセスメモリ(RAM)、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、フラッシュメモリ、ソリッドステートディスク(SSD)、組み込み型マルチメディアカード(eMMC)、セキュアデジタル入出力(SDIO)カード、磁気カードまたは光カードなどの半導体デバイス、または電子的命令を格納するのに好適な任意のタイプの媒体といった、任意のタイプの有形の媒体を含んでよい。他の実施形態が、プログラマブル制御デバイスにより実行されるソフトウェアとして実装されてよい。
よって、本開示は、複数の16ビット浮動小数点値と、テンソルに含まれる16ビット浮動小数点値の一部または全てにより共有される指数を定める複数のビットとを含むテンソルを用いて、ニューラルネットワークを訓練するためのシステムおよび方法を対象とする。16ビット浮動小数点値は、IEEE754フォーマットの16ビット浮動小数点値を含んでよく、テンソルは、共有指数を定める複数のビットを含んでよい。テンソルは、共有指数と、可変ビット長仮数、およびプロセッサ回路により動的に設定され得る可変ビット長指数を含む16ビット浮動小数点値を含んでよい。テンソルは、共有指数と、可変ビット長仮数、プロセッサ回路により動的に設定され得る可変ビット長指数、およびプロセッサ回路により16ビット浮動小数点値指数を共有指数と選択的に組み合わせるよう設定される共有指数スイッチを含む16ビット浮動小数点値とを含んでよい。
以下の例は、さらなる実施形態に関する。本開示の以下の例は、少なくとも1つのデバイス、方法、実行された場合に機械に当該方法に基づく動作を行わせる命令を格納するための少なくとも1つの機械可読媒体、当該方法に基づく動作を行うための手段および/または半導体パッケージ基板における磁気的にライニングされた貫通孔を形成するためのシステムなどの対象物を含んでよい。
例1によれば、ニューラルネットワークを訓練するためのシステムが提供される。当該システムは、プロセッサ回路と、プロセッサ回路に結合される記憶デバイスと、機械可読命令を含む記憶デバイスとを備えてよい。機械可読命令は、プロセッサ回路にニューラルネットワーク訓練テンソルを生成させ、ニューラルネットワーク訓練テンソルは、複数の16ビット浮動小数点値であって、それぞれの浮動小数点数の仮数を形成する第1の複数のビット、およびそれぞれの浮動小数点数の指数を形成する第2の複数のビットを各々が含む複数の16ビット浮動小数点値、および訓練テンソルに含まれる16ビット浮動小数点値の各々に共通する5ビット共有指数を含む。
例2は、例1の要素を含んでよく、ニューラルネットワーク訓練テンソルに含まれる複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される10ビット仮数、第2の複数のビットにより提供される5ビット指数、および1ビット符号を含む。
例3は、例1または2のいずれかの要素を含んでよく、ニューラルネットワーク訓練テンソルに含まれる複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される可変ビット長仮数、第2の複数のビットにより提供される可変ビット長指数、および1ビット符号を含んでよく、命令はさらに、プロセッサ回路に、1または複数のニューラルネットワークパラメータに基づいて、可変ビット長仮数を表すためのビット数、および可変ビット長指数を表すためのビット数を選択させる。
例4は、例1から3のいずれかの要素を含んでよく、1または複数のニューラルネットワークパラメータは、ネットワーク訓練テンソルに含まれる16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示すトレンドを表すデータを含んでよい。
例5は、例1から4のいずれかの要素を含んでよく、ニューラルネットワーク訓練テンソルに含まれる複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される仮数、第2の複数のビットにより提供される指数、1ビット符号、およびそれぞれの16ビット浮動小数点数の指数部分を共有指数と選択的に組み合わせるための1ビットスイッチを含んでよい。
例6によれば、ニューラルネットワーク訓練方法が提供される。 ニューラルネットワーク訓練方法は、プロセッサ回路が、ニューラルネットワーク訓練テンソルを生成する段階であって、ニューラルネットワーク訓練テンソルは、複数の16ビット浮動小数点値であって、それぞれの浮動小数点数の仮数を形成する第1の複数のビット、およびそれぞれの浮動小数点数の指数を形成する第2の複数のビットを各々が含む16ビット浮動小数点値、および訓練テンソルに含まれる16ビット浮動小数点値の各々に共通する5ビット共有指数を含む、生成する段階と、訓練テンソルに含まれる複数の16ビット浮動小数点値のうちの少なくとも1つをニューラルネットワークに入力として提供する段階とを備えてよい。
例7は、例6の要素を含んでよく、ニューラルネットワーク訓練テンソルを生成する段階は、複数の16ビット浮動小数点値および5ビット共有指数を含むニューラルネットワーク訓練テンソルを生成する段階を含んでよく、複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される10ビット仮数、第2の複数のビットにより提供される5ビット指数、および1ビット符号を含む。
例8は、例6または7のいずれかの要素を含んでよく、ニューラルネットワーク訓練テンソルを生成する段階は、複数の16ビット浮動小数点値および5ビット共有指数を含むニューラルネットワーク訓練テンソルを生成する段階を含んでよく、複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される可変ビット長仮数、第2の複数のビットにより提供される可変ビット長指数、および1ビット符号を含む。
例9は、例6から8のいずれかの要素を含んでよく、当該方法は、プロセッサ回路が、1または複数のニューラルネットワークパラメータに基づいて、可変ビット長仮数を表すための第1のビット数、および可変ビット長指数を表すための第2のビット数を選択する段階を追加的に備えてよい。
例10は、例6から9のいずれかの要素を含んでよく、当該方法は、プロセッサ回路が、訓練テンソルに含まれる複数の16ビット浮動小数点値のうちの1または複数におけるトレンドを検出する段階を追加的に含んでよく、検出されるトレンドは、ネットワーク訓練テンソルに含まれる16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示す。
例11は、例6から10のいずれかの要素を含んでよく、可変ビット長仮数を表すための第1のビット数、および可変ビット長指数を表すための第2のビット数を選択する段階は、プロセッサ回路が、ネットワーク訓練テンソルに含まれる16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示すトレンドの検出に応答して、第1の複数のビットに含まれる第1のビット数および第2の複数のビットに含まれる第2のビット数を選択する段階を含んでよい。
例12は、例6から11のいずれかの要素を含んでよく、ニューラルネットワーク訓練テンソルを生成する段階は、複数の16ビット浮動小数点値および5ビット共有指数を含むニューラルネットワーク訓練テンソルを生成する段階を含んでよく、複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される仮数、第2の複数のビットにより提供される指数、1ビット符号、およびそれぞれの16ビット浮動小数点数の指数部分を共有指数と選択的に組み合わせるための1ビットスイッチを含む。
例13によれば、ニューラルネットワーク訓練システムが提供される。 訓練システムは、プロセッサ回路が、ニューラルネットワーク訓練テンソルを生成するための手段であって、ニューラルネットワーク訓練テンソルは、複数の16ビット浮動小数点値であって、それぞれの浮動小数点数の仮数を形成する第1の複数のビット、およびそれぞれの浮動小数点数の指数を形成する第2の複数のビットを各々が含む16ビット浮動小数点値、および訓練テンソルに含まれる16ビット浮動小数点値の各々に共通する5ビット共有指数を含む、生成するための手段と、訓練テンソルに含まれる複数の16ビット浮動小数点値のうちの少なくとも1つをニューラルネットワークに入力として提供するための手段とを備えてよい。
例14は、例13の要素を含んでよく、ニューラルネットワーク訓練テンソルを生成するための手段は、複数の16ビット浮動小数点値および5ビット共有指数を含むニューラルネットワーク訓練テンソルを生成するための手段を含んでよく、複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される10ビット仮数、第2の複数のビットにより提供される5ビット指数、および1ビット符号を含む。
例15は、例13または14のいずれかの要素を含んでよく、ニューラルネットワーク訓練テンソルを生成するための手段は、複数の16ビット浮動小数点値および5ビット共有指数を含むニューラルネットワーク訓練テンソルを生成するための手段をさらに含んでよく、複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される可変ビット長仮数、第2の複数のビットにより提供される可変ビット長指数、および1ビット符号を含む。
例16は、例13から15のいずれかの要素を含んでよく、当該システムは、可変ビット長仮数を表すための第1のビット数、および可変ビット長指数を表すための第2のビット数を選択するための手段をさらに備えてよい。
例17は、例13から16のいずれかの要素を含んでよく、当該システムは、訓練テンソルに含まれる複数の16ビット浮動小数点値のうちの1または複数におけるトレンドを検出するための手段をさらに備えてよく、検出されるトレンドは、ニューラルネットワーク訓練テンソルに含まれる16ビット浮動小数点値のうちの1または複数における潜在的なアンダーフロー状況または潜在的なオーバーフロー状況のうちの少なくとも1つを示す。
例18は、例13から17のいずれかの要素を含んでよく、可変ビット長仮数を表すための第1のビット数、および可変ビット長指数を表すための第2のビット数を選択するための手段は、ネットワーク訓練テンソルに含まれる16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示すトレンドの検出に応答して、第1の複数のビットに含まれる第1のビット数および第2の複数のビットに含まれる第2のビット数を選択するための手段をさらに含んでよい。
例19は、例13から18のいずれかの要素を含んでよく、ニューラルネットワーク訓練テンソルを生成するための手段は、複数の16ビット浮動小数点値および5ビット共有指数を含むニューラルネットワーク訓練テンソルを生成するための手段をさらに含んでよく、複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される仮数、第2の複数のビットにより提供される指数、1ビット符号、およびそれぞれの16ビット浮動小数点数の指数部分を共有指数と選択的に組み合わせるための1ビットスイッチを含む。
例20によれば、機械可読命令を含む非一時的コンピュータ可読記憶媒体であって、機械可読命令は、プロセッサ回路により実行された場合、プロセッサ回路に、ニューラルネットワーク訓練テンソルを生成させ、ニューラルネットワーク訓練テンソルは、複数の16ビット浮動小数点値であって、 それぞれの浮動小数点数の仮数を形成する第1の複数のビット、および それぞれの浮動小数点数の指数を形成する第2の複数のビットを各々が含む複数の16ビット浮動小数点値、および訓練テンソルに含まれる16ビット浮動小数点値の各々に共通する5ビット共有指数を含む、非一時的コンピュータ可読記憶媒体が提供される。
例21は、例20の要素を含んでよく、プロセッサ回路に複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる機械可読命令はさらに、プロセッサ回路に、第1の複数のビットにより提供される10ビット仮数、第2の複数のビットにより提供される5ビット指数、および1ビット符号を各々が含む複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる。
例22は、例20または21の要素を含んでよく、プロセッサ回路に複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる機械可読命令はさらに、プロセッサ回路に、第1の複数のビットにより提供される可変ビット長仮数、第2の複数のビットにより提供される可変ビット長指数、および1ビット符号を各々が含む複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成することと、1または複数のニューラルネットワークパラメータに基づいて、可変ビット長仮数を表すためのビット数、および可変ビット長指数を表すためのビット数を選択することとを行わせる。
例23は、例20から22のいずれかの要素を含んでよく、プロセッサ回路に、1または複数のニューラルネットワークパラメータに基づいて、可変ビット長仮数および可変ビット長指数を表すためのビット数を選択させる機械可読命令はさらに、プロセッサ回路に、ネットワーク訓練テンソルに含まれる16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの1または複数に基づいて、可変ビット長仮数および可変ビット長指数を表すためのビット数を選択させる。
例24は、例20から23のいずれかの要素を含んでよく、プロセッサ回路に複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる機械可読命令はさらに、プロセッサ回路に、第1の複数のビットにより提供される仮数、第2の複数のビットにより提供される指数、1ビット符号、およびそれぞれの16ビット浮動小数点数の指数部分を共有指数と選択的に組み合わせるための1ビットスイッチを各々が含む複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる。
例25によれば、プロセッサベースデバイスが提供される。 プロセッサベースデバイスは、プリント回路基板と、プリント回路基板に結合されるプロセッサ回路と、ニューラルネットワークに結合可能な入出力インタフェースと、プロセッサ回路に結合される記憶デバイスであって、機械可読命令を含む記憶デバイスとを備えてよく、機械可読命令は、プロセッサ回路により実行された場合、プロセッサ回路に、ニューラルネットワーク訓練テンソルを生成させ、ニューラルネットワーク訓練テンソルは、複数の16ビット浮動小数点値であって、それぞれの浮動小数点数の仮数を形成する第1の複数のビット、およびそれぞれの浮動小数点数の指数を形成する第2の複数のビットを各々が含む複数の16ビット浮動小数点値、および訓練テンソルに含まれる16ビット浮動小数点値の各々に共通する5ビット共有指数を含む。
例26は、例25の要素を含んでよく、ニューラルネットワーク訓練テンソルに含まれる複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される10ビット仮数、第2の複数のビットにより提供される5ビット指数、および1ビット符号を含む。
例27は、例25または26のいずれかの要素を含んでよく、ニューラルネットワーク訓練テンソルに含まれる複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される可変ビット長仮数、第2の複数のビットにより提供される可変ビット長指数、および1ビット符号を含んでよく、命令はさらに、プロセッサ回路に、1または複数のニューラルネットワークパラメータに基づいて、可変ビット長仮数を表すためのビット数、および可変ビット長指数を表すためのビット数を選択させる。
例28は、例25から27のいずれかの要素を含んでよく、1または複数のニューラルネットワークパラメータは、ネットワーク訓練テンソルに含まれる16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示すトレンドを含む。
例29は、例25から28のいずれかの要素を含んでよく、ニューラルネットワーク訓練テンソルに含まれる複数の16ビット浮動小数点値の各々は、第1の複数のビットにより提供される仮数、第2の複数のビットにより提供される指数、1ビット符号、およびそれぞれの16ビット浮動小数点数の指数部分を共有指数と選択的に組み合わせるための1ビットスイッチを含む。
例30によれば、テンソルデータ構造が提供される。テンソルデータ構造は、仮数値に対応する第1の複数のビット、指数値に対応する第2の複数のビット、および符号ビットを各々が含む複数の16ビット浮動小数点レジスタと、複数の16ビット浮動小数点レジスタのそれぞれ1つ1つに関連付けられた共有指数レジスタとを備えてよい。
例31は、例30の要素を含んでよく、複数の16ビット浮動小数点レジスタの各々は、第1の複数のビットにより提供される10ビット仮数、第2の複数のビットにより提供される5ビット指数、および1ビット符号を含む。
例32は、例30または31のいずれかの要素を含んでよく、複数の16ビット浮動小数点レジスタの各々は、第1の複数のビットにより提供される可変ビット長仮数、第2の複数のビットにより提供される可変ビット長指数、および1ビット符号を含む。
例33は、例30から32のいずれかの要素を含んでよく、複数の16ビット浮動小数点レジスタの各々は、第1の複数のビットにより提供される仮数、第2の複数のビットにより提供される指数、1ビット符号、およびそれぞれの16ビット浮動小数点数の指数部分を共有指数と選択的に組み合わせるための1ビットスイッチを含む。
本明細書において採用した用語および表現は、説明であって限定ではない用語として用いられており、そのような用語および表現の使用には、図示および説明されている特徴(またはそれらの部分)のいかなる均等物も除外する意図はなく、特許請求の範囲に収まる限りにおいて様々な改変が可能であることを認識されたい。したがって、特許請求の範囲は、あらゆるそのような均等物に及ぶものとして意図されている。様々な特徴、態様、および実施形態を本明細書に記載した。当業者に理解されるように、これらの特徴、態様、実施形態は、変形および改変に加え、互いに組み合わせることも可能である。ゆえに、本開示は、そのような組み合わせ、変形、および改変を包含するものとみなされるべきである。
本明細書に記載のとおり、様々な実施形態が、ハードウェア要素、ソフトウェア要素、またはそれらの任意の組み合わせを用いて実装されてよい。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路素子(例えばトランジスタ、抵抗器、コンデンサ、およびインダクタ等)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、およびチップセット等を含んでよい。
本明細書全体における「1つの実施形態」または「一実施形態」との記載は、その実施形態に関連して説明される特定の特徴、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。よって、本明細書全体の様々な箇所において現われる「1つの実施形態において」または「一実施形態において」との文言は、必ずしもその全てが同じ実施形態を指すものとは限らない。さらに、特定の特徴、構造、または特性は、1または複数の実施形態において任意の好適な方式で組み合わされてよい。
[項目1]
ニューラルネットワークを訓練するためのシステムであって、
プロセッサ回路と、
上記プロセッサ回路に結合される通信インタフェースであって、ニューラルネットワークに結合可能な通信インタフェースと、
上記プロセッサ回路に結合される記憶デバイスであって、機械可読命令を含む記憶デバイスと
を備え、
上記機械可読命令は、上記プロセッサ回路により実行された場合、上記プロセッサ回路に、
ニューラルネットワーク訓練テンソルを生成させ、上記ニューラルネットワーク訓練テンソルは、
複数の16ビット浮動小数点値であって、
それぞれの上記浮動小数点数の仮数を形成する第1の複数のビット、および
それぞれの上記浮動小数点数の指数を形成する第2の複数のビット
を各々が含む複数の16ビット浮動小数点値、および
上記訓練テンソルに含まれる上記16ビット浮動小数点値の各々に共通する5ビット共有指数
を含む、システム。
[項目2]
上記ニューラルネットワーク訓練テンソルに含まれる上記複数の16ビット浮動小数点値の各々は、
上記第1の複数のビットにより提供される10ビット仮数、
上記第2の複数のビットにより提供される5ビット指数、および
1ビット符号
を含む、項目1に記載のシステム。
[項目3]
上記ニューラルネットワーク訓練テンソルに含まれる上記複数の16ビット浮動小数点値の各々は、
上記第1の複数のビットにより提供される可変ビット長仮数、
上記第2の複数のビットにより提供される可変ビット長指数、および
1ビット符号
を含み、
上記命令はさらに、上記プロセッサ回路に、1または複数のニューラルネットワークパラメータに基づいて、
上記可変ビット長仮数を表すためのビット数、および
上記可変ビット長指数を表すためのビット数
を選択させる、項目1に記載のシステム。
[項目4]
上記1または複数のニューラルネットワークパラメータは、上記ネットワーク訓練テンソルに含まれる上記16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示すトレンドを含む、項目3に記載のシステム。
[項目5]
上記ニューラルネットワーク訓練テンソルに含まれる上記複数の16ビット浮動小数点値の各々は、
上記第1の複数のビットにより提供される上記仮数、
上記第2の複数のビットにより提供される上記指数、
1ビット符号、および
それぞれの上記16ビット浮動小数点数の上記指数部分を上記共有指数と選択的に組み合わせるための1ビットスイッチ
を含む、項目1に記載のシステム。
[項目6]
ニューラルネットワークを訓練する方法であって、
プロセッサ回路が、ニューラルネットワーク訓練テンソルを生成する段階であって、上記ニューラルネットワーク訓練テンソルは、
複数の16ビット浮動小数点値であって、
それぞれの上記浮動小数点数の仮数を形成する第1の複数のビット、および
それぞれの上記浮動小数点数の指数を形成する第2の複数のビット
を各々が含む16ビット浮動小数点値、および
上記訓練テンソルに含まれる上記16ビット浮動小数点値の各々に共通する5ビット共有指数
を含む、生成する段階と、
上記訓練テンソルに含まれる上記複数の16ビット浮動小数点値のうちの少なくとも1つを上記ニューラルネットワークに入力として提供する段階と
を備える方法。
[項目7]
上記ニューラルネットワーク訓練テンソルを生成する段階は、
上記複数の16ビット浮動小数点値および上記5ビット共有指数を含む上記ニューラルネットワーク訓練テンソルを生成する段階を含み、上記複数の16ビット浮動小数点値の各々は、
上記第1の複数のビットにより提供される10ビット仮数、
上記第2の複数のビットにより提供される5ビット指数、および
1ビット符号
を含む、項目6に記載の方法。
[項目8]
上記ニューラルネットワーク訓練テンソルを生成する段階は、
上記複数の16ビット浮動小数点値および上記5ビット共有指数を含む上記ニューラルネットワーク訓練テンソルを生成する段階を含み、上記複数の16ビット浮動小数点値の各々は、
上記第1の複数のビットにより提供される可変ビット長仮数、
上記第2の複数のビットにより提供される可変ビット長指数、および
1ビット符号
を含む、項目6に記載の方法。
[項目9]
上記プロセッサ回路が、1または複数のニューラルネットワークパラメータに基づいて、
上記可変ビット長仮数を表すための第1のビット数、および
上記可変ビット長指数を表すための第2のビット数
を選択する段階をさらに備える、項目8に記載の方法。
[項目10]
上記プロセッサ回路が、上記訓練テンソルに含まれる上記複数の16ビット浮動小数点値のうちの1または複数におけるトレンドを検出する段階をさらに備え、検出される上記トレンドは、上記ネットワーク訓練テンソルに含まれる上記16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示す、項目9に記載の方法。
[項目11]
上記可変ビット長仮数を表すための第1のビット数、および上記可変ビット長指数を表すための第2のビット数を選択する段階は、
上記プロセッサ回路が、上記ネットワーク訓練テンソルに含まれる上記16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示す上記トレンドの検出に応答して、上記第1の複数のビットに含まれる第1のビット数および上記第2の複数のビットに含まれる第2のビット数を選択する段階を含む、項目9に記載の方法。
[項目12]
上記ニューラルネットワーク訓練テンソルを生成する段階は、
上記複数の16ビット浮動小数点値および上記5ビット共有指数を含む上記ニューラルネットワーク訓練テンソルを生成する段階を含み、上記複数の16ビット浮動小数点値の各々は、
上記第1の複数のビットにより提供される上記仮数、
上記第2の複数のビットにより提供される上記指数、
1ビット符号、および
それぞれの上記16ビット浮動小数点数の上記指数部分を上記共有指数と選択的に組み合わせるための1ビットスイッチ
を含む、項目6に記載の方法。
[項目13]
ニューラルネットワーク訓練システムであって、
プロセッサ回路が、ニューラルネットワーク訓練テンソルを生成するための手段であって、上記ニューラルネットワーク訓練テンソルは、
複数の16ビット浮動小数点値であって、
それぞれの上記浮動小数点数の仮数を形成する第1の複数のビット、および
それぞれの上記浮動小数点数の指数を形成する第2の複数のビット
を各々が含む16ビット浮動小数点値、および
上記訓練テンソルに含まれる上記16ビット浮動小数点値の各々に共通する5ビット共有指数
を含む、生成するための手段と、
上記訓練テンソルに含まれる上記複数の16ビット浮動小数点値のうちの少なくとも1つを上記ニューラルネットワークに入力として提供するための手段と
を備えるシステム。
[項目14]
上記ニューラルネットワーク訓練テンソルを生成するための上記手段は、
上記複数の16ビット浮動小数点値および上記5ビット共有指数を含む上記ニューラルネットワーク訓練テンソルを生成するための手段を含み、上記複数の16ビット浮動小数点値の各々は、
上記第1の複数のビットにより提供される10ビット仮数、
上記第2の複数のビットにより提供される5ビット指数、および
1ビット符号
を含む、項目13に記載のシステム。
[項目15]
上記ニューラルネットワーク訓練テンソルを生成するための上記手段は、
上記複数の16ビット浮動小数点値および上記5ビット共有指数を含む上記ニューラルネットワーク訓練テンソルを生成するための手段をさらに含み、上記複数の16ビット浮動小数点値の各々は、
上記第1の複数のビットにより提供される可変ビット長仮数、
上記第2の複数のビットにより提供される可変ビット長指数、および
1ビット符号
を含む、項目13に記載のシステム。
[項目16]
上記可変ビット長仮数を表すための第1のビット数、および
上記可変ビット長指数を表すための第2のビット数
を選択するための手段をさらに備える、項目15に記載のシステム。
[項目17]
上記訓練テンソルに含まれる上記複数の16ビット浮動小数点値のうちの1または複数におけるトレンドを検出するための手段をさらに備え、検出される上記トレンドは、上記ニューラルネットワーク訓練テンソルに含まれる上記16ビット浮動小数点値のうちの1または複数における潜在的なアンダーフロー状況または潜在的なオーバーフロー状況のうちの少なくとも1つを示す、項目16に記載のシステム。
[項目18]
上記可変ビット長仮数を表すための第1のビット数、および上記可変ビット長指数を表すための第2のビット数を選択するための上記手段は、
上記ネットワーク訓練テンソルに含まれる上記16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示す上記トレンドの検出に応答して、上記第1の複数のビットに含まれる第1のビット数および上記第2の複数のビットに含まれる第2のビット数を選択するための手段をさらに含む、項目16に記載のシステム。
[項目19]
上記ニューラルネットワーク訓練テンソルを生成するための上記手段は、
上記複数の16ビット浮動小数点値および上記5ビット共有指数を含む上記ニューラルネットワーク訓練テンソルを生成するための手段をさらに含み、上記複数の16ビット浮動小数点値の各々は、
上記第1の複数のビットにより提供される上記仮数、
上記第2の複数のビットにより提供される上記指数、
1ビット符号、および
それぞれの上記16ビット浮動小数点数の上記指数部分を上記共有指数と選択的に組み合わせるための1ビットスイッチ
を含む、項目13に記載のシステム。
[項目20]
機械可読命令を含む非一時的コンピュータ可読記憶媒体であって、上記機械可読命令は、プロセッサ回路により実行された場合、上記プロセッサ回路に、
ニューラルネットワーク訓練テンソルを生成させ、上記ニューラルネットワーク訓練テンソルは、
複数の16ビット浮動小数点値であって、
それぞれの上記浮動小数点数の仮数を形成する第1の複数のビット、および
それぞれの上記浮動小数点数の指数を形成する第2の複数のビット
を各々が含む複数の16ビット浮動小数点値、および
上記訓練テンソルに含まれる上記16ビット浮動小数点値の各々に共通する5ビット共有指数
を含む、非一時的コンピュータ可読記憶媒体。
[項目21]
上記プロセッサ回路に複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる上記機械可読命令はさらに、上記プロセッサ回路に、
上記第1の複数のビットにより提供される10ビット仮数、
上記第2の複数のビットにより提供される5ビット指数、および
1ビット符号
を各々が含む複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる、項目20に記載の非一時的コンピュータ可読記憶媒体。
[項目22]
上記プロセッサ回路に複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる上記機械可読命令はさらに、上記プロセッサ回路に、
上記第1の複数のビットにより提供される可変ビット長仮数、
上記第2の複数のビットにより提供される可変ビット長指数、および
1ビット符号
を各々が含む複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成することと、
1または複数のニューラルネットワークパラメータに基づいて、
上記可変ビット長仮数を表すためのビット数、および
上記可変ビット長指数を表すためのビット数
を選択することと
を行わせる、項目20に記載の非一時的コンピュータ可読記憶媒体。
[項目23]
上記プロセッサ回路に、1または複数のニューラルネットワークパラメータに基づいて、上記可変ビット長仮数および上記可変ビット長指数を表すためのビット数を選択させる上記機械可読命令はさらに、上記プロセッサ回路に、
上記ネットワーク訓練テンソルに含まれる上記16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの1または複数に基づいて、上記可変ビット長仮数および上記可変ビット長指数を表すためのビット数を選択させる、項目22に記載の非一時的コンピュータ可読記憶媒体。
[項目24]
上記プロセッサ回路に複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる上記機械可読命令はさらに、上記プロセッサ回路に、
上記第1の複数のビットにより提供される上記仮数、
上記第2の複数のビットにより提供される上記指数、
1ビット符号、および
それぞれの上記16ビット浮動小数点数の上記指数部分を上記共有指数と選択的に組み合わせるための1ビットスイッチ
を各々が含む複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる、項目20に記載の非一時的コンピュータ可読記憶媒体。
[項目25]
仮数値に対応する第1の複数のビット、
指数値に対応する第2の複数のビット、および
符号ビット
を各々が含む複数の16ビット浮動小数点レジスタと、
上記複数の16ビット浮動小数点レジスタのそれぞれ1つ1つに関連付けられた共有指数レジスタと
を備えるテンソルデータ記憶構造。

Claims (30)

  1. ニューラルネットワークを訓練するためのシステムであって、
    プロセッサ回路と、
    前記プロセッサ回路に結合される通信インタフェースであって、ニューラルネットワークに結合可能な通信インタフェースと、
    前記プロセッサ回路に結合される記憶デバイスであって、機械可読命令を含む記憶デバイスと
    を備え、
    前記機械可読命令は、前記プロセッサ回路により実行された場合、前記プロセッサ回路に、
    ニューラルネットワーク訓練テンソルを生成させ、前記ニューラルネットワーク訓練テンソルは、
    複数の16ビット浮動小数点値であって、
    それぞれの浮動小数点数の仮数を形成する第1の複数のビット、および
    それぞれの浮動小数点数の指数を形成する第2の複数のビット
    を各々が含む複数の16ビット浮動小数点値、および
    前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々に共通する5ビット共有指数
    を含む、システム。
  2. 前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される10ビット仮数、
    前記第2の複数のビットにより提供される5ビット指数、および
    1ビット符号
    を含む、請求項1に記載のシステム。
  3. 前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される可変ビット長仮数、
    前記第2の複数のビットにより提供される可変ビット長指数、および
    1ビット符号
    を含み、
    前記機械可読命令はさらに、前記プロセッサ回路に、1または複数のニューラルネットワークパラメータに基づいて、
    前記可変ビット長仮数を表すためのビット数、および
    前記可変ビット長指数を表すためのビット数
    を選択させる、請求項1または2に記載のシステム。
  4. 前記1または複数のニューラルネットワークパラメータは、前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示すトレンドを含む、請求項3に記載のシステム。
  5. 前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される前記仮数、
    前記第2の複数のビットにより提供される前記指数、
    1ビット符号、および
    それぞれの16ビット浮動小数点数の前記指数を前記5ビット共有指数と選択的に組み合わせるための1ビットスイッチ
    を含む、請求項1から4のいずれか一項に記載のシステム。
  6. ニューラルネットワークを訓練する方法であって、
    プロセッサ回路が、ニューラルネットワーク訓練テンソルを生成する段階であって、前記ニューラルネットワーク訓練テンソルは、
    複数の16ビット浮動小数点値であって、
    それぞれの浮動小数点数の仮数を形成する第1の複数のビット、および
    それぞれの浮動小数点数の指数を形成する第2の複数のビット
    を各々が含む複数の16ビット浮動小数点値、および
    前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々に共通する5ビット共有指数
    を含む、生成する段階と、
    前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの少なくとも1つを前記ニューラルネットワークに入力として提供する段階と
    を備える方法。
  7. 前記ニューラルネットワーク訓練テンソルを生成する段階は、
    前記複数の16ビット浮動小数点値および前記5ビット共有指数を含む前記ニューラルネットワーク訓練テンソルを生成する段階を含み、前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される10ビット仮数、
    前記第2の複数のビットにより提供される5ビット指数、および
    1ビット符号
    を含む、請求項6に記載の方法。
  8. 前記ニューラルネットワーク訓練テンソルを生成する段階は、
    前記複数の16ビット浮動小数点値および前記5ビット共有指数を含む前記ニューラルネットワーク訓練テンソルを生成する段階を含み、前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される可変ビット長仮数、
    前記第2の複数のビットにより提供される可変ビット長指数、および
    1ビット符号
    を含む、請求項6または7に記載の方法。
  9. 前記プロセッサ回路が、1または複数のニューラルネットワークパラメータに基づいて、
    前記可変ビット長仮数を表すための第1のビット数、および
    前記可変ビット長指数を表すための第2のビット数
    を選択する段階をさらに備える、請求項8に記載の方法。
  10. 前記プロセッサ回路が、前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの1または複数におけるトレンドを検出する段階をさらに備え、検出される前記トレンドは、前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示す、請求項9に記載の方法。
  11. 前記可変ビット長仮数を表すための第1のビット数、および前記可変ビット長指数を表すための第2のビット数を選択する段階は、
    前記プロセッサ回路が、前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示すトレンドの検出に応答して、前記第1の複数のビットに含まれる第1のビット数および前記第2の複数のビットに含まれる第2のビット数を選択する段階を含む、請求項9または10に記載の方法。
  12. 前記ニューラルネットワーク訓練テンソルを生成する段階は、
    前記複数の16ビット浮動小数点値および前記5ビット共有指数を含む前記ニューラルネットワーク訓練テンソルを生成する段階を含み、前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される前記仮数、
    前記第2の複数のビットにより提供される前記指数、
    1ビット符号、および
    それぞれの16ビット浮動小数点数の前記指数を前記5ビット共有指数と選択的に組み合わせるための1ビットスイッチ
    を含む、請求項6から11のいずれか一項に記載の方法。
  13. ニューラルネットワーク訓練システムであって、
    プロセッサ回路が、ニューラルネットワーク訓練テンソルを生成するための手段であって、前記ニューラルネットワーク訓練テンソルは、
    複数の16ビット浮動小数点値であって、
    それぞれの浮動小数点数の仮数を形成する第1の複数のビット、および
    それぞれの浮動小数点数の指数を形成する第2の複数のビット
    を各々が含む複数の16ビット浮動小数点値、および
    前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々に共通する5ビット共有指数
    を含む、生成するための手段と、
    前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの少なくとも1つをニューラルネットワークに入力として提供するための手段と
    を備えるシステム。
  14. 前記ニューラルネットワーク訓練テンソルを生成するための前記手段は、
    前記複数の16ビット浮動小数点値および前記5ビット共有指数を含む前記ニューラルネットワーク訓練テンソルを生成するための手段を含み、前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される10ビット仮数、
    前記第2の複数のビットにより提供される5ビット指数、および
    1ビット符号
    を含む、請求項13に記載のシステム。
  15. 前記ニューラルネットワーク訓練テンソルを生成するための前記手段は、
    前記複数の16ビット浮動小数点値および前記5ビット共有指数を含む前記ニューラルネットワーク訓練テンソルを生成するための手段をさらに含み、前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される可変ビット長仮数、
    前記第2の複数のビットにより提供される可変ビット長指数、および
    1ビット符号
    を含む、請求項13または14に記載のシステム。
  16. 前記可変ビット長仮数を表すための第1のビット数、および
    前記可変ビット長指数を表すための第2のビット数
    を選択するための手段をさらに備える、請求項15に記載のシステム。
  17. 前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの1または複数におけるトレンドを検出するための手段をさらに備え、検出される前記トレンドは、前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの1または複数における潜在的なアンダーフロー状況または潜在的なオーバーフロー状況のうちの少なくとも1つを示す、請求項16に記載のシステム。
  18. 前記可変ビット長仮数を表すための第1のビット数、および前記可変ビット長指数を表すための第2のビット数を選択するための前記手段は、
    前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示すトレンドの検出に応答して、前記第1の複数のビットに含まれる第1のビット数および前記第2の複数のビットに含まれる第2のビット数を選択するための手段をさらに含む、請求項16または17に記載のシステム。
  19. 前記ニューラルネットワーク訓練テンソルを生成するための前記手段は、
    前記複数の16ビット浮動小数点値および前記5ビット共有指数を含む前記ニューラルネットワーク訓練テンソルを生成するための手段をさらに含み、前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される前記仮数、
    前記第2の複数のビットにより提供される前記指数、
    1ビット符号、および
    それぞれの16ビット浮動小数点数の前記指数を前記5ビット共有指数と選択的に組み合わせるための1ビットスイッチ
    を含む、請求項13から18のいずれか一項に記載のシステム。
  20. 機械可読命令を含むコンピュータプログラムであって、前記機械可読命令は、プロセッサ回路により実行された場合、前記プロセッサ回路に、
    ニューラルネットワーク訓練テンソルを生成させ、前記ニューラルネットワーク訓練テンソルは、
    複数の16ビット浮動小数点値であって、
    それぞれの浮動小数点数の仮数を形成する第1の複数のビット、および
    それぞれの浮動小数点数の指数を形成する第2の複数のビット
    を各々が含む複数の16ビット浮動小数点値、および
    前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々に共通する5ビット共有指数
    を含む、コンピュータプログラム。
  21. 前記プロセッサ回路に複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる前記機械可読命令はさらに、前記プロセッサ回路に、
    前記第1の複数のビットにより提供される10ビット仮数、
    前記第2の複数のビットにより提供される5ビット指数、および
    1ビット符号
    を各々が含む複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる、請求項20に記載のコンピュータプログラム。
  22. 前記プロセッサ回路に複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる前記機械可読命令はさらに、前記プロセッサ回路に、
    前記第1の複数のビットにより提供される可変ビット長仮数、
    前記第2の複数のビットにより提供される可変ビット長指数、および
    1ビット符号
    を各々が含む複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成することと、
    1または複数のニューラルネットワークパラメータに基づいて、
    前記可変ビット長仮数を表すためのビット数、および
    前記可変ビット長指数を表すためのビット数
    を選択することと
    を行わせる、請求項20または21に記載のコンピュータプログラム。
  23. 前記プロセッサ回路に、1または複数のニューラルネットワークパラメータに基づいて、前記可変ビット長仮数および前記可変ビット長指数を表すためのビット数を選択させる前記機械可読命令はさらに、前記プロセッサ回路に、
    前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの1または複数に基づいて、前記可変ビット長仮数および前記可変ビット長指数を表すためのビット数を選択させる、請求項22に記載のコンピュータプログラム。
  24. 前記プロセッサ回路に複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる前記機械可読命令はさらに、前記プロセッサ回路に、
    前記第1の複数のビットにより提供される前記仮数、
    前記第2の複数のビットにより提供される前記指数、
    1ビット符号、および
    それぞれの16ビット浮動小数点数の前記指数を前記5ビット共有指数と選択的に組み合わせるための1ビットスイッチ
    を各々が含む複数の16ビット浮動小数点値を含むニューラルネットワーク訓練テンソルを生成させる、請求項20から23のいずれか一項に記載のコンピュータプログラム。
  25. 請求項20から24のいずれか一項に記載のコンピュータプログラムを格納するコンピュータ可読記録媒体。
  26. プロセッサベースデバイスであって、
    プリント回路基板と、前記プリント回路基板に結合されるプロセッサ回路と、ニューラルネットワークに結合可能な入出力インタフェースと、
    前記プロセッサ回路に結合される記憶デバイスであって、機械可読命令を含む記憶デバイスと
    を備え、
    前記機械可読命令は、前記プロセッサ回路により実行された場合、前記プロセッサ回路に、
    ニューラルネットワーク訓練テンソルを生成させ、前記ニューラルネットワーク訓練テンソルは、
    複数の16ビット浮動小数点値であって、
    それぞれの浮動小数点数の仮数を形成する第1の複数のビット、および
    それぞれの浮動小数点数の指数を形成する第2の複数のビット
    を各々が含む複数の16ビット浮動小数点値、および
    前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々に共通する5ビット共有指数
    を含む、プロセッサベースデバイス。
  27. 前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される10ビット仮数、前記第2の複数のビットにより提供される5ビット指数、および1ビット符号を含む、請求項26に記載のプロセッサベースデバイス。
  28. 前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される可変ビット長仮数、
    前記第2の複数のビットにより提供される可変ビット長指数、および
    1ビット符号
    を含み、
    前記機械可読命令はさらに、前記プロセッサ回路に、1または複数のニューラルネットワークパラメータに基づいて、
    前記可変ビット長仮数を表すためのビット数、および
    前記可変ビット長指数を表すためのビット数
    を選択させる、請求項26または27に記載のプロセッサベースデバイス。
  29. 前記1または複数のニューラルネットワークパラメータは、前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値のうちの1または複数におけるアンダーフロー状況またはオーバーフロー状況のうちの少なくとも1つを示すトレンドを含む、請求項28に記載のプロセッサベースデバイス。
  30. 前記ニューラルネットワーク訓練テンソルに含まれる前記複数の16ビット浮動小数点値の各々は、
    前記第1の複数のビットにより提供される前記仮数、
    前記第2の複数のビットにより提供される前記指数、
    1ビット符号、および
    それぞれの16ビット浮動小数点数の前記指数を前記5ビット共有指数と選択的に組み合わせるための1ビットスイッチ
    を含む、請求項26から29のいずれか一項に記載のプロセッサベースデバイス。
JP2019082718A 2018-06-08 2019-04-24 フレキシブルな浮動小数点テンソルを用いた人工ニューラルネットワーク訓練 Active JP7331303B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/004,243 2018-06-08
US16/004,243 US20190042944A1 (en) 2018-06-08 2018-06-08 Artificial neural network training using flexible floating point tensors

Publications (2)

Publication Number Publication Date
JP2019212295A JP2019212295A (ja) 2019-12-12
JP7331303B2 true JP7331303B2 (ja) 2023-08-23

Family

ID=65230317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019082718A Active JP7331303B2 (ja) 2018-06-08 2019-04-24 フレキシブルな浮動小数点テンソルを用いた人工ニューラルネットワーク訓練

Country Status (5)

Country Link
US (2) US20190042944A1 (ja)
JP (1) JP7331303B2 (ja)
KR (1) KR20190139757A (ja)
CN (1) CN110580524A (ja)
DE (1) DE102019111995A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018176000A1 (en) 2017-03-23 2018-09-27 DeepScale, Inc. Data synthesis for autonomous control systems
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11215999B2 (en) 2018-06-20 2022-01-04 Tesla, Inc. Data pipeline and deep learning system for autonomous driving
US11361457B2 (en) 2018-07-20 2022-06-14 Tesla, Inc. Annotation cross-labeling for autonomous control systems
US11636333B2 (en) 2018-07-26 2023-04-25 Tesla, Inc. Optimizing neural network structures for embedded systems
US11562231B2 (en) 2018-09-03 2023-01-24 Tesla, Inc. Neural networks for embedded devices
KR20210072048A (ko) 2018-10-11 2021-06-16 테슬라, 인크. 증강 데이터로 기계 모델을 훈련하기 위한 시스템 및 방법
US11196678B2 (en) 2018-10-25 2021-12-07 Tesla, Inc. QOS manager for system on a chip communications
US11816585B2 (en) 2018-12-03 2023-11-14 Tesla, Inc. Machine learning models operating at different frequencies for autonomous vehicles
US11537811B2 (en) 2018-12-04 2022-12-27 Tesla, Inc. Enhanced object detection for autonomous vehicles based on field view
US11610117B2 (en) 2018-12-27 2023-03-21 Tesla, Inc. System and method for adapting a neural network model on a hardware platform
US11562247B2 (en) 2019-01-24 2023-01-24 Microsoft Technology Licensing, Llc Neural network activation compression with non-uniform mantissas
US10997461B2 (en) 2019-02-01 2021-05-04 Tesla, Inc. Generating ground truth for machine learning from time series elements
US11567514B2 (en) 2019-02-11 2023-01-31 Tesla, Inc. Autonomous and user controlled vehicle summon to a target
US10956755B2 (en) 2019-02-19 2021-03-23 Tesla, Inc. Estimating object properties using visual image data
EP3858065A4 (en) 2019-11-20 2021-12-29 Samsung Electronics Co., Ltd. Method and apparatus of retransmission using adjacent configured grant resource in wireless communication system
US11663000B2 (en) 2020-01-07 2023-05-30 SK Hynix Inc. Multiplication and accumulation(MAC) operator and processing-in-memory (PIM) device including the MAC operator
US20220229633A1 (en) 2020-01-07 2022-07-21 SK Hynix Inc. Multiplication and accumulation(mac) operator and processing-in-memory (pim) device including the mac operator
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
CN113704687B (zh) * 2020-05-21 2024-04-05 杭州海康威视数字技术股份有限公司 一种张量计算运行方法、装置及运算系统
US11175957B1 (en) * 2020-09-22 2021-11-16 International Business Machines Corporation Hardware accelerator for executing a computation task

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070299898A1 (en) 2006-06-22 2007-12-27 Honeywell International Inc. System and method for implementing irregular data formats
US20090292750A1 (en) 2008-05-22 2009-11-26 Videolq, Inc. Methods and apparatus for automatic accuracy- sustaining scaling of block-floating-point operands
US20180157465A1 (en) 2016-12-07 2018-06-07 Microsoft Technology Licensing, Llc Block floating point for neural network implementations

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63255735A (ja) * 1987-04-13 1988-10-24 Oki Electric Ind Co Ltd 浮動小数点乗算器
US11556762B2 (en) * 2018-04-21 2023-01-17 Microsoft Technology Licensing, Llc Neural network processor based on application specific synthesis specialization parameters

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070299898A1 (en) 2006-06-22 2007-12-27 Honeywell International Inc. System and method for implementing irregular data formats
US20090292750A1 (en) 2008-05-22 2009-11-26 Videolq, Inc. Methods and apparatus for automatic accuracy- sustaining scaling of block-floating-point operands
US20180157465A1 (en) 2016-12-07 2018-06-07 Microsoft Technology Licensing, Llc Block floating point for neural network implementations

Also Published As

Publication number Publication date
DE102019111995A1 (de) 2019-12-12
KR20190139757A (ko) 2019-12-18
JP2019212295A (ja) 2019-12-12
US20190042944A1 (en) 2019-02-07
US20240028905A1 (en) 2024-01-25
CN110580524A (zh) 2019-12-17

Similar Documents

Publication Publication Date Title
JP7331303B2 (ja) フレキシブルな浮動小数点テンソルを用いた人工ニューラルネットワーク訓練
US11216719B2 (en) Methods and arrangements to quantize a neural network with machine learning
KR102648665B1 (ko) 뉴럴 네트워크들의 아키텍처 최적화된 트레이닝
US9268528B2 (en) System and method for dynamically reducing power consumption of floating-point logic
JP2022502752A (ja) 実装コストを目的として含めることによるニューラルネットワークのトレーニング
US11169776B2 (en) Decomposed floating point multiplication
JP2022501665A (ja) 8ビットウィノグラード畳み込みで統計推論確度を維持する方法及び装置
WO2018075532A1 (en) Dynamic variable precision computation
US20230139623A1 (en) Data path circuit design using reinforcement learning
US10747501B2 (en) Providing efficient floating-point operations using matrix processors in processor-based systems
US11243743B2 (en) Optimization of neural networks using hardware calculation efficiency and adjustment factors
CN104823153B (zh) 用于执行指令的处理器、归一化加法运算的方法、通信设备、机器可读介质、用于处理指令的设备和设备
US20230244921A1 (en) Reduced power consumption analog or hybrid mac neural network
US11256537B2 (en) Interrupt control apparatus, interrupt control method, and computer readable medium
US11086634B2 (en) Data processing apparatus and method
CN111198714B (zh) 重训练方法及相关产品
CN111753988A (zh) 用于多变量数据提供方的深度学习数据操纵
WO2024087185A1 (en) Memory access adaptive self-attention mechanism for transformer model
US20220012571A1 (en) Apparatus, method, and computer-readable medium for activation function prediction in deep neural networks
US20230359436A1 (en) Floating-point multiplier using zero counters
WO2024000908A1 (en) Session-based recommendation utilizing similarity graph
CN111381802B (zh) 数据比较器、数据处理方法、芯片及电子设备
WO2020201791A1 (en) Trainable threshold for ternarized neural networks
KR20230096903A (ko) 벡터 단위 누적 기반 비트-병렬 가변 정밀도를 이용하는 시스톨릭 어레이 구조 및 장치
KR20230005643A (ko) 플로팅 포인트 연산 회로의 동작 방법 및 플로팅 포인트 연산 회로를 포함하는 집적 회로

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230714

R150 Certificate of patent or registration of utility model

Ref document number: 7331303

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150