JP7191329B2 - 計算およびローカルメモリ要素を組み込むニューラルネットワーク処理要素 - Google Patents

計算およびローカルメモリ要素を組み込むニューラルネットワーク処理要素 Download PDF

Info

Publication number
JP7191329B2
JP7191329B2 JP2019554805A JP2019554805A JP7191329B2 JP 7191329 B2 JP7191329 B2 JP 7191329B2 JP 2019554805 A JP2019554805 A JP 2019554805A JP 2019554805 A JP2019554805 A JP 2019554805A JP 7191329 B2 JP7191329 B2 JP 7191329B2
Authority
JP
Japan
Prior art keywords
memory
circuit
local memory
ann
input
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
JP2019554805A
Other languages
English (en)
Other versions
JP2020515989A (ja
Inventor
バウム,アヴィ
ダノン,オー
ツァイトリン,ハダー
シウボタリウ,ダニエル
フェイグ,ラミ
Original Assignee
ハイロ テクノロジーズ リミテッド
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 ハイロ テクノロジーズ リミテッド filed Critical ハイロ テクノロジーズ リミテッド
Publication of JP2020515989A publication Critical patent/JP2020515989A/ja
Application granted granted Critical
Publication of JP7191329B2 publication Critical patent/JP7191329B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Geometry (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)

Description

本明細書で開示する主題はニューラルネットワークの分野に関し、より詳細には、計算およびローカルメモリ要素を有し、人工ニューラルネットワーク(ANN)を実装するように適合された処理回路を内蔵しているニューラルネットワーク(NN)処理エンジンに関する。
人工ニューラルネットワーク(ANN)は、動物の脳を構成する生物の神経ネットワークから発想を得たコンピューティングシステムである。かかるシステムは、例を検討することによって、一般的には、タスク固有のプログラミングなしで、それらタスクの重要な特徴を抽出し、多数の例から一般化することにより、タスクを行うことを学習する、すなわち、性能を次第に改善する。例えば、画像認識では、それらは、手動で「猫」または「猫ではない」とラベル付けされている画像例を解析し、解析結果を使用して他の画像で猫を識別することにより、猫を含む画像を識別することを学習し得る。それらは、ルールベースのプログラミングを使用する従来のコンピュータアルゴリズムで表現することが困難な用途において最も有用であることが分かっている。
ANNは、生物脳内の神経に類似した、人工ニューロンと呼ばれる結合されたユニットの集合に基づく。ニューロン間の各結合またはシナプスは、信号を別のニューロンに伝達できる。受信またはポストシナプスニューロンは、別の1つまたはいくつかのニューロンに結合されて、その信号を処理することができ、次いで、軸索とも呼ばれるシナプスを通して結合された下流のニューロンに信号通知できる。ニューロンは、一般に実数値、典型的には0~1の間、によって表現される状態を有し得る。ニューロンおよびシナプスは、学習が進むにつれて変化する重みも有し得、それは、それが下流に送信する信号の強度を増大または低下できる。さらに、それらは閾値を有し得、それにより総合信号(aggregate signal)がそのレベルを下回っているか、または上回っている場合に限り、下流信号が送信される。
典型的には、ニューロンは層で編成される。異なる層は、それらの入力に関して異なる種類の変換を実行し得る。信号は、第1の、すなわち、入力層から最後の、すなわち、出力層に、恐らくは、層を複数回横切った後、移動する。
ニューラルネットワークアプローチの本来の目的は、ヒトの脳が行うのと同じ方法で問題を解決することであった。時が経つにつれて、マッチング特有の知能に関心が集中して、逆伝播、または逆方向への情報伝達およびその情報を反映するためのネットワークの調整などの、生物学からの逸脱に至った。
人工ニューラルネットワークの構成要素は、(1)活性化閾値を有するニューロン、(2)ニューロンの出力を伝達するための結合および重み、(3)ニューロンへの入力を先行ニューロンの出力から計算するための伝搬関数、ならびに(4)所与の入力が、典型的には重みおよび閾値の変更となる所望の結果を生成するために、ニューラルネットワークのパラメータを変更するアルゴリズムである学習則を含む。
解決すべき特定のタスク、および関数Fのクラスを所与として、学習は、そのタスクを何らかの最適な意味において解決する関数を見つけるために観測のセットを使用することを伴う。費用関数Cは、最適解に対して、他のどの解も最適解の費用よりも少ない費用を有していないように定義される)。
費用関数Cは、特定の解が、解決すべき問題に対する最適解からどれだけ離れているかの尺度である。学習アルゴリズムは、最小の考えられる費用を有する関数を見つけるために解空間内を検索する。
ニューラルネットワークは、ANNにおける重みに関して損失関数の勾配を計算する方法である逆伝播を使用して訓練できる。逆伝播の重み更新は、周知の確率的勾配降下技法によって行うことができる。費用関数の選択は、学習タイプ(例えば、教師あり、教師なし、強化)および活性化関数などの、要因によって決まることに留意されたい。
3つの主な学習パラダイムがあり、各々、特定の学習タスク、すなわち、教師あり学習、教師なし学習、および強化学習、に対応する。教師あり学習は、例ペアのセットを使用し、目標は、許可されたクラスの関数内で例を一致させる関数を見つけることである。一般的に使用される費用は平均平方誤差であり、それは、ネットワークの出力と全ての例ペアにわたる目標値との間の平均平方誤差を最小限にしようと試みる。多層パーセプトロン(MLP)と呼ばれるニューラルネットワークのクラスに対して勾配降下を使用してこの費用を最小限にすると、ニューラルネットワークを訓練するための逆伝播アルゴリズムが生成される。教師あり学習の例には、パターン認識、すなわち、分類、および回帰、すなわち、関数近似を含む。
教師なし学習では、何らかのデータが与えられ、最小限にすべき費用関数は、データおよびネットワークの出力の任意の関数であり得る。費用関数は、タスク(すなわち、モデル領域)および任意の先験的な仮定(すなわち、モデルの暗黙特性、そのパラメータ、および観測変数)によって決まる。教師なし学習のパラダイムに含まれるタスクは、一般に推定問題であり、用途は、クラスタリング、統計的分布の推定、圧縮、およびフィルタリングを含む。
強化学習では、データは通常、提供されないが、エージェントの、環境との相互作用によって生成される。各時点において、エージェントはアクションを実行し、環境は、何らかの典型的には未知のダイナミクスに従って観測および即座の費用(instantaneous cost)を生成する。目標は、長期的な費用、例えば、予期される累積費用、の何らかの測定を最小限にするアクションを選択するためのポリシーを発見することである。環境のダイナミクスおよび各ポリシーに対する長期的な費用は通常、未知であるが、推定することはできる。
今日、ニューラルネットワークに対する一般的な用途は、ビデオストリームの解析、すなわち、マシンビジョンにおいてである。例は、物品の製造における組立ライン上でマシンビジョンが使用される産業工場、車両の経路および周囲において物体を検出するためにマシンビジョンが使用される自律走行車を含む。
人工ニューラルネットワーク(ANN)は、いわゆる「ネットワークモデル」に起因するパラメータのセットに大きく依存する固有の構造を有する。これらのパラメータはしばしば、ネットワークに沿って伝播するときに他の中間値に対するスケーリング係数として動作する傾向に起因して、ネットワークの「重み」と呼ばれる。重みの値を判断するためのプロセスは、上述のように訓練と呼ばれる。一旦、訓練が完了すると、ネットワークは定常状態に落ち着いて、今や、情報を抽出するために新しい(すなわち、未知の)データで使用できる。この段階は「推論」段階と呼ばれる。
推論中、パラメータの結果セット、すなわち、重みを観測し、それらを操作してより良い性能(すなわち、表現)をもたらすことができる。重みを削って(prune)量子化するための方法は周知である。しかし、これらの方法は、推論段階に移行する前に、訓練されたモデルにのみ適用される。このアプローチは、より良い実行性能を実際にもたらす。しかし、それは、重みを変更することの可能性を完全には調査も利用もしていない。加えて、一旦、ANNの重みが満足のいくレベルまで収束すると、既存の解は、重みの量子化を訓練後にのみ適用する。
本発明は、人工ニューラルネットワーク(ANN)を実装するように適合された計算およびローカルメモリ要素を有する処理回路を内蔵しているニューラルネットワーク(NN)処理エンジンである。ニューロコンピュータまたはニューロチップとも呼ばれる、NN処理エンジンまたはプロセッサの粒状性質(granular nature)は、ニューラルネットワークの基盤が容易に識別されて、幅広い範囲のニューラルネットワークモデルが非常に効率的な方法で実装されるのを可能にする。NNプロセッサは、(1)計算的側面に関してアーキテクチャを一般化し過ぎることと、(2)計算を専用の計算可能ユニットに集約すること、との間でのバランスの選択においていくらかの柔軟性を提供する。本発明は、ニューラルネットワーク向けの改善されたバランスを提供して、適切な容量で必要な機能を満足しようと試みる。結果として生じるアーキテクチャは従って、より効率的で、ユニットあたりはるかに低消費電力で、実質的に高い計算ユニット密度を提供する。
本発明のNNプロセッサのアーキテクチャのいくつかの主な特徴は、次を含む、すなわち、(1)計算ユニットは自己完結型であり、それらの対象タスクを実装するために完全に利用されるように構成される、(2)階層アーキテクチャが均質性および自己相似性を提供し、それにより、複数レベルの階層に集約された、類似の計算ユニットのより単純な管理および制御を可能にする、(3)計算ユニットは可能な限り最小限のオーバーヘッドで設計されて、追加の特徴および機能は、階層(すなわち、集約)のより高いレベルに置かれる、(4)オンチップメモリが、特定の階層における基本操作に対して本質的に必要なコンテンツに対してストレージを提供し、計算資源と最適比で結合される、(5)無駄のない制御が、特定の階層レベルで必要な操作だけを管理するのにちょうど十分な制御を提供する、ならびに(6)動的資源割当アジリティが、可用性および容量に応じて必要とされるとおりに調整できる。
本発明の実施形態のこの、追加の、および/もしくは他の態様ならびに/または利点は、以下の詳細な説明に記載されており、恐らくは、詳細な説明から推測でき、かつ/または本発明の実施形態の実施によって学習可能である。
従って、本発明に従い、1つ以上のネットワーク層を有していて、重みおよび入力データを受信し、それから積を生成するように動作する乗算器、積および現在のコンテキストを受信して合計して、更新されたコンテキストをそれから生成するように動作する加算器、加算器に結合されて更新されたコンテキストをその中に格納するように動作するローカルメモリを含む、人工ニューラルネットワーク(ANN)に対するニューラルネットワーク計算を実行するためのNNプロセッサ内で使用するためのニューラルネットワーク(NN)処理要素回路が提供され、ローカルメモリ内の個々の記憶位置はランダム以外の事前に定義された方法でアクセスされる。
本発明に従い、1つ以上のネットワーク層を有していて、受信した重みおよび入力データを乗じて、それから積を生成するように動作する複数の乗算器、その積を、ローカルメモリまたはより高い集約レベルに配置されたメモリのいずれかから受信した現在のコンテキストと加算して、更新されたコンテキストをそれから生成するように動作するアキュムレータ、アキュムレータに結合されて更新されたコンテキストを逐次的方法でその中に格納するように動作するローカルメモリ、更新されたコンテキストを、選択制御信号に従って、ローカルメモリ、より高い集約レベルに配置されたメモリ、またはより高い集約レベルに配置された関数のいずれかに書き込むように動作するマルチプレクサを含む、人工ニューラルネットワーク(ANN)に対するニューラルネットワーク計算を実行するためのNNプロセッサ内で使用するためのニューラルネットワーク(NN)処理要素回路も提供され、ローカルメモリ内の個々の記憶位置はランダム以外の事前に定義された方法でアクセスされる。
本発明に従い、集積回路(IC)によって実装された方法がさらに提供され、ICは、1つ以上のネットワーク層を有する人工ニューラルネットワーク(ANN)に対するニューラルネットワーク計算を実行するためのNNプロセッサ内で使用するためのニューラルネットワーク(NN)処理要素回路を含み、本方法は、ANN重みおよび入力データを乗じて、それから積を生成すること、その積および現在のコンテキストを合計して、更新されたコンテキストをそれから生成すること、更新されたコンテキストをローカルでその処理要素回路に専用のメモリに格納することを含み、ローカルメモリ内の個々の記憶位置はランダム以外の事前に定義された方法でアクセスされる。
本発明に従い、集積回路(IC)によって実装された方法も提供され、ICは、1つ以上のネットワーク層を有する人工ニューラルネットワーク(ANN)に対するニューラルネットワーク計算を実行するためのNNプロセッサ内で使用するためのニューラルネットワーク(NN)処理要素回路を含み、本方法は、第1のオペランド、第2のオペランド、および第3のオペランドを受信すること、処理要素回路の動作をタイムスロットに分割すること、第1のオペランド、第2のオペランド、および第3のオペランドを伴う計算を実行して更新されたデータ要素をそれから生成すること、そのデータ要素をローカルでその処理要素回路に専用のメモリに格納することを含み、ローカルメモリ内の個々の記憶位置はランダム以外の事前に定義された方法でアクセスされ、かつデータ要素は時分割されて、メモリ内の各位置は、異なる時における複数のデータ要素からの異なるデータ要素を表す。
本発明は、以下の例示的な実施形態で、図面を参照してさらに詳細に説明され、図中、同一または類似の要素は同じか、または類似の参照番号によって一部、示され得、様々な例示的実施形態の特徴は結合可能である。本発明は、添付の図面を参照して、ほんの一例として、本明細書で説明される。
本発明の1つ以上の部分を実装するように適合されたコンピュータ処理システム例を示すブロック図である。 第1の人工ニューラルネットワーク例を示す略図である。 ニューラルネットワーク処理システムのための多層抽象化例を示す略図である。 1つ以上のNN処理コアを含むSoCベースのNN処理システム例を示すハイレベルブロック図である。 NN処理コア例をさらに詳細に示すハイレベルブロック図である。 第1の低レベル処理要素(PE)例をさらに詳細に示すブロック図である。 第2の低レベル処理要素(PE)例をさらに詳細に示すブロック図である。 PEのクワッド乗算器(quad multiplier)をさらに詳細に示すブロック図である。 第1のサブクラスタ例をさらに詳細に示すハイレベルブロック図である。 第2のサブクラスタ例をさらに詳細に示すハイレベルブロック図である。 第1のクラスタ例をさらに詳細に示すハイレベルブロック図である。 第2のクラスタ例をさらに詳細に示すハイレベルブロック図である。 クラスタ間クロスコネクトをさらに詳細に示すハイレベルブロック図である。 第1のメモリウィンドウイング方式例を示す略図である。 第2のメモリウィンドウイング方式例を示す略図である。 ウィンドウサイズおよびコンピュータアクセス構成可能性を含む計算要素とメモリ要素との間の第1のメモリアクセス可能性例を示す略図である。 計算要素とメモリ要素との間の第2のメモリアクセス可能性例を示す略図である。 分散/集約ベースの資源ウィンドウイング技術例を示す略図である。 メモリ競合解決方式例を示すブロック図である。 第1の層コントローラ例をさらに詳細に示すハイレベルブロック図である。 L3メモリおよびサブクラスタに対する層コントローラインタフェースをさらに詳細に示すハイレベルブロック図である。 第2の層コントローラ例をさらに詳細に示すハイレベルブロック図である。 NNプロセッサのコンパイラ/SDK例を示すハイレベルブロック図である。 NNプロセッサおよび関連メモリの柔軟な処理粒度対待ち時間のトレードオフを示す略図である。 本発明の第1のマルチNNプロセッサSoCシステム例を示す略図である。 本発明の第2のマルチNNプロセッサSoCシステム例を示す略図である。 本発明の第1のマルチNNプロセッサSoCシステム例を示す略図である。 本発明の第1のマルチNNプロセッサSoCシステム例を示す略図である。 図2の第1の人工ニューラルネットワーク例に対するマッピング方式例を示す略図である。 第2の人工ニューラルネットワーク例を示す略図である。 図29のANNのマルチNNプロセッサSoCシステム例を示す略図である。 第3の人工ニューラルネットワーク例を示す略図である。 図31のANNの第1のマルチNNプロセッサSoCシステム例を示す略図である。 図31のANNの第2のマルチNNプロセッサSoCシステム例を示す略図である。
以下の詳細な説明では、本発明の完全な理解を提供するために多数の具体的詳細が説明される。しかし、本発明はこれら具体的詳細がなくても実施され得ることが当業者によって理解されよう。他の場合、周知の方法、手順、および構成要素は、本発明を曖昧にしないために詳細には説明されていない。
開示されていない利点および改善のうち、本発明の他の目的および利点は、付随の図面と併せて以下の説明から明らかになるであろう。本発明の詳細な実施形態が本明細書で開示されるが、開示される実施形態は、様々な形で具現化され得る本発明の例示に過ぎないことが理解される。加えて、本発明の様々な実施形態に関連して与えられる例の各々は、例示を意図しており、制限することは意図していない。
本発明と見なされる主題は、本明細書の最終部分で具体的に指摘されて明確にクレームされる。しかし、本発明は、構成および操作の方法の両方に関して、その目的、特徴、および利点と共に、添付の図面と併せて読む場合に、以下の詳細な説明を参照することにより最もよく理解され得る。
図面は本明細書の一部を構成して、本発明の例示的な実施形態ならびにそれらの様々な目的および特徴を含む。さらに、図面は必ずしも原寸に比例しておらず、いくつかの特徴は特定の構成要素の詳細を示すために誇張され得る。加えて、図面に示す任意の測定、仕様および同様のものは例示を意図しており、制限することは意図していない。それ故、本明細書で開示する特定の構造的および機能的詳細は制限として解釈されるべきではなく、本発明を様々に採用する当業者を教示するための代表的な基礎にすぎない。さらに、適切であると考えられる場合、参照番号は、対応するか、または類似した要素を示すために図面間で繰り返され得る。
本発明の例示する実施形態は大抵の場合、当業者に知られている電子部品および回路を使用して実装され得るので、本発明の基礎となる概念の理解および評価のため、ならびに本発明の教示を曖昧にしないか、または教示から逸れないために、詳細は、必要と考えられる程度を超えては説明されない。
一方法に対する本明細書での任意の言及は、変更すべきところは変更して、本方法を実行可能なシステムに当てはまるはずである。一システムに対する本明細書での任意の言及は、変更すべきところは変更して、本システムによって実行され得る方法に当てはまるはずである。
本明細書およびクレームを通して、以下の用語は、その内容について別段の明確な指示がない限り、本明細書で明示的に関連付けられた意味をとる。句「一実施形態では」、「一実施形態例では」、および「いくつかの実施形態では」は本明細書では、必ずしも同じ実施形態(複数可)に言及していないが、その可能性はあり得る。さらに、句「別の実施形態では」、「代替実施形態では」、および「いくつかの他の実施形態では」は本明細書では、必ずしも異なる実施形態(複数可)に言及していないが、その可能性はあり得る。従って、以下で説明するように、本発明の様々な実施形態は、本発明の範囲または趣旨から逸脱することなく、容易に組み合され得る。
加えて、本明細書では、用語「または」は包含的「論理和(or)」演算子であり、その内容について別段の明確な指示がない限り、用語「および/または」と同等である。用語「~に基づく」は排他的ではなく、その内容について別段の明確な指示がない限り、説明されていない追加の要因に基づくのを可能にする。追加として、本明細書を通して、「1つの(a)」、「1つの(an)」、および「その(the)」の意味は複数の参照を含む。「~内(in)」の意味は、「~内(in)」および「~上(on)」を含む。
当業者によって理解されるように、本発明は、システム、方法、コンピュータプログラム製品またはそれらの任意の組合せとして具現化され得る。それに応じて、本発明は、完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)または本明細書で全て一般に「回路」、「モジュール」または「システム」と呼ばれ得るソフトウェアおよびハードウェア態様を組み合わせる実施形態の形を取り得る。さらに、本発明は、媒体内に具現化されたコンピュータ利用可能プログラムコードを有する任意の有形的表現媒体内に具現化されたコンピュータプログラム製品の形を取り得る。
本発明は、コンピュータによって実行される、プログラムモジュールなどの、コンピュータ実行可能命令の一般的コンテキストで説明され得る。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。本発明は、通信ネットワークを通して結合されるリモート処理装置によってタスクが実行される分散コンピューティング環境でも実施され得る。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含む、ローカルおよびリモート両方のコンピュータ記憶媒体内に配置され得る。
1つ以上のコンピュータ使用可能またはコンピュータ可読媒体(複数可)の任意の組合せが利用され得る。コンピュータ使用可能またはコンピュータ可読媒体は、例えば、電子、磁気、光、電磁、赤外線、もしくは半導体システム、機器、装置、または伝搬媒体であり得るが、それらに制限されない。コンピュータ可読媒体のもっと具体的な例(包括的でないリスト)は以下を含む、すなわち、1本以上のワイヤーを有する電気的接続、可搬型コンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、可搬型読み取り専用コンパクトディスク(CDROM)、光学式記憶装置、インターネットもしくはイントラネットをサポートするような伝送媒体、または磁気記憶装置。プログラムは、例えば、紙または他の媒体の光学読み取りによって、電子的に捕捉でき、次いで、必要ならば、コンパイル、解釈、または適切な方法で処理され、その後、コンピュータメモリ内に格納できるので、コンピュータ使用可能またはコンピュータ可読媒体は、プログラムが印刷される紙または別の適切な媒体でさえあり得ることに留意されたい。本文書のコンテキストでは、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、機器、もしくは装置によって使用されるか、またはそれらと接続された、プログラムを含むか、または格納できる任意の媒体であり得る。
本発明の操作を実行するためのコンピュータプログラムコードは、Java、Smalltalk、C++、C#または同様のものなどの、オブジェクト指向プログラミング言語、「C」プログラミング言語などの、従来型の手続き型プログラミング言語、ならびにPrologおよびLispなどの関数型言語、機械コード、アセンブラまたは任意の他の適切なプログラミング言語を含む、1つ以上のプログラミング言語の任意の組合せで書かれ得る。プログラムコードは、完全にユーザーのコンピュータ上で、一部ユーザーのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、一部ユーザーのコンピュータ上でかつ一部リモートコンピュータ上で、または完全にリモートコンピュータもしくはサーバー上で実行され得る。後者のシナリオでは、リモートコンピュータは、例えば、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む、任意のタイプのネットワークプロトコルを使用して、任意のタイプのネットワークを通してユーザーのコンピュータに接続され得るか、または接続は外部コンピュータに対して(例えば、インターネットサービスプロバイダを使用してインターネットを通して)行われ得る。
本発明は、以下で、本発明の実施形態に従った方法、機器(システム)ならびにコンピュータプログラム製品の流れ図および/またはブロック図を参照して説明される。流れ図および/またはブロック図の各ブロック、ならびに流れ図および/またはブロック図内のブロックの組合せは、コンピュータプログラム命令によって実装またはサポートできることが理解されよう。これらのコンピュータプログラム命令は、マシンを作成するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供され得、それにより、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令は、流れ図および/またはブロック図のブロックもしくは複数のブロック内で指定された機能/動作を実装するための手段を作成する。
これらのコンピュータプログラム命令はまた、コンピュータまたは他のプログラマブルデータ処理装置に指示して特定の方法で機能させることができる、コンピュータ可読媒体に格納され得、それにより、コンピュータ可読媒体内に格納された命令は、流れ図および/またはブロック図のブロックもしくは複数のブロック内で指定された機能/動作を実装する命令手段を含む製品を生成する。
コンピュータプログラム命令はまた、一連の操作ステップをコンピュータまたは他のプログラマブルデータ処理装置上で実行させるためにコンピュータまたは他のプログラマブルデータ処理装置にロードされてコンピュータ実装プロセスを生成し得、それによりコンピュータまたは他のプログラマブルデータ処理装置上で実行する命令は、流れ図および/またはブロック図のブロックもしくは複数のブロック内で指定された機能/動作を実装するためのプロセスを提供する。
本発明は、多数の汎用もしくは専用コンピューティングシステム環境または構成で操作可能である。本発明での使用に適し得る周知のコンピューティングシステム、環境、および/または構成の例には、パーソナルコンピュータ、サーバーコンピュータ、クラウドコンピューティング、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサ、マイクロコントローラもしくはマイクロコンピュータベースシステム、セットトップボックス、プログラム可能な家庭用電化製品、ASICまたはFPGAコア、DSPコア、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、前述のシステムもしくは装置のいずれかを含む分散コンピューティング環境、および同様のものを含むが、それらに制限されない。
加えて、本発明は、オートメーション工場、自律走行車内、タブレットおよびスマートフォンなどのモバイル機器内で見られるような、ビデオおよびスチルカメラ、センサーなどを組み込んでいるシステム、送電網内に設置されたスマートメーターならびにロボットネットワーク用の制御システム内で動作可能である。一般に、エージェントをホストできる任意の計算装置が、本発明を実装するために使用できる。
本発明の1つ以上の部分を実装するように適合されたコンピュータ処理システム例を示すブロック図が図1に示されている。大まかに10で参照される、本発明を実装するためのコンピュータ処理システム例は、汎用コンピューティング装置11を含む。コンピューティング装置11は、中央処理装置(CPU)12、ホスト/PIC/キャッシュブリッジ20および主メモリ24を含む。
CPU12は、1つ以上の汎用CPUコア14および任意選択として1つ以上の専用コア16(例えば、DSPコア、浮動小数点、GPU、およびニューラルネットワーク最適化コア)を含む。1つ以上の汎用コアは汎用演算コードを実行し、他方、専用コアはそれらの目的に特化した機能を実行する。CPU12は、CPUローカルバス18を通してホスト/PCI/キャッシュブリッジまたはチップセット20に結合される。第2レベル(すなわち、L2)のキャッシュメモリ(図示せず)は、チップセット内のキャッシュコントローラに結合され得る。いくつかのプロセッサに対して、外部キャッシュはL1または第1レベルキャッシュを含み得る。ブリッジまたはチップセット20は、メモリバス20を介して主メモリ24に結合する。主メモリは、ダイナミックランダムアクセスメモリ(DRAM)もしくはEDO(extended data out)メモリ、またはROM、スタティックRAM、フラッシュなどの他のタイプのメモリ、および不揮発性スタティックランダムアクセスメモリ(NVSRAM)、バブルメモリなどを含む。
コンピューティング装置11は、システムバス26(例えば、PCI)を介してCPUに結合された様々なシステム構成要素も含む。ホスト/PCI/キャッシュブリッジまたはチップセット20は、PCI(peripheral component interconnect)バスなどの、システムバス26に対してインタフェースする。システムバス26は、様々なバスアーキテクチャのいずれか使用するいくつかのタイプの周知のバス構造のいずれかを含み得る。アーキテクチャ例は、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、VESA(Video Electronics Standards Associate)ローカルバスおよびメザニン(Mezzanine)バスとしても知られているPCI(Peripheral Component Interconnect)バスを含む。
システムバスに接続された様々な構成要素は、不揮発性メモリ(例えば、ディスクベースのデータ記憶)28、ディスプレイ32に接続されたビデオ/グラフィックスアダプタ30、例えば、マウス34、タブレット35、マイクロホン36、キーボード38およびモデム40などの1つ以上の入力装置に接続されたユーザー入力インタフェース(I/F)コントローラ31、ネットワークインタフェースコントローラ42、プリンタ54およびスピーカ56などの1つ以上の外部周辺機器に接続された周辺インターフェースコントローラ52を含むが、それらに制限されない。ネットワークインタフェースコントローラ42は、データ記憶46、1つ以上のリモートアプリケーション50を実行しているリモートコンピュータ48などの、1つ以上の装置に、インターネットクラウド、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)などを含み得るネットワーク44を介して結合される。小規模コンピュータシステムインタフェース(SCSI)アダプタ(図示せず)も、システムバスに結合され得る。SCSIアダプタは、CD-ROMドライブ、テープドライブなどの様々なSCSI装置に結合できる。
不揮発性メモリ28は、様々な取り外し可能/固定型の、揮発性/不揮発性コンピュータ記憶媒体を含み得、例えば、固定型の不揮発性磁気媒体から読み取るか、またはそれに書き込むハードディスクドライブ、取り外し可能な不揮発性磁気ディスクから読み取るか、またはそれに書き込む磁気ディスクドライブ、CD ROMもしくは他の光媒体などの取り外し可能な不揮発性光ディスクから読み取るか、またはそれに書き込む光ディスクドライブなどである。例示的な動作環境で使用できる他の取り外し可能/固定型の、揮発性/不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM、および同様のものを含むが、それらに制限されない。
ユーザーは、ユーザー入力インタフェース31に接続された入力装置を通して、コマンドおよび情報をコンピュータに入力し得る。入力装置の例は、キーボードおよびポインティングディバイス、マウス、トラックボールまたはタッチパッドを含む。他の入力装置は、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含み得る。
コンピュータ11は、リモートコンピュータ48などの、1つ以上のリモートコンピュータへの接続を介して、ネットワーク化環境内で動作し得る。リモートコンピュータは、パーソナルコンピュータ(PC)、サーバー、ルーター、ネットワークPC、ピア装置(peer device)または他の一般的なネットワークノードを含み得、典型的には、上で説明した要素の多数または全部を含む。かかるネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネット内で一般的である。
LANネットワーキング環境内で使用される場合、コンピュータ11は、ネットワークインタフェース42を介してLAN44に接続される。WANネットワーキング環境内で使用される場合、コンピュータ11は、インターネットなどの、WANを通して通信を確立するために、モデム40または他の手段を含む。内部または外部であり得る、モデム40は、ユーザー入力インタフェース31、または他の適切な機構によって、システムバス26に接続される。
大まかに10で参照される、コンピューティングシステム環境は、適切なコンピューティング環境の例であり、本発明の使用または機能の範囲に関していかなる制限も示唆することを意図しない。また、コンピューティング環境は、例示的な動作環境で示される構成要素の任意の1つまたは組合せに関して、依存関係または要件を有すると解釈されるべきでもない。
一実施形態では、本発明のシステムおよび方法を実装するように適合されたソフトウェアはクラウド内にも常駐できる。クラウドコンピューティングは、サービスを配信するシステムの物理的な位置および構成をエンドユーザーが知る必要のない、計算、ソフトウェア、データアクセスおよびストレージサービスを提供する。クラウドコンピューティングは、任意の申込みベースまたはペイパーユース方式のサービスを包含し、典型的には、動的に拡張可能で、多くの場合仮想化された資源の提供を伴う。クラウドコンピューティングプロバイダは、インターネットを介してアプリケーションを配信し、それはウェブブラウザからアクセスでき、他方、ビジネスソフトウェアおよびデータは、リモート位置におけるサーバー上に格納される。
別の実施形態では、本発明のシステムおよび方法を実装するように適合されたソフトウェアはコンピュータ可読媒体上に常駐するように適合される。コンピュータ可読媒体は、コンピュータによってアクセスでき、コンピュータによる後の読取りのために、本発明の方法を実装するコンピュータプログラムを格納可能な任意の利用可能な媒体であり得る。コンピュータ可読媒体は、揮発性および不揮発性媒体、取り外し可能および固定型媒体の両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの、情報格納のための任意の方法または技術で実装された揮発性および不揮発性、取り外し可能および固定型の媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)もしくは他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報を格納するために使用でき、コンピュータによってアクセスできる、任意の他の媒体を含むが、それらに制限されない。通信媒体は典型的には、コンピュータ可読命令、データ構造、プログラムモジュールまたはディスクドライブユニット内の磁気ディスクなどの他のデータを具現化する。本発明のシステムおよび方法を実装するように適合されたソフトウェアは、全部または一部において、スタティックもしくはダイナミック主メモリ内、またはコンピュータシステムのプロセッサ内のファームウェア内(すなわち、マイクロコントローラ、マイクロプロセッサまたはマイクロコンピュータ内部メモリ内)にも常駐し得る。
本発明のシステムおよび方法を実装するために他のデジタルコンピュータシステム構成も採用でき、特定のシステム構成が本発明のシステムおよび方法を実装可能な限度において、それは、図1の代表的なデジタルコンピュータシステムと同等であり、本発明の趣旨および範囲内である。
一旦、それらが、本発明のシステムおよび方法を実装するプログラムソフトウェアからの命令に従って特定の機能を実行するようにプログラムされると、かかるデジタルコンピュータシステムは事実上、本発明の方法に対応する専用コンピュータになる。このために必要な技術はコンピュータシステムの当業者に周知である。
本発明のシステムおよび方法を実装するコンピュータプログラムは一般に、フロッピィディスク、CDROM、DVD、フラッシュメモリ、携帯型ハードディスクドライブなどの配布媒体上でユーザーに配信されることに留意されたい。そこから、それらは多くの場合、ハードディスクまたは類似の中間記憶媒体にコピーされる。プログラムが実行される場合、それらは、それらの配布媒体またはそれらの中間記憶媒体のいずれかから、コンピュータの実行メモリにロードされ、本発明の方法に従って動作するようにコンピュータを構成する。これらの操作全ては、コンピュータシステムの当業者に周知である。
図面の流れ図およびブロック図は、本発明の様々な実施形態に従ったシステム、方法およびコンピュータプログラム製品の考えられる実施態様のアーキテクチャ、機能および操作を示す。これに関して、流れ図またはブロック図内の各ブロックは、コードのモジュール、セグメント、または部分を表し得、それは、指定された論理関数(複数可)を実装するための1つ以上の実行可能命令を含む。いくつかの代替実施態様では、ブロック内に記された機能は、図面に記された順序を外れて生じ得ることにも留意すべきである。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行され得るか、またはブロックは時々、関与する機能に応じて、逆順で実行され得る。ブロック図および/または流れ図の各ブロック、ならびにブロック図および/または流れ図内のブロックの組合せは、指定された機能もしくは動作を実行する専用ハードウェアベースのシステムによって、または専用ハードウェアおよびコンピュータ命令の組合せによって、実装できることにも留意されたい。
ニューラルネットワーク(NN)処理コア
ANNは本質的に、非常に高いレベルにおいて、入力空間と出力空間との間をマッピングする、多数のパラメータをもつ関数である。従って、ANNは、一連の計算と見なすことができる。しかし、ANNは、ある内部構造およびプロパティのセットを有する。この独特の構造を考慮すると、ニューラルネットワーク(NN)プロセッサは、同じか、または同様の数学的操作を実行する複数の基本計算ユニットを含み、それらは統合されると、ニューラルネットワークを構成する。
本明細書では、ネットワークを一意的に記述するために次の表記法が使用される:
Figure 0007191329000001
式中、X<S>は、ある構造Sによって特性化された、入力データセットを表し、
<T>は、Tによって示される形式をもつ出力データセットを表し、
<W>は、パラメータまたは重み(W)のセットを所与として、入力を出力にマッピングする関数である、ANNモデルを表す。
人工ニューラルネットワーク例を図解する略図が図2に示されている。大まかに350で参照される、ANN例は、ネットワーク層1~4を含む、4つのネットワーク層352を含む。各ネットワーク層は複数のニューロン354を含む。入力X~X14はネットワーク層1に対する入力である。重み358がネットワーク層内の各ニューロンの入力に適用される。最終出力359、出力1~3が生成されるまで、1つのネットワーク層の出力が次のネットワーク層に対する入力を形成する。
一実施形態では、本発明のアーキテクチャは、人工ニューラルネットワークの計算ニーズに最大限応える多層アーキテクチャ(すなわち、ANN層とは呼ばれない)を含む。多層という用語は、抽象化の様々なレベルにおける全体的なソリューションを記述するネットワーキングに対する周知のISO OSI層モデルのそれと類似したアプローチを指す。
ニューラルネットワーク処理システムのための多層抽象化例を図解する略図が図3に示されている。大まかに410で参照される、ニューラルネットワーク処理のための等価モデルは:様々なユニットを構成する物理プリミティブ(physical primitive)を含む層1(物理412)、ニューラルネットワークの基礎となる基本計算ユニットを含む層2(ユニット414)、ネットワーク接続を提供する相互接続ファブリックを含む層3(相互接続416)、ネットワークレベルフロー制御、モニタリングおよび診断を提供する層4(管理418)、アプリケーション層インタフェースを提供してアーキテクチャプリミティブにマッピングする層5(インタフェース420)、ならびにニューラルネットワークベースのアプリケーションを含む層6(アプリケーション422)を含む、6つの層を含む。
1つ以上のNN処理コアを含むシステムオンチップ(SoC)NN処理システム例を図解するハイレベルブロック図が図4に示されている。大まかに100で参照される、SoC NN処理システムは、任意選択として1つ以上の適切なチップ間インタフェースを介して1つ以上の追加の内部もしくは外部NNプロセッサ104に結合された少なくとも1つNNプロセッサ集積回路(またはコア)102、NNプロセッサをチップ要素108上の様々なシステムに結合するように適合されたバスファブリック106、マイクロコントローラユニット(MCU)サブシステム118、および1つ以上のインタフェース126を含む。
一実施形態では、SoC108はブートストラップ回路ブロック110、デバッグ回路ブロック112、電力回路ブロック114、およびクロック回路ブロック116を含む。MCUサブシステム118は、コントローラ回路ブロック120、命令メモリ122、およびデータメモリ124を含む。インタフェース126はピンマルチプレクサ139、ならびにカメラシリアルインターフェース(CSI)128、ディスプレイシリアルインタフェース(DSI)、イーサネット132、ユニバーサルシリアルバス(USB)134、IC(inter-integrated circuit)インタフェース136、シリアル周辺機器インタフェース(SPI)137、およびコントローラエリアネットワーク(CAN)インタフェース138を含む1つ以上の周知のインタフェースを含む。異なるインタフェースの任意の組合せが実装され得るので、これらのインタフェースは一例として示されていることに留意されたい。
NN処理コア例をより詳細に図解するハイレベルブロック図が図5に示されている。NN処理エンジンまたはコア60は、いくつかの階層的計算ユニットを含む。最も低い階層レベルは、個々のニューロンがその中で実装されるそれ自身の専用内部層1またはL1メモリ78をもつ処理要素(PE)76である。複数のN個のPE76は専用層2またはL2メモリ74と共に、サブクラスタ70と命名された次の階層レベルを構成する。複数のM個のサブクラスタ70は、専用層3またはL3メモリ72、複数の活性化関数回路80、および複数の層コントローラ(LC)回路82と共に、クラスタ66を構成する。複数のL個のクラスタは専用層4またはL4メモリ64と共にNNプロセッサコア60内にあり、それは、NNマネージャ回路62、およびオフチップ層5またはL5メモリ98へのメモリインタフェース68も含む。複数のバスインタフェース86(すなわち、チップ間インタフェース)は、追加のネットワーク容量のために、NNプロセッサを他のオフチップNNプロセッサチップに結合する。バスインタフェース84(すなわち、チップ間インタフェース)は、NNプロセッサを、CPU90、命令メモリ92およびデータメモリ94を含む従来型のルールベースマシン(RBM)コプロセッサ88に結合する。代替実施形態では、RBMコプロセッサは任意選択として、適切なインタフェース、例えば、GPU、ICなどを介して、NN装置60に結合される。
NNプロセッサ実施形態例では、PEはP=16ニューロンを含み、サブクラスタはN=64のPEを含み、クラスタはM=64のサブクラスタを含み、NNコアはL=8のクラスタを含むことに留意されたい。任意の所望の数の階層レベルおよび任意の数の計算ユニットを各レベル内に有するNNプロセッサが実装され得、例示目的のみで提供される本明細書で説明する例に制限されないことが理解される。加えて、任意の数の活性化関数80および層コントローラ82が、NNプロセッサの設計目標および特定の実施態様に応じて、クラスタレベル内または任意の他のレベル内で実装され得る。
一実施形態では、NNマネージャ62は、2つのデータパイプ:1つの並列および1つの直列を、ネットワークファブリックを駆動するための関数と共に制御する、専用プロセッサである。このプロセッサは、ニューラルネットワークの制御プレーンに固有の専用操作を実行する。操作例には、推論(Infer)、訓練(Train)、重みのロード(Load weights)、および重みの更新(Update weights)を含むが、それらに制限されない。負荷分散および資源割当ては、外部ソフトウェアツールチェーンによって処理され、それは、これらのタスクに対処する、コンパイラ、マッパー、およびアロケータを含むツールのセットを含む。
一実施形態では、NNプロセッサは、重みの格納のための共有メモリを含み、専用メモリ要素はコンテキストの格納用で、それにより比較的高いデータ処理帯域幅を可能にする。加えて、NNプロセッサは、厳密に相互に分離されて、計算要素に対して帯域外制御を提供する、データおよび制御プレーンを含む。その上、NNプロセッサは、集約レベル間に構成可能な相互接続を含み、ダイナミックでプログラム可能なデータパイプラインをもたらす。
別の実施形態では、NNプロセッサは、複数のANNを並列接続で実装することが可能であり、各ANNは1つ以上のネットワーク層を有する。NNプロセッサは、ANNと関連付けられた1つ以上の入力データストリームを同時に処理するように適合される。NN装置のアーキテクチャはANNの構造に似ているので、複数のANNは、単一の幅広いANNと見なすことができる。複数のANNを配備する場合、十分な資源を所与として、外部ツールチェーン内のマッパーは利用可能な資源をマッピングするように動作し、他方、NNマネージャは事象トリガーを制御することに留意されたい。この場合、装置の膨大な並列性(parallelism)に起因して、ANNの「層」内に分類された資源の各セットは相互に独立している。
加えて、NNプロセッサの計算要素は入力データストリームのサブセットの任意の所望の粒度で機能するように動作し、それにより、以下でさらに詳細に説明するように、メモリ要素使用と待ち時間との間でトレードオフする。
本発明のNNプロセッサはその実装においていくつかの設計原理を使用し、それは、(1)システム資源のジャストインタイム使用、(2)必要毎のシステム資源の動的割当て、(3)利用および効率を最適化するために時間領域および空間領域の両方の活用、ならびに(4)利用可能なシステム資源にわたる平衡負荷を含む。
本発明はANNを実装するのに良く適していることに留意されたい。典型的には、ANNは、3つの段階:モデリング、訓練、および推論で実装され、その3つの全てが本発明のNNプロセッサによってある程度、対処される。
モデリングに関して、NNプロセッサは、モデル表現を静的および動的に変更することができ、従って、その柔軟な本質を反映する。「プロセッサ」表記は「アクセラレータ」に対立するものとして使用されるが、これは、後者は典型的には事前に定義されたセットの操作を先験的に実行するように適合されるためである。訓練に関して、NNプロセッサは、訓練手順の実装を可能にするオンザフライで補完的な訓練操作をサポートする。これは、(1)ネットワークを通して行きつ戻りつ実行すること(逆伝播)、(2)ドロップアウトを動的に適用すること、ならびに(3)層性能および不良挙動(ill behavior)検出のオンザフライ評価を含む。推論モード中、ANNは、最適かつ効率的に実行されて、新しい入力に適用される。
本発明のNNプロセッサは、一緒に組み合わせて、極めて高い計算速度、小さいチップフットプリント、低電力消費、拡張性、プログラム可能性、および多くのタイプのニューラルネットワークを取り扱う柔軟性を提供するために、いくつかの特徴を組み合わせる。
第1の特徴は、本明細書で開示するシステム例で説明されるPE、サブクラスタ、クラスタ、NNコアなど、様々な集約レベルまたは階層レベルに編成される計算ユニットによって提供される計算ファブリック(または計算能力)を含む。計算ファブリックは、ANNの計算ニーズの特別な本質に対処するように構成される基本計算要素を含む。計算ファブリックのいくつかの特徴は、(1)無駄のない回路アーキテクチャ、それにより比較的多数の物理実体が実装されるのを可能にする、(2)一度に多数の乗算および累算演算、加算は累算として実行される、(3)数表現の柔軟性、整数および浮動小数点ならびに異なるビット幅を含む、(4)より高分解能計算を可能にするクワッド乗算器サポート、ならびに(5)メモリ帯域幅を最適化する能力を提供するためのNウェイALUサポート、すなわち、y←y+w*xなどのサイクル毎に単一演算を実行する代わりに、y←y+w*x+w*xなどのもっと複雑な演算が実装でき、それはシリコンの複雑さの増大と必要なメモリアクセスの低減との間のトレードオフを反映する、を含む。
第2の特徴は、制御プレーン、ならびに制御の集約およびデータファブリック(すなわち、データプレーン)全体の非常に「無駄がない(lean)」かまたは「スリムな」制御を可能にする制御ファブリックのデータファブリックからの完全な分離である。制御プレーンは、データプレーンから分離され、従ってそれは、多数の計算ユニットが比較的少数の制御線を使用して、例えば、いくつかの場合には単一の制御線によって、制御されるという意味において集約できる。例えば、PE内の乗算回路を考えると、単一の制御信号が数千のPE内での乗算演算を同時に開始する。さらに、制御プレーンのプログラム可能性は、データプレーンのプログラム可能性から分離される。NNコアのデータファブリックの大規模な並列性が制御プレーンの無駄のない構造によって適合される。
これは、制御信号が、いくつかの計算要素による制御信号の複製を必要とするデータにごく近接して適用される帯域内制御の典型的な従来技術アプローチとは対照的である。さらに、帯域外制御は、フォンノイマンマシンベースの技術ではないので、従来型のマイクロコントローラベース技術とは対照的である。
制御およびデータファブリックを分離する別の利点は、制御はプログラム可能なままであることである。制御ファブリックの非剛性実装および計算ユニット(すなわち、PE、サブクラスタ、クラスタなど)の一般的性質は、NNコアが多数のタイプのANN、例えば、畳込みNN(CNN)、リカレントNN(RNN)、ディープNN(DNN)、MLPなど、ならびに畳込みモードで実装される前述および微妙な組合せのもっと複雑な実装および各々の特性、例えば、刻み幅(stride)、パディングなど、を取り扱うのを可能にする。
第3の特徴は、メモリウィンドウイングを含むメモリファブリックの構造である。メモリのローカル化および階層構造に加えて、メモリに対する高帯域幅アクセスが多数の計算ユニットに並行して提供される。これは、特定の計算ユニットのためのアクセスをメモリのごく一部だけに狭めることによって達成される。従って、メモリ全体に対する完全なランダムアクセスは提供されない。むしろ、メモリの比較的小さい窓へのアクセスだけが提供される。これは、数千の計算ユニットにわたる同時アクセスを可能にし、従って、帯域幅とランダムなアクセス可能性との間のトレードオフを表す。単一の計算ユニットのメモリアクセスパターンがANNによって構造化されてうまく定義されていて、メモリ全体に対する完全なランダムアクセスを必要としないので、アクセスは、その特定の計算ユニットに対して必要なわずかなメモリブロックにだけ「窓をかける」ことができる。従って、極めて高いメモリ帯域幅が達成され、それにより数千の計算ユニットが、その計算ユニットに「ローカルな」メモリだけにアクセスすることとのトレードオフで、並行して同時にメモリにアクセスできる。
一実施形態では、NNプロセッサのアーキテクチャは、制御プレーンおよびデータプレーン(または制御ファブリックおよびデータファブリック)を含む。制御プレーンは、NNプロセッサ内の全てのデータ計算ユニットの構成および制御に対して責任を負う。それは、一実施形態では、ニューラルネットワーク操作に対して調整されたマイクロコードを組み込んでいる、データフローマシンまたはプロセッサを含む。本明細書で説明するNNプロセッサ例では、制御プレーンは、集約の次の層、すなわち、サブクラスタ70、に対するアグリゲータ(aggregator)として機能するクラスタ実体66を制御する。サブクラスタは、同様に、最も基本的なユニット、すなわち、乗算および累算(MAC)回路ならびにローカルメモリから成る処理要素(PE)76を含む。それは、典型的なニューラルネットワーク内で見られるニューロン実体のセットを含むPE階層レベルである。
NNプロセッサ内でANNを実装する重要な態様は全ての計算要素の制御および相互接続である。ANN内の膨大な数の計算要素が本発明によって活用される。装置制御ファブリックの1つの特徴は、それは計算資源の大規模なセットの間で共有されるので、比較的非常に無駄がないことである。一実施形態では、NNプロセッサは、(1)データと制御との間の厳密な分離、制御信号通知は帯域外で実行されて、データ駆動型メモリアクセスを含まない、(2)制御と付加された計算資源との間の動的なマッピング、ならびに(3)制御ファブリックの柔軟性およびプログラム可能性(すなわち、コンパイル時における)を特徴とする。加えて、NNプロセッサは、計算要素、メモリなどの制御信号通知に対する完全なアクセス可能性を可能にするマイクロコードマシンを組み込んでいる層コントローラを含む。
データ駆動型メモリアクセスは、データパイプラインを通って流れるデータの観測を伴うアクセスを意味することに留意されたい。NNプロセッサは、これを必要としない。ルールの本質はデータ依存であり、従って、制御はデータと結び付けられる必要があるので、データ駆動型メモリアクセスは、ルールベースマシンにおいて一般的であることに留意されたい。例えば、文:if(x>some_value)then do A((x>何らかの値)の場合、Aを行う)を考える。これは、全ての入力「x」を観測する必要を暗示する。それにひきかえ、多くの入力を閾値と比較し得るマシンを考える。この場合におけるマイクロコードは、比較器の膨大なセットを作動させる操作をトリガーする必要があるだけである。しかし、かかるアプローチは、ハードワイヤーされる必要がある膨大な数の操作を暗示し、マシンがプログラミングされる可能性を否定してしまうので、RBMでとることはできない。
それに対して、NNプロセッサは、非常に制限されたセットの操作を使用してデータに作用する。処理フローの本質は、データの値を伴わない。従って、制御を集約して、計算要素の膨大なセットを比較的少数の制御信号で駆動することが可能である。例えば、NN装置では、64制御信号の制御バスが数千の計算ユニットを制御するために必要である。
一実施形態では、NNプロセッサは、以下でさらに詳細に説明されるように、機能が、それが必要とされる集約のいくつかの点において提供されるように実装される。加えて、NNプロセッサは、システムが最大限の利用を達成するのを確実にするために、計算およびメモリ資源に関して、実質的にバランスが取られるように構成される。
NNプロセッサの容量が特定のニューラルネットワークに対して不十分である場合、バスインタフェース86は、単一プロセッサの制限を超えて拡大するために、追加のNNプロセッサ96の相互接続を提供する。
一実施形態では、RBMコプロセッササブシステム88は、NNプロセッサによってサポートされない1つ以上のプリミティブをサポートするように構成される。加えて、コプロセッサは、ANNから抽出されてRBMに割り当てられたタスクを交換するように機能する。
NNプロセッサは本質的にデータフローマシンとして動作して、計算はデータの利用可能性のみに基づいて実行されることを意味する。データフローは層間で分割されて、それはANNにおける層に類似する。層内部の計算ユニットは同期して動作して、データが層の入力において準備できていれば開始し、それらが新しいデータを必要とし、かつ/または結果を次の層に渡す必要があると終了して、その時点でその層の状態マシンが以前および/または次の層の状態マシンと同期される。
一例として、2つの全結合層をもつMLPネットワークは、(1)コアの外部から入力を受信する1つの層、(2)ニューラルネットワーク層を表す2つの層、および(3)結果をコアの外部に送信する1つの層、としてマッピングできる。
一実施形態では、入力層は、それが全ての入力(例えば、周知のMNISTデータセットに対する784の入力)を受信するまで待機し、次いで、その入力が準備できていることを層1に信号通知する。層1は次いで、全ての必要な乗算および累算(MAC)演算、活性化関数を実行して、最後に層2に信号通知し、それは同様に、同じステップを繰り返す。層2が終了すると、それは出力層に信号通知して結果をNNコアの外部に送信する。
別の実施形態では、同じネットワークを考えると、NNコアは、入力データのさらに少ない一部について、層1内でMACを開始し、従って、層1内の状態マシンの複雑性および信号通知中の考えられる計算効率の損失を犠牲にして、入力層と層1との間で必要なバッファリングを削減する。
NNコア内のクラスタ66の内部で、データは共有L3メモリ72を通して渡され、他方、信号通知は、以下でさらに詳細に説明される、専用相互接続282(図11)を通して実行される。一実施形態では、AXI4-ストリームプロトコルがクラスタ間で使用され、それは、データおよび制御プレーンの両方を取り扱う。機能停止を防ぐために、層間の相互接続はデュアルバッファ機構を提供し、そのため、第2の層が以前の出力をその入力として第2のバッファからの読み取ると、1つの層はその出力を1つのバッファに書き込む。
一実施形態では、データフローアーキテクチャをニューラルネットワークにおける基本操作の比較的制限されたセットと共に使用すると、制御分散の要件における著しい削減を可能にする。
第1に、一旦、ネットワークモデルが定義され、従って、先験的な狭帯域インタフェースを介してロードできると、実行されている計算に関する情報の多くは静的に知られており、その結果として、計算中に必要な制御線の数が削減される。結果は、層を実装する「カーネル」のためのコードが、ネットワークモデル毎に一定である準静的な構成と、計算を通して変化する動的命令との間で分割されることである。
第2に、各動的な「命令」は、層内の全ての計算要素に各サイクル内で何をすべきかを指示する複数の命令を実際に含む。各計算要素は比較的単純な機能を有しているので、基本命令自体は比較的単純である。サイクルを無駄にするのを回避するために、繰返し(すなわち、ループ)およびジャンプ命令が帯域外で提供される。
第3に、メモリ内のパラメータの適切な配置と組み合わされた計算の静的順序は、メモリに対する順次アクセスを可能にする。それ故、完全なアドレス指定ではなく、メモリにアクセスするためのアドレスインクリメント命令だけが必要である。
第4に、マイクロコードは非常にコンパクトであるので、プリフェッチ、分岐予測などを必要とせずに、オンチップSRAM内に常駐できる。
第5に、層は多くの処理要素(PE)を含むが、1つの中央状態マシンだけが、層全体に対する計算のステップを、サブ状態だけを格納するさらに小さいスレーブ状態マシンと共に制御する必要があり、それらの各々は複数のPEを制御する。一実施形態では、グローバルイネーブルビットが、全ての状態マシンの実行の開始し、グローバル同期リセット信号がそれらを初期状態に戻す。リセットは、構成メモリには影響を及ぼさず、制御プレーンとしてのデータメモリは無効なデータが使用されないことを確実にすることに留意されたい。
用語「モデル」は、NNコア内の全ての計算ユニットの動的な挙動を定義する準静的な構成を記述するために使用されることに留意されたい。モデルは典型的にはANNモデルに類似しているが、デバッグ目的のためにロードされるモデル、または重みをメモリにロードするためのモデルなど、他のタイプのモデルがあり得る。
構成空間がメモリのようなインタフェース内に露出され、そこでモジュールが階層アドレス空間を使用してアドレス指定される。重みのロードは、通常、モデルの構成前に実行され、重みを関連メモリブロックにコピーしてイネーブルビットを設定する制御信号通知を構成することによって達成される。クラスタが無効にされている間に推論モデルが次いでロードされ、制御がリセットされて最終的にクラスタが有効にされる。
メモリ階層
一実施形態では、NNプロセッサのメモリファブリックはANNの固有の性質に対処するように設計される。従って、メモリは、様々なメモリコンシューマの必要性に対処するために階層的に構成される。これらのコンシューマには、(1)層間データ(すなわち、交差層入力/出力)、(2)層内情報(すなわち、コンテキストまたは中間結果)、および(3)重み、を含む。様々なメモリ層(例えば、本明細書で開示する実施形態例では5)は、より小さく、効率的で、よりローカル化されたメモリから、もっと大きくて、あまり効率的でない、グローバルメモリに進む。
一実施形態では、メモリファブリックは、次を利用して編成および構築される(1)計算要素、任意の所与の計算要素の事前に定義されて限定されたメモリ実体に対するアクセス可能性を許可するローカルデータへのアクセスを要求するメモリのローカル化、(2)それによりメモリ内容が所与の一貫した方法で先験的に編成される構造化編成、(3)ほとんどのデータが本来、揮発性であり、一度処理されると完全に消費されて、それにさらにアクセスする必要はわずかであるか、または必要はない、限定されたリコールの性質(すなわち、一度だけ読み取る)、および(4)1つの計算要素の出力データが別の計算要素への入力データとして働くパイプライン化動作
前述のように、各階層レベルはそれ自体のローカルメモリを含む。PEはL1メモリを含み、サブクラスタはL2メモリを含み、クラスタはL3メモリを含み、NNコアはL4メモリを含み、L5メモリは外部的にオフ-SoCに配置される。メモリ階層例が以下の表1に提示される。
Figure 0007191329000002
表中、Nはサブクラスタ内の処理要素の数を表し、Mはクラスタ内のサブクラスタの数であり、LはNN処理装置内のクラスタの数である。各メモリレベルL1~L5に対して示されているサイズは例示目的に過ぎないことに留意されたい。様々なメモリ層に対する任意の所望のメモリサイズは本発明の範囲から逸脱することなく実装され得ることが理解される。
下位メモリ層、例えば、PE内のL1は、より小さいサイズであるが、より大きな帯域幅を保持することに留意されたい。上位メモリ層、例えば、NNコア内のL4は、ずっと大きなサイズにされるが、はるかに少ないトラフィックを保持する。
本発明によれば、メモリ全体と計算要素との間に完全なメッシュアクセスを提供するのを回避するために、ANNにおけるメモリ使用のローカル化特質を利用しながら、可能な限り多くのメモリが、それが必要とされる場所に可能な限り近接して保持される。前述の方式によって課される制限を克服するために、コンシューマへのメモリの割当ては「漸進的な(gradual)」方法で行われ、それにより特定の役割をもつメモリの各レベルは、より高位レベルがより多くの資源を必要とするので、より高位レベルによって補完され、より高次レベルのメモリは、異なる要件を有するANN内の複数の層の間での「資源負荷分散」のために使用される。
一実施形態では、一旦、モデルが選択されると、資源要件は既に分かっており、従って複雑な仲裁は必要としないので、この「溢出(spillover)」は準静的な特徴であることに留意されたい。この特徴は、各層内のメモリ資源は、最悪の場合ではなく、名目の場合に従って割り当てられるので、それらの著しく少量の静的割当てを可能にする。
加えて、メモリの「漸進的」割当ては、上で簡単に説明した、スライディングウィンドウ機構も特徴とし、それは、L3メモリ内で使用され、以下でさらに詳細に説明される。
処理要素(PE)
一実施形態では、基本計算ユニットは処理要素(PE)である。低レベル処理要素(PE)例をさらに詳細に示すブロック図が図6に示されている。大まかに140で参照される、PEは、乗算トリガー177によって制御される1つ以上の乗算器142、加算器トリガー171によって制御される加算器144、複数のレジスタ152を含むL1メモリ150、宛先制御175によって制御される宛先マルチプレクサ146、送信元制御173によって制御される送信元マルチプレクサ148、出力シャッフル制御178によって制御される書込みマルチプレクサ154、入力シャッフル制御179によって制御される読取りマルチプレクサ156を含む。
入力メモリ158からの入力(x)データ161および重みメモリ160からの重み(w)163は、それぞれ、入力制御および重み制御に従って乗算器(複数可)142に提供される。
ニューラルネットワーク内のニューロンの最も基本的な数学演算は、次によって定義される:
Figure 0007191329000003
式中:
x(i)は、1Dベクトルに編成された、入力データセットを示し、
w(i,j)は、出力jに対するi番目の入力寄与を表す重みを示し、
σは、典型的には非線形スカラー関数である、活性化関数を示す
基本計算ユニットはPEであり、ニューロンの本質的な動作を反映する乗算/累算実体を含む。中間結果または成果は、PEにローカルなL1メモリ150内に格納される。L1メモリはある深さおよび幅を有し、例えば、本明細書で説明する例では、ニューロン数P=16、その各々は16ビット幅である。任意の所望の深さおよび幅を有するL1メモリが使用され得ることが理解される。L1メモリの深さPは、1つのPEが同時に取り扱うことができる「ニューロン」または「コンテキスト」の数を反映する。追加のニューロンに対する中間結果をL2/L3メモリ内に格納することにより、Pを超えるニューロン(すなわち、コンテキスト)が処理できることに留意されたい。追加のニューロンを処理するために追加の時間が必要とされるという点において、待ち時間が影響を受ける。P個のニューロンを提供することは、計算構造を必要最小限に制限することにより空間領域を利用し、同時に、複数のコンテキストを格納することにより時間領域も利用することの両方である。
内部コンテキストを取り扱う能力は、いくつかの能力を提供し、例えば、(1)複数の論理ニューロンを単一の物理ニューロンに割り当てる(各コンテキストが1つのニューロンの出力を格納する)能力、(2)結果として同時操作となる、同じ入力に対する複数の中間結果の格納、および異なるバージョンの重みに対する仮説検証(例えば、逆伝播結果、勾配に基づく補正値など)、(3)ネットワーク委員会の一般的な方法および多数決抽出を適用する目的で、同じ入力のマルチスレッド化推定、(4)資源が利用可能であれば複数のネットワークを実行すること、ならびに(5)NNマネージャによって制御されるとおりにネットワーク容量全体に基づく負荷分散、などである。
動作中、ニューロン機能を反映している上の式2は、多重時間インスタンスにわたって広がって、以下のリスト1で提供されるように実装される。これは、他のシーケンスが、異なるマイクロコードを層コントローラ(LC)642(図20)にロードすることによって使用され得るので、実装例にすぎないことに留意されたい。
Figure 0007191329000004
図6を参照すると、PEは、重み(w)および入力(x)に対して別々に制御される計数要素ならびに加算器および乗算器に対する表現フォーマットにわたる別々の制御を含む。それは、別々に制御される進入/退出L1エントリインデックスも含み、操作すべき計算の順番を可能にする。累算関数の中間結果は、L1メモリレジスタ152内にローカルに格納される。加えて、初期化中の前処理は、L1メモリがデフォルト値(例えば、前の中間結果、バイアス値など)で予めロードされるのを可能にする。PEは、中間メモリ集約制御、すなわち、割当てステップサイズも含む。加えて、活性化関数は面積オーバーヘッドを最小限にするために集約されて、PEまたはサブクラスタレベルで実装されず、むしろクラスタレベルで実装される。PEは、連結を可能にするために活性化迂回もサポートする。
プレ合成(pre-synthesis)構成可能性は、(1)Nウェイ乗算および累算(すなわち、Y=Y+A*B+...+A*B)、(2)表現フォーマットスパン(例えば、mビットの仮数およびeビットの指数をもつエントリ毎にk...kに対するサポート、ここでk=m+e)、および(3)ローカルストレージの深さPの選択、を可能にする。
動作中、PE内部のデータフローはかなり柔軟である。加算器144の出力151は、宛先制御175を使用する宛先マルチプレクサ146を介して、(1)経路162を経由した活性化関数、(2)経路164を経由したL2もしくはL3メモリ、または(3)経路166を経由した送信元マルチプレクサ148、のいずれかに誘導できる。送信元マルチプレクサ148は、送信元制御173を介して、(1)加算器からの出力、または(2)L2もしくはL3メモリ168からの中間結果、のいずれかを選択する。書込みマルチプレクサは、出力シャッフル選択178を介してニューロレジスタ152の1つを選択し、送信元マルチプレクサの出力をP個の経路172の1つを経由して書き込む。L1メモリに書き込まれたデータは典型的には、多数のサイクルにわたって実行された乗算および累算演算の結果として生成された中間結果を含む。
データは、ニューロンレジスタを読取りマルチプレクサ156に接続するP個の経路174の1つを介してL1メモリから読み出され、入力シャッフル制御選択179を介して選択される。読取りマルチプレクサの出力176は、加算器144への2つの入力の1つを形成する。加算器への他の入力は、乗算器142の出力である。複数の乗算器142が実装される場合には、前置加算器(図示せず)が乗算器の出力を加算するように機能して、その後加算器144に入力される単一の総和を生成することに留意されたい。
第2の低レベル処理要素(PE)例をさらに詳細に示すブロック図が図7Aに示されている。前述のように、PEは、NNプロセッサの最も基本的な計算要素である。ANNのニューロンは、PE内で、本質的にはL1メモリ内で、実装される。大まかに450で参照される、処理要素は、入力データ表現回路452、乗算器回路454、表現変換/丸め(rounding)回路456、アキュムレータ(すなわち、加算器)458、L1メモリ460、否定(negate)回路472、およびマルチプレクサ474を含む。
動作中、入力データ(X)468および重み(W)470は、L3メモリから入力データ表現回路452に入力される。この回路は、マルチプレクサにも入力されるINT/FP信号462に従い、入力データおよび/または重みの表現を整数から浮動小数点(FP)フォーマットに、およびその逆に、変換するように動作する。結果として生じるX504およびW506はマルチプレクサ454に入力される。図6および図7Aに示す2つのPE実施形態のいずれも、本発明のNN装置内で使用され得ることに留意されたい。
一実施形態では、乗算器は、並行して動作するいくつかの乗算器を含む。乗算器は、整数および浮動小数点数の両方を乗算することが可能である。入力データおよび重みに対する有効ビット数も、それぞれ、制御入力464、466によって設定されるとおりに変更できる。乗算器486の積の出力は、表現変換/丸め回路456に入力される。FPアキュムレータおよびFP入力制御入力508、510はそれぞれ、積が整数またはFPフォーマットであるかどうかを回路456に信号通知する。加えて、回路456は、アキュムレータへの入力の前に、積の丸めを実行するように機能する。
回路456の出力488は、アキュムレータ(加算器)458に入力される。アキュムレータへの第2の入力496は、L2もしくはL3メモリからのコンテキスト(すなわち、中間結果)490、またはローカルL1メモリ460の出力のいずれかを含む。マルチプレクサ474は、SEL476に従ってその2つの間で選択する。出力494は、否定回路472に入力され、否定制御478に従い、出力496は、アキュムレータに入力される前に、否定される。
アキュムレータに対する追加の構成制御は、アキュムレータシフト信号(accumulator_shift)498、アキュムレータイネーブル(accum_en)500、およびFPアキュムレータ502を含む。アキュムレータの出力484は、L1メモリに書き込まれる。L1メモリは、L1出力選択480およびゼロスキップ482も含む。L1メモリからの中間結果(すなわち、コンテキスト)出力は、経路493を経由してアキュムレータに入力されるか、または経路492を経由してL2もしくはL3メモリに書き込まれるかのいずれかである。一実施形態では、累算された(すなわち、中間)結果は、順次L1メモリに書き込まれて、L1メモリから読み取られる、すなわち、L1メモリ内のニューロンレジスタに対するランダムアクセスはない。L1メモリは、ランダム以外の、任意の適切な事前に定義されたパターン、例えば、順次的(1つずつ)、1つ飛ばし、2つ飛ばしなど、を使用してアクセスされ得ることに留意されたい。これは、ニューロレジスタにアクセスするために必要なアドレス指定を大幅に簡略化する。加えて、L2およびL3メモリ層へのアクセスならびにL2およびL3メモリ層からのアクセスは、特定のANNで利用可能なローカルのL1メモリが十分でない場合に提供される。この場合、特定のANNに対応するために中間結果がより高次のメモリ層に格納される。しかし、トレードオフは、高次のメモリ層のアクセスにおける待ち時間が増大することである。
代替実施形態では、高(または倍)精度(例えば、16ビット)積を生成するために、4つの低精度(例えば、8ビット)乗算器を組み合わせることによってより高精度の乗算(例えば、16ビット)が実行される。PEのクワッド乗算器をさらに詳細に示すブロック図が図7Bに示されている。大まかに870で参照される、クワッド乗算器は、4つの低精度(例えば、8ビット)乗算器872、Q、Q、Q、およびQを含む。クワッド乗算器への入力は、2つの低精度(例えば、8ビット)値から構成される倍精度入力X、すなわち、X873およびX871であり、倍精度重みWも2つの低精度(例えば、8ビット)値、すなわち、W880およびX882、を含む。
動作中、各基本ユニットQは、低精度(例えば、8ビット)WおよびX値を受信し、それらに基づいて、クワッド乗算器回路は結果Y←Y+W*Xを生成する。倍精度WおよびX値を考えると、重み、入力データおよび出力データの上方部および下方部は、それぞれ、W882、X871、Y876およびW880、X873、Y875として示されている。3つのキャリー(carry)C874、C878、およびC879も生成される。
Y←Y+W*Xを
Figure 0007191329000005
に展開すると、次が得られる
Figure 0007191329000006
および
Figure 0007191329000007
各出力YおよびYは、32ビット乗算積Yを得るための16ビット数を表すことに留意されたい。より大きい精度の結果は、追加の乗算器ならびに入力、重みおよびキャリー構成要素の適切な組合せを使用して得ることができることが理解される。
サブクラスタ
第1のサブクラスタ例をさらに詳細に示すハイレベルブロック図が図8に示されている。大まかに180で参照される、サブクラスタは、各個々のPE182がローカルL1メモリ184を含む、複数のN個のPE182、相互接続ファブリック186、複数の割り当てられたメモリブロック190に分割された専用ローカルL2メモリ188、構成および復号ブロック192、ならびに制御/データ信号181を含む。構成/復号回路192は、外部制御バス194から命令を受信する。各サブクラスタ180はまた、以下でさらに詳細に説明するように、本明細書で提示する実施形態例ではクラスタ階層レベル内に配置される、入力/出力整合回路196および活性化回路198と通信する。
一実施形態では、サブクラスタの機能は、複数のN個のPE、例えば、N=64、を集約することである。サブクラスタ内の全てのPEは、ニューラルネットワークの同じ層に属しており、それは、要求される制御論理を大幅に単純化する。例えば、先験的な静的構成は別として、サイクルごとの動作の制御は必要ない。
加えて、サブクラスタはメモリ階層の次のレベル、すなわち、層間および中間結果を格納するL2メモリ層をカプセル化する。一実施形態では、それは、活性化関数回路(すなわち、上の式2中のσによって表される)も含む。しかし、効率性のために、NNコア例では、活性化関数をクラスタレベルに移動させている。活性化関数は、その位置にかかわらず、ニューロンの出力を受信して、N個の乗算および累算演算ごとに1回、トリガーされる。活性化関数回路の数および位置は、ハードウェアの最適利用を反映するように選択されることに留意されたい。
サブクラスタのいくつかの特徴には、(1)メモリアクセスを管理するための分散制御方式、(2)重みおよび中間結果に対するL2メモリの動的割当て、(3)L1メモリをシームレスに増大させるための固有の中間結果シャッフリングサポート、(4)層中心(layer-centric)の情報および診断格納、(5)層中心の前処理、(6)層中心の後処理、ならびに(7)層内分割サポート(例えば、量子化セグメンテーションのため)、を含む。
第2のサブクラスタ例をさらに詳細に示すハイレベルブロック図が図9に示されている。図8は、サブクラスタの主に論理的なビューを反映しているが、図8はもっと物理的なビューを反映している。大まかに200で参照される、サブクラスタは、専用ローカルL2メモリ210、各々それ自身のL1メモリ214をもち、イネーブルEN211、PE制御信号213、およびPE構成信号215を受信する、複数のN個のPE212、入力相互接続206、出力相互接続208、サブクラスタ制御バス230から命令を受信してL2_cbus236を出力するサブクラスタ構成202、ならびに層制御232およびグループ制御234を受信してアドレスADDR238、イネーブルEN240、および選択SEL242を出力するサブクラスタ復号器204を含む。
動作中、入力データ216および重み218が、制御信号201に従って、クラスタレベルにおけるL3メモリから入力相互接続206に提供される。入力相互接続は入力データ244および重み246をPE212に供給する。zero_skip信号217は、入力データまたは重みのいずれかがゼロ値を有しており、従って、乗算および加算演算は必要ないことをPEに通知する。重み220はローカルL2メモリ210からももたらされ、ローカルL2メモリ210はアドレスADDR205、イネーブルEN207、および制御L2_cbus209を受信することに留意されたい。
一旦、PE内のニューロンが特定の層に対して要求される計算を累算すると、現在中間結果248を表している、ニューロンの内容が読み出され、制御信号203を介して出力相互接続208に出力される。中間結果は次いで、経路226を経由してローカルL2メモリに書き込むか、または経路221、マルチプレクサ222、および経路228を経由してL3メモリに書き込むことができる。加えて、中間結果224はL2メモリから読み出されて、マルチプレクサ222を経由してL3メモリに、またはその後それを経路249を介してPEに転送する出力相互接続のいずれかに転送できる。
従って、各サブクラスタは、入力データおよび重みをPE内のニューロンに供給し、かつ、中間結果をニューロンからL2またはL3メモリのいずれかとのやりとりに誘導するために、柔軟でプログラム可能な経路を含む。
一実施形態では、サブクラスタは、単一のANN層またはその一部の実行に特化される。その機能は、外部入力をL3メモリから受信し、ローカルL2または外部L3メモリのいずれかからの重みと共に乗算および加算を実行して、中間結果(「コンテキスト」とも呼ばれる)をPE L1メモリ内(またはL1メモリが十分でない場合なローカルL2メモリ内)に格納し、最終的に結果を正規化および活性化のために外部活性化関数に送信することである。
サブクラスタ復号器204は、サブクラスタ構成202からの静的入力を動的入力、共通の層制御およびタイミンググループ制御の両方と組み合わせるように機能する。それが格納した状態は、次のアドレス指定を保持するカウンタを含む、すなわち、(1)重み読取り/書込みアドレス、(2)コンテキスト読取りアドレス、(3)コンテキスト書込みアドレス、(4)活性化ソースアドレス(PEが読取りのために出力する)。
入力相互接続は(1)外部重み(すなわち、L3メモリ)またはローカル重み(すなわち、L2メモリから)の間で選択する、(2)重みメモリの幅、すなわち、最大幅で全てのPEがL2メモリから、またはL3外部メモリから異なる重みを受信するのを可能にする、選択される重みの数およびメモリの深さ、を選択する、(3)重みを選択して、選択された重み源(アドレスのMSBを使用)からPEに渡す、入力バスの幅を選択する、かつ(4)入力を選択して、選択された入力源(アドレスのMSBを使用)からPEに渡す、ように動作する。
L2メモリ210は重みおよびコンテキストの両方を同じブロック内に格納するために使用されることに留意されたい。重みアドレスはゼロから始まって上方にカウントされ、他方コンテキストアドレスはメモリの終わりから始まる。オーバーフローを防ぐのは制御プレーンの責任である。
クラスタ
第1のクラスタ例をさらに詳細に示すハイレベルブロック図が図10に示されている。大まかに250で参照される、クラスタは、各サブクラスタ266がそれ自身のL2メモリ268を有する、複数のM個のサブクラスタ、複数の割り当てられたメモリブロック264に分割された専用ローカルL3メモリ262、L3メモリをサブクラスタにインタフェースさせるように適合されたメモリ管理装置(MMU)260、制御同期装置254および複数の層制御回路256を含む管理および制御ブロック252、複数の入力アライナ274、ならびに複数の活性化関数回路276を含む。入力/出力(I/O)ポート270は、各クラスタをクラスタ間クロスコネクトスイッチ272にインタフェースさせる。
一実施形態では、クラスタは、典型的には、2つ以上のニューラルネットワーク層を表す集約の次のレベルである。それは、PE基本計算実体を含むサブクラスタおよびサブクラスタ間の相互接続ファブリックの両方を含む。これは、サブクラスタ間の接続を制御することにより異なるニューラルネットワークモデルを表すための柔軟性をNNコアに提供する。L3メモリ262は層間結果を1つ以上の割り当てられたメモリブロック264内に格納するように機能する。
クラスタのいくつかの特徴には、(1)メモリアクセスを管理するための分散制御方式、(2)複数層への総計M個のサブクラスタの表現をサポートするための柔軟で構成可能なルーティングマトリックス、(3)重みおよび中間結果に対するL3メモリの動的割当て(比較的稀)、ならびに(4)データフロースロットリングおよび負荷分散を可能にするための層間制御、を含む。
追加の特徴には、(1)重み/入力データ平衡化、(2)前および後処理ブロック、(3)動的バス幅およびメモリビットセル、(4)MMU内での入力データおよび重みの交換可能性、(5)イベント駆動型挙動およびパイプライン化を提供する機能、(6)制御がデータプレーンから切り離される、(7)任意選択のゼロパイプライン機能、ならびに(8)実行時構成変更のバランスのとれた機能、を含む。
第2のクラスタ例をさらに詳細に示すハイレベルブロック図が図11に示されている。大まかに280で参照される、クラスタは、クラスタ相互接続回路282、入力バッファ284、出力バッファ292、複数のM個のサブクラスタ306、サブクラスタ相互接続304、複数の活性化関数/プーリング回路300、複数の入力アライナ回路302、および複数の割り当てられたメモリブロック298を含むL3メモリ296を含む。
入力データおよび重み286は入力バッファ284内に格納される。入力バッファから、入力データおよび重み288はクラスタ相互接続282に入力される。入力データ305および重み307はまた、L3メモリ296に書き込まれ、L3メモリ296から読み取ることができる。クラスタ相互接続からの入力データ281は、サブクラスタ相互接続304に入力される前に、アライナ回路302に入力される。入力データ285は、サブクラスタ相互接続からサブクラスタ306に供給され、他方、サブクラスタからの出力283はサブクラスタ相互接続に送信される。出力309は活性化関数/プーリング回路300に入力され、そこで結果として生じる出力308がクラスタ相互接続282に入力される。出力データ290は、出力バッファ292に書き込まれる。データ出力294は次いで、他のクラスタまたはオフチップに送信される。
一実施形態では、NNコアは複数のニューラルネットワークを並行してサポートする。各クラスタは、制御インタフェース(例えば、クロック、リセット、イネーブルなど)、構成インタフェース(メモリのような)およびデータインタフェース(例えば、AXI(Advanced Extensible Interface))を露出するように動作する。各クラスタは、1つ以上のANN層を、恐らくは2つ以上のANNから、実装するように適合される。AXI相互接続は制御インタフェースを露出し、クラスタ、NNコア内のARMコントローラのDMAエンジン、および外部ポートを接続するために使用される。ARMは、DMAエンジンを通したAXIインタフェース、クラスタおよび相互接続への制御および構成インタフェース、ならびに外部標準インタフェースを露出する。
一実施形態では、クラスタは、(1)構成回路、(2)メモリ管理装置(MMU)、(3)制御相互接続、(4)トリガー相互接続、(5)複数のサブクラスタ、(6)複数の層コントローラ(LC)、(7)複数の専用装置、(8)複数の入力装置、(9)複数の出力装置、および(10)複数のメモリブロック(すなわち、L3メモリ)を含む。
一実施形態では、クラスタは、恐らくは複数のANNからの、複数のANN層を並行してサポートする。ネットワーク層は、制御相互接続を通して接続された1つ以上のサブクラスタをもつ層コントローラ(LC)として、または制御をその中に含む特殊装置(専用、入力または出力)の1つとして実装できることに留意されたい。層は、構成によって全て定義された、トリガー相互接続を通したフロー制御のための信号通知を使用して、L3メモリ296内の割り当てられたメモリブロック298を通してデータを伝達する。割り当てられたメモリブロックはサブクラスタに対する重みメモリとしても使用される。様々な層からL3メモリへの全ての制御信号は、MMU260により構成を使用して仮想から物理アドレスに変換される。
MMUは、L3メモリの読取りポートおよびサブクラスタへの入力ポートなど、2つの通信ポートグループ間でスライディングオーバーラップウィンドウ機構を使用する。各サブクラスタは、その入力を、サブクラスタのリスト内のその関係位置周辺のメモリポートのグループから選択できる。ウィンドウ機構は、以下でさらに詳細に説明される。
パイプラインをNNコア内で効率的に利用することができるようにするために、各ANN層に対するサブクラスタの割当ては、好ましくは、フィード(feed)ごとにANN層内で要求される計算の数に比例する。割当ては、制御相互接続によって決定され、それは、サブクラスタをLCにマッピングする。マッピングは、2つのレベルで実行される、すなわち、(1)各サブクラスタは、スライディングオーバーラップウィンドウ機構を通してLCに割り当てられる(すなわち、MMU内で使用されるものに類似)、および(2)サブクラスタはANN層内部のタイミンググループに割り当てられる。タイミンググループは、活性化後に使用されるL3への書込みポートなど、共通の資源を要求する動作に経時的に広がる。ANN層は、各々が1つ以上のサブクラスタを含む、1つ以上のタイミンググループを含み得る。全てのタイミンググループの間で共通の、制御は、第2の選択レベルを通して渡されず、その回路の多重化の複雑さを低減する。
一実施形態では、ANN層間の信号通知機構は、2本の双方向ワイヤーに基づき、それは、それらの間のデュアルバッファの状態を交渉する。従って、2つの連続的な層を接続するために2本の双方向回線が必要である、すなわち、各層は、前の層のために2本および次の層のための2本の、4本の双方向回線を使用する。2つの逆方向信号は、バッファが層間の2つのバッファの各1つに対して新しいデータを受信する準備ができているかどうかを示し、2つの順方向信号は、バッファ内のデータが両方のバッファに対して有効であるかどうかを示す。インタフェースを簡略化するために、コントローラは、専用の命令を使用して、両方向の2つのバッファ(すなわち、アクティブおよびパッシブ)の意味を反転できる。
クラスタ間クロスコネクトをさらに詳細に示すハイレベルブロック図が図12に示されている。大まかに430で参照される、クラスタ間相互接続ファブリック/クロスコネクトは、クラスタ436間での通信を可能にする複数のマルチプレクサ432およびスプリッタ440を含む。一実施形態では、各クラスタJは、入力ポート396および出力ポート398を含む、複数のポートを含む。4つの入力および出力ポートが例に示されているが、任意の数が実装できる。
入力側上のマルチプレクサ432はSEL線438によって制御される。各マルチプレクサに対する入力434は、隣接するクラスタ、例えば、クラスタJ-2、J-1、J、J+1、からの出力線を含む。各マルチプレクサからの出力444は、クラスタ内の別個の入力ポート396に入力される。同様に、出力側上のスプリッタ440は、隣接するクラスタ、例えば、クラスタJ-1、J、J+1、J+2、の入力線に供給される出力442を生成する。クラスタの各出力ポート398からの出力446は、別個のマルチプレクサ440に入力される。NNマネージャ392は、クロスコネクト430の構成を制御するように機能する。一実施形態では、1つのクラスタから別のクラスタへの可能な接続は、アドレス指定を減らしてルーティングを制御するために意図的に制限されて、帯域幅を改善する。例えば、入力434を経由したクラスタJへの接続は、クラスタJ-2、J-1、J、およびJ+1、すなわち、隣接するクラスタ(およびそれ自身)だけに制限される。同様に、出力442におけるクラスタJからの接続は、クラスタJ-2、J-1、J、およびJ+1に制限される。他のクラスタへの直接接続は制限されるが、任意のクラスタは依然として、1つ以上の中間のクラスタをトラバースすることにより、任意の他のクラスタと間接的に通信することができることに留意されたい。
クロスコネクトは、クラスタレベルから始まって、NNプロセッサコアの最上位レベルを経て装置から装置へ、全てのレベルで生じることに留意されたい。NNプロセッサ内のL個のクラスタは、1つのクラスタからの出力ポートが隣接するクラスタにマッピングされるのを可能にする循環相互接続ファブリックを使用して接続される。クロスコネクトはクラスタの出力を自身(すなわち、セルフルーティング)にルーティングすることもできる。クロスコネクトにおけるアクセスの範囲は構成可能であり、設計の複雑さと、アクセス可能性との間でのトレードオフを可能にすることに留意されたい。「分散/集約」機構は、同じ出力が複数の入力を並行して供給するように、出力が複数の複製に(すなわち、スプリッタを介して)分割されるのを可能にすることにも留意されたい。クロスコネクトの制御は、制御線431を介してNNマネージャ392によって提供される。
スライディングオーバーラップメモリウィンドウイング
第1のメモリウィンドウイング方式例を示す略図が図13に示されている。柔軟性を維持するために、プロセッサ内のメモリの各コンシューマは、データ交換のために異なるメモリセグメントにアクセスする能力を有する。メモリウィンドウイングという用語は、計算要素または実体が、メモリ資源のずっと広い範囲ではなく、利用可能なメモリ資源のあるサブセットだけに対するアクセスをそれによって与えられる方式を指す。メモリウィンドウイング方式を使用して計算要素によるメモリへのアクセスを制限すると、必要なアドレスおよびルーティング制御を大幅に削減しながら、利用可能な帯域幅を著しく改善する。メモリファブリックはメモリウィンドウイング方式を動的に再編成することができ、それにより計算要素によってアクセス可能なメモリ資源はプログラム可能で構成可能である(例えば、コンパイル時、実行時など)ことに留意されたい。ウィンドウイング方式は、以下でさらに詳細に説明される分散/集約技術に基づく。
大まかに580で参照される、図示例では、2つの計算要素582はメモリ資源584、586、588にアクセスする。計算要素のいずれもメモリ全体へのアクセスを有しておらず、有限ウィンドウのみに対するアクセスを有する。これは、計算要素はメモリファブリック全体に対するアクセスを一度に要求することは決してないからである。ウィンドウイングは、制御、進入データ、退出データ、および重みに対して異なり得ることに留意されたい。加えて、ウィンドウは典型的には、共有およびパイプライン化を可能にするために重なり合う。また、メモリ資源自体は多目的であり、2つ以上のタイプの情報を格納するために使用できる。
図示例では、計算要素1に対する制御は、メモリブロック584、586、および588に及び、制御1の矢印590によって示される。計算要素1は、メモリブロック586に対する進入データウィンドウを含み、進入データ矢印592によって示される。同様に、計算要素1は、メモリブロック588に対する退出データウィンドウを含み、退出データ矢印594によって示される。重みは、メモリブロック584および、退出データを格納するためにも機能するメモリブロック588内に格納される。同様に、他の計算要素も、制御、進入、退出、および重みウィンドウを含む。例えば、計算要素2は、メモリブロック588および1つ以上の他のメモリブロック(図示せず)に及ぶ制御ウィンドウ596を含む。
第2のメモリウィンドウイング方式例を示す略図が図14に示されている。一実施形態では、NNプロセッサ内の計算要素を通って流れるデータはパイプライン化され、サブクラスタ内のPEはデータを入力として受信して、出力を生成し、その出力は次いで、後続の計算のために何らかの他のサブクラスタに対する入力として機能する。様々な層内のメモリは、可能な限りローカル化されて、各層が対応する計算要素のアクセス可能性および効率性を最大限にするために活用される。計算要素はメモリの制限されたサブセットにだけアクセスする必要があるので、ルーティング(すなわち、アドレス線、制御など)は、実際に必要なメモリブロックおよび計算要素のクロスコネクトに制限できる。図15、図16、および図17は、メモリアクセスウィンドウの構成可能性を示し、それを通して各資源の割当てが管理され構成されて、特定の要求に対処する資源を備える。
大まかに340で参照される、ウィンドウメモリ方式は、各々が複数のPE349を含む、複数のサブクラスタ348、L3メモリ(共有されていない)342、およびL3メモリ(共有されている)344を含む。動作中、サブクラスタは重み情報345を、共有されていないL3メモリの一部から受信する。サブクラスタへの入力データ341は、L3メモリの共有された部分から割り当てられたメモリブロック346から受信される。サブクラスタ内のPEは、重みおよび入力データを処理して、出力343を生成する。しかし、出力は、異なる(例えば、隣接する)割り当てられたメモリブロック(すなわち、入力が読み取られたメモリブロックではない)に書き込まれる。これらの出力は次いで、別のサブクラスタ(例えば、ANNの後続層内のニューロン)への入力として読み取られる。この方法で、ANN入力データ347は共有L3メモリに入り、割り当てられたメモリブロックから読み取られて、1つ以上のサブクラスタ内のPEによって処理され、隣接するメモリブロックに出力されて、ANN内の様々な層を通ってトラバースした後、最終的にANN出力データ349として共有L3メモリから出力される。
しかし、サブクラスタは、L3メモリに対する直接的なランダムアクセス機能を有しているのではなく、メモリブロックによって割り当てられた隣接しているか、または近いものだけに対するアクセス機能を有していることに留意されたい。例えば、サブクラスタHは、サブクラスタH-2、H-1、H(それ自身)、およびH+1サブクラスタに対するアクセスを有する。これは、メモリアクセスのためのアドレス指定およびルーティング制御要件を大幅に削減する。従って、各サブクラスタは、メモリの比較的小さい窓、PEがそれらの機能を実行するためにちょうど十分な、だけを「見る」。
計算およびメモリ要素のウィンドウサイズと、コンピュータアクセス構成可能性との間の第1のメモリアクセス可能性例を示す略図が図15に示されている。この略図は、メモリウィンドウイング方式を例示しており、それにより計算要素およびメモリ要素は相互に対して制限されたアクセスを有する。例えば、メモリ要素1~Dおよび計算要素1~Eを考える。斜線の入った塞がれた領域520は、相互にアクセス可能な資源を表す。従って、計算要素1~3は、メモリ要素1~12にだけアクセスできる。同様に、メモリ要素1~12は、計算要素1~3にだけ接続できる。図のように、計算要素にアクセス可能なメモリ要素は、相互に重なり合うスライディングアクセスウィンドウを形成する。アクセスウィンドウは動的に構成できて、ハードワイヤードでも固定でもないサイズ(すなわち、スパン)および特定の接続を有する。主な特徴は、どの単一の計算要素もメモリ全体に対するランダムアクセスを有していないことである。むしろ、各計算要素は、メモリ要素の一部、例えば、隣接するメモリ要素またはすぐ近くのもの、だけアクセスできる。その計算要素に対してアクセス不能なメモリの部分は、書込み領域522によって表される。
メモリによってアクセス可能な計算要素の数は、垂直矢印523によって表されるようにプログラム可能で構成可能であることにも留意されたい。同様に、計算要素によってアクセス可能なメモリ要素の数は、水平矢印521によって表されるようにプログラム可能で構成可能である。
計算要素とメモリ要素との間の第2のメモリアクセス可能性例を示す略図が図16に示されている。この略図は、計算要素とメモリ要素との間のアクセスは隣接するウィンドウに制限されないことを示す。むしろ、アクセスは不連続で、それは、一実施形態では、仮想対物理マッピングを使用して達成される。手段にかかわらず、アクセス可能な領域は、制限されて事前に定義された範囲の長方形を有して、計算要素とメモリ要素との間のアクセスが制限されていて有限であること、すなわち、どのかかる領域もアドレス空間全体をカバーしないことを示す。
分散/集約ベースの資源ウィンドウイング技術例を示す略図が図17に示されている。例示を目的として、クラスタ例530の一部が示されている。しかし、本技術は、クラスタ内での使用に制限されておらず、NNプロセッサ内のどこでも使用できる。2つの資源A532およびB538を考えると、その資源は任意の所望の回路、例えば、計算、メモリ、制御要素など、を含み得る。アクセスを制限するために、各資源A532の出力はスプリッタ534に入力され、各資源B538への入力はマルチプレクサ536の出力である。完全なメッシュ接続を提供するのではなく、スプリッタの出力は、制限された数のマルチプレクサ入力だけに行き、従って、制限された接続を提供する。例えば、資源A1の出力は、資源B1およびB2だけに入力される。同様に、資源A2の出力は、資源B1、B2およびB3だけに入力され、資源A3の出力は、資源B2およびB3だけに入力される。このようにして、各B資源はA資源の小さいウィンドウに接続するだけである。従って、100のA資源と50のB資源との間のアクセス(資源の数は例にすぎない)は、有限数のA資源が有限数のB資源と、重なり合うスライディングベースで接続する、スライディングウィンドウを形成する。
スプリッタおよびマルチプレクサの制御は、層コントローラ(LC)548によって提供される。LCの制御線549出力は、LCUから始まるSEL線547に従い、LCからの制御の1つを選択する制御ファブリック544内の一連のマルチプレクサ546に入力され、LC内でさらに復号され得る。マルチプレクサ546の制御は、コンパイル時または実行時などに、プログラム可能で構成可能であり、それにより、A資源とB資源との間の柔軟なマッピングを達成する。
本発明によれば、NNプロセッサのメモリアクセスファブリックの特徴は、実質的に高並列で動作する能力である。これは、計算資源とそれらに付加されたメモリとの間のマッピングの固有の分離のおかげである。例えば、重みは明示的に関連サブクラスタにだけ接続される。しかし、1つの例外は、割り当てられたメモリブロックが共有されて、衝突が生じる場合である。かかる事象は典型的には稀であるが、NNプロセッサは、衝突に起因する競合を解決する能力を提供する。一実施形態では、メモリ競合は制御層で解決され、その場合、共通のメモリブロックを共有する2つの計算実体は、以下で説明されるように、信号通知レベルで衝突回避に対処する。逆圧(backpressure)は典型的には、一時的で短命であり、総帯域幅全体はNNプロセッサの設計によって保証されることに留意されたい。
メモリ競合解決方式例を示すブロック図が図18に示されている。大まかに600で参照される、メモリ競合解決回路は、複数のメモリブロック632を含むL3メモリ602、MMU626、LCU A604、LCU B606、ANN層G614を形成する1つ以上のサブクラスタ618、およびANN層G+1 616を形成する1つ以上のサブクラスタ620を含む。
この図示例では、ANNの層GおよびG+1の両方が、L3メモリ内のメモリブロック634に対してデータの読取りおよび書込みを行う。層Gの出力は、層G+1への入力として機能する。しかし、時折、両方の層は、同じメモリブロックに同時にアクセスしようとし得る。これは、「X」でラベル付けされたメモリブロック636によって示される。同じメモリブロックの競合が生じると、MMU626がその事象を検出して、それらそれぞれのLC内のLCU(この例ではAおよびB)に対して競合アラート608を生成する。競合アラートに応答して、LCUの1つは、サブクラスタに入力される停止(halt)コマンド610、612を生成する。停止コマンドを受信するサブクラスタは、読取りまたは書込み操作が完了するまで、L3メモリ内のそのメモリブロックに対するアクセスを抑止する。
層内では、その層を構成するサブクラスタは、メモリに対する競合が決して生じないように構成されるので、メモリ競合は、層内ではなく、常にANN層間で生じることに留意されたい。典型的には、競合は、1つの層が書き込んでいる間に他の層が読み取っている場合に生じる。競合アラートに応答して、書込みまたは読取り操作のいずれも抑止できる。一実施形態では、ANNの本質は、書込み操作ははるかに稀な事象であるということなので、書込み操作が抑止される。加えて、読取り操作を抑止すると、データ処理パイプラインのかなりの部分が機能停止するであろう。従って、読取り操作ではなく、書込み操作が抑止される。停止信号(層Gへの610または層G+1への612)が抑止すべき層に対して発行される。書込み操作または読取り操作を抑止するかの判断は、コンパイル時に先験的にプログラム可能で構成可能であることにも留意されたい。
層コントローラ
層コントローラ例をさらに詳細に示すハイレベルブロック図が図19に示されている。大まかに310で参照される、層コントローラ(LC)は、命令メモリ312から読み取られたマイクロコード命令311を復号および実行する責任を負う層制御ユニット(LCU)314を含む。その命令に応じて、1つ以上のコマンド信号313が、入力アライナ制御316、活性化制御318、入力アドレス復号器320、重みアドレス復号器322、出力アドレス復号器324、およびPE制御326を含む、様々な制御および復号ブロックに出力される。これら6つのブロックからの制御およびアドレス信号がそれぞれ、入力アライナ328、活性化関数回路330、入力メモリ332、重みメモリ334、出力ウィンドウ335、および制御ウィンドウ336に出力される。PE制御信号315は、制御ウィンドウ336からサブクラスタ338内のPE回路に出力される。
L3メモリおよびサブクラスタに対する層コントローラインタフェースをさらに詳細に示すハイレベルブロック図が図20に示されている。大まかに640で参照される、クラスタ例は、L3メモリ644、LC642、複数のサブクラスタ662、ポストプロセッサ666、および図17に関連して上で説明された、制御、書込みデータ、読取りデータ、および重みのためのウィンドウイングを含む。LC642はLCU656、1つ以上のプリプロセッサ652、命令メモリ654、1つ以上の復号器回路658、およびMMU660を含む。
具体的には、制御ウィンドウイングは、回路674および制御線684を含み、重みウィンドウイングは、回路646、648、および信号線650を含み、進入データウィンドウイングは、回路676、678、672、および信号線690、692を含み、退出データウィンドウイングは、回路680、682、668、および信号線686、688を含む。L3メモリにアクセスする進入および退出ウィンドウは、破線によって示されるように重なり合うことに留意されたい。ウィンドウイングに対する制御(すなわち、スプリッタおよびマルチプレクサに対する選択)は、LCUおよび復号器によって生成されたメモリウィンドウ制御(MWC)信号670によって提供されて、ウィンドウ回路674、646、648、676、678、672、680、682、および668に入力される。
動作中、進入データはL3メモリから読み取られて、前処理回路652に入力される。これらの回路は、任意選択としてデータを再形成するように機能して、例えば、シフトなどの操作を入力データに関して実行する。前処理されたデータはサブクラスタに出力され、そこでPE664は入力データを、同様にL3メモリから読み取った重みと共に乗算する。中間結果、すなわち、コンテキストが、サブクラスタからメモリウィンドウイングを通して後処理回路666に出力される。後処理回路は、データ処理パイプラインの一部であり、活性化関数および任意選択として整合を適用するように動作する。
各LCには、ANN内の層を構成する1つ以上のサブクラスタが割り当てられることに留意されたい。各クラスタは、複数のLC(例えば、8)を含む。従って、図示されるサブクラスタ662は、各クラスタ内のM個のサブクラスタのサブセットに過ぎず、各LCは、前述した同じウィンドウイング概念を使用して選択できるサブクラスタの異なるセットを制御する。加えて、サブクラスタ内のN個のPEは分割されず、サブクラスタ内の全てのPEは単一のユニットとして制御されることを意味する。これは、2、3の制御線だけが多数のPEを、そして最終的にニューロンを制御するので、計算要素の制御を簡略化して、比較的無駄のない制御信号通知を可能にする。同様に、復号器回路658の各々は、異なるセットのメモリブロックを制御するように構成される。一実施形態では符号化される、制御信号698は、LCUによって生成されて、復号器回路658に入力される。LCU自体は命令メモリ654の内容によって制御される。各命令の実行は、符号化された制御信号の生成となり、それはその後、復号器によって復号されて、制御ウィンドウ回路674を介して計算要素に出力される。サブクラスタ内の計算要素を制御する制御信号に加えて、LCUは制御ウィンドウを(重み、進入および退出データウィンドウと共に)制御するための制御信号(すなわち、MWC選択制御)も生成することに留意されたい。一旦、構成されると(コンパイル時に)、制御信号、重み、進入および退出データは静的にルーティングされる。MMU660は、L3メモリウィンドウイングに対する制御信号を生成して、仮想対物理マッピングを実行するように機能する。それは、ANN内の2つの層間のメモリ競合事象に応答して、競合アラート694を生成ようにも機能する。前述のように、LCUは層の1つに停止コマンドを発行することにより競合事象を解決する。
第2の層コントローラ例をさらに詳細に示すハイレベルブロック図が図21に示されている。大まかに550で参照される、LC例は、複数の命令554を含む命令メモリ552、LCU556、命令復号器566、トリガーウィンドウクロスコネクト558、およびトリガーハンドラ560を含む。LCU556は、状態マシン562、および命令レジスタ564を含む。
動作中、命令551が命令メモリからLCU内の命令レジスタ564に読み取られ、そこでそれらが決定されて実行される。ハードウェアを直接制御するように構成される命令の1つ以上の部分568が復号のために1つ以上の復号器566に送信される。復号器の出力は、図20に示して前述したように、内部PE動作を制御するためにサブクラスタに送信される直接制御信号通知を含む。命令の他のLCUの部分570、572は、LCUの論理状態を制御して、状態マシン562に入力される。これらの部分は、例えば、ループ処理および分岐を制御する。NEXT553コマンドは、命令メモリ552からの次の命令を実行のためにLCUに読み込ませる。
一実施形態では、1つ以上のトリガー555が状態マシンによって生成されて、トリガークロスコネクト558に入力される。トリガー機能は「インタラプト」と類似しており、活動は、何らかの事象が生じるまで停止して遅延させることができる。活動をトリガーするためにトリガー信号が使用される。トリガーは他のトリガーを起動するために発行することができる。それらは、NNプロセッサ内の活動を同期させるために機能する非同期機構を表す。例えば、トリガーは、バッファが書き込まれるまで、または層が処理を完了するまで、処理を停止するために発行できる(またはそうでなければ、何らかの事象が起こっていて、さらなる処理が開始できることの指示として機能する)。
加えて、トリガーは、異なるLC内のLCUにおける活動をトリガーするために発行できる。この処理は「ハンドオーバー」と呼ばれる。ハンドオーバー機構は、1つのLCから別のLCへの活動をトリガーでき、例えば、トリガーは、1つのANN層が完了して、結果をANN内の別の層に送信する場合に使用できる。トリガーウィンドウクロスコネクトは、出力トリガー信号559を適切なLC内のトリガーハンドラに誘導するように機能し、そこでそれらは信号557を介してLCU内での活動を制御するように働く。
データと制御プレーンとの間の分離に関して、一実施形態では、制御プレーンを制御するマイクロコードはLC内で実行して、データに対するアクセスは有していない。LC内のマイクロコードマシンの追加の機能は、条件文または条件分岐がないことである。分岐予測または他のパイプラインオーバーヘッドを管理する必要が回避されるので、これは、データのパイプライン化に対して好都合である。従って、実行は、完全に予測可能である。これは、分岐し得るために実行が入力に依存する典型的な従来技術のマイクロコードとは対照的である。NNプロセッサでは、一旦、マイクロコードが実行されると、データフローの進展は完全に予測可能であり、すなわち、各制御信号の生成がいかなる場合でも予測できる。
一実施形態では、マイクロコードベースのコントローラ内で実行された各マイクロコード命令は、計算資源およびメモリ資源に対する制御信号通知を生成するように動作する。言い換えれば、マイクロコードは、同様に実際の制御信号通知を出力に適用しない内部処理に対して責任を負う操作がないので、いかなる「オーバーヘッド」も有しない。従って、どのマイクロコード命令操作も、マイクロコードマシンの内部ハウスキーピング処理で浪費されない(「NOP」操作を唯一の例外として)。
LC内のマイクロコードマシンの別の機能は、トリガーされる操作である。分岐はサポートされていないが、実行フローは、データパイプラインハンドシェイク、例えば、1つのLCUから別のLCUへのハンドオフ、を可能にするために実行の開始/停止を示す外部信号によってトリガーできる。
LC内のマイクロコードマシンのさらに別の機能は、繰返し演算サポートであり、それにより演算のインライン繰返し(すなわち、インラインで実行するループ)は繰返し演算を演算コード自体内に示すことができるようにサポートされ、それによってループのセットアップおよび管理のための不必要なサイクル、ならびに関連するフェッチを回避する。この特徴は、ループ管理のオーバーヘッドと比較して少ない操作を有するループに対して有用であることに留意されたい。後者はニューラルネットワーク操作において非常に一般的であり、例えば、多数の乗算および累算(MAC)演算の後に活性化が続く。データパイプラインマシンでは、制御とデータの比率が、ごくわずかな制御が比較的大規模なデータパイプの挙動を定義するようなものである場合、それは非常に重要である。
例えば、1000個の乗算および累算(MAC)演算を実行するように構成された従来のプロセッサを考える。擬似コード例が以下のリスト2に提供される。
Figure 0007191329000008
前述の擬似コードでは、ループ内に4つの演算コードがあり(すなわち、4サイクル)、そのうちの2つが演算に関わり、50%の利用である。このループが1024のMAC回路を制御すると仮定すれば、これはフル稼働で、512だけが有効に動作していることを意味する。
それに対して、インライン繰返しはNNプロセッサ内でサポートされる。加えて、内部制御に対するオーバーヘッドはゼロで、「余分な(spare)」演算コード、すなわち、マシンまたはハウスキーピング処理の内部管理のためだけに使用される演算コード、をもつ要求を排除する。リスト2の擬似コードは、以下のリスト3に提示される次の擬似コードに変換される。
Figure 0007191329000009
上に示すように、全てのループ情報は機能的な演算コードに埋め込まれて、MAC利用は100%まで増加する。
制御とデータプレーンとの間に深い分離を有することも制御プレーンをセキュリティの危険からある程度、本質的に免除することに留意されたい。これは、装置をハッキングするための一般的な技術は、制御プレーンに干渉するデータをそれに供給することであるためである。2つのプレーンは厳密に分離されているので、1つに干渉することは、他に影響を及ぼさない。
コンパイラ
NNプロセッサのコンパイラ/SDK例を示すハイレベルブロック図が図22に示されている。大まかに770で参照される、コンパイラは、入力ANNモデルに基づいてNNプロセッサを構成するように機能する。それは、ユーザーによって使用されて開始される外部ソフトウェアツールチェーンの一部としてオフチップで実行するプロセス内で実行される。典型的には、コンパイラは、ソースANNモデルの対象であるNNプロセッサ、NNプロセッサSoCまたは複数のNNプロセッサSoCの知識を有する。
具体的には、トランスレータ772は、ユーザーモデルを受信して、モデルの中間フォーマットを生成するように機能する。オプティマイザ774は、モデルレベル最適化、性能に対する翻訳後のモデル調整、および異なるビット幅への数的適応を実行するように機能する。資源アロケータ778は、中間モデルに従い、物理的資源(例えば、計算およびメモリ要素など)を割り当てて指定する。プロファイラ786は、例えば、予期される電力消費、わたり(throughout)、待ち時間などを含む、性能評価を実行する。ソフトウェアエミュレータ782は、トランスレータ772の中間モデル出力を使用してNNプロセッサのビットイグザクト(bit exact)数的エミュレーションを実行するように機能する。
一実施形態では、外部ツールチェーンを実装するためにいくつかの対象オプションがユーザーに提供される。3つの対象オプションは(1)NN装置780、(2)エミュレータ782、および(3)NN装置を機能的にシミュレートするハードウェアのソフトウェアモデルを含むシミュレータ784、を含む。従って、ユーザーは、NN装置自体、NN装置のハードウェアエミュレーション、またはNN装置のソフトウェアシミュレーションのいずれかを使用してツールチェーンを実行するオプションを有する。
NNプロセッサの複数の動作粒度および関連するメモリ/待ち時間のトレードオフ
本発明の機能および利点は、NNプロセッサ内のパイプラインが、入力の任意のサブセットの任意の所望の粒度で動作することが可能なことであり、その場合、メモリは待ち時間に対してトレードオフされ、その逆も同じである。より具体的には、入力データが何らかの内部構造(例えば、ビデオのフレームで、各フレームは複数の行(またはバッファ、パケットなど)から成る)を有する場合、NNプロセッサアーキテクチャは、次の層の活動を、単一のかかる行、バッファ、パケットなど、それらの複数からの任意の集約でトリガーできる。
下位集約の場合、中間結果を格納するために追加の中間結果(すなわち、コンテキスト)ストレージが必要とされる。しかし、パイプライン内での前のさらなる処理のために後続の処理要素が解放されるので、待ち時間は最小限であり、それは、着信トラフィックが、詰まるのではなく、使われるのを可能にする。従って、より上位メモリストレージ要件はコンテキストのより低い待ち時間に対してトレードオフされる。
他方、より高い集約の場合、すなわち、より少ないコンテキストメモリしか要求されないか、または多数のコンテキストを要求するANNモデルが実装される場合、バッファメモリと引き換えにより少ないコンテキストメモリが使用されるトレードオフが行われ得、それにより入力の追加のバッファリングが実装され、結果として任意の一時点において同時に必要なコンテキスト数が減少するが、待ち時間は増加する。一実施形態では、このトレードオフはLC内のマイクロコードによって実装され、従って、構成可能でプログラム可能である。
NNプロセッサの柔軟な処理粒度および関連するメモリ対待ち時間のトレードオフを示す略図が図23に示されている。大まかに930で参照される、データパイプライン例は、最小限の遅延時間の方を好み、低入力領域粒度で動作するために、データパイプラインを活用するオプションを強調する。ネットワーク内の開始点または任意の点に配置できる入力データ938を含む入力テンソル(tensor)例932を考える。ネットワーク層の1つは次いで、NN操作934を入力データ(例えば、この例では3×3畳込み)に適用し、その後にメモリブロック931および939を含む出力領域936が続く。
この例では、入力データストリームが完全に使われ、全ての必要な計算が適用される一方、全ての計算がメモリ内に格納された中間結果にコミットしているので、待ち時間を最小限にして、入力データを取得する必要がない。代替実施形態では、この機能は、(1)フレーム全体を待ってバッチ操作を適用し、それにより全てのデータが直ちに出力されるようにコミットされて中間結果を回避すること、(2)中間結果を回避するために最小セットの行を待つこと(この事例では3)、(3)外部メモリ内に格納された中間結果を使用して、メモリアクセス待ち時間が増大すること、または(4)中間結果を格納する必要を回避するために、必要に応じて、入力をリコールする(すなわち、同じデータを複数回、読み取る)ことによって実行できる。
NNプロセッサSoC、チップ内およびチップ間接続
上で詳細に説明したように、NNプロセッサは、ANNを実装するために使用できる。しかし、実装されるANNがNNプロセッサの容量を超えている場合、本発明はANNモデルを実装するためにいくつかのNNプロセッサを使用する機能を提供する。前述のように、NNプロセッサは、NNプロセッサコア間の通信のための複数のバスインタフェース(例えば、チップ間インタフェース)を含む。本明細書で開示する例では、2つのチップ間インタフェースが提供されるが、任意の数が実装できる。従って、複数のNNプロセッサコアの処理能力を組み合わせることにより大規模なANNモデルに対応できる。
相互接続されたNNプロセッサのネットワークのチップ間インタフェースにわたる配備は実質的にシームレスであることに留意されたい。装置間通信を利用すると、ネットワークの挙動は、単一のNN装置上に含まれるANNと等しい。一実施形態では、チップ間インタフェースは、層の境界上の帯域幅を狭める技術に沿う。インタフェースの物理層は、同期して、必要な帯域幅を保証する任意の適切なプロトコルを含み得る。次の層は、受信チップによって除去できるフレームフォーマットを搬送するパケット層である。フレームフォーマットの構造は、装置間の移行におけるオーバーヘッドを最小限にしようと試み、例えば、ストリームID、宛先層、データフォーマットなどを含む、複数のフィールドを含む、イーサネットのそれに類似している。例えば、WxHxF出力テンソルを有する層を考える。そのプロトコルは、処理が生じる前に、次の装置における構造、ストリームID、およびネットワークIDを識別する。必要な帯域幅はその結果(WxHxF+オーバーヘッド)×フレーム/sである。
本発明の第1のマルチNNプロセッサSoCシステム例を示す略図が図24に示されている。一実施形態では、上で説明して、図4および図5に示すようなNNプロセッサコア(またはエンジン)は、複製されて、システムオンチップ(SoC)として実装できる。NNプロセッサコアに対する知的財産(IP)は、モノリシック集積回路(IC)を実装するために使用できる。代替として、物理NNプロセッサコアダイがSoC上に統合して実装できる。
モノリシック半導体またはSoCとして実装されると、大まかに700で参照される、NNプロセッサSoCは、内部バス710を介して相互接続された複数のNNプロセッサコア706、1つ以上の外部インタフェース回路702、1つ以上の「外部」L5メモリ回路708、ブートストラップおよび前処理回路704、ならびに後処理回路712を含む。半導体技術の当業者は任意の数のNNプロセッサコアおよび他の構成要素を有するICまたはSoCを実装できるので、NNプロセッサコア、L5メモリ回路などの数は、図示されるものに制限されないことに留意されたい。
動作中、ANN入力データ714は、外部I/F702を介してSoC700に書き込まれる。ブートストラップおよび前処理回路704は、例えば、バッファリング、刻時(clocking)、電力管理、データスロットリングなど、を含む、1つ以上の機能を実装に応じて実行するように動作する。データは次いで、処理のためにNNプロセッサコア706に供給される。NNプロセッサコアは内部バス710を通して相互に通信する。NNプロセッサコア間の接続は、フルメッシュ、トークンリング、チェーンなどを含む任意の所望のルーティングタイプを実装に応じて含み得、本発明にとっては重要でないことに留意されたい。ブートストラップおよび前処理回路704、外部I/F702、L5メモリ708、ポストプロセッサ712を含む、他の回路構成要素もバスを通して通信することに留意されたい。
本発明の第2のマルチNNプロセッサSoCシステム例を示す略図が図25に示されている。大まかに790で参照される、このシステム例では、複数のNNプロセッサコアまたはSoC794が連続的に連結される。ANN入力データ792が、左端のNNプロセッサに入り、ANN出力データ799が右端のNNプロセッサから出る。複数のNNプロセッサが一緒に、ANNモデルを一層ずつ実装する。
本発明の第1のマルチNNプロセッサSoCシステム例を示す略図が図26に示されている。大まかに800で参照される、このシステム例では、3つのNNプロセッサコアまたはSoC804、806、808が2→1集約方式で結合されて、一緒にANNモデルを実装する。ANN入力データ802は入力ポートを通してNNプロセッサ804、806の両方に入力される。この例では、並列接続した2つのNNプロセッサコア804、806が、ANNモデルを実装するために必要であり、例えば、(1)モデルは膨大な数のニューロンを1つ以上の層内に含む、または(2)ニューロンの数が単一装置の資源制約のいずれか(例えば、制御、メモリもしくは計算)を上回っている、のいずれかである。各NNプロセッサ804、806の出力はチップ間入力ポートを介してNNプロセッサ808に入力され、NNプロセッサ808はANN出力809を生成するように機能する。
本発明の第1のマルチNNプロセッサSoCシステム例を示す略図が図27に示されている。大まかに810で参照される、このシステム例では、3つのNNプロセッサコアまたはSoC814、816、818が1→2分散方式で結合されて、一緒にANNモデルを実装する。ANN入力データ812は入力ポートを通してNNプロセッサ814に入力される。NNプロセッサ814の出力はNNプロセッサ816、818の両方に入力される。この例では、並列接続した2つのNNプロセッサ816、818が、ANNモデルを実装するために必要であり、例えば、(1)モデルが膨大な数のニューロンを1つ以上の層内に含む、または(2)ニューロンの数が単一装置の資源制約のいずれか(例えば、制御、メモリもしくは計算)を上回っている、のいずれかである。各NNプロセッサ816、818によって生成される出力は結合されてANN出力819を形成する。
ANNマッピング方式例
前述のように、ANNの要件が単一NNプロセッサコアの計算および/またはメモリ資源を超えている場合、ANNモデルはいくつかの装置にわたって分割できる。コンパイラ/SDKは、ネットワーク層間およびネットワーク層にわたる分割および併合を可能にするANNの典型的なセルラー性質をシームレスに活用する。コンパイラ内で、層間帯域幅は層内帯域幅よりも本質的にずっと低いという事実に依存することに加えて、各装置にマッピングされるサブネットワークの入力および出力における帯域幅要求の責任を負いながら、分割は行われる。
一般に、コンパイラによって実行されるような、装置間マッピングは、装置内に存在する入力および出力ポートの数(例えば、本例では2)によって駆動される。装置上の2つの入力および出力ポートの事例では、マッピング1→2(すなわち、分散)、2→1(すなわち、集約)、および1→1(すなわち、フィードフォワード)に対する柔軟性は、図示されるシステム配列の構築を可能にする。
図2の第1のANN例に対するマッピング方式例を示す略図が図28に示されている。前述のように、コンパイラ/SDKは、論理ANNモデルを物理NNプロセッサ装置にマッピングするように機能する。その分析の結果として、この例では、コンパイラはANN全体が単一のNNプロセッサ装置における単一のクラスタ362内で実装できると判断する。ANN内の各ネットワーク層365は1つ以上のサブクラスタ364にマッピングされ、LC361も割り当てられる。従って、例えば、ネットワーク層1は3つのサブクラスタ、すなわち、ANN入力363を同様に受信するサブクラスタ1、2および3、にマッピングされる。これらの3つのサブクラスタは、LC1によって構成および制御される。同様に、ネットワーク層2内のニューロンは、コンパイラによってサブクラスタ4、5、および6にマッピングされてLC2に割り当てられる。ネットワーク層3内のニューロンはサブクラスタ7および8にマッピングされてLC3に割り当てられる。最後に、ネットワーク層4はサブクラスタ9にマッピングされ、LC4によって構成されて制御される。ANN出力369はサブクラスタ9によって生成される。
第2の人工ニューラルネットワーク例を示す略図が図29に示されている。大まかに720で参照される、このANN例は、畳込み型NNであり得、層1~層6を含む、複数の層726を含む。層1はANN入力722を受信し、層6はANN出力724を生成する。
図29のANNのマルチNNプロセッサSoCシステム例を示す略図が図30に示されている。大まかに730で参照される、NNシステムは、ANN720の本発明のNNプロセッサシステムへのマッピングを表す。各NNプロセッサ736は別個のIC、または代替として、SoC内の別個のダイを含む。
複雑プロセス中に論理ANNモデルを物理NNプロセッサ構成にマッピングすることはコンパイラおよびSDKの機能である。この例では、NNプロセッサ1の容量は、計算要素、メモリファブリックなどに関して、層1を実装するのに十分なだけであるため、層1はNNプロセッサ1全体にマッピングする。NNプロセッサ1はANN入力732も受信する。層2および層3は、単一装置内に実装できないようなものであり、従って、並列接続した2つの装置、すなわち、NNプロセッサ2および3が必要とされ、処理はそれらの間で分割される。層4は大きいが、コンパイラは、それは単一装置内に実装できると判断する。従って、NNプロセッサ4全体が層4にマッピングされる。層5および6が、コンパイラによって分析されて、単一のNNプロセッサ5装置にマッピングされる。NNプロセッサ5はANN出力734を生成する。NNプロセッサは、各装置内のチップ間インタフェースを介して、フィードフォワード方法で相互に通信することに留意されたい。
第3の人工ニューラルネットワーク例を示す略図が図31に示されている。大まかに740で参照される、ANN例は、任意の所望のANNを表すことを意図する。それは、異なるネットワーク層に編成された複数のニューロン744を含む。入力データX746は第1の層に入力され、出力データY748は最後の層によって生成される。
図31のANNの第1のマルチNNプロセッサSoCシステム例を示す略図が図32に示されている。この例では、大まかに750で参照される、第1のマッピングは、コンパイラ/SDKによって生成され、いくつかのNNプロセッサ装置を含む。具体的には、第1の2つのネットワーク層内のニューロン756はNNプロセッサ1にマッピングされ、第3のネットワーク層はNNプロセッサ2にマッピングされ、最後の3つのネットワーク層はNNプロセッサ3にマッピングされる。ANN入力データ752はNNプロセッサ1内の第1の層に入力される。NNプロセッサ3はANN出力データ754を生成する。
図31のANNの第2のマルチNNプロセッサSoCシステム例を示す略図が図33に示されている。この例では、大まかに760で参照される、異なるマッピングは、コンパイラ/SDKによって生成され、いくつかのNNプロセッサ装置を含む。具体的には、最初の4つのネットワーク層内のニューロン766は、単一装置の容量を超えているので、2つの装置、すなわち、NNプロセッサ1および2の間で分割される。最後の2つのネットワーク層はNNプロセッサ3にマッピングされる。ANN入力データ762はNNプロセッサ1および2内の第1の層に入力される。NNプロセッサ3はANN出力データ764を生成する。
当業者は、論理と回路ブロックとの間の境界は例示に過ぎないこと、および代替実施形態は論理ブロックもしくは回路要素を併合するか、または機能の代替分解を様々な論理ブロックもしくは回路要素に課すことを認識するであろう。従って、本明細書で示すアーキテクチャは例示に過ぎないこと、および実際、同じ機能を達成する多くの他のアーキテクチャが実装され得ることが理解される。
同じ機能を達成するための構成要素の任意の配置は、所望の機能が達成されるように効果的に「関連付けられる」。従って、特定の機能を達成するために組み合わされる本明細書の任意の2つの構成要素は、アーキテクチャまたは中間構成要素にかかわらず、所望の機能が達成されるように、相互に「関連付けられている」と見なされ得る。同様に、そのように関連付けられた任意の2つの構成要素は、所望の機能を達成するために相互に「動作可能に接続されている」か、または「動作可能に結合されている」とも見なすことができる。
さらに、当業者は、前述の動作間の境界は例示に過ぎないことを認識するであろう。複数の動作が単一の動作に組み合わされ得、単一の動作が追加の動作に分散され得、動作は、時間において少なくとも部分的に重なり合って実行され得る。その上、代替実施形態は、特定の動作の複数のインスタンスを含み得、動作の順番は様々な他の実施形態で変更され得る。
本明細書で使用する用語は、特定の実施形態だけを記述するためであり、本発明を制限することを意図していない。本明細書では、単数形「1つの(a)」、「1つの(an)」および「その(the)」は、文脈で明示的に別の指示がない限り、複数形も含むことを意図する。用語「含む(comprise)」および/または「含み(comprising)」は、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、および/もしくはそれらのグループの存在または追加を除外しないことがさらに理解されよう。
クレームでは、円括弧で囲んだ任意の引用符号は、クレームを制限するものと解釈されるべきでない。クレーム内での「少なくとも1つ」および「1つ以上」などの導入句の使用は、不定冠詞「1つの(a)」または「1つの(an)」による別のクレーム要素の導入が、たとえ同じクレームが導入句「1つ以上」または「少なくとも1つ」および「1つの(a)」または「1つの(an)」などの不定冠詞を含む場合でさえ、かかる導入されたクレーム要素を含む任意の特定のクレームをかかる要素を1つだけ含む発明に制限することを暗示すると解釈すべきではない。定冠詞の使用に関しても同じことが言える。特に指定のない限り、「第1の」、「第2の」などの用語は、かかる用語が記述する要素間を任意に区別するために使用される。従って、これらの用語は必ずしも、かかる要素の時間的または他の優先順位付けを示すことを意図しない。ある手段が相互に異なるクレーム内で列挙されているという単なる事実は、これらの手段の組合せが利益をもたらすために使用できないことを意味しない。
以下のクレーム内の全ての手段またはステップ+機能要素の対応する構造、材料、動作、および同等物は、具体的にクレームされたとおり他のクレームされた要素と組み合わせて機能を実行するための、任意の構造、材料、または動作を含むことを意図する。本発明の記述は例示および説明を目的として提示されているが、包括であるか、または開示する形式における本発明に制限することは意図していない。多数の修正および変更が当業者には容易に思い浮かぶので、本発明は本明細書で説明する限られた数の実施形態に制限されないことを意図する。それに応じて、全ての適切な変形、修正および同等物が使用され得、本発明の趣旨および範囲に含まれることが理解されよう。実施形態は、本発明の原理および実際の適用を最も良く説明し、他の当業者が本発明を理解して、企図される特定の使用に適するように様々な実施形態を様々に変更するために、選択されて説明される。

Claims (28)

  1. 1つ以上のネットワーク層を有する人工ニューラルネットワーク(ANN)に対するニューラルネットワーク計算を実行するためにNNプロセッサ内で使用するためのニューラルネットワーク(NN)処理要素回路であって、
    重みおよび入力データを受信し、受信された重みおよび入力データから積を生成するように動作する乗算器と、
    前記積および現在のコンテキストを受信して合計して、合計された積および現在のコンテキストから更新されたコンテキストを生成するように動作する加算器と、
    前記加算器に結合されたローカルメモリであって、前記ローカルメモリは、前記更新されたコンテキストを前記ローカルメモリの中に格納するように動作し、前記ローカルメモリ内の個々の記憶位置はランダム以外の事前に定義された方法でアクセスされる、ローカルメモリと、
    前記加算器への入力のために、前記ローカルメモリ内に格納された前記現在のコンテキスト、またはより高い集約レベルに配置されたメモリ内に格納されたコンテキストとの間で選択するように動作する第1のマルチプレクサ回路と、
    を備える、ニューラルネットワーク(NN)処理要素回路。
  2. 前記ローカルメモリ内の各記憶位置は前記ANN内の少なくとも1つのニューロンを表す、請求項1に記載の回路。
  3. 前記ローカルメモリ内の単一のニューロン内に複数の論理ニューロンを実装するように動作する回路をさらに備え、各コンテキストは単一ニューロンの出力を表し、前記論理ニューロンは時分割されて、前記ローカルメモリ内の各位置は、異なる時における複数のニューロンからの異なるニューロンを表す、請求項2に記載の回路。
  4. 前記ローカルメモリは、前記処理要素回路が空間領域内に実装することができるいくつかの同時コンテキストを反映する深さを有する、請求項1に記載の回路。
  5. 前記処理要素回路は、追加のコンテキストの内容をより高い集約レベルに配置されたメモリにスワップアウトすることにより時間領域内の前記ローカルメモリ内に前記追加のコンテキストを実装することができる、請求項4に記載の回路。
  6. 重みおよび/または入力データを、前記乗算器に入力する前に、整数もしくは浮動小数点数表現としてフォーマットするように動作する第1の表現回路をさらに備える、請求項1に記載の回路。
  7. 前記乗算器によって生成された積を、前記加算器に入力する前に、整数または浮動小数点数表現としてフォーマットするように動作する第2の表現回路をさらに備える、請求項1に記載の回路。
  8. 前記ローカルメモリは前記処理要素回路内に配置されて、前記処理要素回路との使用専用である、請求項1に記載の回路。
  9. 前記ローカルメモリへの格納のために、前記加算器によって生成された前記更新されたコンテキスト、またはより高い集約レベルに配置されたメモリ内に格納されたコンテキストとの間で選択するように動作する第2のマルチプレクサ回路をさらに備える、請求項1に記載の回路。
  10. 前記加算器によって生成された前記更新されたコンテキストを書き込むために、より高い集約レベルに配置された関数、より高い集約レベルに配置されたメモリ、または前記ローカルメモリの間で選択するように動作する第3のマルチプレクサ回路をさらに備える、請求項1に記載の回路。
  11. 複数の乗算器と、単一の乗算器と比較してより高精度の乗算を実行可能な2つ以上の乗算器を組み合わせるように動作する回路とをさらに備える、請求項1に記載の回路。
  12. 倍精度処理要素回路をもたらすために4つの乗算器を組み合わせるクワッド回路をさらに備える、請求項1に記載の回路。
  13. 1つ以上のネットワーク層を有する人工ニューラルネットワーク(ANN)に対してニューラルネットワーク計算を実行するためにNNプロセッサ内で使用するためのニューラルネットワーク(NN)処理要素回路であって、
    受信された重みおよび入力データを乗じて、乗じられた重みおよび入力データから積を生成するように動作する複数の乗算器と、
    前記積を、ローカルメモリまたはより高い集約レベルに配置されたメモリのいずれかから受信された現在のコンテキストに加算して、前記積が加算された現在のコンテキストから更新されたコンテキストを生成するように動作するアキュムレータと、
    前記アキュムレータに結合された前記ローカルメモリであって、前記ローカルメモリは、前記更新されたコンテキストを逐次的方法で前記ローカルメモリの中に格納するように動作する、ローカルメモリと、
    前記更新されたコンテキストを、選択制御信号に従って、前記ローカルメモリ、より高い集約レベルに配置されたメモリ、またはより高い集約レベルに配置された関数のいずれかに書き込むように動作するマルチプレクサと、
    を備え、
    前記ローカルメモリ内の個々の記憶位置はランダム以外の事前に定義された方法でアクセスされる、回路。
  14. 前記ローカルメモリ内の各記憶位置は前記ANN内の少なくとも1つのニューロンを表す、請求項13に記載の回路。
  15. 前記処理要素回路は、前記追加のコンテキストの内容をより高い集約レベルに配置されたメモリにスワップアウトすることにより時間領域内の前記ローカルメモリ内に追加のコンテキストを実装することができる、請求項13に記載の回路。
  16. 重みおよび/または入力データを、前記加算器に入力する前に、整数もしくは浮動小数点数表現としてフォーマットするように動作する第1の表現回路をさらに備える、請求項13に記載の回路。
  17. 前記乗算器によって生成された積を、前記加算器に入力する前に、整数または浮動小数点数表現としてフォーマットするように動作する第2の表現回路をさらに備える、請求項13に記載の回路。
  18. 倍精度処理要素回路をもたらすために4つの乗算器を組み合わせるクワッド回路をさらに備える、請求項13に記載の回路。
  19. 集積回路(IC)によって実装された方法であって、前記ICは、1つ以上のネットワーク層を有する人工ニューラルネットワーク(ANN)に対するニューラルネットワーク計算を実行するためにNNプロセッサ内で使用するためのニューラルネットワーク(NN)処理要素回路を含み、前記方法は、
    ANN重みおよび入力データを乗じて、乗じられたANN重みおよび入力データから積を生成することと、
    前記積および現在のコンテキストを合計して、合計された積および現在のコンテキストから更新されたコンテキストを生成することと、
    前記更新されたコンテキストを前記処理要素回路に専用のローカルメモリ内に格納することであって、前記ローカルメモリ内の個々の記憶位置はランダム以外の事前に定義された方法でアクセスされることと、
    前記合計への入力のために、前記ローカルメモリ内に格納された前記現在のコンテキスト、またはより高い集約レベルに配置されたメモリ内に格納されたコンテキストとの間で選択することと、
    を含む、方法。
  20. 前記ローカルメモリ内の各記憶位置は前記ANN内の少なくとも1つのニューロンを表す、請求項19に記載の方法。
  21. 前記ローカルメモリ内の前記ニューロンを時分割することをさらに含み、各位置は、異なる時における複数のニューロンからの異なるニューロンを表す、請求項20に記載の方法。
  22. 時間領域内の前記ローカルメモリ内の追加のコンテキストを、前記追加のコンテキストの内容をより高い集約レベルに配置されたメモリにスワップアウトすることにより実装することをさらに含む、請求項19に記載の方法。
  23. ANN重みおよび/または入力データを、前記ANN重みおよび入力データを乗じる前に、整数もしくは浮動小数点数表現としてフォーマットすることをさらに含む、請求項19に記載の方法。
  24. 前記積を、前記積および現在のコンテキストを合計する前に、整数もしくは浮動小数点数表現としてフォーマットすることをさらに含む、請求項19に記載の方法。
  25. 前記ローカルメモリへの格納のために、前記合計によって生成された前記更新されたコンテキスト、またはより高い集約レベルに配置されたメモリ内に格納されたコンテキストとの間で選択することをさらに含む、請求項19に記載の方法。
  26. 前記合計によって生成された前記更新されたコンテキストを書き込むために、より高い集約レベルに配置された関数、より高い集約レベルに配置されたメモリ、または前記ローカルメモリの間で選択することをさらに含む、請求項19に記載の方法。
  27. 倍精度処理要素回路をもたらすために4つの乗算器回路を組み合わせることをさらに含む、請求項19に記載の方法。
  28. 集積回路(IC)によって実装された方法であって、前記ICは、1つ以上のネットワーク層を有する人工ニューラルネットワーク(ANN)に対するニューラルネットワーク計算を実行するためにNNプロセッサ内で使用するためのニューラルネットワーク(NN)処理要素回路を含み、前記方法は、
    第1のオペランド、第2のオペランド、および第3のオペランドを受信することと、
    前記処理要素回路の動作をタイムスロットに分割することと、
    前記第1のオペランド、前記第2のオペランド、および前記第3のオペランドを伴う計算を実行して、前記計算の結果から更新されたデータ要素を生成することと、
    前記更新されたデータ要素を、ローカルで前記処理要素回路に専用のメモリ内、または選択制御信号に従ってより高い集約レベルに配置されたメモリ内のどちらかに格納することと、
    を含み、
    ーカルメモリ内の個々の記憶位置はランダム以外の事前に定義された方法でアクセスされ、かつ
    データ要素は時分割されて、前記ローカルメモリ内の各位置は、異なる時における複数のデータ要素からの異なるデータ要素を表す、方法。
JP2019554805A 2017-04-04 2018-04-03 計算およびローカルメモリ要素を組み込むニューラルネットワーク処理要素 Active JP7191329B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762481492P 2017-04-04 2017-04-04
US62/481,492 2017-04-04
US201762531372P 2017-07-12 2017-07-12
US62/531,372 2017-07-12
PCT/IL2018/050396 WO2018185766A1 (en) 2017-04-04 2018-04-03 Neural network processing element incorporating compute and local memory elements

Publications (2)

Publication Number Publication Date
JP2020515989A JP2020515989A (ja) 2020-05-28
JP7191329B2 true JP7191329B2 (ja) 2022-12-19

Family

ID=63669456

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2019555007A Active JP7148087B2 (ja) 2017-04-04 2018-04-03 多層階層的に集約された計算およびメモリ要素を組み込むニューラルネットワークプロセッサ
JP2019554805A Active JP7191329B2 (ja) 2017-04-04 2018-04-03 計算およびローカルメモリ要素を組み込むニューラルネットワーク処理要素
JP2019555011A Active JP7108268B2 (ja) 2017-04-04 2018-04-03 装置間接続を組み込むニューラルネットワークプロセッサ
JP2019554894A Active JP7170281B2 (ja) 2017-04-04 2018-04-03 ニューラルネットワークプロセッサにおける構成可能でプログラム可能なスライディングウィンドウベースのメモリアクセス
JP2019554909A Active JP7288250B2 (ja) 2017-04-04 2018-04-03 分離された制御およびデータファブリックを組み込むニューラルネットワークプロセッサ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2019555007A Active JP7148087B2 (ja) 2017-04-04 2018-04-03 多層階層的に集約された計算およびメモリ要素を組み込むニューラルネットワークプロセッサ

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2019555011A Active JP7108268B2 (ja) 2017-04-04 2018-04-03 装置間接続を組み込むニューラルネットワークプロセッサ
JP2019554894A Active JP7170281B2 (ja) 2017-04-04 2018-04-03 ニューラルネットワークプロセッサにおける構成可能でプログラム可能なスライディングウィンドウベースのメモリアクセス
JP2019554909A Active JP7288250B2 (ja) 2017-04-04 2018-04-03 分離された制御およびデータファブリックを組み込むニューラルネットワークプロセッサ

Country Status (5)

Country Link
US (9) US10387298B2 (ja)
EP (5) EP3607501A4 (ja)
JP (5) JP7148087B2 (ja)
CN (5) CN110462640B (ja)
WO (5) WO2018185764A1 (ja)

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018103736A1 (en) 2016-12-09 2018-06-14 Beijing Horizon Information Technology Co., Ltd. Systems and methods for data management
US10248906B2 (en) 2016-12-28 2019-04-02 Intel Corporation Neuromorphic circuits for storing and generating connectivity information
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US11164071B2 (en) * 2017-04-18 2021-11-02 Samsung Electronics Co., Ltd. Method and apparatus for reducing computational complexity of convolutional neural networks
US11113603B1 (en) 2017-05-01 2021-09-07 Perceive Corporation Training network with discrete weight values
US11138494B2 (en) * 2017-05-02 2021-10-05 International Business Machines Corporation Storage controller acceleration for neural network training and inference
CN113918481A (zh) 2017-07-30 2022-01-11 纽罗布拉德有限公司 一种存储器芯片
US10872290B2 (en) 2017-09-21 2020-12-22 Raytheon Company Neural network processor with direct memory access and hardware acceleration circuits
US10782997B1 (en) * 2017-10-31 2020-09-22 EMC IP Holding Company, LLC Storage management system and method
JP2019087012A (ja) * 2017-11-07 2019-06-06 キヤノン株式会社 情報処理装置、情報処理方法、コンピュータプログラム、及び記憶媒体
US11803734B2 (en) * 2017-12-20 2023-10-31 Advanced Micro Devices, Inc. Adaptive quantization for neural networks
US11328210B2 (en) 2017-12-29 2022-05-10 Micron Technology, Inc. Self-learning in distributed architecture for enhancing artificial neural network
US11734568B2 (en) * 2018-02-14 2023-08-22 Google Llc Systems and methods for modification of neural networks based on estimated edge utility
US10445638B1 (en) * 2018-02-28 2019-10-15 Amazon Technologies, Inc. Restructuring a multi-dimensional array
WO2019177640A1 (en) * 2018-03-16 2019-09-19 Cornell University System and methods for estimating motion between image frames
US10522038B2 (en) 2018-04-19 2019-12-31 Micron Technology, Inc. Systems and methods for automatically warning nearby vehicles of potential hazards
US11481612B1 (en) 2018-04-20 2022-10-25 Perceive Corporation Storage of input values across multiple cores of neural network inference circuit
US11586910B1 (en) 2018-04-20 2023-02-21 Perceive Corporation Write cache for neural network inference circuit
US11783167B1 (en) 2018-04-20 2023-10-10 Perceive Corporation Data transfer for non-dot product computations on neural network inference circuit
US11568227B1 (en) 2018-04-20 2023-01-31 Perceive Corporation Neural network inference circuit read controller with multiple operational modes
US11501138B1 (en) 2018-04-20 2022-11-15 Perceive Corporation Control circuits for neural network inference circuit
US10740434B1 (en) 2018-04-20 2020-08-11 Perceive Corporation Reduced dot product computation circuit
US11480971B2 (en) * 2018-05-01 2022-10-25 Honda Motor Co., Ltd. Systems and methods for generating instructions for navigating intersections with autonomous vehicles
US11340936B2 (en) 2018-05-04 2022-05-24 Apple Inc. Compiling and scheduling transactions in neural network processor
JP7136204B2 (ja) * 2018-06-04 2022-09-13 株式会社ソシオネクスト 演算方法
US11551077B2 (en) * 2018-06-13 2023-01-10 International Business Machines Corporation Statistics-aware weight quantization
US20190392287A1 (en) 2018-06-22 2019-12-26 Samsung Electronics Co., Ltd. Neural processor
US11468338B2 (en) 2018-09-11 2022-10-11 Apple Inc. Compiling models for dedicated hardware
US11630982B1 (en) * 2018-09-14 2023-04-18 Cadence Design Systems, Inc. Constraint-based dynamic quantization adjustment for fixed-point processing
CN109359732B (zh) * 2018-09-30 2020-06-09 阿里巴巴集团控股有限公司 一种芯片及基于其的数据处理方法
KR102137802B1 (ko) * 2019-01-21 2020-07-27 주식회사 디퍼아이 분산처리용 인공신경망 연산 가속화 장치, 이를 이용한 인공신경망 가속화 시스템, 및 그 인공신경망의 가속화 방법
US20200117988A1 (en) * 2018-10-11 2020-04-16 International Business Machines Corporation Networks for distributing parameters and data to neural network compute cores
US20200117978A1 (en) * 2018-10-12 2020-04-16 Alibaba Group Holding Limited Systems and methods for efficiently mapping neural networks to programmable logic devices
US11157213B2 (en) * 2018-10-12 2021-10-26 Micron Technology, Inc. Parallel memory access and computation in memory devices
US10705967B2 (en) 2018-10-15 2020-07-07 Intel Corporation Programmable interface to in-memory cache processor
CN109635917B (zh) 2018-10-17 2020-08-25 北京大学 一种多智能体合作决策及训练方法
WO2020078470A1 (zh) * 2018-10-18 2020-04-23 上海寒武纪信息科技有限公司 片上网络数据处理方法及装置
WO2020086214A1 (en) * 2018-10-26 2020-04-30 Dow Global Technologies Llc Deep reinforcement learning for production scheduling
CN109583942B (zh) * 2018-11-07 2021-05-11 浙江工业大学 一种基于密集网络的多任务卷积神经网络顾客行为分析方法
CN109547803B (zh) * 2018-11-21 2020-06-09 北京航空航天大学 一种时空域显著性检测及融合方法
CN111224740B (zh) * 2018-11-23 2022-03-29 华为技术有限公司 一种控制信息的发送和接收方法及终端设备
US11087170B2 (en) * 2018-12-03 2021-08-10 Advanced Micro Devices, Inc. Deliberate conditional poison training for generative models
US11604973B1 (en) 2018-12-05 2023-03-14 Perceive Corporation Replication of neural network layers
JP7400719B2 (ja) * 2018-12-17 2023-12-19 ソニーグループ株式会社 学習装置、識別装置およびプログラム
CN111461296B (zh) * 2018-12-29 2023-09-22 中科寒武纪科技股份有限公司 数据处理方法、电子设备和可读存储介质
US20210319098A1 (en) * 2018-12-31 2021-10-14 Intel Corporation Securing systems employing artificial intelligence
KR20200082613A (ko) 2018-12-31 2020-07-08 에스케이하이닉스 주식회사 프로세싱 시스템
US11347297B1 (en) * 2019-01-23 2022-05-31 Perceive Corporation Neural network inference circuit employing dynamic memory sleep
US11620510B2 (en) * 2019-01-23 2023-04-04 Samsung Electronics Co., Ltd. Platform for concurrent execution of GPU operations
CN111507463B (zh) * 2019-01-30 2023-06-20 芯立嘉集成电路(杭州)有限公司 神经形态的符码处理器及操作所述符码处理器的方法
US11373466B2 (en) 2019-01-31 2022-06-28 Micron Technology, Inc. Data recorders of autonomous vehicles
US11410475B2 (en) 2019-01-31 2022-08-09 Micron Technology, Inc. Autonomous vehicle data recorders
WO2020163171A1 (en) * 2019-02-07 2020-08-13 quadric.io, Inc. Systems and methods for implementing a random access augmented machine perception and dense algorithm integrated circuit
JP7241563B2 (ja) * 2019-02-15 2023-03-17 三菱電機株式会社 ニューラルネットワーク回路
CN109901878B (zh) * 2019-02-25 2021-07-23 北京灵汐科技有限公司 一种类脑计算芯片及计算设备
US11475308B2 (en) 2019-03-15 2022-10-18 Samsung Electronics Co., Ltd. Jointly pruning and quantizing deep neural networks
CN111695686B (zh) * 2019-03-15 2022-11-01 上海寒武纪信息科技有限公司 地址分配方法及装置
KR20200111948A (ko) * 2019-03-20 2020-10-05 삼성전자주식회사 인공 신경망을 처리하는 방법 및 이를 위한 전자 장치
FR3094118A1 (fr) * 2019-03-20 2020-09-25 Stmicroelectronics (Rousset) Sas Procédé d’analyse d’un jeu de paramètres d’un réseau de neurones en vue d’un ajustement de zones allouées auxdits paramètres.
US20200302299A1 (en) * 2019-03-22 2020-09-24 Qualcomm Incorporated Systems and Methods of Cross Layer Rescaling for Improved Quantization Performance
US11188454B2 (en) 2019-03-25 2021-11-30 International Business Machines Corporation Reduced memory neural network training
SG11202110769RA (en) * 2019-03-28 2021-10-28 Agency Science Tech & Res A system for mapping a neural network architecture onto a computing core and a method of mapping a neural network architecture onto a computing core
US20200320373A1 (en) * 2019-04-03 2020-10-08 Realtek Semiconductor Corp. Mixed-signal neurons for neuromorphic computing and method thereof
CN111831337B (zh) 2019-04-19 2022-11-29 安徽寒武纪信息科技有限公司 数据同步方法及装置以及相关产品
EP3825843B1 (en) * 2019-04-04 2022-11-30 Cambricon (Xi'an) Semiconductor Co., Ltd. Data processing method and apparatus, and related product
CN111782577B (zh) 2019-04-04 2023-03-24 安徽寒武纪信息科技有限公司 数据处理装置及方法以及相关产品
WO2020211783A1 (zh) * 2019-04-16 2020-10-22 上海寒武纪信息科技有限公司 运算数据的量化频率调整方法及相关产品
US11671111B2 (en) 2019-04-17 2023-06-06 Samsung Electronics Co., Ltd. Hardware channel-parallel data compression/decompression
US11211944B2 (en) 2019-04-17 2021-12-28 Samsung Electronics Co., Ltd. Mixed-precision compression with random access
US11880760B2 (en) 2019-05-01 2024-01-23 Samsung Electronics Co., Ltd. Mixed-precision NPU tile with depth-wise convolution
US11562251B2 (en) * 2019-05-16 2023-01-24 Salesforce.Com, Inc. Learning world graphs to accelerate hierarchical reinforcement learning
US10664742B1 (en) * 2019-05-16 2020-05-26 Capital One Services, Llc Systems and methods for training and executing a recurrent neural network to determine resolutions
US11941533B1 (en) 2019-05-21 2024-03-26 Perceive Corporation Compiler for performing zero-channel removal
US11055234B2 (en) 2019-05-21 2021-07-06 International Business Machines Corporation Managing allocation and demotion of cache segments between a global queue and a plurality of local queues by training a machine learning module
US11048641B2 (en) 2019-05-21 2021-06-29 International Business Machines Corporation Managing allocation and demotion of cache segments between a global queue and a plurality of local queues by using a machine learning module
US11231961B2 (en) 2019-05-22 2022-01-25 Fujitsu Limited Scheduling operations
CN111985630A (zh) * 2019-05-22 2020-11-24 力旺电子股份有限公司 运用于类神经网络系统的乘积累加电路的控制电路
JP7278150B2 (ja) * 2019-05-23 2023-05-19 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法
US10831691B1 (en) 2019-05-24 2020-11-10 International Business Machines Corporation Method for implementing processing elements in a chip card
US10936317B2 (en) * 2019-05-24 2021-03-02 Texas Instruments Incorporated Streaming address generation
CN110222821B (zh) * 2019-05-30 2022-03-25 浙江大学 基于权重分布的卷积神经网络低位宽量化方法
RU2755935C2 (ru) * 2019-06-20 2021-09-23 Сергей Александрович Шумский Способ и система машинного обучения иерархически организованному целенаправленному поведению
US11941512B2 (en) * 2019-06-26 2024-03-26 Western Digital Technologies, Inc. Neural network engine utilizing a serial bus
US11303582B1 (en) * 2019-06-28 2022-04-12 Amazon Technologies, Inc. Multi-layer network for metric aggregation
KR102091580B1 (ko) * 2019-07-09 2020-03-20 주식회사 모빌테크 이동식 도면화 시스템을 이용한 도로 표지 정보 수집 방법
US11847568B2 (en) * 2019-07-30 2023-12-19 Perceive Corporation Quantizing neural networks using shifting and scaling
CN110458114B (zh) * 2019-08-13 2022-02-01 杜波 一种人数确定方法、装置及存储介质
US11392796B2 (en) 2019-08-20 2022-07-19 Micron Technology, Inc. Feature dictionary for bandwidth enhancement
US11755884B2 (en) 2019-08-20 2023-09-12 Micron Technology, Inc. Distributed machine learning with privacy protection
US11636334B2 (en) 2019-08-20 2023-04-25 Micron Technology, Inc. Machine learning with feature obfuscation
US20220300450A1 (en) * 2019-08-22 2022-09-22 Google Llc Sharding for synchronous processors
US11947959B2 (en) * 2019-09-10 2024-04-02 Micron Technology, Inc. Re-using processing elements of an artificial intelligence processor
US11676009B2 (en) * 2019-10-04 2023-06-13 Raytheon Technologies Corporation Machine learning based rotor alloy design system
US11475283B2 (en) * 2019-10-24 2022-10-18 Apple Inc. Multi dimensional convolution in neural network processor
WO2021086498A1 (en) * 2019-10-28 2021-05-06 Aetherai Ip Holding Llc Enhancing memory utilization and throughput in executing a computational graph
CN112749778B (zh) * 2019-10-29 2023-11-28 北京灵汐科技有限公司 一种强同步下的神经网络映射方法及装置
US20210125049A1 (en) * 2019-10-29 2021-04-29 Taiwan Semiconductor Manufacturing Co., Ltd. System for executing neural network
KR20210060024A (ko) * 2019-11-18 2021-05-26 에스케이하이닉스 주식회사 신경망 처리 회로를 포함하는 메모리 장치
US11539786B2 (en) * 2019-11-19 2022-12-27 Jeff Wang Method and system for heterogeneous blockchain service management
CN112862085B (zh) * 2019-11-27 2023-08-22 杭州海康威视数字技术股份有限公司 存储空间优化方法及装置
CN111102559B (zh) * 2019-11-28 2022-08-23 中国大唐集团科学技术研究院有限公司火力发电技术研究院 一种基于双神经网络逆模型的屛式过热器汽温控制方法
CN111027456B (zh) * 2019-12-06 2023-06-20 四川杰森机电有限公司 基于图像识别的机械水表读数识别方法
CN114430838A (zh) * 2019-12-19 2022-05-03 谷歌有限责任公司 使用神经网络加速器来处理连续输入
EP4081431A4 (en) * 2019-12-27 2023-08-23 Mobileye Vision Technologies Ltd. DRIVING SAFETY SYSTEM
US11076210B1 (en) * 2020-01-03 2021-07-27 Microsoft Technology Licensing, Llc Distributed processing architecture
US11580388B2 (en) 2020-01-03 2023-02-14 Microsoft Technology Licensing, Llc Distributed processing architecture
US11935271B2 (en) * 2020-01-10 2024-03-19 Tencent America LLC Neural network model compression with selective structured weight unification
WO2021152369A1 (en) * 2020-01-28 2021-08-05 Zeku Inc. Dynamic uplink end-to-end data transfer scheme with optimized memory path
US11520640B2 (en) * 2020-01-30 2022-12-06 Alibaba Group Holding Limited Efficient and more advanced implementation of ring-AllReduce algorithm for distributed parallel deep learning
CN111491006B (zh) * 2020-03-03 2021-11-02 天津大学 负载感知的云计算资源弹性分配系统及方法
EP3896565B1 (en) * 2020-04-16 2024-03-06 NXP USA, Inc. Memory address generator
CN111783976B (zh) * 2020-04-21 2023-04-21 北京大学 一种基于窗口梯度更新的神经网络训练过程中间值存储压缩方法和装置
CN111224727B (zh) * 2020-04-24 2020-07-31 成都坤恒顺维科技股份有限公司 一种基于信道仿真仪的自适应拓扑结构的实现方法
US11397885B2 (en) * 2020-04-29 2022-07-26 Sandisk Technologies Llc Vertical mapping and computing for deep neural networks in non-volatile memory
EP3904907A1 (en) * 2020-04-29 2021-11-03 Aptiv Technologies Limited Methods and systems for tracking an object
CN111523658B (zh) * 2020-07-02 2020-12-15 南京优存科技有限公司 双位存储单元及其在存内计算的电路结构
US20220036163A1 (en) * 2020-07-29 2022-02-03 Apple Inc. Chained neural engine write-back architecture
US11720417B2 (en) * 2020-08-06 2023-08-08 Micron Technology, Inc. Distributed inferencing using deep learning accelerators with integrated random access memory
US11915126B2 (en) 2020-09-04 2024-02-27 Recogni Inc. Low power hardware architecture for a convolutional neural network
US11811421B2 (en) * 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor
EP3979248A1 (en) * 2020-09-30 2022-04-06 Imec VZW A memory macro
US11934487B2 (en) * 2020-09-30 2024-03-19 EMC IP Holding Company LLC Splitting neural networks on multiple edge devices to train on vertically distributed data
US20220147812A1 (en) * 2020-11-06 2022-05-12 Micron Technology, Inc. Compiler with an artificial neural network to optimize instructions generated for execution on a deep learning accelerator of artificial neural networks
JP7408533B2 (ja) 2020-12-09 2024-01-05 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US11989650B2 (en) 2020-12-21 2024-05-21 Disney Enterprises, Inc. Saliency prioritization for image processing
US11922306B2 (en) * 2020-12-28 2024-03-05 Meta Platforms, Inc. Tensor controller architecture
US20240062537A1 (en) * 2020-12-31 2024-02-22 Seoul National University R&Db Foundation Algorithm and method for dynamically varying quantization precision of deep learning network
CN112766387B (zh) * 2021-01-25 2024-01-23 卡奥斯数字科技(上海)有限公司 一种训练数据的纠错方法、装置、设备及存储介质
WO2022198636A1 (zh) * 2021-03-26 2022-09-29 珠海全志科技股份有限公司 Ai处理器的内存分配方法、计算机装置及计算机可读存储介质
US11544548B2 (en) * 2021-05-24 2023-01-03 Rebellions Inc. Processing element and neural processing device including same
CN113537555B (zh) * 2021-06-03 2023-04-11 太原理工大学 一种考虑扰动的交通子区模型预测滑模边界控制方法
KR20220169085A (ko) 2021-06-18 2022-12-27 에스케이하이닉스 주식회사 강화 학습 장치 및 그 동작 방법
CN115600478B (zh) * 2021-06-28 2023-08-15 中企网络通信技术有限公司 软件定义广域网分析系统及其操作方法
CN113408713B (zh) * 2021-08-18 2021-11-16 成都时识科技有限公司 消除数据副本的方法、神经网络处理器及电子产品
CN113791996B (zh) * 2021-09-10 2024-02-06 中科寒武纪科技股份有限公司 集成电路装置、电子设备、板卡和计算方法
US11789646B2 (en) * 2021-09-24 2023-10-17 Intel Corporation Methods, apparatus, and articles of manufacture to increase data reuse for multiply and accumulate (MAC) operations
WO2023068489A1 (ko) * 2021-10-18 2023-04-27 삼성전자 주식회사 상이한 데이터 타입들을 지원하는 npu를 포함하는 전자 장치 및 그 제어 방법
WO2023099603A1 (en) * 2021-11-30 2023-06-08 Grai Matter Labs S.A.S. Neural network device, method and system comprising the device
WO2023105616A1 (ja) * 2021-12-07 2023-06-15 日本電信電話株式会社 深層学習推論システム
US20230367497A1 (en) * 2022-05-10 2023-11-16 Taiwan Semiconductor Manufacturing Company, Ltd. Memory system, operating method and controller
US11886973B2 (en) 2022-05-30 2024-01-30 Deepx Co., Ltd. Neural processing unit including variable internal memory
US20240143517A1 (en) * 2022-11-01 2024-05-02 Samsung Electronics Co., Ltd. Near storage computation system and methods for data protection
CN116151345B (zh) * 2023-04-20 2023-09-26 西安紫光展锐科技有限公司 数据传输方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020161813A1 (en) 2001-03-06 2002-10-31 Tzi-Dar Chiueh Complex-valued multiplier-and-accumulator

Family Cites Families (411)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US662908A (en) 1899-04-17 1900-12-04 Caldwell Mfg Co Garment-hanger.
US960721A (en) 1909-11-22 1910-06-07 Sharp & Smith Pessary.
SE345407B (ja) 1969-02-21 1972-05-29 Fagersta Ab
JPS5128284B2 (ja) 1973-06-26 1976-08-18
JPS593090B2 (ja) 1973-06-27 1984-01-23 カブシキガイシヤ サンコウシヤ ソウデンセンニソツテ ゼツエンシテモウケタ センロニシヨウズル セイデンユウドウデンアツ オ リヨウスル ホウホウ オヨビ ソウチ
JPS5346914B2 (ja) 1973-08-04 1978-12-16
JPS5248050B2 (ja) 1973-10-12 1977-12-07
JPS538621B2 (ja) 1973-11-16 1978-03-30
JPS5114903A (ja) 1974-07-23 1976-02-05 Texaco Development Corp Kainyukayososeibutsu
JPS5426136Y2 (ja) 1974-08-15 1979-08-30
JPS5340274Y2 (ja) 1974-08-16 1978-09-29
JPS5128285A (ja) 1974-09-02 1976-03-10 Ikegai Iron Works Ltd Kosakukikai
JPS5128284A (en) 1974-09-04 1976-03-10 Hitachi Ltd Kozeiseiitazai no setsudanho
CH603655A5 (ja) 1974-10-21 1978-08-31 Hoffmann La Roche
JPS5159087A (ja) 1974-11-20 1976-05-22 Nissan Motor
JPS5165987A (ja) 1974-12-04 1976-06-08 Mori Gijutsu Kenkyusho Kk Garasunokihokenshutsusochi
JPS5181547A (ja) 1975-01-14 1976-07-16 Victor Company Of Japan Tajuhenchohafukuchohoshiki
JPS5197701A (ja) 1975-02-24 1976-08-27
JPS5282272A (en) 1975-12-27 1977-07-09 Jiekoo Kk Three needle clock
JPS5530612Y2 (ja) 1976-08-31 1980-07-21
JPS6025326B2 (ja) 1976-09-11 1985-06-18 株式会社ダイフク 格納設備
JPS5338897A (en) 1976-09-20 1978-04-10 Kyoto Daigaku Souchiyou Method of separating isotope using infrared rays
JPS5346914U (ja) 1976-09-24 1978-04-21
JPS5346914A (en) 1976-10-08 1978-04-27 Agency Of Ind Science & Technol Preparation of dibasic acids
JPS6019868B2 (ja) 1977-12-29 1985-05-18 シャープ株式会社 ファクシミリ装置
JPS56152382A (en) 1980-04-25 1981-11-25 Hitachi Ltd Solid image pickup element
FR2489554B1 (fr) 1980-08-27 1986-10-31 Petit Jean Circuit de traitement numerique en arithmetique distribuee utilisant des multiplexeurs a l'entree d'une memoire
JPS6019868A (ja) 1983-07-12 1985-02-01 戸田建設株式会社 スラブ上端筋の先組工法
JPS6019868U (ja) 1983-07-18 1985-02-12 幸和金属株式会社 ガスコツク
JPS6076092A (ja) 1983-09-30 1985-04-30 Fujitsu Ltd 光磁気メモリ装置
JPS6161586A (ja) 1984-08-31 1986-03-29 Olympus Optical Co Ltd カラ−撮像装置の照明装置
JPS6161586U (ja) 1984-09-25 1986-04-25
US5014235A (en) 1987-12-15 1991-05-07 Steven G. Morton Convolution memory
FR2625347B1 (fr) 1987-12-23 1990-05-04 Labo Electronique Physique Structure de reseau de neurones et circuit et arrangement de reseaux de neurones
JPH085165Y2 (ja) 1988-03-18 1996-02-14 富士写真フイルム株式会社 シート状物の吸着取出し装置
US4943931A (en) 1988-05-02 1990-07-24 Trw Inc. Digital artificial neural processor
US5333239A (en) * 1988-09-12 1994-07-26 Fujitsu Limited Learning process system for use with a neural network structure data processing apparatus
US4979124A (en) 1988-10-05 1990-12-18 Cornell Research Foundation Adaptive, neural-based signal processor
US5003490A (en) 1988-10-07 1991-03-26 Hughes Aircraft Company Neural network signal processor
GB2224139A (en) 1988-10-24 1990-04-25 Philips Electronic Associated Digital data processing apparatus
US5008833A (en) 1988-11-18 1991-04-16 California Institute Of Technology Parallel optoelectronic neural network processors
JPH02157832A (ja) 1988-12-12 1990-06-18 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルプロセッサ
US5293459A (en) 1988-12-23 1994-03-08 U.S. Philips Corporation Neural integrated circuit comprising learning means
JP2703010B2 (ja) 1988-12-23 1998-01-26 株式会社日立製作所 ニユーラルネツト信号処理プロセツサ
JPH02206867A (ja) 1989-02-06 1990-08-16 Nippon Telegr & Teleph Corp <Ntt> 分類学習装置
JPH02207369A (ja) 1989-02-08 1990-08-17 Hitachi Ltd ニューラルネットワーク計算機
US5195169A (en) 1989-03-03 1993-03-16 Sharp Kabushiki Kaisha Control device for controlling learning of a neural network
DE3909153A1 (de) 1989-03-21 1990-09-27 Bodenseewerk Geraetetech Parallelrechnerstruktur zum modellieren und trainieren kuenstlicher neuronaler netze
JPH02267660A (ja) 1989-04-07 1990-11-01 Pfu Ltd ニューラルネットシミュレート処理装置
US5257358A (en) 1989-04-18 1993-10-26 Nec Electronics, Inc. Method for counting the number of program instruction completed by a microprocessor
JPH02292602A (ja) 1989-05-02 1990-12-04 Nkk Corp 人工神経回路網型ファジィ制御装置
CA2019099A1 (en) 1989-06-16 1990-12-16 Daryl H. Graf Neural controllers
DE69026548T2 (de) 1989-06-28 1996-09-05 Mitsubishi Electric Corp Neuronales Verarbeitungselement
JPH05165987A (ja) 1991-12-11 1993-07-02 Ricoh Co Ltd 信号処理装置
EP0416173B1 (en) 1989-08-23 1997-01-15 Hitachi, Ltd. A method for adjusting network parameters in a multi-layer perceptron device, and perceptron device provided with means for executing the method
JPH0391878A (ja) 1989-09-05 1991-04-17 Hamamatsu Photonics Kk 1次処理を用いた光ニユーラルネツトワーク装置
JPH03100857A (ja) 1989-09-14 1991-04-25 Toshiba Corp 神経回路網処理装置
GB2245401A (en) 1989-11-01 1992-01-02 Hughes Aircraft Co Neural network signal processor
JP2803237B2 (ja) 1989-11-07 1998-09-24 ダイキン工業株式会社 データ伝送方法およびその装置
CA2002681A1 (en) 1989-11-10 1991-05-10 Patrick F. Castelaz Neural network signal processor
US5056037A (en) 1989-12-28 1991-10-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Analog hardware for learning neural networks
JPH0581227A (ja) 1990-03-16 1993-04-02 Hughes Aircraft Co 神経系回路網信号処理装置及び信号処理方法
JPH03276137A (ja) 1990-03-27 1991-12-06 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルプロセッサ
JPH075904Y2 (ja) 1990-05-12 1995-02-15 水野 幸行 超音波洗浄機
US5148515A (en) 1990-05-22 1992-09-15 International Business Machines Corp. Scalable neural array processor and method
WO1991019267A1 (en) 1990-06-06 1991-12-12 Hughes Aircraft Company Neural network processor
JPH0440581A (ja) 1990-06-06 1992-02-10 Matsushita Electric Ind Co Ltd ニューロプロセッサ
JPH04279175A (ja) 1990-07-03 1992-10-05 Telectronics Nv 不整脈制御装置および不整脈検出方法
US5365460A (en) 1990-08-27 1994-11-15 Rockwell International Corp. Neural network signal processor
JPH04113481A (ja) 1990-09-04 1992-04-14 Graphtec Corp ニューラルネットワーク型データ処理装置の製造方法
JPH04148212A (ja) 1990-10-08 1992-05-21 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルプロセッサ
US5367612A (en) 1990-10-30 1994-11-22 Science Applications International Corporation Neurocontrolled adaptive process control system
US5615305A (en) 1990-11-08 1997-03-25 Hughes Missile Systems Company Neural processor element
JPH04182769A (ja) 1990-11-17 1992-06-30 Nissan Motor Co Ltd デジタル・ニューロプロセッサ
JPH04237388A (ja) 1991-01-22 1992-08-25 Matsushita Electric Ind Co Ltd ニューロプロセッサ
IT1244912B (it) 1991-01-31 1994-09-13 Texas Instruments Italia Spa Sistema di apprendimento per rete neuronica di opportuna architettura fisicamente inseribile nel processo di apprendimento.
JPH04264664A (ja) 1991-02-19 1992-09-21 Nippon Telegr & Teleph Corp <Ntt> 神経回路網型パターン処理装置
JP3177996B2 (ja) 1991-04-16 2001-06-18 松下電器産業株式会社 ニューロプロセッサ
JP3151711B2 (ja) 1991-04-30 2001-04-03 日本電信電話株式会社 光ニューラルプロセッサ
DE4215179A1 (de) 1991-05-08 1992-11-12 Caterpillar Inc Prozessor und verarbeitendes element zum gebrauch in einem neural- oder nervennetzwerk
JPH04336370A (ja) 1991-05-13 1992-11-24 Toshiba Corp 人工的神経回路網処理装置
JPH04344970A (ja) 1991-05-23 1992-12-01 Nippon Telegr & Teleph Corp <Ntt> ニューラルネット処理装置
US5485545A (en) 1991-06-20 1996-01-16 Mitsubishi Denki Kabushiki Kaisha Control method using neural networks and a voltage/reactive-power controller for a power system using the control method
JPH052654A (ja) 1991-06-25 1993-01-08 Nissan Motor Co Ltd マイクロコンピユータの故障検知方法および回路
US5293456A (en) 1991-06-28 1994-03-08 E. I. Du Pont De Nemours And Company Object recognition system employing a sparse comparison neural network
JPH075904A (ja) 1991-07-16 1995-01-10 Toshiba Corp ニューラルネットワーク制御装置
JPH0520294A (ja) 1991-07-17 1993-01-29 Fujitsu Ltd ニユーラルネツトワーク型情報処理装置
JPH0567060A (ja) 1991-08-02 1993-03-19 Iizeru Robotsuto Vision:Kk ニユーロデバイス
US5195170A (en) 1991-08-12 1993-03-16 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Neural-network dedicated processor for solving assignment problems
JPH0567064A (ja) 1991-09-05 1993-03-19 Toshiba Corp 神経回路網自動構築システム
US5519811A (en) 1991-10-17 1996-05-21 Kawasaki Steel Corporation Neural network, processor, and pattern recognition apparatus
US5297232A (en) 1991-10-30 1994-03-22 Westinghouse Electric Corp. Wireless neural network and a wireless neural processing element
JPH05128284A (ja) 1991-11-07 1993-05-25 Matsushita Electric Ind Co Ltd ニユーロプロセツサ
JPH05128285A (ja) 1991-11-07 1993-05-25 Matsushita Electric Ind Co Ltd ニユーロプロセツサ
JPH05128085A (ja) 1991-11-08 1993-05-25 Toshiba Corp システム制御の学習方法
JPH05159087A (ja) 1991-12-06 1993-06-25 Matsushita Electric Ind Co Ltd ニューロプロセッサ
FR2685109A1 (fr) 1991-12-11 1993-06-18 Philips Electronique Lab Processeur numerique neuronal operant avec une approximation d'une fonction d'activation non lineaire.
JPH05165800A (ja) 1991-12-16 1993-07-02 Toshiba Corp ニューラルネットを用いた情報処理装置
JPH05181547A (ja) 1992-01-06 1993-07-23 Tonen Corp 電気粘性流体使用装置
US5278945A (en) 1992-01-10 1994-01-11 American Neuralogical, Inc. Neural processor apparatus
JPH05197701A (ja) 1992-01-21 1993-08-06 Fujitsu Ltd ニューラルネットワークを用いた情報処理装置
JPH05233586A (ja) * 1992-02-25 1993-09-10 Mitsubishi Electric Corp デジタル神経回路およびその駆動方法
FR2687814A1 (fr) 1992-02-26 1993-08-27 Philips Electronique Lab Processeur neuronal a cellules synaptiques reparties.
FR2724029B1 (fr) 1992-03-17 1997-12-19 Thomson Csf Procede de detection de signaux acoustiques provenant de torpilles
US5448681A (en) 1992-03-27 1995-09-05 National Semiconductor Corporation Intelligent controller with neural network and reinforcement learning
JPH05282272A (ja) 1992-03-31 1993-10-29 Akira Iwata ニューラルネットワーク並列分散処理装置
JPH05281199A (ja) 1992-03-31 1993-10-29 Nuclear Fuel Ind Ltd 探傷データ評価装置及び方法
FR2690771A1 (fr) 1992-04-29 1993-11-05 Philips Electronique Lab Processeur neuronal muni de moyens pour normaliser des données.
FR2690772A1 (fr) 1992-04-29 1993-11-05 Philips Electronique Lab Processeur neuronal muni de moyens pour calculer une norme ou une distance.
US5355435A (en) 1992-05-18 1994-10-11 New Mexico State University Technology Transfer Corp. Asynchronous temporal neural processing element
JPH05334278A (ja) 1992-05-29 1993-12-17 Victor Co Of Japan Ltd ニューラルネットによる波形処理装置の設計方法
JPH05346914A (ja) 1992-06-16 1993-12-27 Matsushita Electron Corp ニューロプロセッサ
JPH0619868A (ja) 1992-06-29 1994-01-28 Victor Co Of Japan Ltd ニューラルネットによる波形処理装置及びその設計方法
JPH0676092A (ja) 1992-06-29 1994-03-18 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルプロセッサ
RU2057363C1 (ru) 1992-06-30 1996-03-27 Александр Федорович Лавренюк Гибридная ячейка оптоэлектронного нейропроцессора
JPH0652132A (ja) 1992-07-28 1994-02-25 Mitsubishi Electric Corp 並列演算半導体集積回路装置およびそれを用いたシステム
US5521985A (en) 1992-08-13 1996-05-28 International Business Machines Corporation Apparatus for recognizing machine generated or handprinted text
US5479579A (en) 1992-09-04 1995-12-26 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Cascaded VLSI neural network architecture for on-line learning
JPH06348906A (ja) * 1992-10-01 1994-12-22 Sony Electron Inc ニューラルネットワークを訓練する方法、文字認識装置、およびシンボル処理方法
JPH06195322A (ja) * 1992-10-29 1994-07-15 Hitachi Ltd 汎用型ニューロコンピュータとして用いられる情報処理装置
JPH06161586A (ja) 1992-11-17 1994-06-07 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルプロセッサ
US5486996A (en) 1993-01-22 1996-01-23 Honeywell Inc. Parameterized neurocontrollers
US5627943A (en) 1993-02-17 1997-05-06 Kawasaki Steel Corporation Neural network processor including systolic array of two-dimensional layers
EP0575716A1 (en) 1993-04-08 1993-12-29 Andrzej Cichocki A neural network and signal processing units
US6267298B1 (en) 1993-05-28 2001-07-31 Paul D. Campbell Neural networked irrigation controller
JP3183484B2 (ja) * 1993-06-07 2001-07-09 日本電信電話株式会社 プロトコル処理装置
JPH07105165A (ja) 1993-09-30 1995-04-21 Nri & Ncc Co Ltd ニューラルネットワーク情報処理装置
US5745652A (en) 1993-10-08 1998-04-28 International Business Machines Corporation Adaptive resource allocation using neural networks
US5493631A (en) 1993-11-17 1996-02-20 Northrop Grumman Corporation Stabilized adaptive neural network based control system
JPH07160796A (ja) 1993-12-03 1995-06-23 Victor Co Of Japan Ltd ニューラルネットによる信号処理装置
JP3172352B2 (ja) 1993-12-27 2001-06-04 松下電器産業株式会社 ニューラルネットワーク回路
JP2615422B2 (ja) 1994-03-23 1997-05-28 工業技術院長 時系列学習神経回路素子およびそれを用いた時系列学習神経回路
US5583964A (en) 1994-05-02 1996-12-10 Motorola, Inc. Computer utilizing neural network and method of using same
JPH07302292A (ja) 1994-05-09 1995-11-14 Nippon Telegr & Teleph Corp <Ntt> ニューラルネットワーク回路の制御装置
JPH085165A (ja) 1994-06-21 1996-01-12 Matsushita Refrig Co Ltd 自動販売機の冷却装置
DE69430744T2 (de) 1994-07-28 2003-01-30 Ibm Verbesserte Neuronalhalbleiterchipsarchitekturen und Neuronalnetzwerke darin
US5583771A (en) 1994-08-04 1996-12-10 Delco Electronics Corp. Method and apparatus for distinguishing between deployment events and non-deployment events in an SIR system
US5533383A (en) 1994-08-18 1996-07-09 General Electric Company Integrated acoustic leak detection processing system
US5430830A (en) 1994-08-22 1995-07-04 Motorola, Inc. Adaptive weight adjusting circuit for an neural network
JP3448109B2 (ja) 1994-08-23 2003-09-16 岩山 清喜 埋め殺し用多孔性型枠パネルを使用したコンクリート構造物
US5450315A (en) 1994-09-26 1995-09-12 Square D Company Apparatus using a neural network for power factor calculation
KR0138859B1 (ko) 1994-12-06 1998-06-15 양승택 다중 명령어 다중 데이타형 신경망 전용 디지탈 어레이 프로세서 및 이를 이용해 구성된 시스템
US7155401B1 (en) 1994-12-23 2006-12-26 International Business Machines Corporation Automatic sales promotion selection system and method
JP3100857B2 (ja) 1995-02-28 2000-10-23 松下電工株式会社 火報センサ
WO1996041277A1 (en) 1995-06-07 1996-12-19 Inficom, Inc. Neutral network processor for communication systems and method for its use
JPH0926948A (ja) 1995-07-11 1997-01-28 Fujitsu Ltd ニューラルネットワークによる情報処理装置
US5956703A (en) 1995-07-28 1999-09-21 Delco Electronics Corporation Configurable neural network integrated circuit
JPH102292A (ja) 1996-04-16 1998-01-06 Yasunari Takeshita 電動灯油ポンプ
JP4237388B2 (ja) 1996-04-22 2009-03-11 サミー株式会社 スロットマシン
JPH1055346A (ja) * 1996-05-30 1998-02-24 Matsushita Electric Ind Co Ltd ニューラルネットワーク回路
US5978782A (en) 1996-07-05 1999-11-02 National Semiconductor Corporation Neural network signal processor for magnetic storage channels
US5705956A (en) 1996-07-12 1998-01-06 National Semiconductor Corporation Neural network based PLL
AU724356B2 (en) 1996-10-08 2000-09-21 Tiernan Communications, Inc. Apparatus and method for multi-service transport multiplexing
EP1007933A2 (en) 1996-10-23 2000-06-14 Ford Global Technologies, Inc. Automotive engine misfire detection system including a bit-serial based recurrent neuroprocessor
JP3276137B2 (ja) 1996-11-29 2002-04-22 日本電波工業株式会社 水晶発振回路
US5944841A (en) 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
DE19718224A1 (de) 1997-04-30 1997-11-27 Harald Dipl Phys Wuest Digitaler Neuroprozessor
US6317658B1 (en) 1997-10-15 2001-11-13 The Boeing Company Neurocomputing control distribution system
RU2131145C1 (ru) 1998-06-16 1999-05-27 Закрытое акционерное общество Научно-технический центр "Модуль" Нейропроцессор, устройство для вычисления функций насыщения, вычислительное устройство и сумматор
FR2780919B1 (fr) 1998-07-08 2002-05-17 Peugeot Dispositif de commande du fonctionnement d'un systeme de ventilation/climatisation de l'habitacle d'un vehicule automobile
US6529614B1 (en) 1998-08-05 2003-03-04 California Institute Of Technology Advanced miniature processing handware for ATR applications
US7308322B1 (en) 1998-09-29 2007-12-11 Rockwell Automation Technologies, Inc. Motorized system integrated control and diagnostics using vibration, pressure, temperature, speed, and/or current analysis
JP4344970B2 (ja) 1998-12-21 2009-10-14 東洋紡績株式会社 ポリウレタン組成物、ポリウレタン繊維、及びポリウレタン繊維の製造方法
US6523018B1 (en) 1998-12-29 2003-02-18 International Business Machines Corporation Neural chip architecture and neural networks incorporated therein
GB9902115D0 (en) 1999-02-01 1999-03-24 Axeon Limited Neural networks
KR100367715B1 (ko) 1999-04-03 2003-01-10 조용범 이동통신의 채널할당을 위한 디지털 홉필드 신경망 칩
JP2000322400A (ja) 1999-05-10 2000-11-24 Fuji Xerox Co Ltd 情報処理装置
US6446238B1 (en) 1999-05-21 2002-09-03 International Business Machines Corporation System and method for updating microcode stored in a non-volatile memory
GB2351885A (en) 1999-06-26 2001-01-10 Axeon Ltd Neural network for real-time channel equalisation
DE60032573T2 (de) 1999-08-12 2007-10-04 Automotive Systems Laboratory Inc., Farmington Hills Neurales netzwerk radarverarbeitungsgerät
US6882992B1 (en) 1999-09-02 2005-04-19 Paul J. Werbos Neural networks for intelligent control
US6542985B1 (en) 1999-09-23 2003-04-01 Unisys Corporation Event counter
US6326912B1 (en) 1999-09-24 2001-12-04 Akm Semiconductor, Inc. Analog-to-digital conversion using a multi-bit analog delta-sigma modulator combined with a one-bit digital delta-sigma modulator
US6480977B1 (en) 1999-10-29 2002-11-12 Worldcom, Inc. Multi-protocol monitor
US6578020B1 (en) 1999-12-07 2003-06-10 International Business Machines Corporation Method and system for converting code to executable code using neural networks implemented in a very large scale integration (VLSI) integrated circuit
JP2001034735A (ja) 2000-01-01 2001-02-09 Hitachi Ltd 情報処理装置
US6567953B1 (en) 2000-03-29 2003-05-20 Intel Corporation Method and apparatus for host-based validating of data transferred between a device and a host
KR20010095960A (ko) 2000-04-14 2001-11-07 유인균 인공지능형 아파트 구현을 위한 인공신경망 제어기
US6665813B1 (en) 2000-08-03 2003-12-16 International Business Machines Corporation Method and apparatus for updateable flash memory design and recovery with minimal redundancy
US6629089B1 (en) 2000-09-29 2003-09-30 Cirrus Logic, Inc. Artificial neural network voice coil motor controller
US6751757B2 (en) 2000-12-07 2004-06-15 3Ware Disk drive data protection using clusters containing error detection sectors
US6493689B2 (en) 2000-12-29 2002-12-10 General Dynamics Advanced Technology Systems, Inc. Neural net controller for noise and vibration reduction
AUPR343401A0 (en) 2001-02-28 2001-03-29 Nguyen, Hung Modelling and design for early warning systems using physiological responses
JP4846924B2 (ja) 2001-05-31 2011-12-28 キヤノン株式会社 パターン認識装置
US6981171B2 (en) 2001-06-05 2005-12-27 Sun Microsystems, Inc. Data storage array employing block verification information to invoke initialization procedures
US7117045B2 (en) 2001-09-08 2006-10-03 Colorado State University Research Foundation Combined proportional plus integral (PI) and neural network (nN) controller
US6836767B2 (en) 2001-10-03 2004-12-28 International Business Machines Corporation Pipelined hardware implementation of a neural network circuit
US6665560B2 (en) 2001-10-04 2003-12-16 International Business Machines Corporation Sleep disconnect safety override for direct human-computer neural interfaces for the control of computer controlled functions
US6877128B2 (en) 2001-12-14 2005-04-05 Storage Technology Corporation Weighted error/erasure correction in a multi-track storage medium
US9269043B2 (en) 2002-03-12 2016-02-23 Knowm Tech, Llc Memristive neural processor utilizing anti-hebbian and hebbian technology
CA2383318A1 (en) 2002-04-25 2003-10-25 Mike A. Trzecieski Active optical component alignment system and method
US7069256B1 (en) 2002-05-23 2006-06-27 Oracle International Corporation Neural network module for data mining
US6751529B1 (en) 2002-06-03 2004-06-15 Neural Robotics, Inc. System and method for controlling model aircraft
US7174325B1 (en) 2002-06-07 2007-02-06 George Mason Intellectual Properties, Inc. Neural processor
JP4182769B2 (ja) 2002-06-21 2008-11-19 アイシン・エィ・ダブリュ株式会社 画像表示装置及びナビゲーション装置
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
JP4328691B2 (ja) 2003-08-11 2009-09-09 キヤノン株式会社 画像形成方法、画像形成装置、データ生成装置およびプログラム
JP4113481B2 (ja) 2003-09-03 2008-07-09 日本電信電話株式会社 音声品質客観評価装置および音声品質客観評価方法
JP3100857U (ja) 2003-10-03 2004-05-27 南亜塑膠工業股▲ふん▼有限公司 対称嵌設ガラス枠のほぞ接合構造
KR20050042871A (ko) 2003-11-04 2005-05-11 박왈서 실용적 적응 신경회로망 제어기
US7751877B2 (en) 2003-11-25 2010-07-06 Braingate Co., Llc Neural interface system with embedded id
JP4040581B2 (ja) 2004-01-20 2008-01-30 日本特殊陶業株式会社 真空−加圧圧力変動吸着型酸素濃縮器
US7424698B2 (en) 2004-02-27 2008-09-09 Intel Corporation Allocation of combined or separate data and control planes
US7276031B2 (en) 2004-05-12 2007-10-02 New York University System and method for classifying patient's breathing using artificial neural network
US7302619B1 (en) 2004-07-06 2007-11-27 Mindspeed Technologies, Inc. Error correction in a cache memory
US7721069B2 (en) 2004-07-13 2010-05-18 3Plus1 Technology, Inc Low power, high performance, heterogeneous, scalable processor architecture
US7590589B2 (en) 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
US7526460B2 (en) 2004-09-16 2009-04-28 Neal Solomon Mobile hybrid software router
JP4148212B2 (ja) 2004-10-19 2008-09-10 松下電器産業株式会社 誘導加熱調理器
MY179032A (en) 2004-10-25 2020-10-26 Cancer Research Tech Ltd Ortho-condensed pyridine and pyrimidine derivatives (e.g.purines) as protein kinase inhibitors
US9014181B2 (en) 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network
EP2595127B1 (en) 2004-11-12 2017-01-04 Xtralis Technologies Ltd Particle detector, system and method related applications
JP2006154992A (ja) 2004-11-26 2006-06-15 Akita Prefecture ニューロプロセッサ
WO2006059802A1 (en) 2004-12-03 2006-06-08 Semiconductor Energy Laboratory Co., Ltd. Organometallic complex, and light-emitting element and light-emitting device using the organometallic complex
WO2006070451A1 (ja) 2004-12-28 2006-07-06 Fujitsu Limited メモリ診断方法
US7627540B2 (en) 2005-06-28 2009-12-01 Neurosciences Research Foundation, Inc. Addressing scheme for neural modeling and brain-based devices using special purpose processor
US7533071B2 (en) 2005-06-28 2009-05-12 Neurosciences Research Foundation, Inc. Neural modeling and brain-based devices using special purpose processor
US7765029B2 (en) 2005-09-13 2010-07-27 Neurosciences Research Foundation, Inc. Hybrid control device
JP5159087B2 (ja) 2005-11-11 2013-03-06 キヤノン株式会社 荷電制御剤、及び静電荷像現像トナー
US9101279B2 (en) 2006-02-15 2015-08-11 Virtual Video Reality By Ritchey, Llc Mobile user borne brain activity data and surrounding environment data correlation system
US9542642B2 (en) 2006-04-06 2017-01-10 Samuel F. Wood Packet data neural network system and method
EP2007305B1 (en) 2006-04-11 2012-05-16 Koninklijke Philips Electronics N.V. A device for positioning an ultrasound transducer inside a mr scanner
TWI346504B (en) * 2006-09-05 2011-08-01 Mstar Semiconductor Inc Sound signal processing system and related apparatus
US8648867B2 (en) 2006-09-25 2014-02-11 Neurala Llc Graphic processor based accelerator system and method
JP5165987B2 (ja) 2006-10-13 2013-03-21 花王株式会社 マスカラ塗布具
US8145983B1 (en) 2006-11-08 2012-03-27 Marvell International Ltd. Methods and apparatus for identification of likely errors in data blocks
JP4264664B2 (ja) 2006-12-06 2009-05-20 ソニー株式会社 電力供給システム、電源プレート、及び電子機器
US7647284B2 (en) 2007-01-12 2010-01-12 Toyota Motor Engineering & Manufacturing North America, Inc. Fixed-weight recurrent neural network controller with fixed long-term and adaptive short-term memory
JP4336370B2 (ja) 2007-02-19 2009-09-30 古河電気工業株式会社 グレーティング型光部品のパッケージング方法
JP5181547B2 (ja) 2007-06-28 2013-04-10 タカタ株式会社 エアバッグ及びエアバッグ装置並びに乗員拘束装置
JP5067064B2 (ja) 2007-08-07 2012-11-07 ダイキン工業株式会社 圧縮機用油回収器および圧縮機
KR100919572B1 (ko) 2007-09-11 2009-10-01 주식회사 부시파워 디지털 조속기의 속도제어를 위한 속도형 신경망 제어기
JP5368687B2 (ja) 2007-09-26 2013-12-18 キヤノン株式会社 演算処理装置および方法
WO2009063475A1 (en) * 2007-11-12 2009-05-22 Pricol Limited A fluid level sensor
CN101452258A (zh) 2007-12-06 2009-06-10 西安电子科技大学 一种与模型无关的自适应控制器及其控制方法
US7561077B1 (en) * 2007-12-28 2009-07-14 L3 Communications Integrated Systems, L.P. Multiple stream multiple rate resampling component
US7861110B2 (en) 2008-04-30 2010-12-28 Egenera, Inc. System, method, and adapter for creating fault-tolerant communication busses from standard components
JP5200664B2 (ja) 2008-05-28 2013-06-05 大日本印刷株式会社 メモリの内容を改竄する故障攻撃の検知方法、セキュリティデバイス及びコンピュータプログラム
US8081816B1 (en) 2008-06-06 2011-12-20 Kevin Maurice Irick Apparatus and method for hardware implementation of object recognition from an image stream using artificial neural network
WO2010001713A1 (ja) 2008-06-30 2010-01-07 コニカミノルタオプト株式会社 広角光学系および撮像装置
CN101493677B (zh) 2008-06-30 2011-06-29 李华嵩 一种神经网络的系统控制器结构及系统辨识结构
US8131659B2 (en) 2008-09-25 2012-03-06 Microsoft Corporation Field-programmable gate array based accelerator system
UA96148C2 (ru) 2008-09-25 2011-10-10 Запорожский Национальный Технический Университет Нейросетевая система управления процессом и способ ее конфигурации при обучении
DE102008052160A1 (de) 2008-10-20 2010-04-22 Deutsch Französisches Forschungsinstitut Saint Louis Sensoreinheit zur Umgebungsbeobachtung mit neuronalem Prozessor
US8321769B1 (en) 2008-11-06 2012-11-27 Marvell International Ltd. Multi-parity tensor-product code for data channel
US20100205399A1 (en) 2009-02-12 2010-08-12 Via Technologies, Inc. Performance counter for microcode instruction execution
US8219952B2 (en) * 2009-02-23 2012-07-10 Synopsys, Inc. Variation aware victim and aggressor timing overlap detection by pessimism reduction based on relative positions of timing windows
US7948178B2 (en) 2009-03-04 2011-05-24 Global Oled Technology Llc Hermetic seal
JP5376509B2 (ja) 2009-03-16 2013-12-25 スパンション エルエルシー 実行履歴トレース方法
US8543888B2 (en) 2009-06-09 2013-09-24 Microchip Technology Incorporated Programmable cyclic redundancy check CRC unit
JP5282693B2 (ja) * 2009-07-27 2013-09-04 株式会社リコー 画像形成装置、表示制御方法、及びプログラム
DE102009037630B4 (de) 2009-08-14 2017-12-07 Texas Instruments Deutschland Gmbh Elektronische Vorrichtung und Verfahren zur Überprüfung der korrekten Programmausführung
US8655815B2 (en) 2010-05-19 2014-02-18 The Regents Of The University Of California Neural processing unit
US9129220B2 (en) 2010-07-07 2015-09-08 Qualcomm Incorporated Methods and systems for digital neural processing with discrete-level synapes and probabilistic STDP
US8676734B2 (en) 2010-07-07 2014-03-18 Qualcomm, Incorporated Methods and systems for replaceable synaptic weight storage in neuro-processors
US8892485B2 (en) 2010-07-08 2014-11-18 Qualcomm Incorporated Methods and systems for neural processor training by encouragement of correct output
CN101882238B (zh) 2010-07-15 2012-02-22 长安大学 基于sopc的小波神经网络处理器
US8745466B2 (en) 2010-08-06 2014-06-03 Stmicroelectronics, Inc. Detecting data-write errors
US8996967B2 (en) 2010-08-06 2015-03-31 Stmicroelectronics, Inc. Rendering data write errors detectable
US9361104B2 (en) 2010-08-13 2016-06-07 Freescale Semiconductor, Inc. Systems and methods for determining instruction execution error by comparing an operand of a reference instruction to a result of a subsequent cross-check instruction
JP5197701B2 (ja) 2010-09-21 2013-05-15 株式会社東芝 密閉型二次電池の製造装置及び製造方法
CN201927073U (zh) 2010-11-25 2011-08-10 福建师范大学 一种可编程硬件bp神经元处理器
JP5346914B2 (ja) 2010-12-27 2013-11-20 京セラドキュメントソリューションズ株式会社 画像形成装置
US20120179898A1 (en) 2011-01-10 2012-07-12 Apple Inc. System and method for enforcing software security through cpu statistics gathered using hardware features
CN103415294A (zh) 2011-02-17 2013-11-27 生物焦炭技术研究株式会社 产生氢的组合物
US9129222B2 (en) 2011-06-22 2015-09-08 Qualcomm Incorporated Method and apparatus for a local competitive learning rule that leads to sparse connectivity
US8909576B2 (en) 2011-09-16 2014-12-09 International Business Machines Corporation Neuromorphic event-driven neural computing architecture in a scalable neural network
US8983611B2 (en) 2011-09-27 2015-03-17 Cardiac Pacemakers, Inc. Neural control of central sleep apnea
RU2473126C1 (ru) 2011-10-28 2013-01-20 Федеральное государственное унитарное предприятие "Научно-производственное объединение автоматики имени академика Н.А. Семихатова" Нейропроцессор
US8996350B1 (en) 2011-11-02 2015-03-31 Dub Software Group, Inc. System and method for automatic document management
CN102490120B (zh) 2011-11-29 2013-10-09 清华大学 用于化学机械抛光机的自适应逆控制系统
US8996430B2 (en) * 2012-01-27 2015-03-31 International Business Machines Corporation Hierarchical scalable neuromorphic synaptronic system for synaptic and structural plasticity
KR20130090147A (ko) 2012-02-03 2013-08-13 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법
CN104620236B (zh) 2012-03-15 2019-02-15 高通股份有限公司 用于神经网络的基于标记的装置和方法
US8640243B2 (en) 2012-03-22 2014-01-28 International Business Machines Corporation Detecting malicious computer code in an executing program module
KR101400974B1 (ko) 2012-04-18 2014-05-29 테크원 가부시키가이샤 탄소섬유재, 탄소섬유재의 제조방법, 상기 탄소섬유재를 갖는 재료
US9378455B2 (en) * 2012-05-10 2016-06-28 Yan M. Yufik Systems and methods for a computer understanding multi modal data streams
US10936569B1 (en) 2012-05-18 2021-03-02 Reservoir Labs, Inc. Efficient and scalable computations with sparse tensors
JP6019868B2 (ja) 2012-07-20 2016-11-02 カシオ計算機株式会社 電源装置、電子機器及び電源制御方法
US9082078B2 (en) 2012-07-27 2015-07-14 The Intellisis Corporation Neural processing engine and architecture using the same
US9400954B2 (en) 2012-07-30 2016-07-26 International Business Machines Corporation Multi-scale spatio-temporal neural network system
US9159020B2 (en) 2012-09-14 2015-10-13 International Business Machines Corporation Multiplexing physical neurons to optimize power and area
TWI474728B (zh) 2012-09-21 2015-02-21 建構於適應性網路模糊推論系統之三層串接式認知引擎之方法及裝置
US20140108734A1 (en) 2012-10-17 2014-04-17 Advanced Micro Devices, Inc. Method and apparatus for saving processor architectural state in cache hierarchy
US9153230B2 (en) 2012-10-23 2015-10-06 Google Inc. Mobile speech recognition hardware accelerator
US9477925B2 (en) 2012-11-20 2016-10-25 Microsoft Technology Licensing, Llc Deep neural networks training for speech and pattern recognition
US9087301B2 (en) 2012-12-21 2015-07-21 International Business Machines Corporation Hardware architecture for simulating a neural network of neurons
US9262712B2 (en) 2013-03-08 2016-02-16 International Business Machines Corporation Structural descriptions for neurosynaptic networks
US9542643B2 (en) 2013-05-21 2017-01-10 Qualcomm Incorporated Efficient hardware implementation of spiking networks
US20150026104A1 (en) 2013-07-17 2015-01-22 Christopher Tambos System and method for email classification
CN104459064A (zh) 2013-09-12 2015-03-25 西安众智惠泽光电科技有限公司 一种化学需氧量在线监控电路
US9600235B2 (en) 2013-09-13 2017-03-21 Nvidia Corporation Technique for performing arbitrary width integer arithmetic operations using fixed width elements
US10339041B2 (en) 2013-10-11 2019-07-02 Qualcomm Incorporated Shared memory architecture for a neural simulator
US9798751B2 (en) 2013-10-16 2017-10-24 University Of Tennessee Research Foundation Method and apparatus for constructing a neuroscience-inspired artificial neural network
US20150134580A1 (en) 2013-11-12 2015-05-14 Persyst Development Corporation Method And System For Training A Neural Network
US9978014B2 (en) 2013-12-18 2018-05-22 Intel Corporation Reconfigurable processing unit
US9230208B2 (en) 2013-12-18 2016-01-05 International Business Machines Corporation Haptic-based artificial neural network training
US9195656B2 (en) 2013-12-30 2015-11-24 Google Inc. Multilingual prosody generation
CN103778468B (zh) 2014-01-16 2016-09-07 北京大学 一种基于rram的新型神经网络电路
CN104809498B (zh) 2014-01-24 2018-02-13 清华大学 一种基于神经形态电路的类脑协处理器
US20150212861A1 (en) 2014-01-24 2015-07-30 Qualcomm Incorporated Value synchronization across neural processors
JP6501146B2 (ja) 2014-03-18 2019-04-17 パナソニックIpマネジメント株式会社 ニューラルネットワーク回路およびその学習方法
US20150269480A1 (en) 2014-03-21 2015-09-24 Qualcomm Incorporated Implementing a neural-network processor
US9852006B2 (en) 2014-03-28 2017-12-26 International Business Machines Corporation Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block maintaining neuronal information for the core circuits
WO2015157013A1 (en) 2014-04-11 2015-10-15 Analog Devices, Inc. Apparatus, systems and methods for providing blind source separation services
US20150324691A1 (en) 2014-05-07 2015-11-12 Seagate Technology Llc Neural network connections using nonvolatile memory devices
US20150324690A1 (en) 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
WO2015193531A1 (en) 2014-06-16 2015-12-23 Nokia Technologies Oy Data processing
JP6354394B2 (ja) 2014-07-04 2018-07-11 富士ゼロックス株式会社 情報処理装置および画像処理システム
CN104107507B (zh) 2014-07-09 2016-06-08 庞德兴 基于rfid射频技术的无源微创皮下神经介入芯片
US9747545B2 (en) 2014-09-19 2017-08-29 International Business Machines Corporation Self-timed, event-driven neurosynaptic core controller
JP6161586B2 (ja) 2014-10-02 2017-07-12 コトブキ技研工業株式会社 粒状物質の磨砕装置
JP6196397B2 (ja) 2014-10-21 2017-09-13 アイアンネット・サイバーセキュリティ・インコーポレイテッドIronNet Cybersecurity, Inc. サイバーセキュリティシステム
EP3035249B1 (en) * 2014-12-19 2019-11-27 Intel Corporation Method and apparatus for distributed and cooperative computation in artificial neural networks
EP3035204B1 (en) 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
US9607217B2 (en) 2014-12-22 2017-03-28 Yahoo! Inc. Generating preference indices for image content
CN104493826A (zh) 2014-12-23 2015-04-08 南京熊猫电子股份有限公司 结合神经网络控制的重载机器人位置控制器
US20160210550A1 (en) 2015-01-20 2016-07-21 Nomizo, Inc. Cloud-based neural networks
US9460386B2 (en) 2015-02-05 2016-10-04 International Business Machines Corporation Passage justification scoring for question answering
JP6360802B2 (ja) 2015-02-20 2018-07-18 株式会社デンソーアイティーラボラトリ ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両
US10318866B2 (en) 2015-03-05 2019-06-11 International Business Machines Corporation Selectivity estimation using artificial neural networks
EP3089080A1 (en) * 2015-04-27 2016-11-02 Universität Zürich Networks and hierarchical routing fabrics with heterogeneous memory structures for scalable event-driven computing systems
US10373050B2 (en) * 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US20160328645A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US20160335119A1 (en) 2015-05-12 2016-11-17 minds.ai inc Batch-based neural network system
WO2016183522A1 (en) 2015-05-14 2016-11-17 Thalchemy Corporation Neural sensor hub system
US10083395B2 (en) * 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
JP6674838B2 (ja) 2015-05-21 2020-04-01 株式会社半導体エネルギー研究所 電子装置
US10438117B1 (en) 2015-05-21 2019-10-08 Google Llc Computing convolutions using a neural network processor
US9747546B2 (en) 2015-05-21 2017-08-29 Google Inc. Neural network processor
CN104899641B (zh) 2015-05-25 2018-07-13 杭州朗和科技有限公司 深度神经网络学习方法、处理器和深度神经网络学习系统
CN106250981B (zh) * 2015-06-10 2022-04-01 三星电子株式会社 减少存储器访问和网络内带宽消耗的脉冲神经网络
US11244225B2 (en) 2015-07-10 2022-02-08 Samsung Electronics Co., Ltd. Neural network processor configurable using macro instructions
US11157800B2 (en) 2015-07-24 2021-10-26 Brainchip, Inc. Neural processor based accelerator system and method
CN105260776B (zh) 2015-09-10 2018-03-27 华为技术有限公司 神经网络处理器和卷积神经网络处理器
CN105184366B (zh) 2015-09-15 2018-01-09 中国科学院计算技术研究所 一种时分复用的通用神经网络处理器
EP3144820A1 (en) * 2015-09-18 2017-03-22 Stichting IMEC Nederland Inter-cluster data communication network for a dynamic shared communication platform
US20170090929A1 (en) 2015-09-25 2017-03-30 Mcafee, Inc. Hardware-assisted software verification and secure execution
US9673934B2 (en) 2015-09-30 2017-06-06 Mellanox Technologies Tlv Ltd. Error correction on demand
RU2602973C1 (ru) 2015-09-30 2016-11-20 Федеральное государственное бюджетное образовательное учреждение высшего образования "Кубанский государственный технологический университет" (ФГБОУ ВО "КубГТУ") Контроллер управления обучением нейронной сети с генетическим алгоритмом
US10317930B2 (en) 2015-09-30 2019-06-11 International Business Machines Corporation Optimizing core utilization in neurosynaptic systems
CN106528047B (zh) 2015-10-08 2019-04-09 上海兆芯集成电路有限公司 一种处理器、神经网络单元及其运作方法
US9905200B2 (en) * 2015-10-19 2018-02-27 Yahoo Holdings, Inc. Computerized system and method for automatically creating and applying a filter to alter the display of rendered media
CN105311750B (zh) 2015-11-09 2017-09-26 杭州承诺医疗科技有限公司 一种骶神经刺激系统
US10310826B2 (en) 2015-11-19 2019-06-04 Intel Corporation Technologies for automatic reordering of sparse matrices
CN105653790B (zh) 2015-12-29 2019-03-29 东南大学—无锡集成电路技术研究所 一种基于人工神经网络的乱序处理器Cache访存性能评估方法
CN105678379B (zh) 2016-01-12 2020-08-07 腾讯科技(深圳)有限公司 一种cnn的处理方法和装置
JP6900190B2 (ja) * 2016-01-14 2021-07-07 キヤノン株式会社 認識学習装置、認識学習方法及びプログラム
EP3295381B1 (en) 2016-02-05 2022-08-24 DeepMind Technologies Limited Augmenting neural networks with sparsely-accessed external memory
CN105844330B (zh) 2016-03-22 2019-06-28 华为技术有限公司 神经网络处理器的数据处理方法及神经网络处理器
CN105676649A (zh) 2016-04-09 2016-06-15 北京工业大学 一种基于自组织神经网络的污水处理过程控制方法
CA2927171C (en) 2016-04-13 2017-05-02 1Qb Information Technologies Inc. Quantum processor and its use for implementing a neural network
CN105930902B (zh) 2016-04-18 2018-08-10 中国科学院计算技术研究所 一种神经网络的处理方法、系统
KR101754985B1 (ko) 2016-04-21 2017-07-19 주식회사 아이씨케이 비접촉식 카드 기능을 갖는 메탈 카드 및 그 제조 방법
US10360846B2 (en) 2016-05-10 2019-07-23 X-Celeprint Limited Distributed pulse-width modulation system with multi-bit digital storage and output device
CN106022468B (zh) 2016-05-17 2018-06-01 成都启英泰伦科技有限公司 人工神经网络处理器集成电路及该集成电路的设计方法
CN105872477B (zh) * 2016-05-27 2018-11-23 北京旷视科技有限公司 视频监控方法和视频监控系统
US10949737B2 (en) 2016-07-13 2021-03-16 Samsung Electronics Co., Ltd. Method for neural network and apparatus performing same method
US11222263B2 (en) 2016-07-28 2022-01-11 Samsung Electronics Co., Ltd. Neural network method and apparatus
US10621486B2 (en) * 2016-08-12 2020-04-14 Beijing Deephi Intelligent Technology Co., Ltd. Method for optimizing an artificial neural network (ANN)
US11544539B2 (en) * 2016-09-29 2023-01-03 Tsinghua University Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system
CN106447034B (zh) 2016-10-27 2019-07-30 中国科学院计算技术研究所 一种基于数据压缩的神经网络处理器、设计方法、芯片
CN106529670B (zh) 2016-10-27 2019-01-25 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片
US10430706B2 (en) 2016-12-01 2019-10-01 Via Alliance Semiconductor Co., Ltd. Processor with memory array operable as either last level cache slice or neural network unit memory
US10824937B2 (en) * 2016-12-20 2020-11-03 Intel Corporation Scalable neuromorphic core with shared synaptic memory and variable precision synaptic memory
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10713558B2 (en) 2016-12-30 2020-07-14 Intel Corporation Neural network with reconfigurable sparse connectivity and online learning
WO2018126270A1 (en) 2017-01-02 2018-07-05 Novumind, Inc. Unsupervised learning of object recognition methods and systems
WO2018143189A1 (ja) 2017-02-02 2018-08-09 株式会社カネカ 層間熱接合部材、層間熱接合方法、層間熱接合部材の製造方法
JP7005904B2 (ja) 2017-02-03 2022-01-24 いすゞ自動車株式会社 走行制御装置、車両および走行制御方法
US20180232627A1 (en) * 2017-02-16 2018-08-16 Intel IP Corporation Variable word length neural network accelerator circuit
US10699189B2 (en) 2017-02-23 2020-06-30 Cerebras Systems Inc. Accelerated deep learning
US10261786B2 (en) 2017-03-09 2019-04-16 Google Llc Vector processing unit
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
EP3614470A4 (en) 2017-04-21 2021-01-13 Sanyo Chemical Industries, Ltd. ADHESIVE FOR LITHIUM-ION ELECTRODE, ELECTRODE FOR LITHIUM-ION BATTERY, AND METHOD FOR MANUFACTURING AN ELECTRODE FOR LITHIUM-ION BATTERY
US11501139B2 (en) 2017-05-03 2022-11-15 Intel Corporation Scaling half-precision floating point tensors for training deep neural networks
US10169298B1 (en) 2017-05-11 2019-01-01 NovuMind Limited Native tensor processor, using outer product unit
US10776694B2 (en) 2017-05-16 2020-09-15 Samsung Electronics Co., Ltd. Optimized neural network input stride method and apparatus
CN107256422A (zh) 2017-06-06 2017-10-17 上海兆芯集成电路有限公司 数据量化方法及装置
US10944632B2 (en) 2017-06-22 2021-03-09 Texas Instruments Incorporated Accelerated network reconnect using previous connection parameters
US10776308B2 (en) 2017-06-30 2020-09-15 Intel Corporation Smart memory data store or load method and apparatus
US10445065B2 (en) 2017-09-08 2019-10-15 National Technology & Engineering Solutions Of Sandia, Llc Constant depth, near constant depth, and subcubic size threshold circuits for linear algebraic calculations
US10541782B2 (en) 2017-11-20 2020-01-21 International Business Machines Corporation Use of a cyclic redundancy code multiple-input shift register to provide early warning and fail detection
WO2019124953A1 (en) 2017-12-20 2019-06-27 Lg Electronics Inc. Cryptographic methods and systems for authentication in connected vehicle systems and for other uses
KR20190078292A (ko) 2017-12-26 2019-07-04 삼성전자주식회사 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법
US10417089B2 (en) 2018-02-13 2019-09-17 Western Digital Technologies, Inc. Data storage device extending erasures for LDPC-type decoding
US11392829B1 (en) 2018-05-02 2022-07-19 Nvidia Corporation Managing data sparsity for neural networks
ES2940819T3 (es) 2018-05-11 2023-05-11 Lg Electronics Inc Método de realización de la transmisión de enlace ascendente en un sistema de comunicación inalámbrica y dispositivo para el mismo
US11277868B2 (en) 2018-07-13 2022-03-15 Lg Electronics Inc. Method and device for performing random access procedure
US11232016B1 (en) 2018-09-21 2022-01-25 Amazon Technologies, Inc. Debug for computation networks using error detection codes
US11636343B2 (en) 2018-10-01 2023-04-25 Neuralmagic Inc. Systems and methods for neural network pruning with accuracy preservation
JP7105165B2 (ja) 2018-10-11 2022-07-22 オルガノ株式会社 水処理装置および水処理方法
GB2579591B (en) 2018-12-04 2022-10-26 Imagination Tech Ltd Buffer checker
EP3671568A1 (en) 2018-12-17 2020-06-24 IMEC vzw Binary recurrent neural network inference technique
US20200202198A1 (en) 2018-12-21 2020-06-25 Waymo Llc Neural network processor
US10798386B2 (en) 2019-01-25 2020-10-06 At&T Intellectual Property I, L.P. Video compression with generative models
JP2022523563A (ja) 2019-03-04 2022-04-25 アイオーカレンツ, インコーポレイテッド 機械学習および人工知能を使用する、機械異常の近リアルタイム検出ならびに分類
JP7302292B2 (ja) 2019-05-28 2023-07-04 京セラドキュメントソリューションズ株式会社 画像形成システム、画像形成装置の動作制御方法
US20200380369A1 (en) 2019-05-31 2020-12-03 Nvidia Corporation Training a neural network using selective weight updates
US11175898B2 (en) 2019-05-31 2021-11-16 Apple Inc. Compiling code for a machine learning model for execution on a specialized processor
US10831595B1 (en) 2019-05-31 2020-11-10 International Business Machines Corporation Performing error detection during deterministic program execution
US20190392296A1 (en) 2019-06-28 2019-12-26 John Brady Hardware agnostic deep neural network compiler
US20210053574A1 (en) 2019-08-21 2021-02-25 Micron Technology, Inc. Monitoring controller area network bus for vehicle control
US11409654B2 (en) 2019-09-05 2022-08-09 Micron Technology, Inc. Intelligent optimization of caching operations in a data storage device
KR20210053554A (ko) 2019-11-04 2021-05-12 엘지전자 주식회사 멀티미디어 디바이스 및 그 제어 방법
KR20210064723A (ko) 2019-11-26 2021-06-03 에스케이하이닉스 주식회사 전자 장치 및 이의 동작 방법
US20200136943A1 (en) 2019-12-27 2020-04-30 Intel Corporation Storage management in a data management platform for cloud-native workloads
US20210256384A1 (en) 2020-02-14 2021-08-19 Northeastern University Computer-implemented methods and systems for achieving real-time dnn execution on mobile devices with pattern-based weight pruning
US20210279055A1 (en) 2020-03-03 2021-09-09 Nvidia Corporation Technique for performing bit-linear transformations
US20220108157A1 (en) 2020-10-05 2022-04-07 Numenta, Inc. Hardware architecture for introducing activation sparsity in neural network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020161813A1 (en) 2001-03-06 2002-10-31 Tzi-Dar Chiueh Complex-valued multiplier-and-accumulator

Also Published As

Publication number Publication date
US20180285718A1 (en) 2018-10-04
US20180285678A1 (en) 2018-10-04
US11675693B2 (en) 2023-06-13
WO2018185765A1 (en) 2018-10-11
US10387298B2 (en) 2019-08-20
JP7148087B2 (ja) 2022-10-05
US11216717B2 (en) 2022-01-04
JP7288250B2 (ja) 2023-06-07
EP3607499A1 (en) 2020-02-12
JP2020515991A (ja) 2020-05-28
WO2018185764A1 (en) 2018-10-11
CN110462642B (zh) 2023-08-08
US11514291B2 (en) 2022-11-29
US11461614B2 (en) 2022-10-04
CN110476174A (zh) 2019-11-19
EP3607498A4 (en) 2020-04-08
US20180285719A1 (en) 2018-10-04
JP7108268B2 (ja) 2022-07-28
CN110462640B (zh) 2023-07-07
EP3607499A4 (en) 2020-04-08
CN110462640A (zh) 2019-11-15
WO2018185766A1 (en) 2018-10-11
US11263512B2 (en) 2022-03-01
EP3607498B1 (en) 2024-05-08
WO2018185763A1 (en) 2018-10-11
CN110494869A (zh) 2019-11-22
EP3607499B1 (en) 2023-12-13
CN110476174B (zh) 2023-06-23
EP3607500A1 (en) 2020-02-12
JP2020517005A (ja) 2020-06-11
EP3607498A1 (en) 2020-02-12
JP2020517006A (ja) 2020-06-11
CN110494869B (zh) 2023-08-04
CN110462642A (zh) 2019-11-15
US20180285254A1 (en) 2018-10-04
EP3607497A4 (en) 2020-04-08
US11354563B2 (en) 2022-06-07
EP3607497A1 (en) 2020-02-12
US20180285736A1 (en) 2018-10-04
US20180285735A1 (en) 2018-10-04
EP3607501A4 (en) 2020-04-08
EP3607500A4 (en) 2020-05-20
JP2020515990A (ja) 2020-05-28
WO2018185762A1 (en) 2018-10-11
US11461615B2 (en) 2022-10-04
EP3607501A1 (en) 2020-02-12
US20180285727A1 (en) 2018-10-04
JP7170281B2 (ja) 2022-11-14
EP3607500B1 (en) 2023-12-20
US20180285725A1 (en) 2018-10-04
EP3607497B1 (en) 2023-12-20
US20180285726A1 (en) 2018-10-04
JP2020515989A (ja) 2020-05-28
US11238331B2 (en) 2022-02-01
CN110462643A (zh) 2019-11-15

Similar Documents

Publication Publication Date Title
JP7191329B2 (ja) 計算およびローカルメモリ要素を組み込むニューラルネットワーク処理要素
US20200285949A1 (en) Structured Activation Based Sparsity In An Artificial Neural Network
US11615297B2 (en) Structured weight based sparsity in an artificial neural network compiler
Yazdanbakhsh et al. Neural acceleration for GPU throughput processors
US11551028B2 (en) Structured weight based sparsity in an artificial neural network
US11238334B2 (en) System and method of input alignment for efficient vector operations in an artificial neural network
US20200279133A1 (en) Structured Sparsity Guided Training In An Artificial Neural Network
US20230161997A1 (en) System and method of early termination of layer processing in an artificial neural network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220801

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: 20221101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221129

R150 Certificate of patent or registration of utility model

Ref document number: 7191329

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150