JP2017138964A5 - - Google Patents

Download PDF

Info

Publication number
JP2017138964A5
JP2017138964A5 JP2016250976A JP2016250976A JP2017138964A5 JP 2017138964 A5 JP2017138964 A5 JP 2017138964A5 JP 2016250976 A JP2016250976 A JP 2016250976A JP 2016250976 A JP2016250976 A JP 2016250976A JP 2017138964 A5 JP2017138964 A5 JP 2017138964A5
Authority
JP
Japan
Prior art keywords
tensor
elements
index
value stored
value
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.)
Granted
Application number
JP2016250976A
Other languages
English (en)
Other versions
JP6896415B2 (ja
JP2017138964A (ja
Filing date
Publication date
Priority claimed from US15/014,265 external-priority patent/US9875104B2/en
Application filed filed Critical
Publication of JP2017138964A publication Critical patent/JP2017138964A/ja
Publication of JP2017138964A5 publication Critical patent/JP2017138964A5/ja
Priority to JP2021096509A priority Critical patent/JP7225314B2/ja
Application granted granted Critical
Publication of JP6896415B2 publication Critical patent/JP6896415B2/ja
Priority to JP2023017754A priority patent/JP2023059898A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (20)

  1. N次元テンソルにアクセスするための命令を処理するための装置であって、
    複数のテンソルインデックス要素と、
    複数の次元乗数要素とを備え、前記次元乗数要素の各々は、対応するテンソルインデックス要素を有し、前記装置はさらに、
    1つ以上のプロセッサを備え、前記1つ以上のプロセッサは、
    N次元テンソルの特定の要素にアクセスするための命令を取得するように構成され、前記N次元テンソルは、N個の次元の各々にわたって配置された複数の要素を有し、Nは、1以上の整数であり、前記1つ以上のプロセッサはさらに、
    前記複数のテンソルインデックス要素のうちの1つ以上のテンソルインデックス要素および前記複数の次元乗数要素のうちの1つ以上の次元乗数要素を用いて、前記特定の要素のアドレスを決定するように構成され、
    前記N次元テンソルの前記特定の要素にアクセスするための前記決定されたアドレスを示すデータを出力するように構成される、装置。
  2. 前記特定の要素の前記アドレスは、前記N次元テンソルの別の要素からのアドレスオフセットであり、
    前記特定の要素の前記アドレスを決定することは、
    前記1つ以上のテンソルインデックス要素の各テンソルインデックス要素ごとに、それぞれのテンソルインデックス要素に記憶された値と前記1つ以上の次元乗数要素の前記対応する次元乗数要素に記憶された値とを乗算して、それぞれの乗算された値を生成することと、
    前記乗算された値の合計を求めることによって前記アドレスオフセットを決定することとを備える、請求項1に記載の装置。
  3. 前記複数のテンソルインデックス要素は、テンソルインデックス要素のM個のグループに配置され、Mは、1よりも大きな正の整数であり、
    テンソルインデックス要素の各グループは、別個の異なる多次元テンソルに割り当てられる、請求項1または2に記載の装置。
  4. 複数のテンソル境界要素をさらに備え、前記複数のテンソル境界要素の各々は、前記複数のテンソルインデックス要素における対応するテンソルインデックス要素を有する、請求項1〜3のいずれか1項に記載の装置。
  5. 前記命令は、第1のループと前記第1のループの外側ループである第2のループとを含む入れ子ループを処理するための命令を表わし、前記第1のループは、第1のインデックス変数を用いて反復され、前記第2のループは、第2のインデックス変数を用いて反復される、請求項4に記載の装置。
  6. 前記1つ以上のプロセッサはさらに、
    前記複数のテンソルインデックス要素、前記複数の次元乗数要素および前記複数のテンソル境界要素に記憶された値を初期化値に設定するように構成される、請求項5に記載の装置。
  7. 前記1つ以上のプロセッサはさらに、
    前記複数のテンソル境界要素の第1のテンソル境界要素に記憶された値を、前記第1のループを反復するための前記第1のインデックス変数の上限値に設定するように構成され、
    前記複数のテンソル境界要素の第2のテンソル境界要素に記憶された値を、前記第2のループを反復するための前記第2のインデックス変数の上限値に設定するように構成され、
    前記複数の次元乗数要素の第1の次元乗数要素に記憶された値を、予め定められた値に設定するように構成され、
    前記複数の次元乗数要素の第2の次元乗数要素に記憶された値を、前記第1のインデックス変数の前記上限値に設定するように構成される、請求項5または6に記載の装置。
  8. 前記N次元テンソルの前記要素の前記アドレスを決定することは、
    前記複数のテンソルインデックス要素の第1のテンソルインデックス要素に記憶された値を、前記第1のインデックス変数の現在の値に設定することと、
    前記複数のテンソルインデックス要素の第2のテンソルインデックス要素に記憶された値を、前記第2のインデックス変数の現在の値に設定することと、
    前記第1の次元乗数要素に記憶された前記値と前記第1のテンソルインデックス要素に記憶された前記値とを乗算して、第1の乗算された値を取得することと、
    前記第2の次元乗数要素に記憶された前記値と前記第2のテンソルインデックス要素に記憶された前記値とを乗算して、第2の乗算された値を取得することと、
    前記第1の乗算された値および前記第2の乗算された値を少なくとも合計することによって前記アドレスを決定することとを備える、請求項7に記載の装置。
  9. 前記1つ以上のプロセッサはさらに、
    前記第1のテンソルインデックス要素に記憶された前記値を更新するための命令を受取るように構成され、
    前記第1のテンソルインデックス要素に記憶された前記値を更新するための前記命令を受取った後、前記第1のテンソルインデックス要素に記憶された前記値と前記第1のテンソル境界要素に記憶された前記値との間の差が閾値を満たすことを判断するように構成され、
    前記第1のテンソルインデックス要素に記憶された前記値と前記第1のテンソル境界要素に記憶された前記値との間の前記差が前記閾値を満たすと判断したことに応答して、前記第1のテンソルインデックス要素に記憶された前記値を更新するように構成される、請求項8に記載の装置。
  10. 前記第1のインデックス変数は、前記第1のループが完了するたびに第1のインクリメント値だけインクリメントされ、
    前記第1のテンソルインデックス要素に記憶された前記値を更新することは、前記第1のテンソルインデックス要素に記憶された前記値を前記第1のインクリメント値だけインクリメントすることを備える、請求項9に記載の装置。
  11. 前記1つ以上のプロセッサはさらに、
    前記第1のテンソルインデックス要素に記憶された前記値を更新するための命令を受取るように構成され、
    前記第1のテンソルインデックス要素に記憶された前記値を更新するための前記命令を受取った後、前記第1のテンソルインデックス要素に記憶された前記値と前記第1のテンソル境界要素に記憶された前記値との間の差が閾値を満たさないことを判断するように構成され、
    前記第1のテンソルインデックス要素に記憶された前記値と前記第1のテンソル境界要素に記憶された前記値との間の前記差が前記閾値を満たさないと判断したことに応答して、
    前記第1のテンソルインデックス要素に記憶された前記値をリセットするように構成され、
    前記第2のテンソルインデックス要素に記憶された前記値を更新するように構成される、請求項8に記載の装置。
  12. 前記第2のインデックス変数は、前記第2のループが完了するたびに第2のインクリメント値だけインクリメントされ、
    前記第2のテンソルインデックス要素に記憶された前記値を更新することは、前記第2のテンソルインデックス要素に記憶された前記値を前記第2のインクリメント値だけインクリメントすることを備える、請求項11に記載の装置。
  13. 前記1つ以上のプロセッサは、1つ以上の演算論理ユニットを含む、請求項1〜12のいずれか1項に記載の装置。
  14. 前記テンソルインデックス要素および前記次元乗数要素の各々は、レジスタである、請求項1〜13のいずれか1項に記載の装置。
  15. 複数の分岐先要素をさらに備え、前記複数の分岐先要素の各々は、前記複数のテンソルインデックス要素における対応するテンソルインデックス要素を有し、前記複数の分岐先要素の各々は、それぞれの分岐先要素に対応するループの反復が完了すると実行される命令のためのアドレスを記憶するように構成される、請求項1〜14のいずれか1項に記載の装置。
  16. システムであって、
    N次元テンソル上で線形代数演算を実行するように構成された1つ以上のプロセッサを備え、前記N次元テンソルは、N個の次元の各々にわたって配置された複数の要素を有し、Nは、1以上の整数であり、前記システムはさらに、
    複数のテンソルインデックス要素と、
    複数の次元乗数要素とを備え、前記次元乗数要素の各々は、対応するテンソルインデックス要素を有し、前記システムはさらに、
    回路を備え、前記回路は、
    前記N次元テンソルの特定の要素にアクセスするための命令を取得するように構成され、
    前記複数のテンソルインデックス要素のうちの1つ以上のテンソルインデックス要素および前記複数の次元乗数要素のうちの1つ以上の次元乗数要素を用いて、前記特定の要素のアドレスを決定するように構成され、
    前記N次元テンソルの前記特定の要素にアクセスするための前記決定されたアドレスを示すデータを前記1つ以上のプロセッサに出力するように構成される、システム。
  17. 前記特定の要素の前記アドレスは、前記N次元テンソルの別の要素からのアドレスオフセットであり、
    前記特定の要素の前記アドレスを決定することは、
    前記1つ以上のテンソルインデックス要素の各テンソルインデックス要素ごとに、それぞれのテンソルインデックス要素に記憶された値と前記1つ以上の次元乗数要素の前記対応する次元乗数要素に記憶された値とを乗算して、それぞれの乗算された値を生成することと、
    前記乗算された値の合計を求めることによって前記アドレスオフセットを決定することとを備える、請求項16に記載のシステム。
  18. コンピュータによって実行される方法であって、
    N次元テンソルの特定の要素にアクセスするための命令を取得するステップを備え、前記N次元テンソルは、N個の次元の各々にわたって配置された複数の要素を有し、Nは、1以上の整数であり、前記方法はさらに、
    複数のテンソルインデックス要素のうちの1つ以上のテンソルインデックス要素および複数の次元乗数要素のうちの1つ以上の次元乗数要素を用いて、前記特定の要素のアドレスを決定するステップと、
    前記N次元テンソルの前記特定の要素にアクセスするための前記決定されたアドレスを示すデータを出力するステップとを備える、方法。
  19. 前記特定の要素の前記アドレスは、前記N次元テンソルの別の要素からのアドレスオフセットであり、
    前記特定の要素の前記アドレスを決定するステップは、
    前記1つ以上のテンソルインデックス要素の各テンソルインデックス要素ごとに、それぞれのテンソルインデックス要素に記憶された値と前記1つ以上の次元乗数要素の対応する次元乗数要素に記憶された値とを乗算して、それぞれの乗算された値を生成するステップと、
    前記乗算された値の合計を求めることによって前記アドレスオフセットを決定するステップとを備える、請求項18に記載の方法。
  20. 前記命令は、第1のループと前記第1のループの外側ループである第2のループとを含む入れ子ループを処理するための命令を表わし、前記第1のループは、第1のインデックス変数を用いて反復され、前記第2のループは、第2のインデックス変数を用いて反復される、請求項18または19に記載の方法。
JP2016250976A 2016-02-03 2016-12-26 N次元テンソルにアクセスするための命令を処理するための装置、システム、およびコンピュータによって実現される方法 Active JP6896415B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021096509A JP7225314B2 (ja) 2016-02-03 2021-06-09 N次元テンソルにアクセスするための命令を処理するための装置、システム、およびコンピュータによって実現される方法
JP2023017754A JP2023059898A (ja) 2016-02-03 2023-02-08 N次元テンソルにアクセスするための命令を処理するための装置、システム、およびコンピュータによって実現される方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/014,265 2016-02-03
US15/014,265 US9875104B2 (en) 2016-02-03 2016-02-03 Accessing data in multi-dimensional tensors

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021096509A Division JP7225314B2 (ja) 2016-02-03 2021-06-09 N次元テンソルにアクセスするための命令を処理するための装置、システム、およびコンピュータによって実現される方法

Publications (3)

Publication Number Publication Date
JP2017138964A JP2017138964A (ja) 2017-08-10
JP2017138964A5 true JP2017138964A5 (ja) 2019-06-13
JP6896415B2 JP6896415B2 (ja) 2021-06-30

Family

ID=57860636

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2016250976A Active JP6896415B2 (ja) 2016-02-03 2016-12-26 N次元テンソルにアクセスするための命令を処理するための装置、システム、およびコンピュータによって実現される方法
JP2021096509A Active JP7225314B2 (ja) 2016-02-03 2021-06-09 N次元テンソルにアクセスするための命令を処理するための装置、システム、およびコンピュータによって実現される方法
JP2023017754A Pending JP2023059898A (ja) 2016-02-03 2023-02-08 N次元テンソルにアクセスするための命令を処理するための装置、システム、およびコンピュータによって実現される方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2021096509A Active JP7225314B2 (ja) 2016-02-03 2021-06-09 N次元テンソルにアクセスするための命令を処理するための装置、システム、およびコンピュータによって実現される方法
JP2023017754A Pending JP2023059898A (ja) 2016-02-03 2023-02-08 N次元テンソルにアクセスするための命令を処理するための装置、システム、およびコンピュータによって実現される方法

Country Status (7)

Country Link
US (4) US9875104B2 (ja)
EP (1) EP3226121A3 (ja)
JP (3) JP6896415B2 (ja)
KR (4) KR101924500B1 (ja)
CN (2) CN110457069B (ja)
SG (2) SG10202104454YA (ja)
TW (4) TWI635390B (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256480B2 (en) * 2012-07-25 2016-02-09 Mobileye Vision Technologies Ltd. Computer architecture with a hardware accumulator reset
US9875104B2 (en) 2016-02-03 2018-01-23 Google Llc Accessing data in multi-dimensional tensors
US9959498B1 (en) * 2016-10-27 2018-05-01 Google Llc Neural network instruction set architecture
US10175980B2 (en) 2016-10-27 2019-01-08 Google Llc Neural network compute tile
US10360163B2 (en) 2016-10-27 2019-07-23 Google Llc Exploiting input data sparsity in neural network compute units
US10896367B2 (en) * 2017-03-07 2021-01-19 Google Llc Depth concatenation using a matrix computation unit
US11263008B2 (en) 2017-03-20 2022-03-01 Intel Corporation Systems, methods, and apparatuses for tile broadcast
US10684955B2 (en) 2017-04-21 2020-06-16 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations
US10248908B2 (en) * 2017-06-19 2019-04-02 Google Llc Alternative loop limits for accessing data in multi-dimensional tensors
US11275588B2 (en) 2017-07-01 2022-03-15 Intel Corporation Context save with variable save state size
US10175912B1 (en) 2017-07-05 2019-01-08 Google Llc Hardware double buffering using a special purpose computational unit
US10108538B1 (en) 2017-07-31 2018-10-23 Google Llc Accessing prologue and epilogue data
GB2567038B (en) * 2017-07-31 2019-09-25 Google Llc Accessing prologue and epilogue data
GB2568776B (en) 2017-08-11 2020-10-28 Google Llc Neural network accelerator with parameters resident on chip
US11620490B2 (en) * 2017-10-17 2023-04-04 Xilinx, Inc. Multi-layer neural network processing by a neural network accelerator using host communicated merged weights and a package of per-layer instructions
KR102027034B1 (ko) * 2017-11-24 2019-09-30 서울대학교산학협력단 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치 및 그 방법
WO2019113021A1 (en) * 2017-12-05 2019-06-13 Wave Computing, Inc. Tensor manipulation within a reconfigurable fabric using pointers
US10956315B2 (en) 2018-07-24 2021-03-23 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access
CN109255438B (zh) * 2018-09-17 2020-07-17 地平线(上海)人工智能技术有限公司 调整张量数据的方法和装置
CN117785441A (zh) * 2018-12-06 2024-03-29 华为技术有限公司 处理数据的方法和数据处理装置
CN111324294B (zh) * 2018-12-17 2023-11-07 地平线(上海)人工智能技术有限公司 存取张量数据的方法和装置
CN109857744B (zh) * 2019-02-13 2020-03-20 上海燧原智能科技有限公司 稀疏张量计算方法、装置、设备及存储介质
CN111723917B (zh) * 2019-03-21 2022-11-01 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
CN110209503B (zh) * 2019-08-01 2019-10-25 上海燧原智能科技有限公司 多维张量的规约计算方法、装置、设备及介质
US11687336B2 (en) * 2020-05-08 2023-06-27 Black Sesame Technologies Inc. Extensible multi-precision data pipeline for computing non-linear and arithmetic functions in artificial neural networks
CN111767508B (zh) * 2020-07-09 2024-02-23 地平线(上海)人工智能技术有限公司 计算机实现张量数据计算的方法、装置、介质和设备
CN111737007B (zh) * 2020-07-24 2021-06-18 北京一流科技有限公司 数据对象的分频处理系统及其方法
US11954580B2 (en) * 2020-09-16 2024-04-09 Meta Platforms, Inc. Spatial tiling of compute arrays with shared control
CN113836049B (zh) * 2021-09-17 2023-08-08 海飞科(南京)信息技术有限公司 存储器访问方法和电子装置
CN114489798B (zh) * 2022-01-25 2024-04-05 海飞科(南京)信息技术有限公司 用于确定张量元素的越界状态的方法和电子装置
US11868329B2 (en) 2022-05-20 2024-01-09 International Business Machines Corporation Multidimensional cube multivariate regression

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58114245A (ja) * 1981-12-28 1983-07-07 Fujitsu Ltd インデツクス・インクリメントのベクトル化方式
JP3102027B2 (ja) 1990-11-20 2000-10-23 日本電気株式会社 ループ制御のネスティング管理機構
US5958048A (en) * 1996-08-07 1999-09-28 Elbrus International Ltd. Architectural support for software pipelining of nested loops
GB2359641B (en) 2000-02-25 2002-02-13 Siroyan Ltd Mapping circuitry and method
AU2001245519A1 (en) * 2000-03-08 2001-09-17 Sun Microsystems, Inc. Processing architecture having an array bounds check capability
WO2001090888A1 (en) * 2000-05-23 2001-11-29 Theis Jean Paul A data processing system having an address generation unit with hardwired multidimensional memory indexing support
US6647484B1 (en) * 2000-09-19 2003-11-11 3 Dsp Corporation Transpose address mode in general purpose DSP processor
JP2003244190A (ja) * 2002-02-19 2003-08-29 Matsushita Electric Ind Co Ltd データフロー制御スイッチ用プロセッサ及びデータフロー制御スイッチ
US6952821B2 (en) * 2002-08-19 2005-10-04 Hewlett-Packard Development Company, L.P. Method and system for memory management optimization
US7107199B2 (en) * 2002-10-31 2006-09-12 Hewlett-Packard Development Company, L.P. Method and system for the design of pipelines of processors
US7047480B2 (en) * 2002-11-12 2006-05-16 Microsoft Corporation Matrix multiplication in a Galois field for forward error correction
US7225439B2 (en) * 2003-03-21 2007-05-29 Sun Microsystems, Inc. Combining write-barriers within an inner loop with fixed step
CN1259617C (zh) * 2003-09-09 2006-06-14 大唐微电子技术有限公司 一种加快rsa加/解密过程的方法及其模乘、模幂运算电路
CN100520714C (zh) 2005-01-25 2009-07-29 Nxp股份有限公司 多线程处理器
US8806183B1 (en) 2006-02-01 2014-08-12 Ixys Ch Gmbh Blank bit and processor instructions employing the blank bit
US8904155B2 (en) 2006-03-17 2014-12-02 Qualcomm Incorporated Representing loop branches in a branch history register with multiple bits
US8438365B2 (en) * 2006-10-06 2013-05-07 Calos Fund Limited Liability Company Efficient data loading in a data-parallel processor
ATE463788T1 (de) * 2007-06-26 2010-04-15 Ericsson Telefon Ab L M Datenverarbeitungseinheit für anweisungen in geschachtelten schleifen
US20100122066A1 (en) 2008-11-12 2010-05-13 Freescale Semiconductor, Inc. Instruction method for facilitating efficient coding and instruction fetch of loop construct
US20100274972A1 (en) 2008-11-24 2010-10-28 Boris Babayan Systems, methods, and apparatuses for parallel computing
CA2684226A1 (en) 2009-10-30 2011-04-30 Ibm Canada Limited - Ibm Canada Limitee Eleminating redundant operations for common properties using shared real registers
US20130185538A1 (en) * 2011-07-14 2013-07-18 Texas Instruments Incorporated Processor with inter-processing path communication
WO2013095601A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Instruction for element offset calculation in a multi-dimensional array
US20140181171A1 (en) 2012-12-24 2014-06-26 Pavel Dourbal Method and system for fast tensor-vector multiplication
US20140188961A1 (en) * 2012-12-27 2014-07-03 Mikhail Plotnikov Vectorization Of Collapsed Multi-Nested Loops
CN103440513B (zh) * 2013-09-17 2017-01-18 西安电子科技大学 基于稀疏非负张量分解的大脑特定视觉认知状态判定方法
US8947447B1 (en) 2014-02-13 2015-02-03 Raycast Systems, Inc. Computer hardware architecture and data structures for ray binning to support incoherent ray traversal
CN105260322B (zh) * 2014-06-30 2020-09-01 中兴通讯股份有限公司 一种对循环缓冲区消除循环移位的方法和装置
US11170294B2 (en) 2016-01-07 2021-11-09 Intel Corporation Hardware accelerated machine learning
US9875104B2 (en) * 2016-02-03 2018-01-23 Google Llc Accessing data in multi-dimensional tensors
CA2990709C (en) 2016-05-26 2018-09-04 The Governing Council Of The University Of Toronto Accelerator for deep neural networks
US10175980B2 (en) 2016-10-27 2019-01-08 Google Llc Neural network compute tile

Similar Documents

Publication Publication Date Title
JP2017138964A5 (ja)
TWI772842B (zh) 用於判定一n維張量之元素之記憶體位址之設備、系統、及方法
US10909447B2 (en) Transposing neural network matrices in hardware
US20180341479A1 (en) Accessing data in multi-dimensional tensors using adders
US9946539B1 (en) Accessing data in multi-dimensional tensors using adders
JP2019537139A5 (ja)
JP2020513120A5 (ja)
US10108538B1 (en) Accessing prologue and epilogue data
CN106855952B (zh) 基于神经网络的计算方法及装置
EP3093757A3 (en) Multi-dimensional sliding window operation for a vector processor
Bomze et al. From seven to eleven: completely positive matrices with high cp-rank
JP2021504780A5 (ja)
JP2020537270A5 (ja) 情報処理装置、情報処理方法、及びプログラム
CN111047017B (zh) 一种神经网络算法的评估方法、装置及电子设备
JP2018525730A5 (ja)
JP2013156696A (ja) クラスタリング装置及び方法及びプログラム
Hishinuma et al. AVX acceleration of DD arithmetic between a sparse matrix and vector
CN111027688A (zh) 一种基于fpga的神经网络计算器生成方法及装置
US20220382829A1 (en) Sparse matrix multiplication in hardware
CN113419706A (zh) 一种快速的任意分布随机数产生方法、系统及其检验方法、系统
GB2567038B (en) Accessing prologue and epilogue data
RU2017126055A (ru) Электронное вычислительное устройство
Rao Sparse arrays: Vector sensors and design algorithms
CN110750249B (zh) 一种快速傅里叶变换代码的生成方法及装置
JP6826919B2 (ja) データ分配装置及びデータ分配比率の決定方法