JP7146999B2 - 畳み込みニューラルネットワークのための効率的データレイアウト - Google Patents
畳み込みニューラルネットワークのための効率的データレイアウト Download PDFInfo
- Publication number
- JP7146999B2 JP7146999B2 JP2021069508A JP2021069508A JP7146999B2 JP 7146999 B2 JP7146999 B2 JP 7146999B2 JP 2021069508 A JP2021069508 A JP 2021069508A JP 2021069508 A JP2021069508 A JP 2021069508A JP 7146999 B2 JP7146999 B2 JP 7146999B2
- Authority
- JP
- Japan
- Prior art keywords
- kernel
- activation map
- input activation
- layout
- 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
- 238000013527 convolutional neural network Methods 0.000 title claims description 124
- 230000004913 activation Effects 0.000 claims description 690
- 238000000034 method Methods 0.000 claims description 173
- 230000009471 action Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 37
- 238000012545 processing Methods 0.000 description 37
- 239000011159 matrix material Substances 0.000 description 34
- 238000007667 floating Methods 0.000 description 19
- 239000013598 vector Substances 0.000 description 19
- 230000006870 function Effects 0.000 description 18
- 238000010801 machine learning Methods 0.000 description 13
- 238000003709 image segmentation Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000011176 pooling Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000010606 normalization Methods 0.000 description 6
- 230000010076 replication Effects 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 230000003362 replicative effect Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 241000256837 Apidae Species 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 210000000613 ear canal Anatomy 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004424 eye movement Effects 0.000 description 2
- 210000000744 eyelid Anatomy 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 210000003050 axon Anatomy 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000003925 brain function Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 210000004709 eyebrow Anatomy 0.000 description 1
- 210000000720 eyelash Anatomy 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 1
- 210000005171 mammalian brain Anatomy 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 210000003786 sclera Anatomy 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 210000003491 skin Anatomy 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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
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’において、出力活性化マップにoutp
ut_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’において、出力活性化マップにoutp
ut_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)
- 1つ以上のプロセッサのシステムによって実装される方法であって、前記方法は、
畳み込みニューラルネットワークの畳み込み層を受信することであって、前記畳み込み層は、カーネルスタックにおけるカーネルを備える、ことと、
前記畳み込み層の入力活性化マップを受信することと、
前記カーネルおよび前記入力活性化マップに少なくとも部分的に基づいて前記畳み込み層の出力活性化マップを決定することであって、前記出力活性化マップは、インターリーブされた出力活性化マップレイアウトにおけるものであり、前記カーネルスタックの前記カーネルは、基本カーネルレイアウトにおけるものであり、前記カーネルスタックの前記カーネルの重み値は、前記基本カーネルレイアウトから、複数のカーネルタイルを備えているタイルカーネルレイアウトに並べ替えられる、ことと
を含む、方法。 - 前記カーネルスタックの前記カーネルの前記重み値を並べ替えることは、
前記カーネルスタックの幅寸法に沿ってトラバースすることと、
前記カーネルスタックの高さ寸法に沿ってトラバースすることと、
前記カーネルスタックのカーネルの幅寸法に沿ってトラバースすることと、
前記カーネルスタックの前記カーネルの高さ寸法に沿ってトラバースすることと
を反復的に行うことを含む、請求項1に記載の方法。 - 前記入力活性化マップは、インターリーブされた入力活性化マップレイアウトにおけるものである、請求項1または2に記載の方法。
- 前記入力活性化マップは、基本入力活性化マップレイアウトにおけるものである、請求項1または2に記載の方法。
- 前記方法は、
前記入力活性化マップのピクセル値を前記基本入力活性化マップレイアウトから前記インターリーブされた入力活性化マップレイアウトに並べ替えることをさらに含み、前記インターリーブされた入力活性化マップレイアウトは、入力活性化マップピクセルの複数のクラスタを備えている、請求項4に記載の方法。 - カーネルタイルは、複数のカーネルランネルを備えており、カーネルランネルは、前記カーネルスタックの前記カーネルのいくつかの前記重み値を備えている、請求項1または2に記載の方法。
- 前記出力活性化マップは、前記複数のカーネルタイルおよび前記入力活性化マップに基づいて決定される、請求項6に記載の方法。
- 前記入力活性化マップは、インターリーブされた入力活性化マップレイアウトにおけるものであり、前記インターリーブされた入力活性化マップレイアウトは、入力活性化マップピクセルの複数のクラスタを備えており、
前記出力活性化マップを決定することは、
前記複数のカーネルタイルおよび前記入力活性化マップピクセルの複数のクラスタにタイル毎に融合積和演算を実施することを含む、請求項7に記載の方法。 - 前記カーネルタイルの第1のカーネルランネルは、第1のカーネルスタック幅境界に対応し、前記カーネルタイルの最後のカーネルランネルは、前記第1のカーネルスタック幅境界の後続の第2のカーネルスタック幅境界に対応する、請求項6に記載の方法。
- 第1のカーネルランネルのビットでのサイズと第1の入力活性化マップランネルのビットでのサイズとは、同一である、請求項6に記載の方法。
- 前記第1のカーネルランネルのビットでの前記サイズと第1の出力活性化マップランネルのビットでのサイズとは、同一である、請求項10に記載の方法。
- 前記第1のカーネルランネルのビットでの前記サイズと前記1つ以上のプロセッサのうちの少なくとも1つのプロセッサの第1のレジスタのビットでのサイズとは、同一である、請求項10に記載の方法。
- 前記インターリーブされた出力活性化マップレイアウトは、出力活性化マップピクセルの複数のクラスタを備えている、請求項1または2に記載の方法。
- 前記出力活性化マップのピクセル値を前記インターリーブされた出力活性化マップレイアウトから基本出力活性化マップレイアウトに並べ替えることをさらに含む、請求項1または2に記載の方法。
- 前記1つ以上のプロセッサのうちの少なくとも1つのプロセッサは、単一命令多重データプロセッサを備えている、請求項1または2に記載の方法。
- 命令を記憶している非一過性メモリを備えているシステムであって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに動作を実行させ、前記動作は、
畳み込みニューラルネットワークの畳み込み層を受信することであって、前記畳み込み層は、カーネルスタックにおけるカーネルを備える、ことと、
前記畳み込み層の入力活性化マップを受信することと、
前記カーネルおよび前記入力活性化マップに少なくとも部分的に基づいて前記畳み込み層の出力活性化マップを決定することであって、前記出力活性化マップは、インターリーブされた出力活性化マップレイアウトにおけるものであり、前記カーネルスタックの前記カーネルは、基本カーネルレイアウトにおけるものであり、前記カーネルスタックの前記カーネルの重み値は、前記基本カーネルレイアウトから、複数のカーネルタイルを備えているタイルカーネルレイアウトに並べ替えられる、ことと
を含む、システム。 - 前記カーネルスタックの前記カーネルの前記重み値を並べ替えることは、
前記カーネルスタックの幅寸法に沿ってトラバースすることと、
前記カーネルスタックの高さ寸法に沿ってトラバースすることと、
前記カーネルスタックのカーネルの幅寸法に沿ってトラバースすることと、
前記カーネルスタックの前記カーネルの高さ寸法に沿ってトラバースすることと
を反復的に行うことを含む、請求項16に記載のシステム。 - カーネルランネルは、前記カーネルスタックの前記カーネルのいくつかの前記重み値を備えている、請求項16または17に記載のシステム。
- 第1のカーネルランネルのビットでのサイズと第1の入力活性化マップランネルのビットでのサイズとは、同一である、請求項18に記載のシステム。
- 第1のカーネルランネルのビットでのサイズと前記1つ以上のプロセッサのうちの少なくとも1つのプロセッサの第1のレジスタのビットでのサイズとは、同一である、請求項18に記載のシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 | ||
JP2019517768A JP6872011B2 (ja) | 2016-10-04 | 2017-10-03 | 畳み込みニューラルネットワークのための効率的データレイアウト |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019517768A Division JP6872011B2 (ja) | 2016-10-04 | 2017-10-03 | 畳み込みニューラルネットワークのための効率的データレイアウト |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022150055A Division JP7431913B2 (ja) | 2016-10-04 | 2022-09-21 | 畳み込みニューラルネットワークのための効率的データレイアウト |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021120871A JP2021120871A (ja) | 2021-08-19 |
JP7146999B2 true JP7146999B2 (ja) | 2022-10-04 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019517768A Active JP6872011B2 (ja) | 2016-10-04 | 2017-10-03 | 畳み込みニューラルネットワークのための効率的データレイアウト |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105120130B (zh) * | 2015-09-17 | 2018-06-29 | 京东方科技集团股份有限公司 | 一种图像升频系统、其训练方法及图像升频方法 |
KR102648770B1 (ko) | 2016-07-14 | 2024-03-15 | 매직 립, 인코포레이티드 | 홍채 식별을 위한 딥 뉴럴 네트워크 |
EP3523751A4 (en) | 2016-10-04 | 2020-05-06 | Magic Leap, Inc. | EFFICIENT DATA ARRANGEMENTS FOR CONVOLUTIONAL NEURAL NETWORKS |
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 | 삼성전자주식회사 | 컨볼루션 신경망 처리 방법 및 장치 |
JP6854344B2 (ja) | 2016-11-15 | 2021-04-07 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 直方体検出のための深層機械学習システム |
EP3424406A1 (en) * | 2016-11-22 | 2019-01-09 | Delphinium Clinic Ltd. | Method and system for classifying optic nerve head |
KR20230070318A (ko) | 2016-12-05 | 2023-05-22 | 매직 립, 인코포레이티드 | 혼합 현실 환경의 가상 사용자 입력 콘트롤들 |
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 |
AU2018236433B2 (en) | 2017-03-17 | 2022-03-03 | Magic Leap, Inc. | Room layout estimation methods and techniques |
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 | 삼성전자주식회사 | 다채널 특징맵 영상을 처리하는 방법 및 장치 |
AU2018308418A1 (en) | 2017-07-26 | 2020-01-16 | Magic Leap, Inc. | Training a neural network with representations of user interface devices |
CN107506350A (zh) * | 2017-08-16 | 2017-12-22 | 京东方科技集团股份有限公司 | 一种识别信息的方法和设备 |
US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
US11114138B2 (en) | 2017-09-15 | 2021-09-07 | Groq, Inc. | Data structures with multiple read ports |
US11868804B1 (en) | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
IL272289B (en) | 2017-09-20 | 2022-08-01 | Magic Leap Inc | A personal neural network for eye tracking |
US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
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 |
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 |
KR102602117B1 (ko) | 2017-10-26 | 2023-11-13 | 매직 립, 인코포레이티드 | 딥 멀티태스크 네트워크들에서 적응적 손실 밸런싱을 위한 그라디언트 정규화 시스템들 및 방법들 |
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 |
EP3749172B1 (en) * | 2018-02-09 | 2022-03-30 | Pupil Labs GmbH | Devices, systems and methods for predicting gaze-related parameters |
US11556741B2 (en) | 2018-02-09 | 2023-01-17 | 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 |
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 |
WO2019236251A1 (en) * | 2018-06-04 | 2019-12-12 | 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 |
US20190392287A1 (en) | 2018-06-22 | 2019-12-26 | 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 | 山东科技大学 | 一种基于角点辐射域的鲁棒卷积核数量适配方法 |
KR20200009435A (ko) * | 2018-07-19 | 2020-01-30 | 삼성전자주식회사 | 딥 러닝용 데이터 표현 관리 방법, 딥 러닝용 데이터 처리 방법 및 이를 수행하는 딥 러닝 시스템 |
CN109063822B (zh) * | 2018-07-19 | 2023-04-07 | 郑州云海信息技术有限公司 | 一种计算方法及计算装置 |
WO2020031281A1 (ja) * | 2018-08-07 | 2020-02-13 | 日本電気株式会社 | 情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体 |
US11836971B2 (en) * | 2018-08-23 | 2023-12-05 | Samsung Electronics Co., Ltd. | Method and device with convolution neural network processing |
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 | 华为技术有限公司 | 一种数据处理方法和装置 |
WO2020072274A1 (en) | 2018-10-01 | 2020-04-09 | Neuralmagic Inc. | Systems and methods for neural network pruning with accuracy preservation |
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 | 中国科学院计算技术研究所 | 基于上下文信息指导的场景分割方法和系统 |
US11301546B2 (en) * | 2018-11-19 | 2022-04-12 | Groq, Inc. | Spatial locality transform of matrices |
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 |
CN111353575A (zh) * | 2018-12-20 | 2020-06-30 | 超威半导体公司 | 用于卷积神经网络的图块化格式 |
US11544559B2 (en) | 2019-01-08 | 2023-01-03 | Neuralmagic Inc. | System and method for executing convolution in a neural network |
US20220129725A1 (en) * | 2019-02-06 | 2022-04-28 | Vastai Holding Company | 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 |
CN111767204A (zh) * | 2019-04-02 | 2020-10-13 | 杭州海康威视数字技术股份有限公司 | 溢出风险检测方法、装置及设备 |
US11671111B2 (en) | 2019-04-17 | 2023-06-06 | Samsung Electronics Co., Ltd. | Hardware channel-parallel data compression/decompression |
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 |
CN110210321B (zh) * | 2019-05-08 | 2020-11-24 | 华南理工大学 | 基于多维尺度变换网络与分块加权法的欠样本人脸识别方法 |
CN110147788B (zh) * | 2019-05-27 | 2021-09-21 | 东北大学 | 一种基于特征增强crnn的金属板带产品标签文字识别方法 |
EP3979896A1 (en) | 2019-06-05 | 2022-04-13 | Pupil Labs GmbH | Devices, systems and methods for predicting gaze-related parameters |
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 | 瑞昱半导体股份有限公司 | 使用像素通道置乱的卷积神经网络的演算方法与系统 |
US11195095B2 (en) | 2019-08-08 | 2021-12-07 | 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 | 삼성전자주식회사 | 신경망의 커널들을 정렬하는 전자 장치 및 이의 동작 방법 |
KR20210071471A (ko) | 2019-12-06 | 2021-06-16 | 삼성전자주식회사 | 뉴럴 네트워크의 행렬 곱셈 연산을 수행하는 장치 및 방법 |
CN112927174B (zh) * | 2019-12-06 | 2024-05-03 | 阿里巴巴集团控股有限公司 | 一种图像处理,图像训练以通道混洗方法和装置 |
KR102268817B1 (ko) * | 2019-12-19 | 2021-06-24 | 국민대학교산학협력단 | 분산 클라우드 환경에서의 기계 학습 성능 평가 방법 및 장치 |
CN111222561B (zh) * | 2019-12-31 | 2023-06-09 | 深圳云天励飞技术股份有限公司 | 图像识别神经网络处理方法、装置与系统 |
KR102157007B1 (ko) * | 2019-12-31 | 2020-09-16 | 연세대학교 산학협력단 | 객체 인식을 위한 자가 학습 장치 및 방법 |
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 |
DE102020201182A1 (de) * | 2020-01-31 | 2021-08-05 | Robert Bosch Gesellschaft mit beschränkter Haftung | Hardwarebeschleunigte Berechnung von Faltungen |
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 |
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 | 杭州海康威视数字技术股份有限公司 | 推理方法及装置 |
CN111626569B (zh) * | 2020-05-06 | 2023-06-13 | 云南电网有限责任公司怒江供电局 | 微电网群电力能源交易方法 |
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 |
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 | 건국대학교 산학협력단 | 임베디드 플랫폼을 위한 심층신경망 최적화 장치 및 방법 |
CN112596684B (zh) | 2021-03-08 | 2021-06-22 | 成都启英泰伦科技有限公司 | 一种用于语音深度神经网络运算的数据存储方法 |
JP7420100B2 (ja) | 2021-03-15 | 2024-01-23 | オムロン株式会社 | 処理装置、処理方法、およびプログラム |
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 |
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 |
CN113313787B (zh) * | 2021-05-31 | 2023-11-07 | 上海阵量智能科技有限公司 | 一种数据处理方法、装置、计算机设备和存储介质 |
JPWO2023002843A1 (ja) | 2021-07-21 | 2023-01-26 | ||
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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009009587A (ja) | 2001-10-29 | 2009-01-15 | Intel Corp | データを右方向平行シフトマージする方法及び装置 |
US20150309961A1 (en) | 2014-04-28 | 2015-10-29 | Denso Corporation | Arithmetic processing apparatus |
US20160163035A1 (en) | 2014-12-03 | 2016-06-09 | Kla-Tencor Corporation | Automatic Defect Classification Without Sampling and Feature Selection |
Family Cites Families (78)
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 |
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 |
JP5478618B2 (ja) | 2008-07-03 | 2014-04-23 | エヌイーシー ラボラトリーズ アメリカ インク | 上皮層検出器およびそれに関連する方法 |
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 |
US9558778B2 (en) | 2009-03-28 | 2017-01-31 | Wd Media (Singapore) Pte. Ltd. | Lubricant compound for magnetic disk and magnetic disk |
EP3138475B1 (en) | 2010-01-22 | 2023-10-25 | 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 |
US9348143B2 (en) | 2010-12-24 | 2016-05-24 | Magic Leap, Inc. | Ergonomic head mounted display device and optical system |
EP3462286A1 (en) | 2011-05-06 | 2019-04-03 | Magic Leap, Inc. | Massive simultaneous remote digital presence world |
US10078620B2 (en) * | 2011-05-27 | 2018-09-18 | New York University | Runtime reconfigurable dataflow processor with multi-port memory access module |
WO2013049861A1 (en) | 2011-09-29 | 2013-04-04 | Magic Leap, Inc. | Tactile glove for human-computer interaction |
JP6110866B2 (ja) | 2011-10-28 | 2017-04-05 | マジック リープ, インコーポレイテッド | 拡張現実および仮想現実のためのシステムおよび方法 |
AU2012341069B2 (en) | 2011-11-23 | 2018-04-05 | Magic Leap, Inc. | Three dimensional virtual and augmented reality display system |
RU2015156050A (ru) | 2012-04-05 | 2019-01-18 | Мэджик Лип, Инк. | Устройство формирования изображения с широким полем обзора (fov) с возможностью активного наведения взора на цель |
EP2859403B1 (en) | 2012-06-11 | 2022-10-19 | Magic Leap, Inc. | Multiple depth plane three-dimensional display using a wave guide reflector array projector |
US9671566B2 (en) | 2012-06-11 | 2017-06-06 | Magic Leap, Inc. | Planar waveguide apparatus with diffraction element(s) and system employing same |
US9141916B1 (en) | 2012-06-29 | 2015-09-22 | Google Inc. | Using embedding functions with a deep network |
JP5467303B1 (ja) | 2012-07-31 | 2014-04-09 | 独立行政法人科学技術振興機構 | 注視点検出装置、注視点検出方法、個人パラメータ算出装置、個人パラメータ算出方法、プログラム、及びコンピュータ読み取り可能な記録媒体 |
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 |
US10151875B2 (en) | 2013-01-15 | 2018-12-11 | Magic Leap, Inc. | Ultra-high resolution scanning fiber display |
CN105188516B (zh) | 2013-03-11 | 2017-12-22 | 奇跃公司 | 用于增强和虚拟现实的系统与方法 |
US9147154B2 (en) | 2013-03-13 | 2015-09-29 | Google Inc. | Classifying resources using a deep network |
CN108427504B (zh) | 2013-03-15 | 2021-06-11 | 奇跃公司 | 显示系统和方法 |
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 |
US10262462B2 (en) | 2014-04-18 | 2019-04-16 | Magic Leap, Inc. | Systems and methods for augmented and virtual reality |
US9874749B2 (en) | 2013-11-27 | 2018-01-23 | Magic Leap, Inc. | Virtual and augmented reality systems and methods |
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 | 株式会社デンソーアイティーラボラトリ | 学習装置、学習プログラム、及び学習方法 |
CN107315249B (zh) | 2013-11-27 | 2021-08-17 | 奇跃公司 | 虚拟和增强现实系统与方法 |
US9857591B2 (en) | 2014-05-30 | 2018-01-02 | Magic Leap, Inc. | Methods and system for creating focal planes in virtual and augmented reality |
US9430829B2 (en) * | 2014-01-30 | 2016-08-30 | Case Western Reserve University | Automatic detection of mitosis using handcrafted and convolutional neural network features |
AU2015210704B2 (en) | 2014-01-31 | 2019-05-30 | Magic Leap, Inc. | Multi-focal display system and method |
US10317690B2 (en) | 2014-01-31 | 2019-06-11 | 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 |
US9373059B1 (en) * | 2014-05-05 | 2016-06-21 | Atomwise Inc. | Systems and methods for applying a convolutional network to spatial data |
AU2015297036B2 (en) | 2014-05-09 | 2017-09-28 | Google Llc | Systems and methods for discerning eye signals and continuous biometric identification |
NZ764905A (en) | 2014-05-30 | 2022-05-27 | 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 | 微软技术许可有限责任公司 | 用于图像处理的空间金字塔池化网络 |
WO2016054802A1 (en) | 2014-10-10 | 2016-04-14 | Beijing Kuangshi Technology Co., Ltd. | Hierarchical interlinked multi-scale convolutional network for image parsing |
KR102276339B1 (ko) * | 2014-12-09 | 2021-07-12 | 삼성전자주식회사 | Cnn의 근사화를 위한 학습 장치 및 방법 |
USD758367S1 (en) | 2015-05-14 | 2016-06-07 | Magic Leap, Inc. | Virtual reality headset |
CN112836664A (zh) | 2015-08-21 | 2021-05-25 | 奇跃公司 | 使用眼睛姿态测量的眼睑形状估计 |
KR102648770B1 (ko) | 2016-07-14 | 2024-03-15 | 매직 립, 인코포레이티드 | 홍채 식별을 위한 딥 뉴럴 네트워크 |
WO2018013199A1 (en) | 2016-07-14 | 2018-01-18 | Magic Leap, Inc. | Iris boundary estimation using cornea curvature |
EP3523751A4 (en) | 2016-10-04 | 2020-05-06 | Magic Leap, Inc. | EFFICIENT DATA ARRANGEMENTS FOR CONVOLUTIONAL NEURAL NETWORKS |
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 EP EP17859043.6A patent/EP3523751A4/en active Pending
- 2017-10-03 JP JP2019517768A patent/JP6872011B2/ja active Active
- 2017-10-03 CA CA3038967A patent/CA3038967A1/en active Pending
- 2017-10-03 US US15/724,142 patent/US10489680B2/en active Active
- 2017-10-03 KR KR1020197012230A patent/KR102216019B1/ko active IP Right Grant
- 2017-10-03 WO PCT/US2017/054987 patent/WO2018067603A1/en active Application Filing
- 2017-10-03 IL IL293688A patent/IL293688B2/en unknown
- 2017-10-03 CN CN202310325629.2A patent/CN116343319A/zh active Pending
- 2017-10-03 AU AU2017338783A patent/AU2017338783B2/en active Active
- 2017-10-03 IL IL281321A patent/IL281321B/en unknown
- 2017-10-03 CN CN201780073892.XA patent/CN110073359B/zh 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
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009009587A (ja) | 2001-10-29 | 2009-01-15 | Intel Corp | データを右方向平行シフトマージする方法及び装置 |
US20150309961A1 (en) | 2014-04-28 | 2015-10-29 | Denso Corporation | Arithmetic processing apparatus |
JP2015210709A (ja) | 2014-04-28 | 2015-11-24 | 株式会社デンソー | 演算処理装置 |
US20160163035A1 (en) | 2014-12-03 | 2016-06-09 | Kla-Tencor Corporation | Automatic Defect Classification Without Sampling and Feature Selection |
Non-Patent Citations (1)
Title |
---|
重岡謙太朗,外3名,GPUにおいてパラメータスイープを高速化するための並列方式,情報処理学会研究報告 研究報告 ハイパフォーマンスコンピューティング(HPC) No.136,日本,一般社団法人情報処理学会,2012年12月15日,pp.1-8 |
Also Published As
Publication number | Publication date |
---|---|
AU2017338783A1 (en) | 2019-04-18 |
IL293688A (en) | 2022-08-01 |
CN110073359B (zh) | 2023-04-04 |
IL293688B2 (en) | 2024-02-01 |
AU2017338783B2 (en) | 2022-02-10 |
US20220076056A1 (en) | 2022-03-10 |
JP6872011B2 (ja) | 2021-05-19 |
IL265720A (en) | 2019-05-30 |
CN110073359A (zh) | 2019-07-30 |
US11720800B2 (en) | 2023-08-08 |
WO2018067603A1 (en) | 2018-04-12 |
KR20190062481A (ko) | 2019-06-05 |
IL293688B1 (en) | 2023-10-01 |
US20200082215A1 (en) | 2020-03-12 |
EP3523751A4 (en) | 2020-05-06 |
IL281321B (en) | 2022-07-01 |
IL281321A (en) | 2021-04-29 |
CN116343319A (zh) | 2023-06-27 |
JP2019535079A (ja) | 2019-12-05 |
EP3523751A1 (en) | 2019-08-14 |
CA3038967A1 (en) | 2018-04-12 |
US20180096226A1 (en) | 2018-04-05 |
KR102216019B1 (ko) | 2021-02-15 |
JP2021120871A (ja) | 2021-08-19 |
AU2022202762A1 (en) | 2022-05-19 |
JP2022171926A (ja) | 2022-11-11 |
IL265720B (en) | 2021-03-25 |
JP7431913B2 (ja) | 2024-02-15 |
US10489680B2 (en) | 2019-11-26 |
US11182645B2 (en) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7146999B2 (ja) | 畳み込みニューラルネットワークのための効率的データレイアウト | |
CN110050267B (zh) | 用于数据管理的系统和方法 | |
JP7329533B2 (ja) | 演算を加速するための方法および加速器装置 | |
JP7385681B2 (ja) | 手姿勢推定 | |
US20200202198A1 (en) | Neural network processor | |
CN109844738A (zh) | 运算处理电路和识别系统 | |
CA2929403C (en) | Multi-dimensional sliding window operation for a vector processor | |
KR102198912B1 (ko) | 비디오 영상 내의 행동 인식 방법 및 장치 | |
CN109447239B (zh) | 一种基于arm的嵌入式卷积神经网络加速方法 | |
EP3992863A1 (en) | Method and device with deep learning operations | |
CN110533177B (zh) | 一种数据读写装置、方法、设备、介质及卷积加速器 | |
JP6955598B2 (ja) | 複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体 | |
CN114677286A (zh) | 一种图像处理方法、装置、存储介质及终端设备 | |
CN111985617A (zh) | 3d卷积神经网络在神经网络处理器上的处理方法和装置 | |
WO2023122896A1 (zh) | 一种数据处理方法和装置 | |
KR20200062014A (ko) | 다이어딕 매트릭스 형태의 웨이트를 이용해 뉴럴 네트워크를 가속하는 장치 및 그것의 동작 방법 | |
CN113393368B (zh) | 基于神经网络模型的图像处理方法、介质和电子设备 | |
EP4091104A1 (en) | Data interpretation system, vehicle, method for interpreting input data, computer program and computer-readable medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210416 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220323 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220331 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220629 |
|
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: 20220822 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220921 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7146999 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |