JP7008983B2 - テンソルデータにアクセスするための方法および装置 - Google Patents
テンソルデータにアクセスするための方法および装置 Download PDFInfo
- Publication number
- JP7008983B2 JP7008983B2 JP2019226595A JP2019226595A JP7008983B2 JP 7008983 B2 JP7008983 B2 JP 7008983B2 JP 2019226595 A JP2019226595 A JP 2019226595A JP 2019226595 A JP2019226595 A JP 2019226595A JP 7008983 B2 JP7008983 B2 JP 7008983B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- memory
- row
- data
- data item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/454—Vector or matrix data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Complex Calculations (AREA)
Description
本開示は、2018年12月17日に出願された中国特許出願第201811541065.1号の利益および優先権を主張し、その開示は参照によりその全体が本明細書に明示的に組み込まれる。
BUF2 第2のバッファ
CON コントローラ
DDR メモリ
MEM オンチップメモリシステム
SRAM1 第1のメモリ
SRAM2 第2のメモリ
R0 行アドレス
Rm 行アドレス
Rn 行アドレス
C0 列アドレス
Cp 列アドレス
Cq 列アドレス
Claims (9)
- テンソルデータにアクセスするための方法であって、
第1のメモリ内の第1の行アドレスを決定するステップであって、前記テンソルデータの論理構造においてアクセスされるべき1つまたは複数の第1のデータ項目が前記第1のメモリ内の前記第1の行アドレスに記憶される、ステップと、
前記第1のメモリ内の前記第1の行アドレスにあるデータ項目を、第1のバッファの第1のバッファ行にコピーするステップと、
前記第1のバッファの前記第1のバッファ行内の各第1のデータ項目を、第2のバッファの少なくとも第1のバッファ行内の対応する位置に移動するステップであって、各第1のデータ項目に対する前記第2のバッファの少なくとも前記第1のバッファ行内の前記対応する位置が、前記第1のデータ項目に割り振られた第2のメモリ内のターゲット位置に依存する、ステップと、
前記第2のバッファの前記第1のバッファ行内のデータ項目を、前記第2のメモリ内の対応するターゲット位置に記憶するステップと
を有する方法。 - 前記第2のバッファの第2のバッファ行が少なくとも1つの第1のデータ項目を含む場合、前記第2のバッファの前記第2のバッファ行内の各第1のデータ項目を、前記第2のメモリ内の前記対応するターゲット位置に記憶するステップであって、前記第1のメモリにおいて、前記第2のバッファの前記第2のバッファ行内の各第1のデータ項目が、前記第2のバッファの前記第1のバッファ行内の各第1のデータ項目の後に配置される、ステップ
をさらに有する、請求項1に記載の方法。 - 前記第1のメモリ内の第2の行アドレスを決定するステップであって、前記テンソルデータの前記論理構造においてアクセスされるべき1つまたは複数の第2のデータ項目が前記第1のメモリ内の前記第2の行アドレスに記憶される、ステップと、
前記第1のメモリ内の前記第2の行アドレスにあるデータ項目を、前記第1のバッファの第2のバッファ行にコピーするステップと、
前記第1のバッファの前記第2のバッファ行内の各第2のデータ項目を、前記第2のバッファの少なくとも第2のバッファ行内の対応する位置に移動するステップであって、各第2のデータ項目に対する前記第2のバッファの少なくとも前記第2のバッファ行内の前記対応する位置が、前記第2のデータ項目に割り振られた前記第2のメモリ内のターゲット位置に依存する、ステップと、
前記第2のバッファの前記第2のバッファ行内のデータ項目を、前記第2のメモリ内の対応するターゲット位置に記憶するステップと
をさらに有する、請求項1または2に記載の方法。 - 前記第2の行アドレスは、前記第1のメモリで処理されるべき最後の1つの行アドレスである場合、前記第2のバッファの前記第1のバッファ行が少なくとも1つの第2のデータ項目を含む場合、前記第2のバッファの前記第1のバッファ行内の各第2のデータ項目を、前記第2のメモリ内の前記対応するターゲット位置に記憶するステップであって、前記第1のメモリにおいて、前記第2のバッファの前記第1のバッファ行内の各第2のデータ項目が、前記第2のバッファの前記第2のバッファ行内の各第2のデータ項目の後に配置される、ステップ
をさらに有する、請求項3に記載の方法。 - 前記第1のバッファの前記第2のバッファ行内の各第2のデータ項目を、前記第2のバッファの少なくとも第2のバッファ行内の対応する位置に移動する前記ステップが、
前記第2のバッファの前記第1のバッファ行内のデータ項目を、前記第2のメモリ内の対応するターゲット位置に記憶するステップと並行して、またはその後に、前記第1のバッファの前記第2のバッファ行内の各第2のデータ項目を、前記第2のバッファの少なくとも
前記第2のバッファ行内の前記対応する位置に移動するステップ
を含む、請求項3に記載の方法。 - 前記テンソルデータにアクセスする命令を受信するステップと、
前記命令を解析することによって、前記論理構造においてアクセスされるべき1つまたは複数のデータ項目、前記第1の行アドレス、および前記論理構造においてアクセスされるべき前記データ項目の前記第2のメモリ内のターゲット位置を決定するステップと
をさらに有する、請求項1から5のいずれか一項に記載の方法。 - テンソルデータにアクセスするための装置であって、
第1のバッファと、
第2のバッファと、
コントローラと
を備え、前記コントローラが、第1のメモリ、第2のメモリ、前記第1のバッファ、および前記第2のバッファに接続され、前記コントローラが、
第1のメモリ内の第1の行アドレスを決定することであって、前記テンソルデータの論理構造においてアクセスされるべき1つまたは複数の第1のデータ項目が前記第1のメモリ内の前記第1の行アドレスに記憶される、ことと、
前記第1のメモリ内の前記第1の行アドレスにあるデータ項目を、第1のバッファの第1のバッファ行にコピーすることと、
前記第1のバッファの前記第1のバッファ行内の各第1のデータ項目を、第2のバッファの少なくとも第1のバッファ行内の対応する位置に移動するステップであって、各第1のデータ項目に対する前記第2のバッファの少なくとも前記第1のバッファ行内の前記対応する位置が、前記第1のデータ項目に割り振られた第2のメモリ内のターゲット位置に依存する、ことと、
前記第2のバッファの前記第1のバッファ行内のデータ項目を、前記第2のメモリ内の対応するターゲット位置に記憶することと
を行うように構成される、装置。 - 前記第1のバッファの各バッファ行の容量が、前記第1のメモリ内の同じ行アドレスを有する複数のストレージユニットの総容量と同じであり、前記第2のバッファの各バッファ行の容量が、前記第2のメモリ内の同じ行アドレスを有する複数のストレージユニットの総容量と同じである、請求項7に記載の装置。
- 前記第1のバッファと前記第2のバッファの両方が、バッファ行によって循環的にアドレス指定される、請求項8に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811541065.1 | 2018-12-17 | ||
CN201811541065.1A CN111324294B (zh) | 2018-12-17 | 2018-12-17 | 存取张量数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020098602A JP2020098602A (ja) | 2020-06-25 |
JP7008983B2 true JP7008983B2 (ja) | 2022-01-25 |
Family
ID=68917584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019226595A Active JP7008983B2 (ja) | 2018-12-17 | 2019-12-16 | テンソルデータにアクセスするための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11163686B2 (ja) |
EP (1) | EP3671424A1 (ja) |
JP (1) | JP7008983B2 (ja) |
KR (1) | KR102397100B1 (ja) |
CN (1) | CN111324294B (ja) |
TW (1) | TWI743627B (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767508B (zh) * | 2020-07-09 | 2024-02-23 | 地平线(上海)人工智能技术有限公司 | 计算机实现张量数据计算的方法、装置、介质和设备 |
CN113485762B (zh) * | 2020-09-19 | 2024-07-26 | 广东高云半导体科技股份有限公司 | 用可配置器件卸载计算任务以提高系统性能的方法和装置 |
US20220188631A1 (en) * | 2020-12-16 | 2022-06-16 | Xmos Inc. | Artificial neural network implementation |
CN114764489A (zh) * | 2021-01-13 | 2022-07-19 | 华为技术有限公司 | 张量处理方法、装置、设备及计算机可读存储介质 |
CN112988238A (zh) * | 2021-05-06 | 2021-06-18 | 成都启英泰伦科技有限公司 | 一种基于可扩展指令集cpu内核的扩展运算装置及方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7167962B2 (en) * | 1999-08-19 | 2007-01-23 | Hitachi, Ltd. | Remote copy for a storage controller with reduced data size |
US6643755B2 (en) * | 2001-02-20 | 2003-11-04 | Koninklijke Philips Electronics N.V. | Cyclically sequential memory prefetch |
US20030041214A1 (en) * | 2001-07-27 | 2003-02-27 | Fujitsu Limited | Cache control methods and apparatus for hard disk drives |
JP4901316B2 (ja) * | 2006-06-06 | 2012-03-21 | 株式会社日立製作所 | ストレージシステム及び記憶制御装置 |
US8255562B2 (en) * | 2008-06-30 | 2012-08-28 | International Business Machines Corporation | Adaptive data throttling for storage controllers |
US20100281192A1 (en) * | 2009-04-30 | 2010-11-04 | Novafora, Inc. | Apparatus and method for transferring data within a data processing system |
US8761206B1 (en) * | 2011-03-24 | 2014-06-24 | Marvell International Ltd. | Universal packer |
US20140181171A1 (en) * | 2012-12-24 | 2014-06-26 | Pavel Dourbal | Method and system for fast tensor-vector multiplication |
US9690650B2 (en) * | 2013-03-11 | 2017-06-27 | Macronix International Co., Ltd. | Storage scheme for built-in ECC operations |
US9524164B2 (en) * | 2013-08-30 | 2016-12-20 | Advanced Micro Devices, Inc. | Specialized memory disambiguation mechanisms for different memory read access types |
US9612971B2 (en) * | 2014-08-19 | 2017-04-04 | Qualcomm Incorporated | Supplemental write cache command for bandwidth compression |
US9875104B2 (en) * | 2016-02-03 | 2018-01-23 | Google Llc | Accessing data in multi-dimensional tensors |
US10061832B2 (en) * | 2016-11-28 | 2018-08-28 | Oracle International Corporation | Database tuple-encoding-aware data partitioning in a direct memory access engine |
US10817802B2 (en) * | 2016-05-07 | 2020-10-27 | Intel Corporation | Apparatus for hardware accelerated machine learning |
JP2018005655A (ja) * | 2016-07-05 | 2018-01-11 | 富士通株式会社 | メモリコントローラおよびメモリアクセス方法 |
CN107783916B (zh) * | 2016-08-26 | 2020-01-31 | 深圳大心电子科技有限公司 | 数据传输方法、存储控制器与清单管理电路 |
US10198378B2 (en) * | 2016-11-18 | 2019-02-05 | Microsoft Technology Licensing, Llc | Faster data transfer with simultaneous alternative remote direct memory access communications |
US10175912B1 (en) * | 2017-07-05 | 2019-01-08 | Google Llc | Hardware double buffering using a special purpose computational unit |
US10042785B1 (en) * | 2017-08-29 | 2018-08-07 | Seagate Technology Llc | Storage drive with multiple controllers having interconnected buffer managers |
US20190130291A1 (en) * | 2017-10-27 | 2019-05-02 | Wave Computing, Inc. | Dynamic reconfiguration with partially resident agents |
US10346093B1 (en) * | 2018-03-16 | 2019-07-09 | Xilinx, Inc. | Memory arrangement for tensor data |
US11132124B2 (en) * | 2018-06-12 | 2021-09-28 | Intel Corporation | Memory subsystem operations with unaligned and scatter gather feature to support convolution and dimension shuffle |
US10956315B2 (en) * | 2018-07-24 | 2021-03-23 | Micron Technology, Inc. | Memory devices and methods which may facilitate tensor memory access |
-
2018
- 2018-12-17 CN CN201811541065.1A patent/CN111324294B/zh active Active
-
2019
- 2019-12-16 US US16/715,127 patent/US11163686B2/en active Active
- 2019-12-16 JP JP2019226595A patent/JP7008983B2/ja active Active
- 2019-12-16 EP EP19216498.6A patent/EP3671424A1/en not_active Withdrawn
- 2019-12-17 TW TW108146284A patent/TWI743627B/zh active
- 2019-12-17 KR KR1020190168867A patent/KR102397100B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
CN111324294B (zh) | 2023-11-07 |
KR20200075769A (ko) | 2020-06-26 |
KR102397100B1 (ko) | 2022-05-11 |
EP3671424A1 (en) | 2020-06-24 |
CN111324294A (zh) | 2020-06-23 |
TW202024922A (zh) | 2020-07-01 |
US11163686B2 (en) | 2021-11-02 |
TWI743627B (zh) | 2021-10-21 |
JP2020098602A (ja) | 2020-06-25 |
US20200192803A1 (en) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7008983B2 (ja) | テンソルデータにアクセスするための方法および装置 | |
EP0931380B1 (en) | Reconfigurable computing system | |
US11294599B1 (en) | Registers for restricted memory | |
CN113139648B (zh) | 执行神经网络模型的pim架构的数据布局优化 | |
KR20200098684A (ko) | 행렬 곱셈기 | |
JP7179853B2 (ja) | オンチップの計算ネットワーク | |
US20150324685A1 (en) | Adaptive configuration of a neural network device | |
CN111433758A (zh) | 可编程运算与控制芯片、设计方法及其装置 | |
US11579921B2 (en) | Method and system for performing parallel computations to generate multiple output feature maps | |
CN111656339B (zh) | 存储器装置及其控制方法 | |
US8615770B1 (en) | System and method for dynamically spawning thread blocks within multi-threaded processing systems | |
US20230061711A1 (en) | Inter-layer communication techniques for memory processing unit architectures | |
CN110991619A (zh) | 神经网络处理器、芯片和电子设备 | |
CN112631955B (zh) | 数据处理方法、装置、电子设备以及介质 | |
US20220350514A1 (en) | Memory mapping of activations for convolutional neural network executions | |
US7827023B2 (en) | Method and apparatus for increasing the efficiency of an emulation engine | |
JP7410961B2 (ja) | 演算処理装置 | |
US12093810B2 (en) | Convolution processing engine and control method, and corresponding convolutional neural network accelerator | |
US20190004995A1 (en) | High-Speed, Fixed-Function, Computer Accelerator | |
US8959497B1 (en) | System and method for dynamically spawning thread blocks within multi-threaded processing systems | |
CN111047035A (zh) | 神经网络处理器、芯片和电子设备 | |
CN116360672A (zh) | 访问存储器的方法、装置和电子设备 | |
CN112906877A (zh) | 用于执行神经网络模型的存储器架构中的数据布局有意识处理 | |
KR20170085455A (ko) | 병렬 연산을 수행하는 장치 및 방법 | |
CN115408309A (zh) | 一种ai处理器的缓存管理方法及应用其的ai处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210324 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210823 |
|
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: 20211206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220104 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7008983 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |