SG10202104454YA - Accessing Data In Multi-Dimensional Tensors - Google Patents

Accessing Data In Multi-Dimensional Tensors

Info

Publication number
SG10202104454YA
SG10202104454YA SG10202104454YA SG10202104454YA SG10202104454YA SG 10202104454Y A SG10202104454Y A SG 10202104454YA SG 10202104454Y A SG10202104454Y A SG 10202104454YA SG 10202104454Y A SG10202104454Y A SG 10202104454YA SG 10202104454Y A SG10202104454Y A SG 10202104454YA
Authority
SG
Singapore
Prior art keywords
accessing data
dimensional tensors
tensors
dimensional
accessing
Prior art date
Application number
SG10202104454YA
Inventor
Dong Hyuk Woo
Andrew Everett Phelps
Original Assignee
Google Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google Llc filed Critical Google Llc
Publication of SG10202104454YA publication Critical patent/SG10202104454YA/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30061Multi-way branch instructions, e.g. CASE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3555Indexed addressing using scaling, e.g. multiplication of index
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix data
SG10202104454YA 2016-02-03 2016-12-28 Accessing Data In Multi-Dimensional Tensors SG10202104454YA (en)

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
SG10202104454YA true SG10202104454YA (en) 2021-06-29

Family

ID=57860636

Family Applications (2)

Application Number Title Priority Date Filing Date
SG10201610917TA SG10201610917TA (en) 2016-02-03 2016-12-28 Accessing Data In Multi-Dimensional Tensors
SG10202104454YA SG10202104454YA (en) 2016-02-03 2016-12-28 Accessing Data In Multi-Dimensional Tensors

Family Applications Before (1)

Application Number Title Priority Date Filing Date
SG10201610917TA SG10201610917TA (en) 2016-02-03 2016-12-28 Accessing Data In Multi-Dimensional Tensors

Country Status (7)

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

Families Citing this family (32)

* 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
US10175980B2 (en) 2016-10-27 2019-01-08 Google Llc Neural network compute tile
US9959498B1 (en) 2016-10-27 2018-05-01 Google Llc Neural network instruction set architecture
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
CN110312992A (en) 2017-03-20 2019-10-08 英特尔公司 For piece matrix multiplication and cumulative system, method and apparatus
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 (en) * 2017-11-24 2019-09-30 서울대학교산학협력단 Apparatus for supporting multi-dimensional data analysis through parallel processing and method for the same
WO2019113007A1 (en) * 2017-12-05 2019-06-13 Wave Computing, Inc. Pipelined tensor manipulation within a reconfigurable fabric
US10956315B2 (en) * 2018-07-24 2021-03-23 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access
CN109255438B (en) * 2018-09-17 2020-07-17 地平线(上海)人工智能技术有限公司 Method and apparatus for adjusting tensor data
CN111291240B (en) * 2018-12-06 2023-12-08 华为技术有限公司 Method for processing data and data processing device
CN111324294B (en) * 2018-12-17 2023-11-07 地平线(上海)人工智能技术有限公司 Method and device for accessing tensor data
CN109857744B (en) * 2019-02-13 2020-03-20 上海燧原智能科技有限公司 Sparse tensor calculation method, device, equipment and storage medium
CN111723917B (en) * 2019-03-21 2022-11-01 中科寒武纪科技股份有限公司 Operation method, device and related product
CN112257857A (en) * 2019-07-22 2021-01-22 中科寒武纪科技股份有限公司 Tensor processing method and related product
CN110209503B (en) * 2019-08-01 2019-10-25 上海燧原智能科技有限公司 Specification calculation method, device, equipment and the medium of multidimensional tensor
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 (en) * 2020-07-09 2024-02-23 地平线(上海)人工智能技术有限公司 Method, device, medium and equipment for computing tensor data by computer
CN111737007B (en) * 2020-07-24 2021-06-18 北京一流科技有限公司 Frequency division processing system and method for data object
US11954580B2 (en) * 2020-09-16 2024-04-09 Meta Platforms, Inc. Spatial tiling of compute arrays with shared control
CN113836049B (en) * 2021-09-17 2023-08-08 海飞科(南京)信息技术有限公司 Memory access method and electronic device
CN114489798B (en) * 2022-01-25 2024-04-05 海飞科(南京)信息技术有限公司 Method and electronic device for determining out-of-range state of tensor element
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 (en) * 1981-12-28 1983-07-07 Fujitsu Ltd Vector-converting system of index increment
JP3102027B2 (en) 1990-11-20 2000-10-23 日本電気株式会社 Nesting management mechanism for loop control
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 (en) * 2002-02-19 2003-08-29 Matsushita Electric Ind Co Ltd Processor for data flow control switch and data flow control switch
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 (en) * 2003-09-09 2006-06-14 大唐微电子技术有限公司 Montgomery analog multiplication algorithm and its analog multiplication and analog power operation circuit
CN100520714C (en) 2005-01-25 2009-07-29 Nxp股份有限公司 Multi-threaded processor
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 (en) * 2007-06-26 2010-04-15 Ericsson Telefon Ab L M DATA PROCESSING UNIT FOR NESTED LOOP INSTRUCTIONS
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
US20130185540A1 (en) * 2011-07-14 2013-07-18 Texas Instruments Incorporated Processor with multi-level looping vector coprocessor
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 (en) * 2013-09-17 2017-01-18 西安电子科技大学 Method for determining specific visual cognition state of brain based on sparse nonnegative tensor factorization (SNTF)
US9087394B1 (en) 2014-02-13 2015-07-21 Raycast Systems, Inc. Computer hardware architecture and data structures for packet binning to support incoherent ray traversal
CN105260322B (en) * 2014-06-30 2020-09-01 中兴通讯股份有限公司 Method and device for eliminating cyclic shift of cyclic buffer area
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
CN109416754B (en) 2016-05-26 2020-06-23 多伦多大学管理委员会 Accelerator for deep neural network
US10175980B2 (en) 2016-10-27 2019-01-08 Google Llc Neural network compute tile

