JP6872011B2 - 畳み込みニューラルネットワークのための効率的データレイアウト - Google Patents
畳み込みニューラルネットワークのための効率的データレイアウト Download PDFInfo
- Publication number
- JP6872011B2 JP6872011B2 JP2019517768A JP2019517768A JP6872011B2 JP 6872011 B2 JP6872011 B2 JP 6872011B2 JP 2019517768 A JP2019517768 A JP 2019517768A JP 2019517768 A JP2019517768 A JP 2019517768A JP 6872011 B2 JP6872011 B2 JP 6872011B2
- Authority
- JP
- Japan
- Prior art keywords
- kernel
- activation map
- layout
- input
- stack
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/18—Eye characteristics, e.g. of the iris
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
- G06F18/2113—Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2137—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/231—Hierarchical techniques, i.e. dividing or merging pattern sets so as to obtain a dendrogram
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/771—Feature selection, e.g. selecting representative features from a multi-dimensional feature space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/18—Eye characteristics, e.g. of the iris
- G06V40/193—Preprocessing; Feature extraction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Ophthalmology & Optometry (AREA)
- Human Computer Interaction (AREA)
- Neurology (AREA)
- Biodiversity & Conservation Biology (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
- Error Detection And Correction (AREA)
- Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
- Image Processing (AREA)
Description
本願は、米国特許出願第62/403,930号(2016年10月4日出願、名称「EFFICIENT DATA LAYOUTS FOR CONVOLUTIONAL NEURAL NETWORKS」)に対する優先権の利益を主張し、上記出願の内容は、その全体が、参照により本明細書に引用される。
本特許文書の開示の一部は、著作権保護を受ける内容を含む。所有権者は、特許文書または特許開示書のいずれか1つによるファクシミリ複写物には、複写物が特許商標庁の特許ファイルまたは記録として世に出現している限り異論はないが、他の場合に全ての著作権は完全に留保する。
本開示は、概して、畳み込みニューラルネットワークを実装するためのシステムおよび方法に関し、より具体的には、畳み込みニューラルネットワークの畳み込み層を実装するための効率的データレイアウトに関する。
本明細書は、例えば、以下の項目も提供する。
(項目1)
畳み込みニューラルネットワーク(CNN)を実行するためのシステムであって、前記システムは、
畳み込みニューラルネットワークの畳み込み層を記憶するように構成された非一過性メモリであって、
前記畳み込み層は、カーネルスタックにおけるカーネルを備え、
前記カーネルスタックの前記カーネルは、基本カーネルレイアウトにおけるものであり、
前記カーネルスタックの前記カーネルの重み値は、前記基本カーネルレイアウトから複数のカーネルタイルを備えているタイルカーネルレイアウトに並べ替えられ、
カーネルタイルは、複数のカーネルランネルを備え、
カーネルランネルは、前記カーネルスタックの前記カーネルのいくつかの前記重み値を備えている、非一過性メモリと、
前記非一過性メモリと通信するハードウェアプロセッサと
を備え、
前記ハードウェアプロセッサは、
前記畳み込み層の入力活性化マップを受信することであって、前記入力活性化マップは、基本入力活性化マップレイアウトにおけるものである、ことと、
前記入力活性化マップのピクセル値を前記基本入力活性化マップレイアウトからインターリーブされた入力活性化マップレイアウトに並べ替えることであって、前記インターリーブされた入力活性化マップレイアウトは、入力活性化マップピクセルの複数のクラスタを備えている、ことと、
前記複数のカーネルタイルと前記入力活性化マップピクセルの複数のクラスタとから前記畳み込み層の出力活性化マップを決定することと
を行うための実行可能命令によってプログラムされており、
前記出力活性化マップは、インターリーブされた出力活性化マップレイアウトにおけるものであり、前記インターリーブされた出力活性化マップレイアウトは、複数のクラスタ出力活性化マップピクセルを備えている、システム。
(項目2)
前記カーネルスタックの前記カーネルの前記重み値は、
前記カーネルスタックの幅寸法に沿ってトラバースすることと、
前記カーネルスタックの高さ寸法に沿ってトラバースすることと、
前記カーネルスタックの前記カーネルの幅寸法に沿ってトラバースすることと、
前記カーネルスタックのカーネルの高さ寸法に沿ってトラバースすることと
を反復的に行うことによって、前記基本カーネルレイアウトから前記タイルカーネルレイアウトに並べ替えられる、項目1に記載のシステム。
(項目3)
前記カーネルタイルの第1のカーネルランネルは、第1のカーネルスタック幅境界に対応し、前記カーネルタイルの最後のカーネルランネルは、前記第1のカーネルスタック幅境界の後続の第2のカーネルスタック幅境界に対応する、項目1に記載のシステム。
(項目4)
前記入力活性化マップの前記ピクセル値を前記基本入力活性化マップレイアウトから前記インターリーブされた入力活性化マップレイアウトに並べ替えるために、前記ハードウェアプロセッサは、
いくつかの入力活性化マップの寸法に沿ってトラバースすることと、
入力活性化マップの幅寸法に沿ってトラバースすることと、
入力活性化マップの高さ寸法に沿ってトラバースすることと
を反復的に行うようにプログラムされている、項目1に記載のシステム。
(項目5)
前記ハードウェアプロセッサは、前記出力活性化マップのピクセル値を前記インターリーブされた出力活性化マップレイアウトから基本出力活性化マップレイアウトに並べ替えるようにプログラムされている、項目1に記載のシステム。
(項目6)
前記出力活性化マップの前記ピクセル値を前記インターリーブされた出力活性化マップから前記基本出力活性化マップレイアウトに並べ替えるために、前記ハードウェアプロセッサは、
前記インターリーブされた出力活性化マップの幅寸法に沿ってトラバースすることと、
前記インターリーブされた出力活性化マップの高さ寸法に沿ってトラバースすることと
を反復的に行うようにプログラムされている、項目5に記載のシステム。
(項目7)
前記複数のカーネルタイルと前記入力活性化マップピクセルの複数のクラスタとから前記畳み込み層の前記出力活性化マップを決定するために、前記ハードウェアプロセッサは、前記複数のカーネルタイルおよび前記入力活性化マップピクセルの複数のクラスタにタイル毎に融合積和演算を実施するようにプログラムされている、項目1−6のいずれか1項に記載のシステム。
(項目8)
前記複数のカーネルタイルおよび前記入力活性化マップピクセルの複数のクラスタにタイル毎に前記融合積和演算を実施することは、
各出力活性化マップピクセルに対して、
前記出力活性化マップピクセルの値をゼロの値に設定することと、
前記複数のカーネルタイルの各カーネルタイルの各カーネルランネルに対して、前記各カーネルランネル、前記カーネルランネルおよび前記出力活性化マップピクセルに対応する入力活性化マップピクセル、および前記出力活性化マップピクセルに融合積和演算を実施することと
を反復的に行うことを含む、項目7に記載のシステム。
(項目9)
前記複数のカーネルタイルおよび前記入力活性化マップピクセルの複数のクラスタにタイル毎に前記融合積和演算を実施するために、前記ハードウェアプロセッサは、
各出力活性化マップピクセルに対して、
前記出力活性化マップピクセルの値をゼロの値に設定することと、
前記複数のカーネルタイルの各カーネルタイルの各カーネルランネルに対して、前記各カーネルランネル、前記カーネルランネルおよび前記出力活性化マップピクセルに対応する少なくとも1つの入力活性化マップピクセル、および前記出力活性化マップピクセルに融合積和演算を実施することと
を反復的に行うようにプログラムされている、項目7に記載のシステム。
(項目10)
前記少なくとも1つの入力活性化マップピクセルは、2つの入力活性化マップピクセルを備えている、項目9に記載のシステム。
(項目11)
前記カーネルランネルのビットでのサイズと前記入力活性化マップランネルのビットでのサイズとは、同一である、項目1−6のいずれか1項に記載のシステム。
(項目12)
前記カーネルランネルのビットでの前記サイズと前記出力活性化マップランネルのビットでのサイズとは、同一である、項目11に記載のシステム。
(項目13)
前記カーネルランネルのビットでの前記サイズと前記ハードウェアプロセッサのレジスタのビットでのサイズとは、同一である、項目11に記載のシステム。
(項目14)
前記レジスタのサイズは、128ビットである、項目13に記載のシステム。
(項目15)
前記ハードウェアプロセッサは、単一命令多重データプロセッサを備えている、項目1−6のいずれか1項に記載のシステム。
(項目16)
前記単一命令多重データプロセッサは、ベクトルプロセッサを備えている、項目15に記載のシステム。
(項目17)
前記基本カーネルレイアウトにおける前記カーネルスタックの前記カーネルは、複数のカーネルスタックチャネル内に配列され、
前記複数のカーネルスタックチャネルの数と前記入力活性化マップの数とは、同一であり、
カーネルスタックチャネルのカーネルの数と前記出力活性化マップの数とは、同一である、項目1−6のいずれか1項に記載のシステム。
(項目18)
前記カーネルスタックのカーネルスタック幅と前記出力活性化マップの数とは、同一である、項目1−6のいずれか1項に記載のシステム。
(項目19)
前記基本カーネルレイアウトにおける前記カーネルスタックの前記カーネルは、複数のカーネルスタックフィルタバンク内に配列され、
前記複数のカーネルスタックフィルタバンクの数と前記出力活性化マップの数とは、同一であり、
カーネルスタックフィルタバンクのカーネルの数と前記入力活性化マップの数とは、同一である、項目1−6のいずれか1項に記載のシステム。
(項目20)
前記カーネルスタックのカーネルスタック高さと前記入力活性化マップの数とは、同一である、項目1−6のいずれか1項に記載のシステム。
データ関係およびパターンを表すモデル(関数、アルゴリズム、システム等)は、入力を受け取り、ある方法において、入力に対応する出力を生成し得る。例えば、モデルは、畳み込みニューラルネットワーク(CNN)または深層ニューラルネットワーク(DNN)等の機械学習方法として実装され得る。深層学習は、タスク特定のアルゴリズムとは対照的に、学習データ表現の概念に基づく、より広義の一連の機械学習方法の一部であり、すなわち、拡張現実、複合現実、仮想現実、および機械知能に重要な視聴覚計算問題を解決することにおける多くの将来性を示す。機械学習では、畳み込みニューラルネットワーク(CNNまたはConvNet)は、ある種の深層フィードフォワード人工ニューラルネットワークを含み得、CNNは、視覚的画像を分析するための適用において成功を収めている。機械学習方法は、眼画像セグメント化および眼追跡を含む、様々な問題に対するロバストかつ正確なソリューションを可能にし得る、一連の方法を含む。しかしながら、機械学習方法は、計算的に集約的または高価であり得る。故に、機械学習方法を効率的に実施することは、限定されたリソースを伴う内蔵プラットフォーム上での機械学習方法の適用を可能にすることができる。
複合問題を解決するための1つのアプローチは、問題をより単純かつより管理可能な構成要素に分け、複合問題が単位として解決することがより容易であり得る構成に全体的に分割され得るまでそれを再帰的に継続することによる分割統治アプローチであり得る。これらの部分問題は、グラフ内の節点または頂点と考えられ得る。
(1)合計変数をゼロに設定する
(2)τ変数に対して、負の無限大から正の無限大まで:
(2a)τを上記範囲のリスト内の次の値にとり、
(2b)点f(τ)およびg(t−τ)における関数fおよびgの値を計算し、
(2c)(2b)において計算された2つの値を一緒に乗算し、
(2d)(2c)において計算された値を合計変数に加算し、
(2e)(2a)に戻り、プロセスを繰り返す
(2)の終了。
図2は、畳み込みニューラルネットワークの例示的3次元畳み込み層200を図式的に図示する。畳み込み層200は、M個の入力活性化マップ204a1、204b1、・・・、および204m1を受信するためのM個の入力チャネル204を有することができる。入力活性化マップは、Qの入力活性化マップ幅と、Pの入力活性化マップ高さとを有することができる。入力活性化マップ204a1、204b1、・・・、および204m1は、同一入力活性化マップ幅Qと、入力活性化マップ高さPとを有することができる。
(1)値1から値Nの変数nに対して:
(2a)n番目の出力活性化マップのピクセル値をゼロの値に設定し、
(2b)値1から値Nの変数mに対して:
(3a)n番目の出力活性化マップのピクセル値+=
Convolve(m番目の入力活性化マップ,カーネルスタックの位置(m,n)におけるカーネル)、式中、「Convolve」は、2次元畳み込みを示し、「+=」は、カーネルを用いた入力活性化マップの畳み込みの結果を伴う出力活性化マップの点毎の合計を表す
(2b)の終了
(1)の終了。
本明細書に開示されるシステムおよび方法は、コンピュータサーバ、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイス、または内蔵デバイス等のコンピューティングデバイス上でのCNNの効率的実装を可能にすることができる。コンピューティングデバイスは、ベクトルプロセッサ、超長命令語(VLIW)ベクトルプロセッサ、または単一命令多重データ(SIMD)プロセッサを含むことができる。SIMD対応プロセッサまたはアーキテクチャは、命令セットアーキテクチャ(ISA)またはそのISAの特定のハードウェア実装であることができ、「単一命令多重データ」演算の使用を通してデータ並列計算を実施することが可能であり、単一命令は、同一演算を入力データの複数の別個の組に実施することと並行して行われることができる。そのようなISAの非限定的例は、x86上の拡張命令のストリーミングSIMD拡張命令(SSE)ファミリ、Advanced RISC Machine(ARM)上のNEONまたは高度SIMD拡張命令、PowerPC上のAltiVec等を含む。故に、CNNの効率的実装は、SIMD対応アーキテクチャを実装するプロセッサ上のメモリおよび単一命令多重データ(SIMD)実行ユニットの利用を含むプロセッサの最大利用等、利用を改良することができる。
メモリ利用nに悪影響または実質的に悪影響を及ぼさずに、SIMDレジスタの利用を改良するために、入力活性化マップのピクセル値は、並べ替えられることができる。図4は、畳み込みニューラルネットワークの畳み込み層の入力活性化マップのピクセル値の例示的並べ替え400を図式的に図示する。入力活性化マップのピクセル値の並べ替えは、入力活性化マップを入力活性化マップのための基本レイアウト(基本入力活性化マップレイアウト)から入力活性化マップのためのインターリーブされたレイアウト(インターリーブされた入力活性化マップレイアウト)に変換する。
畳み込み層400の入力活性化マップ404、408、412、および412が、入力活性化マップタイルレイアウトに並べ替えられると、カーネルスタック208のカーネル208a1−208an、208b1−208bn、および208m1−208mnは、カーネルの基本レイアウトからカーネルのタイルレイアウトに並べ替えられ、内蔵デバイス等のコンピューティングデバイスのプロセッサのロード、算術、または記憶動作のために、ベクトル演算を利用することができる。図2に示されるように、カーネルスタック208の行の数および入力チャネル204の数は、同一であることができる。カーネルスタック208の列の数および出力チャネル212の数は、同一であることができる。カーネルスタック208のカーネルは、Kx重み値のカーネル幅と、Ky重み値のカーネル高さとを有することができる。
(1)カーネルスタック208の幅寸法(N寸法またはカーネルスタックx方向(Sx)、それは、図5Aに図示されるカーネルスタック208に関する2と等しい)に沿ってトラバースする
(2)カーネルスタック208の高さ寸法(M寸法またはカーネルスタックy方向(Sy)、それは、図5Aに図示されるカーネルスタック208に関する2と等しい)に沿ってトラバースする
(3)個々のカーネルの幅寸法(Kx、それは、図5Aに図示されるカーネルスタック208のカーネルに関する2と等しい)に沿ってトラバースする
(4)個々のカーネルの高さ寸法(Ky、それは、図5Aに図示されるカーネルスタック208のカーネルに関する2と等しい)に沿ってトラバースする
トラバーサルは、ランネルが重み値で完全に埋められるまで継続する。
図6Aおよび6Bは、カーネルスタック208のカーネルの重み値をランネルのタイルを備えているタイルフォーマットに並べ替える例を図式的に図示する。カーネル寸法に関する制限は、これらの例には存在しない。これらの例に図示される方法は、最も単純かつ効率的であるが、(ネットワーク内のあらゆる畳み込み層からの)出力チャネルの数がベクトルプロセッサのSIMDレジスタ幅の倍数でなければならないという限定を伴う。したがって、方法は、図5A−5Cを参照して上で説明される方法ほど柔軟ではない。
(1)カーネルスタック208の幅寸法(N寸法またはカーネルスタックx方向(Sx)、それは、図6Aに図示されるカーネルスタック208に関する8と等しい)に沿ってトラバースする
(2)個々のカーネルの幅寸法(Kx、それは、図6Aに図示されるカーネルスタック208のカーネルに関する3と等しい)に沿ってトラバースする
(3)カーネルスタック208の高さ寸法(M寸法またはカーネルスタックy寸法(Sy)、それは、図6Aに図示されるカーネルスタック208に対する8と等しい)に沿ってトラバースする
(4)個々のカーネルの高さ寸法(Ky、それは、図6Aに図示されるカーネルスタック208のカーネルに対する3と等しい)に沿ってトラバースする
トラバーサルは、ランネルが重み値で完全に埋められるまで継続する。
(1)各Sxに対して
(2)各Kyに対して
(3)各Syに対して
(4)各Kxに対して。
(1)カーネルスタック208の幅寸法(N寸法またはカーネルスタックx方向(Sx)、それは、図6Bに図示されるカーネルスタック208に関する8と等しい)に沿ってトラバースする
(2)個々のカーネルの高さ寸法(Ky、それは、図6Bに図示されるカーネルスタック208のカーネルに関する3と等しい)に沿ってトラバースする
(3)カーネルスタック208の高さ寸法(M寸法またはカーネルスタックy寸法(Sy)、それは、図6Bに図示されるカーネルスタック208に関する8と等しい)に沿ってトラバースする
(4)個々のカーネルの幅寸法(Kx、それは、図6Bに図示されるカーネルスタック208のカーネルに関する3と等しい)に沿ってトラバースする
トラバーサルは、ランネルが重み値で完全に埋められるまで継続する。
(1)各Sxに対して
(2)各Kyに対して
(3)各Syに対して
(4)各Kxに対して。
図7は、カーネルスタック208のカーネルの重み値をランネルのタイルを備えているタイルフォーマットに並べ替える例を図式的に図示する。図7に説明される方法は、単純であり、効率的であるが、図6A−6Bに説明される方法より制限的である。方法は、図5A−5Cに説明される方法ほど柔軟ではない。しかしながら、より多くの並列処理が、図7に説明される方法を用いて可能である。方法は、(Kx*Ky*Sy)mod(レジスタ幅)=0であるとき、非常に効率的である。
(1)個々のカーネルの高さ寸法(Ky、それは、図7に図示されるカーネルスタック208のカーネルに関する3と等しい)に沿ってトラバースする
(2)カーネルスタック208の高さ寸法(M寸法またはカーネルスタックy寸法(Sy)、それは、図7に図示されるカーネルスタック208に対する8と等しい)に沿ってトラバースする
(3)個々のカーネルの幅寸法(Kx、それは、図7に図示されるカーネルスタック208のカーネルに関する3と等しい)に沿ってトラバースする
(4)カーネルスタック208の高さ寸法(M寸法またはカーネルスタックy寸法(Sx)、それは、図7に図示されるカーネルスタック208に対する8と等しい)に沿ってトラバースする
トラバーサルは、ランネルが重み値で完全に埋められるまで継続する。
(1)各Sxに対して
(2)各Syに対して
(3)各Kyに対して
(4)各Kxに対して。
(1)個々のカーネルの幅寸法(Kx、それは、図7に図示されるカーネルスタック208のカーネルに関する3と等しい)に沿ってトラバースする
(2)個々のカーネルの高さ寸法(Ky、それは、図7に図示されるカーネルスタック208のカーネルに対する3と等しい)に沿ってトラバースする
(3)カーネルスタック208の高さ寸法(M寸法またはカーネルスタックy寸法(Sy)、それは、図7に図示されるカーネルスタック208に関する8と等しい)に沿ってトラバースする
(4)カーネルスタック208の高さ寸法(M寸法またはカーネルスタック×寸法(Sx)、それは、図7に図示されるカーネルスタック208に対する8と等しい)に沿ってトラバースする
トラバーサルは、ランネルが重み値で完全に埋められるまで継続する。
(1)各Sxに対して
(2)各Syに対して
(3)各Kxに対して
(4)各Kyに対して。
図5A−5C、6A、6B、および77を参照して説明される方法は、下記に例証されるように一般化されることができる。「REB」は、SIMDレジスタ内の要素のサイズをビットで示す。「RWB」は、SIMDレジスタの幅をビットで表す。「RWE」は、SIMDレジスタの幅を要素で示す。ランネルは、N個の重みの集合を含み、N=RWEである。言い換えると、以下の関係が成立する:RWE*REB=RWB(各SIMDレジスタ内の要素の数×各要素が占有するビットの数=SIMDレジスタのビットサイズ)。例えば、128ビットSIMDレジスタは、ハードウェアサポートに応じて、32ビットの4つの要素、または16ビットの8つの要素、または8ビットの32の要素、1ビットの128の要素、および、あらゆる他の可能な組み合わせに分けられることができる。
入力活性化マップのピクセル値(例えば、入力活性化マップ404、408、412、および416)を並べ替え、メモリ内のカーネルスタック208のカーネルの重み値をランネル毎に並べ替えた(例えば、図5A−5Cに示される並べ替え)後、重み値は、タイル毎に処理され、下記の例示的擬似コードによって概略されるように、出力活性化マップを決定することができる:
(1)並べ替えられた出力活性化マップの各行rに対して、
(2)出力活性化マップの各列cに対して、
(3a)位置(c,r)における並べ替えられた出力活性化マップの値をゼロの値に設定する
(3b)カーネルスタックの各タイルに対して、
(4)カーネルスタックのそのタイルの各ランネル、および対応する並べ替えられた入力活性化マップピクセル値(または、2つ以上の対応する並べ替えられた入力活性化マップピクセル値)に対して、
(5a)対応する並べ替えられた入力活性化マップピクセル値をロードし、SIMDレジスタに複製する
(5b)並べ替えられた出力活性化マップピクセル値、並べ替えられた入力活性化マップピクセル値、およびランネルをFMADD(FMADDは、融合積和演算を示す)する
(4)の終
(3b)の終了
(3c)並べ替えられた出力活性化マップの値のクラスタを位置(c,r)における出力活性化マップに記憶する
(2)の終
ステップ(1)の終了。
出力活性化マップの各行に対して
出力活性化マップの各列に対して
//出力タイルを0に初期化する
output_tile={0}
カーネルスタックの各タイルに対して
//以下のループは完全に展開されることができる
そのカーネルスタックタイルの各ランネル、および対応する入力タイルに対して
FMADD output_tile, input_tile および kernel_tileの対応するランネル
‘row’および‘column’において、出力活性化マップにoutput_tileを記憶する。
(1)入力(0,0,0)をロードし、SIMDレジスタに複製する(入力(0,0,0)は、入力チャネル204のチャネル0(すなわち、入力活性化マップ204a1)、行0、および列0を示す)
(2)入力(0,0,0)をタイル1のランネル(カーネル208a1および208a2を含む)で乗算し、アクション(2)と累算する
(3)入力(1,0,0)をロードし、SIMDレジスタに複製する
(4)入力(1,0,0)をタイル2のランネル(カーネル208b1および208b2を含む)で乗算する
(5)出力(0,0,0)および出力(1,0,0)を連続して記憶し、インターリーブされた順序を維持する。
(1)入力(0,0,1)をロードし、SIMDレジスタに複製する
(2)入力(0,0,1)をタイル1のランネルで乗算する
(3)入力(1,0,1)をロードし、SIMDレジスタに複製する
(4)入力(1,0,1)をタイル2のランネルで乗算し、アクション(2)と累算する
(5)出力(0,0,1)および出力(1,0,1)を連続して記憶する。
出力活性化マップの各行に対して
出力活性化マップの各列に対して
//出力ランネルを0に初期化する
output_runnel={0}
//以下のループは完全に展開されることができる
配列(a)に説明されるように各カーネルランネルに対して
FMADD 「入力」、出力、およびカーネル「の対応するランネル」
‘row’および‘column’において、出力活性化マップにoutput_runnelを記憶する。
出力活性化マップの各列に対して
//出力活性化を0に初期化する
output_activation={0}
//以下のループは完全に展開されることができる
配列(a)に説明されるように各カーネルランネルに対して
FMADD 「入力」、出力、およびカーネル「の対応するランネル」
//記憶動作の前に水平ベクトル合計を介して出力ランネルを単一値にする
‘row’および‘column’において、出力活性化マップにhorizontal_vec_sum(output_runnel)を記憶する。
図9A−9Bは、カーネルスタック重み値の複数の行にストラドリングするカーネルスタックランネルを用いてタイル毎に出力活性化マップを決定することを図示するための畳み込みニューラルネットワークの例示的3D畳み込み層900を図式的に図示する。CNN900は、図2に示されるCNN200の例であり、4つの入力活性化マップを受信するための4つの入力チャネル(M=4)と、6つの出力活性化マップを決定するための6つの出力チャネル(N=6)とを伴う。図9Aでは、4×6の寸法を伴うカーネルスタック208は、カーネル208a1−208a6、208b1−208b6、208c1−208c6、および208d1−208d6を含み、各カーネルは、5×3(Ky=5およびKx=3)の寸法を伴う。図9Aに示されるように、カーネル208a1−208a6、208b1−208b6、208c1−208c6、および208d1−208d6の各々は、カーネル0−5、6−11、12−17、および18−23として略される。
(1)カーネルスタック208が設計されるアーキテクチャのSIMDレジスタの幅
(2)カーネルスタック208のカーネルの重み値のデータタイプ。
図10は、タイル毎に畳み込みニューラルネットワーク(CNN)の畳み込み層の出力活性化マップを決定する例示的プロセス1000のフロー図であり、それは、随意に、入力活性化マップのピクセル値およびカーネルの重み値をランネルのタイルに並べ替えることを含む。プロセス1000は、ブロック1004から開始し、畳み込みニューラルネットワークの畳み込み層200が、受信される。畳み込み層は、3次元畳み込み層であることができる。図示されるように、図2を参照すると、畳み込み層200は、M個の入力活性化マップを受信するためのM個の入力チャネル204を有することができる。入力活性化マップは、Qの入力活性化マップ幅と、Pの入力活性化マップ高さとを有することができる。入力活性化マップは、同一入力活性化マップ幅Qと、入力活性化マップ高さPとを有することができる。
上記に開示されるインターリーブされたレイアウトは、畳み込み層の効率的処理を実施するために利用されることができる。行列乗算方法は、多くのプラットフォーム上の非常に最適化されたルーチンであり得る。そして、それは、常時、異なるアーキテクチャのために継続的に最適化される。他の方法も、行列乗算を使用して、畳み込み層を実施し得る。しかしながら、これらの他の方法は、全ての畳み込み層インスタンス(例えば、「im2col」演算を実施する)のためにデータ複製を要求する。下記の開示される方法は、行列乗算を利用するが、要求され得るコストがかかるデータ複製を排除する方法を示す。
本明細書に開示されるシステムおよび方法の例は、9.6GFlops/コアの絶対最大潜在能力を伴うプロセッサを使用して評価された。GFlopは、十億個の不動点命令であり、GFlopsは、1秒あたり行われることができる浮動点命令数を十億単位で表す。SIMDレジスタを埋めることによって、いくつかの不動点演算が、プロセッササイクル毎に実施されることができる。例えば、4つの浮動小数点数を保持するレジスタに対して、例えば、4つの不動点演算が、サイクル毎に実施されることができる。
(追加のベクトル化演算)
本明細書に開示される入力活性化マップのインターリーブされたレイアウトは、そうでなければ、ベクトル化することが困難であり得る典型的畳み込みニューラルネットワーク(CNN)における他のベクトル化演算にも有用であり得る。例えば、最大プーリングは、全ての入力活性化マップに適用され得るダウンサンプリング演算である。最大プーリングは、入力活性化マップ内のピクセルのウィンドウ(各寸法において2倍のダウンサンプリングのための2×2)に基づくことができる。最大プーリングは、各ウィンドウの最大値をダウンサンプリングされる出力活性化マップ内のピクセルの値として保存することができる。最大プーリングは、次いで、各寸法内にストライディングを適切に含むことができ、したがって、ピクセル値は、ウィンドウ内の最大値を探すとき、重複しない。データ並べ替えがなければ、最大プーリングは、ベクトルを横断した水平比較、位置合わせされていないロード、複数のロード、またはベクトルを完全に埋めないことのある組み合わせを行うことを要求するので、ベクトル化のために幾分扱いにくい演算であり得る。本明細書に開示されるインターリーブされた入力活性化マップレイアウトでは、すべての入力活性化マップに対するピクセル値は、隣り合わせに記憶されることができる。したがって、最大プーリングは、全ての入力活性化マップのために同時に実施されることができ、入力活性化マップの数がベクトル幅の倍数である場合、完全にベクトル化されることができる。有利には、本明細書に開示される方法は、単一画像にわたってベクトル化することが従来困難である多くの演算(例えば、アップサンプリングまたは転置のような演算)のために利用されることができる。
いくつかの実装では、入力活性化マップのインターリーブされたレイアウトは、演算が、全くデータ複製を伴わずに、または最小限のみ伴って実施されることを可能にすることができる。したがって、メモリ利用効率は、高くなり得、それは、概して、より少ないメモリおよびより少量の短待ち時間メモリを有し得る内蔵システムに有用であり得る。
一般に、データの処理に費やされる時間が少ないほど、プロセッサがアイドルまたはクロック解除され得る時間が多くなる。本明細書に開示される方法およびシステムを用いて、データを効率的に処理することによって、電力節約が、CNNを起動しながら、プロセッサリソースを効率的に使用することによって、達成されることができる。さらに、効率的メモリ利用のためにデータ複製を排除することによって、より少ないシステム全体リソースが、メモリ階層内のレベル間の転送のために必要とされ得る。これは、メインメモリが殆どアクセスされ得ず、かつローカルのキャッシュされたメモリが、より良好に、最適に、または最大限に利用され得るので、電力節約をもたらし得る。
本明細書に開示される方法およびシステムは、100%SIMD利用を伴うあらゆる可能な畳み込み層をもたらさないこともある。代わりに、非常に高利用率が、多くの層に関して達成されることができる。そして、畳み込み層の演算のためにレジスタを完全に埋める観点からの完全利用も、いくつかの畳み込み層に対して達成されることができる。SIMD利用は、層に対する入力/出力の数に依存し得、その数は、プロセッサアーキテクチャ上のレジスタに適合し得る値の数の倍数である。しかしながら、この依存は、畳み込みニューラルネットワークを設計および訓練するプロセスが柔軟であり得るので、それほど限定的ではないこともある。例えば、CNNは、CNNが、多くの場合、本開示の方法およびシステムに良好に働く層寸法を有することができるように設計されることができる。
いくつかの実施形態では、ユーザデバイスは、ウェアラブルディスプレイデバイスであることができ、またはその中に含まれることができ、有利なこととして、より没入型の仮想現実(VR)、拡張現実(AR)、または複合現実(MR)体験を提供し得、デジタル的に再現された画像またはその一部が、それらが現実のように見える様式、または現実として知覚され得る様式で装着者に提示される。
第1の側面では、畳み込みニューラルネットワークの畳み込み層の効率的実装のための方法が、開示される。方法は、ハードウェアプロセッサの制御下にあり、方法は、畳み込みニューラルネットワークの畳み込み層を受信することであって、畳み込み層は、カーネルスタックにおけるカーネルを備え、カーネルスタックのカーネルは、基本カーネルレイアウトにおけるものである、ことと、カーネルスタックのカーネルの重み値を基本カーネルレイアウトから複数のカーネルタイルを備えているタイルカーネルレイアウトに並べ替えることであって、カーネルタイルは、複数のカーネルランネルを備え、カーネルランネルは、カーネルスタックのカーネルのいくつかの重み値を備えている、ことと、畳み込み層の入力活性化マップを受信することであって、入力活性化マップは、基本入力活性化マップレイアウトにおけるものである、ことと、入力活性化マップのピクセル値を基本入力活性化マップレイアウトから入力活性化マップピクセルの複数のクラスタを備えているインターリーブされた入力活性化マップレイアウトに並べ替えることと、畳み込み層の出力活性化マップを複数のカーネルタイルおよび入力活性化マップピクセルの複数のクラスタから決定することであって、出力活性化マップは、複数のクラスタ出力活性化マップピクセルを備えているインターリーブされた出力活性化マップレイアウトにおけるものである、こととを含む。
本明細書に説明され、および/または添付される図に描写されるプロセス、方法、およびアルゴリズムの各々は、具体的かつ特定のコンピュータ命令を実行するように構成される1つ以上の物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および/もしくは電子ハードウェアによって実行されるコードモジュールにおいて具現化され、それによって完全もしくは部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令でプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされ、動的リンクライブラリ内にインストールされ、または解釈されるプログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特定の回路によって実施され得る。
Claims (20)
- 畳み込みニューラルネットワーク(CNN)を実行するためのシステムであって、前記システムは、
畳み込みニューラルネットワークの畳み込み層を記憶するように構成された非一過性メモリであって、
前記畳み込み層は、カーネルスタックにおけるカーネルを備え、
前記カーネルスタックの前記カーネルは、基本カーネルレイアウトにおけるものであり、
前記カーネルスタックの前記カーネルの重み値は、前記基本カーネルレイアウトから複数のカーネルタイルを備えているタイルカーネルレイアウトに並べ替えられ、
カーネルタイルは、複数のカーネルランネルを備え、
カーネルランネルは、前記カーネルスタックの前記カーネルのいくつかの前記重み値を備えている、非一過性メモリと、
前記非一過性メモリと通信するハードウェアプロセッサと
を備え、
前記ハードウェアプロセッサは、
前記畳み込み層の入力活性化マップを受信することであって、前記入力活性化マップは、基本入力活性化マップレイアウトにおけるものである、ことと、
前記入力活性化マップのピクセル値を前記基本入力活性化マップレイアウトからインターリーブされた入力活性化マップレイアウトに並べ替えることであって、前記インターリーブされた入力活性化マップレイアウトは、入力活性化マップピクセルの複数のクラスタを備えている、ことと、
前記複数のカーネルタイルと前記入力活性化マップピクセルの複数のクラスタとから前記畳み込み層の出力活性化マップを決定することと
を行うための実行可能命令によってプログラムされており、
前記出力活性化マップは、インターリーブされた出力活性化マップレイアウトにおけるものであり、前記インターリーブされた出力活性化マップレイアウトは、複数のクラスタ出力活性化マップピクセルを備えている、システム。 - 前記カーネルスタックの前記カーネルの前記重み値は、
前記カーネルスタックの幅寸法に沿ってトラバースすることと、
前記カーネルスタックの高さ寸法に沿ってトラバースすることと、
前記カーネルスタックのカーネルの幅寸法に沿ってトラバースすることと、
前記カーネルスタックの前記カーネルの高さ寸法に沿ってトラバースすることと
を反復的に行うことによって、前記基本カーネルレイアウトから前記タイルカーネルレイアウトに並べ替えられる、請求項1に記載のシステム。 - 前記カーネルタイルの第1のカーネルランネルは、第1のカーネルスタック幅境界に対応し、前記カーネルタイルの最後のカーネルランネルは、前記第1のカーネルスタック幅境界の後続の第2のカーネルスタック幅境界に対応する、請求項1に記載のシステム。
- 前記入力活性化マップの前記ピクセル値を前記基本入力活性化マップレイアウトから前記インターリーブされた入力活性化マップレイアウトに並べ替えるために、前記ハードウェアプロセッサは、
いくつかの入力活性化マップの寸法に沿ってトラバースすることと、
入力活性化マップの幅寸法に沿ってトラバースすることと、
入力活性化マップの高さ寸法に沿ってトラバースすることと
を反復的に行うようにプログラムされている、請求項1に記載のシステム。 - 前記ハードウェアプロセッサは、前記出力活性化マップのピクセル値を前記インターリーブされた出力活性化マップレイアウトから基本出力活性化マップレイアウトに並べ替えるようにプログラムされている、請求項1に記載のシステム。
- 前記出力活性化マップの前記ピクセル値を前記インターリーブされた出力活性化マップから前記基本出力活性化マップレイアウトに並べ替えるために、前記ハードウェアプロセッサは、
前記インターリーブされた出力活性化マップの高さ寸法に沿ってトラバースし、その後に、前記インターリーブされた出力活性化マップの幅寸法に沿ってトラバースすること
を反復的に行うようにプログラムされている、請求項5に記載のシステム。 - 前記複数のカーネルタイルと前記入力活性化マップピクセルの複数のクラスタとから前記畳み込み層の前記出力活性化マップを決定するために、前記ハードウェアプロセッサは、前記複数のカーネルタイルおよび前記入力活性化マップピクセルの複数のクラスタにタイル毎に融合積和演算を実施するようにプログラムされている、請求項1−6のいずれか1項に記載のシステム。
- 前記複数のカーネルタイルおよび前記入力活性化マップピクセルの複数のクラスタにタイル毎に前記融合積和演算を実施することは、
各出力活性化マップピクセルに対して、
前記出力活性化マップピクセルの初期値をゼロの値に設定することと、
前記複数のカーネルタイルの各カーネルタイルの各カーネルランネルに対して、前記各カーネルランネル、前記カーネルランネルおよび前記出力活性化マップピクセルに対応する入力活性化マップピクセル、および前記出力活性化マップピクセルの前記初期値に融合積和演算を実施することと、
前記融合積和演算の結果を前記出力活性化マップピクセルに記憶することと
を反復的に行うことを含む、請求項7に記載のシステム。 - 前記複数のカーネルタイルおよび前記入力活性化マップピクセルの複数のクラスタにタイル毎に前記融合積和演算を実施するために、前記ハードウェアプロセッサは、
各出力活性化マップピクセルに対して、
前記出力活性化マップピクセルの初期値をゼロの値に設定することと、
前記複数のカーネルタイルの各カーネルタイルの各カーネルランネルに対して、前記各カーネルランネル、前記カーネルランネルおよび前記出力活性化マップピクセルに対応する少なくとも1つの入力活性化マップピクセル、および前記出力活性化マップピクセルの前記初期値に融合積和演算を実施することと、
前記融合積和演算の結果を前記出力活性化マップピクセルに記憶することと
を反復的に行うようにプログラムされている、請求項7に記載のシステム。 - 前記少なくとも1つの入力活性化マップピクセルは、2つの入力活性化マップピクセルを備えている、請求項9に記載のシステム。
- 前記カーネルランネルのビットでのサイズと入力活性化マップランネルのビットでのサイズとは、同一である、請求項1−6のいずれか1項に記載のシステム。
- 前記カーネルランネルのビットでの前記サイズと出力活性化マップランネルのビットでのサイズとは、同一である、請求項11に記載のシステム。
- 前記カーネルランネルのビットでの前記サイズと前記ハードウェアプロセッサのレジスタのビットでのサイズとは、同一である、請求項11に記載のシステム。
- 前記レジスタのサイズは、128ビットである、請求項13に記載のシステム。
- 前記ハードウェアプロセッサは、単一命令多重データプロセッサを備えている、請求項1−6のいずれか1項に記載のシステム。
- 前記単一命令多重データプロセッサは、ベクトルプロセッサを備えている、請求項15に記載のシステム。
- 前記基本カーネルレイアウトにおける前記カーネルスタックの前記カーネルは、複数のカーネルスタックチャネル内に配列され、
前記複数のカーネルスタックチャネルの数と前記入力活性化マップの数とは、同一であり、
カーネルスタックチャネルのカーネルの数と前記出力活性化マップの数とは、同一である、請求項1−6のいずれか1項に記載のシステム。 - 前記カーネルスタックのカーネルスタック幅と前記出力活性化マップの数とは、同一である、請求項1−6のいずれか1項に記載のシステム。
- 前記基本カーネルレイアウトにおける前記カーネルスタックの前記カーネルは、複数のカーネルスタックフィルタバンク内に配列され、
前記複数のカーネルスタックフィルタバンクの数と前記出力活性化マップの数とは、同一であり、
カーネルスタックフィルタバンクのカーネルの数と前記入力活性化マップの数とは、同一である、請求項1−6のいずれか1項に記載のシステム。 - 前記カーネルスタックのカーネルスタック高さと前記入力活性化マップの数とは、同一である、請求項1−6のいずれか1項に記載のシステム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021069508A JP7146999B2 (ja) | 2016-10-04 | 2021-04-16 | 畳み込みニューラルネットワークのための効率的データレイアウト |
| JP2022150055A JP7431913B2 (ja) | 2016-10-04 | 2022-09-21 | 畳み込みニューラルネットワークのための効率的データレイアウト |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201662403930P | 2016-10-04 | 2016-10-04 | |
| US62/403,930 | 2016-10-04 | ||
| PCT/US2017/054987 WO2018067603A1 (en) | 2016-10-04 | 2017-10-03 | Efficient data layouts for convolutional neural networks |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021069508A Division JP7146999B2 (ja) | 2016-10-04 | 2021-04-16 | 畳み込みニューラルネットワークのための効率的データレイアウト |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2019535079A JP2019535079A (ja) | 2019-12-05 |
| JP6872011B2 true JP6872011B2 (ja) | 2021-05-19 |
Family
ID=61758191
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2019517768A Active JP6872011B2 (ja) | 2016-10-04 | 2017-10-03 | 畳み込みニューラルネットワークのための効率的データレイアウト |
| JP2021069508A Active JP7146999B2 (ja) | 2016-10-04 | 2021-04-16 | 畳み込みニューラルネットワークのための効率的データレイアウト |
| JP2022150055A Active JP7431913B2 (ja) | 2016-10-04 | 2022-09-21 | 畳み込みニューラルネットワークのための効率的データレイアウト |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021069508A Active JP7146999B2 (ja) | 2016-10-04 | 2021-04-16 | 畳み込みニューラルネットワークのための効率的データレイアウト |
| JP2022150055A Active JP7431913B2 (ja) | 2016-10-04 | 2022-09-21 | 畳み込みニューラルネットワークのための効率的データレイアウト |
Country Status (9)
| Country | Link |
|---|---|
| US (3) | US10489680B2 (ja) |
| EP (1) | EP3523751A4 (ja) |
| JP (3) | JP6872011B2 (ja) |
| KR (1) | KR102216019B1 (ja) |
| CN (2) | CN116343319A (ja) |
| AU (2) | AU2017338783B2 (ja) |
| CA (1) | CA3038967A1 (ja) |
| IL (3) | IL293688B2 (ja) |
| WO (1) | WO2018067603A1 (ja) |
Families Citing this family (131)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105120130B (zh) * | 2015-09-17 | 2018-06-29 | 京东方科技集团股份有限公司 | 一种图像升频系统、其训练方法及图像升频方法 |
| KR102450441B1 (ko) | 2016-07-14 | 2022-09-30 | 매직 립, 인코포레이티드 | 홍채 식별을 위한 딥 뉴럴 네트워크 |
| JP6872011B2 (ja) | 2016-10-04 | 2021-05-19 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 畳み込みニューラルネットワークのための効率的データレイアウト |
| IE87469B1 (en) | 2016-10-06 | 2024-01-03 | Google Llc | Image processing neural networks with separable convolutional layers |
| KR102631381B1 (ko) * | 2016-11-07 | 2024-01-31 | 삼성전자주식회사 | 컨볼루션 신경망 처리 방법 및 장치 |
| CN110168477B (zh) | 2016-11-15 | 2022-07-08 | 奇跃公司 | 用于长方体检测的深度学习系统 |
| EP3424406A1 (en) * | 2016-11-22 | 2019-01-09 | Delphinium Clinic Ltd. | Method and system for classifying optic nerve head |
| IL266888B2 (en) | 2016-12-05 | 2024-05-01 | Magic Leap Inc | Virtual user input controls in a mixed reality environment |
| US11132619B1 (en) * | 2017-02-24 | 2021-09-28 | Cadence Design Systems, Inc. | Filtering in trainable networks |
| US11379688B2 (en) * | 2017-03-16 | 2022-07-05 | Packsize Llc | Systems and methods for keypoint detection with convolutional neural networks |
| CN117893680B (zh) | 2017-03-17 | 2025-04-29 | 奇跃公司 | 房间布局估计方法和技术 |
| KR102415508B1 (ko) * | 2017-03-28 | 2022-07-01 | 삼성전자주식회사 | 컨볼루션 신경망 처리 방법 및 장치 |
| US11164071B2 (en) * | 2017-04-18 | 2021-11-02 | Samsung Electronics Co., Ltd. | Method and apparatus for reducing computational complexity of convolutional neural networks |
| KR102301232B1 (ko) * | 2017-05-31 | 2021-09-10 | 삼성전자주식회사 | 다채널 특징맵 영상을 처리하는 방법 및 장치 |
| KR102666475B1 (ko) | 2017-07-26 | 2024-05-21 | 매직 립, 인코포레이티드 | 사용자 인터페이스 디바이스들의 표현들을 이용한 뉴럴 네트워크 트레이닝 |
| CN107506350B (zh) * | 2017-08-16 | 2024-08-02 | 京东方科技集团股份有限公司 | 一种识别信息的方法和设备 |
| US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
| US11114138B2 (en) | 2017-09-15 | 2021-09-07 | Groq, Inc. | Data structures with multiple read ports |
| US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
| US11868804B1 (en) | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
| KR102753299B1 (ko) | 2017-09-20 | 2025-01-10 | 매직 립, 인코포레이티드 | 눈 추적을 위한 개인화된 뉴럴 네트워크 |
| US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
| US10049323B1 (en) * | 2017-10-13 | 2018-08-14 | StradVision, Inc. | Method and device for performing activation and convolution operation at the same time and learning method and learning device for the same |
| US10083375B1 (en) * | 2017-10-13 | 2018-09-25 | StradVision, Inc. | Method and device for performing activation and convolution operation at the same time and learning method and learning device for the same |
| CA3078530A1 (en) | 2017-10-26 | 2019-05-02 | Magic Leap, Inc. | Gradient normalization systems and methods for adaptive loss balancing in deep multitask networks |
| US10902318B2 (en) * | 2017-11-06 | 2021-01-26 | Neuralmagic Inc. | Methods and systems for improved transforms in convolutional neural networks |
| CN107895174B (zh) * | 2017-11-09 | 2020-01-07 | 京东方科技集团股份有限公司 | 图像分类和转换方法、装置以及图像处理系统 |
| US20190156214A1 (en) | 2017-11-18 | 2019-05-23 | Neuralmagic Inc. | Systems and methods for exchange of data in distributed training of machine learning algorithms |
| US20190164037A1 (en) * | 2017-11-29 | 2019-05-30 | Electronics And Telecommunications Research Institute | Apparatus for processing convolutional neural network using systolic array and method thereof |
| US11373088B2 (en) | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
| WO2019154511A1 (en) | 2018-02-09 | 2019-08-15 | Pupil Labs Gmbh | Devices, systems and methods for predicting gaze-related parameters using a neural network |
| US11194161B2 (en) | 2018-02-09 | 2021-12-07 | Pupil Labs Gmbh | Devices, systems and methods for predicting gaze-related parameters |
| EP3749172B2 (en) * | 2018-02-09 | 2025-01-01 | Pupil Labs GmbH | Devices, systems and methods for predicting gaze-related parameters |
| US10990650B1 (en) * | 2018-03-22 | 2021-04-27 | Amazon Technologies, Inc. | Reducing computations for data including padding |
| US20190303757A1 (en) * | 2018-03-29 | 2019-10-03 | Mediatek Inc. | Weight skipping deep learning accelerator |
| US11948073B2 (en) | 2018-04-20 | 2024-04-02 | Advanced Micro Devices, Inc. | Machine learning inference engine scalability |
| WO2019220692A1 (ja) * | 2018-05-15 | 2019-11-21 | 三菱電機株式会社 | 演算装置 |
| US11449363B2 (en) | 2018-05-31 | 2022-09-20 | Neuralmagic Inc. | Systems and methods for improved neural network execution |
| US10832133B2 (en) | 2018-05-31 | 2020-11-10 | Neuralmagic Inc. | System and method of executing neural networks |
| US12033065B2 (en) * | 2018-06-04 | 2024-07-09 | Lightmatter, Inc. | Convolutional layers for neural networks using programmable nanophotonics |
| US11615300B1 (en) * | 2018-06-13 | 2023-03-28 | Xilinx, Inc. | System and method for implementing neural networks in integrated circuits |
| US12099912B2 (en) | 2018-06-22 | 2024-09-24 | Samsung Electronics Co., Ltd. | Neural processor |
| CN108985450B (zh) * | 2018-06-28 | 2019-10-29 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
| CN109002796B (zh) * | 2018-07-16 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 一种图像采集方法、装置和系统以及电子设备 |
| CN109063749B (zh) * | 2018-07-17 | 2021-06-18 | 山东科技大学 | 一种基于角点辐射域的鲁棒卷积核数量适配方法 |
| CN109063822B (zh) * | 2018-07-19 | 2023-04-07 | 郑州云海信息技术有限公司 | 一种计算方法及计算装置 |
| KR102727597B1 (ko) * | 2018-07-19 | 2024-11-07 | 삼성전자주식회사 | 딥 러닝용 데이터 표현 관리 방법, 딥 러닝용 데이터 처리 방법 및 이를 수행하는 딥 러닝 시스템 |
| JP7020555B2 (ja) * | 2018-08-07 | 2022-02-16 | 日本電気株式会社 | 情報処理装置、情報処理方法、及びプログラム |
| US11836971B2 (en) * | 2018-08-23 | 2023-12-05 | Samsung Electronics Co., Ltd. | Method and device with convolution neural network processing |
| WO2020046859A1 (en) | 2018-08-27 | 2020-03-05 | Neuralmagic Inc. | Systems and methods for neural network convolutional layer matrix multiplication using cache memory |
| US11562231B2 (en) * | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
| US12340300B1 (en) | 2018-09-14 | 2025-06-24 | Groq, Inc. | Streaming processor architecture |
| US11455370B2 (en) | 2018-11-19 | 2022-09-27 | Groq, Inc. | Flattened input stream generation for convolution with expanded kernel |
| US10282864B1 (en) * | 2018-09-17 | 2019-05-07 | StradVision, Inc. | Method and device for encoding image and testing method and testing device using the same |
| CN110968832B (zh) * | 2018-09-29 | 2023-10-20 | 华为技术有限公司 | 一种数据处理方法和装置 |
| US11636343B2 (en) | 2018-10-01 | 2023-04-25 | Neuralmagic Inc. | Systems and methods for neural network pruning with accuracy preservation |
| US12111878B2 (en) | 2018-10-12 | 2024-10-08 | International Business Machines Corporation | Efficient processing of convolutional neural network layers using analog-memory-based hardware |
| WO2020087072A1 (en) | 2018-10-26 | 2020-04-30 | Tensil AI Company | Method and apparatus for compiling computation graphs into an integrated circuit |
| US11769041B2 (en) | 2018-10-31 | 2023-09-26 | Advanced Micro Devices, Inc. | Low latency long short-term memory inference with sequence interleaving |
| CN109657538B (zh) * | 2018-11-05 | 2021-04-27 | 中国科学院计算技术研究所 | 基于上下文信息指导的场景分割方法和系统 |
| US11494645B2 (en) * | 2018-12-06 | 2022-11-08 | Egis Technology Inc. | Convolutional neural network processor and data processing method thereof |
| US11042611B2 (en) * | 2018-12-10 | 2021-06-22 | XNOR.ai, Inc. | Digital watermarking of machine-learning models |
| CN111353575B (zh) | 2018-12-20 | 2025-01-10 | 超威半导体公司 | 用于卷积神经网络的图块化格式 |
| US11544559B2 (en) | 2019-01-08 | 2023-01-03 | Neuralmagic Inc. | System and method for executing convolution in a neural network |
| WO2020160653A1 (en) * | 2019-02-06 | 2020-08-13 | Lei Zhang | Method and system for convolution model hardware accelerator |
| US11341210B2 (en) | 2019-02-15 | 2022-05-24 | Apple Inc. | Two-dimensional multi-layer convolution for deep learning |
| US11983624B2 (en) | 2019-03-18 | 2024-05-14 | Advanced Micro Devices, Inc. | Auto generation and tuning tool for convolution kernels |
| CN111767204B (zh) * | 2019-04-02 | 2024-05-28 | 杭州海康威视数字技术股份有限公司 | 溢出风险检测方法、装置及设备 |
| US11671111B2 (en) | 2019-04-17 | 2023-06-06 | Samsung Electronics Co., Ltd. | Hardware channel-parallel data compression/decompression |
| KR102856186B1 (ko) * | 2019-04-17 | 2025-09-05 | 삼성전자주식회사 | 뉴럴 프로세서 |
| US11410016B2 (en) | 2019-04-26 | 2022-08-09 | Alibaba Group Holding Limited | Selective performance of deterministic computations for neural networks |
| US11880760B2 (en) | 2019-05-01 | 2024-01-23 | Samsung Electronics Co., Ltd. | Mixed-precision NPU tile with depth-wise convolution |
| US12182577B2 (en) | 2019-05-01 | 2024-12-31 | Samsung Electronics Co., Ltd. | Neural-processing unit tile for shuffling queued nibbles for multiplication with non-zero weight nibbles |
| CN110210321B (zh) * | 2019-05-08 | 2020-11-24 | 华南理工大学 | 基于多维尺度变换网络与分块加权法的欠样本人脸识别方法 |
| CN110147788B (zh) * | 2019-05-27 | 2021-09-21 | 东北大学 | 一种基于特征增强crnn的金属板带产品标签文字识别方法 |
| WO2020244752A1 (en) | 2019-06-05 | 2020-12-10 | Pupil Labs Gmbh | Devices, systems and methods for predicting gaze-related parameters |
| EP3987380B1 (en) | 2019-06-18 | 2024-10-16 | Pupil Labs GmbH | Systems and methods for determining one or more parameters of a user's eye |
| JP2020205003A (ja) * | 2019-06-19 | 2020-12-24 | キオクシア株式会社 | メモリシステム、メモリコントローラ、及び半導体記憶装置 |
| TWI719512B (zh) * | 2019-06-24 | 2021-02-21 | 瑞昱半導體股份有限公司 | 使用像素通道置亂的卷積神經網路的演算方法與系統 |
| US11568238B2 (en) * | 2019-06-28 | 2023-01-31 | Amazon Technologies, Inc. | Dynamic processing element array expansion |
| CN112183711B (zh) * | 2019-07-01 | 2023-09-12 | 瑞昱半导体股份有限公司 | 使用像素通道置乱的卷积神经网络的演算方法与系统 |
| WO2021026225A1 (en) | 2019-08-08 | 2021-02-11 | Neuralmagic Inc. | System and method of accelerating execution of a neural network |
| US11354123B2 (en) | 2019-10-18 | 2022-06-07 | Macronix International Co., Ltd. | Memory device and computing in memory method thereof |
| US11475283B2 (en) * | 2019-10-24 | 2022-10-18 | Apple Inc. | Multi dimensional convolution in neural network processor |
| KR20210051920A (ko) * | 2019-10-31 | 2021-05-10 | 삼성전자주식회사 | 신경망의 커널들을 정렬하는 전자 장치 및 이의 동작 방법 |
| CN114667534B (zh) * | 2019-11-14 | 2026-02-10 | 华为技术有限公司 | 使用自注意力的图像处理 |
| KR102785402B1 (ko) | 2019-12-06 | 2025-03-21 | 삼성전자주식회사 | 뉴럴 네트워크의 행렬 곱셈 연산을 수행하는 장치 및 방법 |
| CN112927174B (zh) * | 2019-12-06 | 2024-05-03 | 阿里巴巴集团控股有限公司 | 一种图像处理,图像训练以通道混洗方法和装置 |
| US12112141B2 (en) | 2019-12-12 | 2024-10-08 | Samsung Electronics Co., Ltd. | Accelerating 2D convolutional layer mapping on a dot product architecture |
| KR102268817B1 (ko) * | 2019-12-19 | 2021-06-24 | 국민대학교산학협력단 | 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치 |
| KR102157007B1 (ko) * | 2019-12-31 | 2020-09-16 | 연세대학교 산학협력단 | 객체 인식을 위한 자가 학습 장치 및 방법 |
| CN111222561B (zh) * | 2019-12-31 | 2023-06-09 | 深圳云天励飞技术股份有限公司 | 图像识别神经网络处理方法、装置与系统 |
| US11687778B2 (en) | 2020-01-06 | 2023-06-27 | The Research Foundation For The State University Of New York | Fakecatcher: detection of synthetic portrait videos using biological signals |
| US12566958B2 (en) | 2020-01-14 | 2026-03-03 | Red Hat, Inc. | System and method of training a neural network |
| DE102020201182A1 (de) * | 2020-01-31 | 2021-08-05 | Robert Bosch Gesellschaft mit beschränkter Haftung | Hardwarebeschleunigte Berechnung von Faltungen |
| US12554987B2 (en) | 2020-02-14 | 2026-02-17 | Northeastern University | Computer-implemented methods and systems for DNN weight pruning for real-time execution on mobile devices |
| 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 |
| WO2021164867A1 (en) | 2020-02-19 | 2021-08-26 | Pupil Labs Gmbh | Eye tracking module and head-wearable device |
| KR20210112834A (ko) * | 2020-03-06 | 2021-09-15 | 삼성전자주식회사 | 뉴럴 네트워크 내 레이어에 관한 컨볼루션 연산의 처리 방법 및 장치 |
| US11494208B2 (en) * | 2020-03-17 | 2022-11-08 | Onspecta, Inc. | Multiformat data generation for neural network |
| US11620503B2 (en) * | 2020-03-18 | 2023-04-04 | Arm Limited | Neural network processing |
| CN113469360B (zh) * | 2020-03-31 | 2023-10-20 | 杭州海康威视数字技术股份有限公司 | 推理方法及装置 |
| US11687764B2 (en) * | 2020-04-17 | 2023-06-27 | Samsung Electronics Co., Ltd. | System and method for increasing utilization of dot-product based neural network accelerator |
| CN111626569B (zh) * | 2020-05-06 | 2023-06-13 | 云南电网有限责任公司怒江供电局 | 微电网群电力能源交易方法 |
| US12530573B1 (en) | 2020-05-19 | 2026-01-20 | Red Hat, Inc. | Efficient execution of group-sparsified neural networks |
| US11562240B2 (en) | 2020-05-27 | 2023-01-24 | International Business Machines Corporation | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference |
| GB2595696B (en) * | 2020-06-04 | 2022-12-28 | Envisics Ltd | Forming a hologram of a target image for projection using data streaming |
| US12124469B1 (en) * | 2020-06-11 | 2024-10-22 | The Math Works, Inc. | Systems and methods for data layout selection |
| KR20220011090A (ko) | 2020-07-20 | 2022-01-27 | 펄스나인 주식회사 | 이미지 변환 성능 개선을 위한 시각화 맵 분석 방법 |
| US11861337B2 (en) * | 2020-08-26 | 2024-01-02 | Micron Technology, Inc. | Deep neural networks compiler for a trace-based accelerator |
| WO2022109610A1 (en) * | 2020-11-20 | 2022-05-27 | Ephesoft Inc. | Adaptive filter generator, identifying lines and table morphology |
| US11556757B1 (en) | 2020-12-10 | 2023-01-17 | Neuralmagic Ltd. | System and method of executing deep tensor columns in neural networks |
| US11971949B2 (en) * | 2020-12-21 | 2024-04-30 | Samsung Electronics Co., Ltd. | Flexible-access instructions for efficient access of ML data |
| KR102649283B1 (ko) * | 2021-02-22 | 2024-03-18 | 건국대학교 산학협력단 | 임베디드 플랫폼을 위한 심층신경망 최적화 장치 및 방법 |
| KR102876308B1 (ko) | 2021-02-25 | 2025-10-24 | 삼성전자주식회사 | 메모리 매핑 방법 및 장치 |
| CN112596684B (zh) | 2021-03-08 | 2021-06-22 | 成都启英泰伦科技有限公司 | 一种用于语音深度神经网络运算的数据存储方法 |
| JP7420100B2 (ja) * | 2021-03-15 | 2024-01-23 | オムロン株式会社 | 処理装置、処理方法、およびプログラム |
| US11263170B1 (en) | 2021-03-29 | 2022-03-01 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—padding before tiling, location-based tiling, and zeroing-out |
| US11195080B1 (en) | 2021-03-29 | 2021-12-07 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—tiling configuration |
| US11250061B1 (en) | 2021-03-29 | 2022-02-15 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—read-modify-write in backward pass |
| US11227207B1 (en) | 2021-03-29 | 2022-01-18 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—section boundaries |
| CN112990370B (zh) * | 2021-04-26 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 图像数据的处理方法和装置、存储介质及电子设备 |
| CN113313787B (zh) * | 2021-05-31 | 2023-11-07 | 上海阵量智能科技有限公司 | 一种数据处理方法、装置、计算机设备和存储介质 |
| US12050800B2 (en) | 2021-07-01 | 2024-07-30 | Samsung Electronics Co., Ltd. | Systems and methods for reordering data in a storage device based on data access patterns |
| WO2023002843A1 (ja) | 2021-07-21 | 2023-01-26 | 富士フイルム株式会社 | 検査用カートリッジ及び検査用ストリップの製造方法 |
| KR102871424B1 (ko) * | 2021-09-17 | 2025-10-15 | 삼성전자주식회사 | 뉴럴 네트워크 연산 방법 및 장치 |
| US20230103750A1 (en) * | 2021-10-06 | 2023-04-06 | Mediatek Inc. | Balancing workload for zero skipping on deep learning accelerator |
| US11960982B1 (en) | 2021-10-21 | 2024-04-16 | Neuralmagic, Inc. | System and method of determining and executing deep tensor columns in neural networks |
| KR102859218B1 (ko) * | 2021-12-30 | 2025-09-15 | 서경대학교 산학협력단 | 딥러닝에 효과적인 simt 구조를 갖는 gpu |
| US11934686B2 (en) * | 2022-04-18 | 2024-03-19 | Micron Technology, Inc. | Data reordering at a memory subsystem |
| WO2025170567A1 (en) * | 2024-02-05 | 2025-08-14 | Google Llc | Resequencing feature map channels using sparsity information |
Family Cites Families (81)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5291560A (en) | 1991-07-15 | 1994-03-01 | Iri Scan Incorporated | Biometric personal identification system based on iris analysis |
| US6222525B1 (en) | 1992-03-05 | 2001-04-24 | Brad A. Armstrong | Image controllers with sheet connected sensors |
| US5583795A (en) | 1995-03-17 | 1996-12-10 | The United States Of America As Represented By The Secretary Of The Army | Apparatus for measuring eye gaze and fixation duration, and method therefor |
| US5670988A (en) | 1995-09-05 | 1997-09-23 | Interlink Electronics, Inc. | Trigger operated electronic device |
| US7685212B2 (en) | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
| EP1483909B1 (en) | 2002-03-13 | 2010-04-28 | Imax Corporation | Systems and methods for digitally re-mastering or otherwise modifying motion pictures or other image sequences data |
| US8098901B2 (en) | 2005-01-26 | 2012-01-17 | Honeywell International Inc. | Standoff iris recognition system |
| KR20050025927A (ko) | 2003-09-08 | 2005-03-14 | 유웅덕 | 홍채인식을 위한 동공 검출 방법 및 형상기술자 추출방법과 그를 이용한 홍채 특징 추출 장치 및 그 방법과홍채인식 시스템 및 그 방법 |
| US7248720B2 (en) | 2004-10-21 | 2007-07-24 | Retica Systems, Inc. | Method and system for generating a combined retina/iris pattern biometric |
| US7747070B2 (en) * | 2005-08-31 | 2010-06-29 | Microsoft Corporation | Training convolutional neural networks on graphics processing units |
| US8696113B2 (en) | 2005-10-07 | 2014-04-15 | Percept Technologies Inc. | Enhanced optical and perceptual digital eyewear |
| US20070081123A1 (en) | 2005-10-07 | 2007-04-12 | Lewis Scott W | Digital eyewear |
| US11428937B2 (en) | 2005-10-07 | 2022-08-30 | Percept Technologies | Enhanced optical and perceptual digital eyewear |
| US7634137B2 (en) * | 2005-10-14 | 2009-12-15 | Microsoft Corporation | Unfolded convolution for fast feature extraction |
| JP4824420B2 (ja) | 2006-02-07 | 2011-11-30 | アイテック株式会社 | 視線ベクトル検出方法及び同装置 |
| US7970179B2 (en) | 2006-09-25 | 2011-06-28 | Identix Incorporated | Iris data extraction |
| US8363783B2 (en) | 2007-06-04 | 2013-01-29 | Oraya Therapeutics, Inc. | Method and device for ocular alignment and coupling of ocular structures |
| JP5368687B2 (ja) * | 2007-09-26 | 2013-12-18 | キヤノン株式会社 | 演算処理装置および方法 |
| US8098891B2 (en) | 2007-11-29 | 2012-01-17 | Nec Laboratories America, Inc. | Efficient multi-hypothesis multi-human 3D tracking in crowded scenes |
| WO2010003044A2 (en) | 2008-07-03 | 2010-01-07 | Nec Laboratories America, Inc. | Epithelial layer detector and related methods |
| JP5376920B2 (ja) * | 2008-12-04 | 2013-12-25 | キヤノン株式会社 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
| US8768014B2 (en) | 2009-01-14 | 2014-07-01 | Indiana University Research And Technology Corp. | System and method for identifying a person with reference to a sclera image |
| WO2010116908A1 (ja) | 2009-03-28 | 2010-10-14 | Hoya株式会社 | 磁気ディスク用潤滑剤化合物及び磁気ディスク |
| AU2011207402B2 (en) | 2010-01-22 | 2015-01-29 | Amo Development, Llc | Apparatus for automated placement of scanned laser capsulorhexis incisions |
| US8345984B2 (en) | 2010-01-28 | 2013-01-01 | Nec Laboratories America, Inc. | 3D convolutional neural networks for automatic human action recognition |
| US9304319B2 (en) | 2010-11-18 | 2016-04-05 | Microsoft Technology Licensing, Llc | Automatic focus improvement for augmented reality displays |
| US10156722B2 (en) | 2010-12-24 | 2018-12-18 | Magic Leap, Inc. | Methods and systems for displaying stereoscopy with a freeform optical system with addressable focus for virtual and augmented reality |
| CN103688208B (zh) | 2010-12-24 | 2017-06-06 | 奇跃公司 | 人体工程学头戴式显示设备和光学系统 |
| CN107656615B (zh) | 2011-05-06 | 2021-09-14 | 奇跃公司 | 大量同时远程数字呈现世界 |
| US10078620B2 (en) * | 2011-05-27 | 2018-09-18 | New York University | Runtime reconfigurable dataflow processor with multi-port memory access module |
| EP2760363A4 (en) | 2011-09-29 | 2015-06-24 | Magic Leap Inc | TACTILE GLOVE FOR HUMAN COMPUTER INTERACTION |
| KR101944846B1 (ko) | 2011-10-28 | 2019-02-01 | 매직 립, 인코포레이티드 | 증강 및 가상 현실을 위한 시스템 및 방법 |
| EP4036862A1 (en) | 2011-11-23 | 2022-08-03 | Magic Leap, Inc. | Three dimensional virtual and augmented reality display system |
| EP3608717B1 (en) | 2012-04-05 | 2023-09-27 | Magic Leap, Inc. | Wide-field of view (fov) imaging devices with active foveation capability |
| US9671566B2 (en) | 2012-06-11 | 2017-06-06 | Magic Leap, Inc. | Planar waveguide apparatus with diffraction element(s) and system employing same |
| US9310559B2 (en) | 2012-06-11 | 2016-04-12 | Magic Leap, Inc. | Multiple depth plane three-dimensional display using a wave guide reflector array projector |
| US9141916B1 (en) | 2012-06-29 | 2015-09-22 | Google Inc. | Using embedding functions with a deep network |
| CA2870751C (en) | 2012-07-31 | 2015-08-18 | Japan Science And Technology Agency | Point-of-gaze detection device, point-of-gaze detecting method, personal parameter calculating device, personal parameter calculating method, program, and computer-readable storage medium |
| US8369595B1 (en) | 2012-08-10 | 2013-02-05 | EyeVerify LLC | Texture features for biometric authentication |
| EP2895910A4 (en) | 2012-09-11 | 2016-04-20 | Magic Leap Inc | ERGONOMIC HEAD-MOUNTED DISPLAY DEVICE AND OPTICAL SYSTEM |
| IL283193B (en) | 2013-01-15 | 2022-08-01 | Magic Leap Inc | A system for scanning electromagnetic imaging radiation |
| CA3157218A1 (en) | 2013-03-11 | 2014-10-09 | Magic Leap, Inc. | System and method for augmented and virtual reality |
| US9147154B2 (en) | 2013-03-13 | 2015-09-29 | Google Inc. | Classifying resources using a deep network |
| NZ735755A (en) | 2013-03-15 | 2019-04-26 | Magic Leap Inc | Display system and method |
| WO2014182769A1 (en) | 2013-05-07 | 2014-11-13 | The Johns Hopkins University | Automated and non-mydriatic fundus-perimetry camera for irreversible eye diseases |
| US9275308B2 (en) | 2013-05-31 | 2016-03-01 | Google Inc. | Object detection using deep neural networks |
| US9874749B2 (en) | 2013-11-27 | 2018-01-23 | Magic Leap, Inc. | Virtual and augmented reality systems and methods |
| US10262462B2 (en) | 2014-04-18 | 2019-04-16 | Magic Leap, Inc. | Systems and methods for augmented and virtual reality |
| US20140380249A1 (en) | 2013-06-25 | 2014-12-25 | Apple Inc. | Visual recognition of gestures |
| CN103431840B (zh) | 2013-07-31 | 2016-01-20 | 北京智谷睿拓技术服务有限公司 | 眼睛光学参数检测系统及方法 |
| KR102341870B1 (ko) | 2013-10-16 | 2021-12-20 | 매직 립, 인코포레이티드 | 조절가능한 동공간 거리를 가지는 가상 또는 증강 현실 헤드셋들 |
| US9202144B2 (en) | 2013-10-30 | 2015-12-01 | Nec Laboratories America, Inc. | Regionlets with shift invariant neural patterns for object detection |
| US10095917B2 (en) | 2013-11-04 | 2018-10-09 | Facebook, Inc. | Systems and methods for facial representation |
| JP6236296B2 (ja) | 2013-11-14 | 2017-11-22 | 株式会社デンソーアイティーラボラトリ | 学習装置、学習プログラム、及び学習方法 |
| US9857591B2 (en) | 2014-05-30 | 2018-01-02 | Magic Leap, Inc. | Methods and system for creating focal planes in virtual and augmented reality |
| KR102268462B1 (ko) | 2013-11-27 | 2021-06-22 | 매직 립, 인코포레이티드 | 가상 및 증강 현실 시스템들 및 방법들 |
| US9430829B2 (en) * | 2014-01-30 | 2016-08-30 | Case Western Reserve University | Automatic detection of mitosis using handcrafted and convolutional neural network features |
| US10386636B2 (en) | 2014-01-31 | 2019-08-20 | Magic Leap, Inc. | Multi-focal display system and method |
| WO2015117043A1 (en) | 2014-01-31 | 2015-08-06 | Magic Leap, Inc. | Multi-focal display system and method |
| US10203762B2 (en) | 2014-03-11 | 2019-02-12 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
| IL231862A (en) | 2014-04-01 | 2015-04-30 | Superfish Ltd | Image representation using a neural network |
| WO2015164807A1 (en) | 2014-04-25 | 2015-10-29 | Texas State University | Detection of brain injury and subject state with eye movement biometrics |
| JP6314628B2 (ja) * | 2014-04-28 | 2018-04-25 | 株式会社デンソー | 演算処理装置 |
| US9373059B1 (en) * | 2014-05-05 | 2016-06-21 | Atomwise Inc. | Systems and methods for applying a convolutional network to spatial data |
| WO2016018488A2 (en) | 2014-05-09 | 2016-02-04 | Eyefluence, Inc. | Systems and methods for discerning eye signals and continuous biometric identification |
| NZ727350A (en) | 2014-05-30 | 2020-08-28 | Magic Leap Inc | Methods and systems for generating virtual content display with a virtual or augmented reality apparatus |
| US9536293B2 (en) | 2014-07-30 | 2017-01-03 | Adobe Systems Incorporated | Image assessment using deep convolutional neural networks |
| US20160034811A1 (en) | 2014-07-31 | 2016-02-04 | Apple Inc. | Efficient generation of complementary acoustic models for performing automatic speech recognition system combination |
| US10223333B2 (en) * | 2014-08-29 | 2019-03-05 | Nvidia Corporation | Performing multi-convolution operations in a parallel processing system |
| US9659384B2 (en) | 2014-10-03 | 2017-05-23 | EyeEm Mobile GmbH. | Systems, methods, and computer program products for searching and sorting images by aesthetic quality |
| CN105917354A (zh) | 2014-10-09 | 2016-08-31 | 微软技术许可有限责任公司 | 用于图像处理的空间金字塔池化网络 |
| CN105981051B (zh) | 2014-10-10 | 2019-02-19 | 北京旷视科技有限公司 | 用于图像解析的分层互连多尺度卷积网络 |
| US10650508B2 (en) * | 2014-12-03 | 2020-05-12 | Kla-Tencor Corporation | Automatic defect classification without sampling and feature selection |
| KR102276339B1 (ko) * | 2014-12-09 | 2021-07-12 | 삼성전자주식회사 | Cnn의 근사화를 위한 학습 장치 및 방법 |
| USD758367S1 (en) | 2015-05-14 | 2016-06-07 | Magic Leap, Inc. | Virtual reality headset |
| KR102812176B1 (ko) | 2015-08-21 | 2025-05-22 | 매직 립, 인코포레이티드 | 눈 포즈 측정을 사용한 눈꺼풀 형상 추정 |
| JP6917444B2 (ja) | 2016-07-14 | 2021-08-11 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 角膜曲率を用いた虹彩境界推定 |
| KR102450441B1 (ko) | 2016-07-14 | 2022-09-30 | 매직 립, 인코포레이티드 | 홍채 식별을 위한 딥 뉴럴 네트워크 |
| JP6872011B2 (ja) | 2016-10-04 | 2021-05-19 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 畳み込みニューラルネットワークのための効率的データレイアウト |
| US10325342B2 (en) | 2017-04-27 | 2019-06-18 | Apple Inc. | Convolution engine for merging interleaved channel data |
| KR102034659B1 (ko) * | 2017-07-31 | 2019-10-21 | 서울대학교산학협력단 | 컨볼루션 뉴럴 네트워크를 위한 하드웨어 가속기 및 컨볼루션 연산량 감소 방법 |
-
2017
- 2017-10-03 JP JP2019517768A patent/JP6872011B2/ja active Active
- 2017-10-03 CN CN202310325629.2A patent/CN116343319A/zh active Pending
- 2017-10-03 IL IL293688A patent/IL293688B2/en unknown
- 2017-10-03 CN CN201780073892.XA patent/CN110073359B/zh active Active
- 2017-10-03 US US15/724,142 patent/US10489680B2/en active Active
- 2017-10-03 EP EP17859043.6A patent/EP3523751A4/en not_active Ceased
- 2017-10-03 CA CA3038967A patent/CA3038967A1/en active Pending
- 2017-10-03 IL IL281321A patent/IL281321B/en unknown
- 2017-10-03 WO PCT/US2017/054987 patent/WO2018067603A1/en not_active Ceased
- 2017-10-03 KR KR1020197012230A patent/KR102216019B1/ko active Active
- 2017-10-03 AU AU2017338783A patent/AU2017338783B2/en active Active
-
2019
- 2019-03-31 IL IL265720A patent/IL265720B/en active IP Right Grant
- 2019-11-11 US US16/680,335 patent/US11182645B2/en active Active
-
2021
- 2021-04-16 JP JP2021069508A patent/JP7146999B2/ja active Active
- 2021-11-19 US US17/455,863 patent/US11720800B2/en active Active
-
2022
- 2022-04-27 AU AU2022202762A patent/AU2022202762A1/en not_active Abandoned
- 2022-09-21 JP JP2022150055A patent/JP7431913B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US20200082215A1 (en) | 2020-03-12 |
| KR20190062481A (ko) | 2019-06-05 |
| EP3523751A1 (en) | 2019-08-14 |
| JP2019535079A (ja) | 2019-12-05 |
| WO2018067603A1 (en) | 2018-04-12 |
| US20220076056A1 (en) | 2022-03-10 |
| CA3038967A1 (en) | 2018-04-12 |
| CN116343319A (zh) | 2023-06-27 |
| JP2021120871A (ja) | 2021-08-19 |
| AU2022202762A1 (en) | 2022-05-19 |
| US20180096226A1 (en) | 2018-04-05 |
| IL293688B2 (en) | 2024-02-01 |
| JP7146999B2 (ja) | 2022-10-04 |
| US11182645B2 (en) | 2021-11-23 |
| AU2017338783B2 (en) | 2022-02-10 |
| IL293688B1 (en) | 2023-10-01 |
| IL265720B (en) | 2021-03-25 |
| IL281321A (en) | 2021-04-29 |
| KR102216019B1 (ko) | 2021-02-15 |
| IL265720A (en) | 2019-05-30 |
| IL281321B (en) | 2022-07-01 |
| JP2022171926A (ja) | 2022-11-11 |
| AU2017338783A1 (en) | 2019-04-18 |
| CN110073359A (zh) | 2019-07-30 |
| EP3523751A4 (en) | 2020-05-06 |
| CN110073359B (zh) | 2023-04-04 |
| US11720800B2 (en) | 2023-08-08 |
| US10489680B2 (en) | 2019-11-26 |
| JP7431913B2 (ja) | 2024-02-15 |
| IL293688A (en) | 2022-08-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6872011B2 (ja) | 畳み込みニューラルネットワークのための効率的データレイアウト | |
| JP7385681B2 (ja) | 手姿勢推定 | |
| JP7329533B2 (ja) | 演算を加速するための方法および加速器装置 | |
| JP7358382B2 (ja) | 演算を加速するための加速器及びシステム | |
| EP3664093A1 (en) | Semiconductor memory device employing processing in memory (pim) and method of operating the semiconductor memory device | |
| CN112840356A (zh) | 运算加速器、处理方法及相关设备 | |
| CN107239824A (zh) | 用于实现稀疏卷积神经网络加速器的装置和方法 | |
| JP6955598B2 (ja) | 複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体 | |
| KR20180107869A (ko) | 머신 러닝을 수행하는 전자 장치 및 머신 러닝 수행 방법 | |
| CN115803754A (zh) | 用于在神经网络中处理数据的硬件架构 | |
| CN118152713B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
| CN110796236B (zh) | 多样本多通道卷积神经网络池化的向量化实现方法 | |
| CN108596865A (zh) | 一种用于卷积神经网络的特征图增强系统及方法 | |
| CN110533177B (zh) | 一种数据读写装置、方法、设备、介质及卷积加速器 | |
| CN118426989A (zh) | 人工智能模型的优化方法、电子设备与存储介质 | |
| CN120874928B (zh) | 应用于量化神经网络卷积层的可变精度计算单元的设计方法及使用方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201002 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20201002 |
|
| A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20201022 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201203 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210303 |
|
| 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: 20210318 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210416 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6872011 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