Also Published As

Publication number Publication date
EP3226121A2 (en) 2017-10-04
JP2023059898A (en) 2023-04-27
CN110457069A (en) 2019-11-15
TW202014897A (en) 2020-04-16
KR20230004348A (en) 2023-01-06
BR102016030825A2 (en) 2018-10-09
TW201907305A (en) 2019-02-16
KR102596365B1 (en) 2023-10-31
TW201729104A (en) 2017-08-16
JP6896415B2 (en) 2021-06-30
TW202040359A (en) 2020-11-01
US20170220345A1 (en) 2017-08-03
US10838724B2 (en) 2020-11-17
JP2017138964A (en) 2017-08-10
TWI635390B (en) 2018-09-11
KR102472424B1 (en) 2022-11-29
US9875100B2 (en) 2018-01-23
TWI772842B (en) 2022-08-01
US20170220352A1 (en) 2017-08-03
TWI700587B (en) 2020-08-01
US20180107483A1 (en) 2018-04-19
KR20230153972A (en) 2023-11-07
TWI681291B (en) 2020-01-01
CN107038018B (en) 2019-07-19
US10228947B2 (en) 2019-03-12
JP2021128801A (en) 2021-09-02
KR101924500B1 (en) 2018-12-03
JP7225314B2 (en) 2023-02-20
US9875104B2 (en) 2018-01-23
KR20180127945A (en) 2018-11-30
CN107038018A (en) 2017-08-11
CN110457069B (en) 2020-08-18
SG10201610917TA (en) 2017-09-28
EP3226121A3 (en) 2018-10-31
KR20170092445A (en) 2017-08-11
US20190205141A1 (en) 2019-07-04

Similar Documents

Publication Publication Date Title
SG10201610917TA (en) Accessing Data In Multi-Dimensional Tensors
HK1258732A1 (en) Data validation and storage
HK1259159A1 (en) Distributed data set storage and retrieval
ZA202000319B (en) Data storage system with enforced fencing
SG11201700547WA (en) Data lineage summarization
SG11201608973TA (en) Data verification using access device
GB2532842B (en) Mechanism and method for accessing data in a shared memory
EP3127120A4 (en) Apparatuses and methods for comparing data patterns in memory
GB201501874D0 (en) Quorum based data processing
EP3229126A4 (en) Data reading method and device
EP3238078A4 (en) Speculative reads in buffered memory
SG10201504721WA (en) Seismic data processing
GB201620010D0 (en) Accessing databases
GB201515951D0 (en) Efficent spatital queries in large data tables
GB2549635B (en) Data retention probes and related methods
GB201602447D0 (en) Performance tempered data storage device
PL3409083T4 (en) Improvements in and relating to data centres
ZA201402292B (en) Storing and accessing data
TWI560718B (en) Data storage device and encoding method thereof
GB2530126B (en) Seismic Data Processing
GB201304866D0 (en) Processing microseismic data
GB201601655D0 (en) Data storage
GB201420173D0 (en) Context sensitive barriers in data processing
GB201314439D0 (en) Data processing
GB2527409B (en) Metadata based data alignment in data storage systems