CN113924621A - 用于存储器内矩阵乘法的基于温度的调整 - Google Patents
用于存储器内矩阵乘法的基于温度的调整 Download PDFInfo
- Publication number
- CN113924621A CN113924621A CN202080040319.0A CN202080040319A CN113924621A CN 113924621 A CN113924621 A CN 113924621A CN 202080040319 A CN202080040319 A CN 202080040319A CN 113924621 A CN113924621 A CN 113924621A
- Authority
- CN
- China
- Prior art keywords
- matrix
- temperature
- memory
- region
- processor
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B33/00—Constructional parts, details or accessories not provided for in the other groups of this subclass
- G11B33/14—Reducing influence of physical parameters, e.g. temperature change, moisture, dust
- G11B33/1406—Reducing the influence of the temperature
- G11B33/144—Reducing the influence of the temperature by detection, control, regulation of the temperature
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01K—MEASURING TEMPERATURE; MEASURING QUANTITY OF HEAT; THERMALLY-SENSITIVE ELEMENTS NOT OTHERWISE PROVIDED FOR
- G01K13/00—Thermometers specially adapted for specific purposes
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01K—MEASURING TEMPERATURE; MEASURING QUANTITY OF HEAT; THERMALLY-SENSITIVE ELEMENTS NOT OTHERWISE PROVIDED FOR
- G01K3/00—Thermometers giving results other than momentary value of temperature
- G01K3/08—Thermometers giving results other than momentary value of temperature giving differences of values; giving differentiated values
- G01K3/10—Thermometers giving results other than momentary value of temperature giving differences of values; giving differentiated values in respect of time, e.g. reacting only to a quick change of temperature
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01K—MEASURING TEMPERATURE; MEASURING QUANTITY OF HEAT; THERMALLY-SENSITIVE ELEMENTS NOT OTHERWISE PROVIDED FOR
- G01K3/00—Thermometers giving results other than momentary value of temperature
- G01K3/08—Thermometers giving results other than momentary value of temperature giving differences of values; giving differentiated values
- G01K3/14—Thermometers giving results other than momentary value of temperature giving differences of values; giving differentiated values in respect of space
-
- 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/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
- G06N3/065—Analogue means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Complex Calculations (AREA)
- Semiconductor Memories (AREA)
- Microcomputers (AREA)
Abstract
本发明公开了考虑存储器中的温度变化的用于执行存储器内矩阵乘法的技术。在一个示例中,矩阵乘法存储器使用欧姆乘法与电流求和来执行矩阵乘法中涉及的点积。这种模拟形式的乘法的一个缺点是温度影响结果的准确度。因此,本文提供了补偿温度升高对存储器内矩阵乘法的准确度的影响的技术。根据这些技术,输入矩阵的部分被分类为有效或无效。有效部分被映射到存储器内矩阵乘法器的低温区域,并且无效部分被映射到存储器内矩阵乘法器的高温区域。然后,执行矩阵乘法。
Description
相关申请的交叉引用
本申请要求2019年5月31日提交的美国非临时申请号16/428,903的权益,该非临时申请的内容据此以引用方式并入本文。
背景技术
矩阵乘法是在许多类型的计算任务中频繁使用的一种类型的计算,所述计算任务诸如三维图形渲染和执行人工神经网络的计算。因此,对矩阵乘法的性能的改进正在不断地进行。
附图说明
可以从下面结合附图以举例方式给出的描述中获得更详细的理解,在附图中:
图1是其中可以实施本公开的一个或多个特征的示例性计算装置的框图;
图2是根据示例展示矩阵乘法阵列的细节的框图;
图3是根据示例示出包括温度控制器的图1的存储器内处理器的细节的图示;
图4展示了用于矩阵乘法的示例性交换操作;以及
图5是根据一个示例的一种用于执行存储器内处理器中的矩阵乘法的方法的流程图,所述方法考虑了整个存储器内处理器上的温差。
具体实施方式
本发明公开了考虑存储器中的温度变化的用于执行存储器内矩阵乘法的技术。在一个示例中,矩阵乘法存储器使用欧姆乘法与电流求和来执行矩阵乘法中涉及的点积。这种模拟形式的乘法的一个缺点是温度影响结果的准确度。因此,本文提供了补偿温度升高对存储器内矩阵乘法的准确度的影响的技术。
根据所述技术,基于来自温度传感器的测量值,矩阵乘法存储器的区域被分类为高温或低温。在一个示例中,这些区域跨越矩阵存储器裸片并且平行于存储器电路的字线。两个外围区域(例如,“顶部”区域和“底部”区域)具有拐角传感器或外围传感器,并且外围区域和非外围区域均具有中央温度传感器。温度控制器基于来自温度传感器的读数确定这些区域的估计温度,并且基于估计温度与阈值的比较将这些区域分类为热区域或冷区域。温度控制器基于输入矩阵(矩阵被乘数)的部分(诸如行或列)的元素的量值将那些部分分类为“有效”或“无效”。更具体地说,具有数目高于阈值的非零元素的部分被认为“有效”,而具有数目等于或低于阈值的非零元素的部分被认为“无效”。“非零元素”是绝对值大于零或大于接近零的值的元素。因为“有效”部分比“无效”部分对所得矩阵乘法乘积的影响更大,所以温度控制器将无效部分映射到高温区域并且将有效部分映射到低温区域。因为温度升高降低存储器中的计算准确度,所以将“有效”部分映射到低温区域提高矩阵乘法的准确度。另外的细节在本文别处提供。
图1是其中能够实施本公开的一个或多个特征的示例性计算装置100的框图。计算装置100可以是以下各者中的一者但不限于以下各者:例如计算机、游戏装置、手持装置、机顶盒、电视机、移动电话、平板计算机或其他计算装置。计算装置100包括一个或多个处理器102、存储器104、存储装置106、一个或多个输入装置108,以及一个或多个输出装置110。计算装置100还包括一个或多个输入驱动器112以及一个或多个输出驱动器114。输入驱动器112中的任何一个体现为硬件、硬件和软件的组合,或者软件,并且用于控制输入装置112(例如,控制操作、从输入驱动器112接收输入,以及向所述输入驱动器提供数据)。类似地,输出驱动器114中的任何一个体现为硬件、硬件和软件的组合,或者软件,并且用于控制输出装置114(例如,控制操作、从输出驱动器114接收输入,以及向所述输出驱动器提供数据)。应当理解,计算装置100可以包括图1中未示出的另外的部件。
在各种替代方案中,一个或多个处理器102包括中央处理单元(CPU)、图形处理单元(GPU)、定位在同一裸片上的CPU和GPU,或者一个或多个处理器内核,其中每个处理器内核可以是CPU或GPU。在各种替代方案中,存储器104与一个或多个处理器102中的一个或多个定位在同一裸片上,或者与一个或多个处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。
存储装置106包括固定的或可移除的存储装置,例如但不限于硬盘驱动器、固态驱动器、光盘或快闪驱动器。输入装置108包括但不限于键盘、小键盘、触摸屏、触摸板、检测器、传声器、加速计、陀螺仪、生物特征扫描仪或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。输出装置110包括但不限于显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。
输入驱动器112和输出驱动器114包括一个或多个硬件部件、软件部件和/或固件部件,所述一个或多个硬件部件、软件部件和/或固件部件被配置为分别与输入装置108和输出装置110进行交互并且驱动所述输入装置和所述输出装置。输入驱动器112与一个或多个处理器102和输入装置108通信,并且允许一个或多个处理器102从输入装置108接收输入。输出驱动器114与一个或多个处理器102和输出装置110通信,并且允许一个或多个处理器102向输出装置110发送输出。
在一些实施方式中,输出驱动器114包括加速处理装置(“APD”)116。在一些实施方式中,APD 116用于通用计算,并且不向显示器(诸如显示装置118)提供输出。在其他实施方式中,APD 116向显示器118提供图形输出,并且在一些替代方案中,还执行通用计算。在一些示例中,显示装置118是使用远程显示协议来显示输出的物理显示装置或模拟装置。APD116被配置为接受来自一个或多个处理器102的计算命令和/或图形渲染命令,处理那些计算命令和/或图形渲染命令,并且在一些示例中,向显示装置118提供像素输出以供显示。APD 116包括一个或多个并行处理单元,所述一个或多个并行处理单元被配置为根据单指令多数据(“SIMD”)范例来执行计算。
计算装置100包括一个或多个存储器内处理器130。存储器内处理器通过将输入信号施加于存储在存储器单元中的值并且获得乘法乘积的元素作为输出,来执行矩阵乘法。存储器内矩阵乘法的许多实施方式是可能的。在一个实施方式中,存储器单元是电阻式随机存取存储器单元。为了在该实施方式中执行乘法,对所述单元加载与矩阵的元素相对应的值。具体地说,电阻被设置为矩阵元素的倒数(即,电阻式元件的电导率被设置为矩阵元素的值)。在一些实施方式中,电阻对表示矩阵元素的值进行编码,而不是直接存储那些值。将对应于要与矩阵相乘的向量的值的一系列电压施加于一系列位线。由于欧姆定律,将向量与矩阵行中的每一行的点积作为乘法乘积输出。虽然示出了存储器内处理器130的一些示例性位置,但是应当理解,定位在任何技术上可行的位置或装置中的任何存储器内处理器130均落入本公开的范围内。
图2是根据示例展示矩阵乘法阵列200的细节的框图。在使用电阻式随机存取存储器(“RAM”)的存储器内处理器130的示例性实施方式中,矩阵乘法阵列200是图1的存储器内处理器130的一部分。矩阵乘法阵列200包括经由电阻式单元元件208耦接到多条位线204的多条字线206。矩阵乘法阵列200还包括矩阵输入块210、向量输入块212、用于向量输入的数模转换器214、用于输出的模数转换器216,以及输出块218。
列向量(V)与矩阵(M)的矩阵乘法如下进行:
这种乘法的结果是列向量,其元素是输入向量与矩阵行中的每一行的点积。例如,输出向量的顶部元素是向量与矩阵的顶部行的点积。类似地,输出顶点的中间元素和底部元素分别是输入向量与矩阵的中间行和底部行的点积。
使用矩阵乘法阵列200的矩阵乘法通过以下方式进行:将电阻式存储器单元208设置为具有等于要相乘的矩阵元素的电导率(由字母“G”表示,其中电导率是电阻的倒数)。然后,将等于要相乘的向量元素的电压施加于字线。在该配置中,每条字线均使用欧姆定律和基尔霍夫定律执行点积运算。更具体地说,将施加在字线206上的电压施加于电阻式单元208中的每一个。该电压施加使得电流从位线204流经电阻式单元208到达字线206。根据欧姆定律,流过的电流量等于VG,其中“V”是施加在位线204上的电压,而“G”是电阻式单元208的电导率。根据基尔霍夫定律,在位线204上流动到ADC 216的电流量等于流经电阻式单元208中的每一个的电流的总和。因此,在每条位线204上输出乘积(点积)的总和。点积是输入向量与输入矩阵的行的点积。
在所提供的示例中,假设输入向量是列向量,电阻式单元208和输入向量的物理取向与矩阵元素和向量的逻辑取向不匹配。更具体地说,如上所述,列向量与矩阵相乘产生输出向量,其元素是输入向量与矩阵的每一行的点积。然而,矩阵乘法阵列200执行输入向量与电阻式单元208的列的点积运算。因此,矩阵的元素以与矩阵乘法的符号表示相比相反的取向被加载到电阻式单元208中(例如,电阻式单元208的列被加载矩阵符号表示的行的值)。如果输入向量是行向量,则被加载到电阻式单元208中的值的取向与矩阵的符号表示的取向匹配,但是行输入向量的值如图2所示垂直布置。
上述技术可以被扩展以执行矩阵乘矩阵的乘法。更具体地说,这种乘法的乘积的每一列(或行)等于第一输入矩阵和第二输入矩阵的每一列(或行)的矩阵乘法。因此,这种乘法通过对第一输入矩阵的每一列(或行)重复上述技术以获得输出矩阵的列(或行)来执行。
矩阵输入块210将值加载到电阻式单元208中,从而根据矩阵的值设置那些电阻式单元208的电阻(例如,作为那些值的倒数)。向量输入块212将与要相乘的输入向量相关联的数字值施加于数模转换器214。数模转换器214将这些施加的值转换为电压,并且将电压施加于适当的字线206。模数转换器216将接收到的电流转换为数字信号,并且将那些数字信号提供给输出块218。图2中未展示将数字值提供给向量输入块212并且从输出块218接收数字值的元件,但是可以使用任何技术上可行的元件。
图2中所展示的各种元件被实施为被布置成执行所述功能的适当电路。需注意,尽管公开了涉及电阻式RAM的存储器内矩阵乘法的特定实施方式,但是该技术可以用用于执行存储器内矩阵乘法的任何其他技术上可行的技术(其中可以应用本文所公开的用于进行基于温度的调整的技术)来替换。任何这样的替代性矩阵乘法实施方式均落入本公开的范围中。
本文所述的矩阵乘法技术是模拟过程。因此,矩阵乘法的结果取决于矩阵乘法阵列200的物理方面。一个这样的物理方面是温度,其可能在包括矩阵乘法阵列200的许多实例的整个裸片上发生变化。例如,这种裸片的元件可能变热,导致流到位线204上的电流发生改变(例如,由于电阻式单元208的电阻发生改变)。因此,本文提供了减少温度变化对从矩阵乘法阵列200输出的结果的影响的技术。
需注意,关于图2描述的技术可以用于针对本公开的陈述执行存储器内矩阵乘法的任何部分执行矩阵乘法。
图3是根据示例示出图1的存储器内处理器130的细节的图示。存储器内处理器130包括多个矩阵乘法阵列200和温度控制器320。存储器内处理器130还包括多个温度传感器304。温度传感器304包括中央传感器304a和外围传感器304b。传感器304测量传感器304位置处的温度。温度控制器320接收那些温度测量值并且基于这些温度测量值控制矩阵乘法阵列200,以减轻温度偏差对计算准确度的影响。更具体地说,温度控制器320基于来自传感器304的测量值来确定存储器内处理器130的不同区域302的温度。每个区域覆盖矩阵乘法阵列200中的每一个的一行或多行(例如,字线206)。因此,在确定区域302的温度时,温度控制器320确定矩阵乘法阵列200的一行或多行的温度。
温度控制器320可以使用任何技术上可行的技术来确定区域302的温度。在一个示例性技术中,温度控制器320测量每个中央温度传感器304a和每个外围传感器304b处的温度。外围传感器304b位于最顶部区域和最底部区域302中。对于外围区域(最顶部区域和最底部区域),温度控制器320确定该区域中的所有传感器304的最大温度值,并且使用该最大温度作为外围区域302的温度。对于非外围区域,温度控制器320确定两个外围区域中的哪个区域更靠近其温度正在被确定的非外围区域。更靠近其温度正在被确定的区域的外围区域被称为更靠近的外围区域。
温度控制器320如下确定非外围区域的温度。温度控制器320确定更靠近的外围区域中的外围传感器304b的温度是否大于非外围区域302中的中央传感器304a的温度。如果非外围区域中的中央传感器302a的温度大于更靠近的外围区域中的外围传感器304b的温度,则温度控制器320将非外围区域302中的中央传感器304a的温度指定为非外围区域的温度。
如果外围区域中的至少一个外围传感器304b的温度大于外围区域中的中央传感器304a的温度,则温度控制器320将非外围区域的温度确定为非外围区域中的中央传感器304a的温度,所述温度基于从外围区域的传感器304测量的一个或多个温度来修改。在一个示例中,温度控制器320基于以下表达式确定非外围区域的温度:
Tci+2*(Tpp–Tcp)
其中:
Tci是非外围区域的中央传感器304a的温度;
Tcp是外围区域中的中央传感器304a的温度;以及
Tpp是在外围区域中具有较高温度的外围传感器304b的温度。
换句话说,将外围区域中的较高温度的外围传感器与中央传感器之间的差值加倍,并且将结果与非外围区域的中央传感器304a的温度相加。
虽然上述技术被提供作为用于确定区域的温度的示例,但是可以使用基于传感器304的测量值来确定温度的任何技术上可行的技术。另外,尽管提供了基于外围区域中的传感器304的测量值来确定非外围区域的温度的具体表达式,但是用于确定该温度的任何技术上可行的技术都是可能的。在示例中,代替将外围区域中的中央传感器与外围传感器之间的差值加倍并且将该加倍的差值与非外围区域中的中央传感器304a中测量的温度相加,可以将该差值在没有加倍的情况下与所述测量的温度相加。所述差值还可以通过另一个乘法或加法因子来修改,或者可以以任何其他方式来修改。在其他示例中,使用的量不基于外围区域中的中央传感器和外围传感器304的温度之间的差值(而是基于涉及外围区域中的外围传感器和中央传感器的某个其他量)。此外,尽管示出并且描述了传感器304的具体配置,但是可以使用温度传感器304的任何技术上可行的布置来确定区域302的温度。
为了减轻温度对计算准确度的影响,温度控制器320基于列的“有效性分类”将输入矩阵的部分(诸如列或行,其取决于矩阵乘法映射到矩阵乘法阵列200的方式)分配给矩阵乘法阵列200的字线206。
“有效性分类”标识输入矩阵的特定矩阵部分对矩阵乘法乘积有多大影响。在一个示例中,如果矩阵部分的非零元素的数目高于阈值,则认为该矩阵部分有效。在一些实施方式中,如果元素不等于零,则所述元素被认为是非零元素。在其他实施方式中,如果元素的绝对值高于接近零的阈值,则所述元素被认为是非零元素。阈值可以以任何技术上可行的方式选择。不被认为有效的矩阵部分被认为无效。在一个示例中,为了确定阈值,执行以下操作。计算所有计数器值的算术平均数(每个计数器存储每个矩阵部分的非零元素的数目)并且将其称为总平均值(τ(avg))。τ(low_counter)被计算为小于总平均值的计数器值的算术平均数。τ(high_counter)被计算为大于总平均值的计数器值的算术平均数。在一些实施方式中,将计数器阈值设置为τ(high_counter),以选择最有效的矩阵部分。然而,选择阈值的其他方式也是可能的。具体地说,有效矩阵部分和无效矩阵部分的分布可能影响最佳阈值水平。
被认为无效的矩阵部分具有许多为零或接近零的元素,因此对矩阵乘法乘积的贡献相对较小。因此,无效矩阵部分的准确度相比于被认为有效的矩阵部分的准确度不太重要。由于该事实,在单个矩阵乘法阵列200内,温度控制器320将输入矩阵的有效且定位在高温区域302中的矩阵部分与输入矩阵的无效且定位在低温区域302中的矩阵部分交换。温度控制器320还交换输入向量的元素和/或输出向量的元素,这取决于是否需要这种交换以使交换后的结果输出向量正确。具有低于阈值的确定温度的区域302被分类为低温区域,而具有高于阈值的确定温度的区域302被分类为高温区域。阈值可以以任何技术上可行的方式设置。
图4展示了用于矩阵乘法的示例性交换操作。矩阵乘法涉及将列向量V 402乘以矩阵404,以获得矩阵乘积,即输出列向量406。在该示例中,输入矩阵的列是被分类为有效或无效的矩阵部分。如图所示,温度控制器320对输入矩阵404的列进行分类。具体地说,第一列和第三列被分类为有效,而第二列被分类为无效。如本文别处所述,该分类通过将列的元素分类为零元素或非零元素并且将非零元素的数目与阈值进行比较来执行。因此,温度控制器320基于列的值得到所示的分类。具体地说,温度控制器320确定中间列包括数目大于阈值的零值或接近零的值,因此将该列分类为无效。另外两列具有数目小于或等于阈值的零值或接近零的值,因此温度控制器320将那些列分类为无效。
在处于未交换配置200(1)的矩阵乘法阵列中,输入向量的元素按所示的顺序映射。另外,如图所示,矩阵的元素被映射到单元208。具体地说,因为输入向量是列向量,所以输入矩阵的行被映射到矩阵乘法阵列200的字线206,这产生正确的结果列向量作为输出,如图所示。该“未交换配置200(1)”是在没有本文所述的基于温度的调整的情况下将发生的映射。
温度控制器320使用温度传感器304,来根据本文别处所述的技术将区域分类为低温或高温。在图4中,顶部的两条字线206处于被分类为低温的区域1中,而底部的字线206处于被分类为高温的区域2中。在未交换配置200(1)中,“有效”列(列3)被分配给高温区域,这意味着涉及列3的计算将遭受准确度下降。
因此,温度控制器320将被分类为有效的列分配给低温区域中的字线206,并且将被分类为无效的列分配给高温区域中的字线206。在图4的示例中,列3与列2交换。因此,在交换配置200(2)中,温度控制器320将列3分配给处于低温区域中的中间字线206,并且将列2分配给处于高温区域中的底部字线206。此外,温度控制器320交换输入向量的对应元素。因为列2和列3交换,所以输入向量的元素2和元素3交换。以这种方式交换输入向量产生正确的矩阵乘法输出。
需注意,图4的示例仅展示了一种类型的矩阵乘法和一种对应类型的交换操作,但是其他类型的交换操作也是有效的。在一个示例性交换操作中,输入是行向量,因此输入矩阵的行(而不是列)被映射到字线206,这是因为矩阵乘法中涉及的点积沿着矩阵的列发生。在该示例中,输入矩阵的行(而不是列)被分类为有效或无效。被分类为有效的行被映射到低温区域中的字线206,而被分类为无效的行被映射到高温区域中的字线206。不管使用什么配置,都可能需要交换输入向量的元素以便产生正确的结果。正确的结果意味着输入矩阵和向量的元素相乘并求和,如矩阵乘法将发生的那样。在一些配置中,代替交换输入向量的元素的顺序,或者除了交换输入向量的元素的顺序之外,还可以交换输出的顺序。
当然,有效列的数目可能小于低温字线206的数目。在该情形下,温度控制器320除了将有效列映射到低温字线206之外,还将一个或多个无效列映射到一条或多条低温字线206。有效列的数目可能超过低温字线206的数目。在该情形下,在某些情况下,温度控制器320利用以不同方式执行矩阵乘法的备份模式。在示例中,温度控制器320使得具有比低温字线206更有效的列的矩阵乘法阵列200将用纠错码(“ECC”)来执行。具体地说,在这种情形下,由于将有效矩阵部分映射到高温字线,所以乘法的结果具有较低的准确度。在这种情况下,嵌入强ECC作为备份模式以避免静默错误。
可以执行矩阵与矩阵的乘法。在该情况下,将第一矩阵分解成多个一维向量,并且对每个向量重复本文所述的技术。
图5是根据示例的用于执行存储器内处理器中的矩阵乘法的方法500的流程图,该方法考虑了整个存储器内处理器上的温差。
方法500开始于步骤502,其中温度控制器320将区域302分类为高温或低温。该分类基于从温度传感器304取得的测量值进行,如本文别处所述(例如,关于图3)。
为了将区域302分类为高温或低温,温度控制器320确定针对区域302确定的温度是高于温度阈值还是低于温度阈值。如果温度高于温度阈值,则温度控制器320将该区域分类为高温区域。如果温度低于温度阈值,则温度控制器320将该区域分类为低温区域。温度阈值可以以任何技术上可行的方式设置。在一个示例中,温度阈值是诸如57摄氏度的常数(或者可以是与57摄氏度相差1摄氏度内的常数)。
在步骤504处,温度控制器320将输入矩阵的用于矩阵乘法的部分(“输入矩阵部分”)分类为有效或无效。这种分类是基于输入矩阵部分的元素的量值进行的,如本文别处所述。
在步骤506处,温度控制器320将在初始配置中被分类为有效并且被分配给矩阵乘法阵列200的被分类为高温的单元208的输入矩阵部分与在初始配置中被分类为无效并且被分配给矩阵乘法阵列200的被分类为低温的单元208的输入矩阵部分进行交换。初始配置是在未进行本文所述技术的交换的情况下,输入矩阵部分在矩阵乘法阵列200上的布置。根据正在执行的矩阵乘法的类型,温度控制器320还可以使得输入顶点的元素以对应的方式交换。
在步骤508处,温度控制器320使得矩阵乘法被执行。在利用电阻式RAM的实施方式中,通过沿着位线204执行点积、通过将输入向量的电压施加于字线206来执行乘法,这使得电流根据电阻式单元208的那些电压和电阻而从字线206流到位线,并且所述电流被求和以沿着位线204输出。尽管该技术是本文别处所述的一种技术,但是任何其他技术上可行的技术也是可能的。
确定温度的频率可能低于执行矩阵乘法的频率。根据这样的方案,温度控制器320确定一个或多个区域302的温度,并且该温度用于确定是否在一定时间段内对列进行交换。在该时间段过去之后,温度控制器320再次确定该区域的温度。
应当理解,基于本文的公开内容,许多变化是可能的。虽然上文以特定的组合描述了特征和要素,但是每个特征或要素可以单独使用而无需其他特征和要素,或者在具有或不具有其他特征和要素的情况下以各种组合使用。
所提供的方法可在通用计算机、处理器或处理器内核中实施。举例来说,合适的处理器包括通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。能够通过以下方式制造这种处理器:使用处理后的硬件描述语言(HDL)指令的结果和其他中间数据(包括网表)(这种指令能够存储在计算机可读介质上)来配置制造过程。这种处理的结果可能是遮罩,所述遮罩然后被用于半导体制造过程中以制造实施本公开的特征的处理器。
本文提供的方法或流程图能够在并入非暂时性计算机可读存储介质的计算机程序、软件或固件中实施,以便由通用计算机或处理器执行。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器装置、磁性介质(诸如内部硬盘和可移动磁盘)、磁光介质以及诸如CD-ROM盘和数字通用光盘(DVD)等光学介质。
Claims (20)
1.一种用于执行存储器内矩阵乘法的方法,所述方法包括:
将存储器内处理器的区域分类为至少一个低温区域和至少一个高温区域;
将矩阵的第一矩阵部分分类为有效并且将所述矩阵的第二矩阵部分分类为无效;
将所述第一矩阵部分分配给所述低温区域并且将所述第二矩阵部分分配给所述高温区域;以及
在所述存储器内处理器中执行与所述矩阵的矩阵乘法,以接收乘积。
2.如权利要求1所述的方法,其中将所述存储器内处理器的所述区域分类包括:
确定对象区域的温度;以及
基于所述温度与温度阈值的比较,将所述对象区域分类为低温区域或高温区域。
3.如权利要求2所述的方法,其中:
所述对象区域包括具有外围温度传感器和中央温度传感器的外围区域;并且
确定所述对象区域的所述温度包括将所述温度确定为由所述外围温度传感器和所述中央温度传感器测量的最高温度。
4.如权利要求3所述的方法,其中:
所述存储器内处理器包括外围区域,所述外围区域各自具有外围温度传感器和中央温度传感器;
所述存储器内处理器包括非外围区域,所述非外围区域各自包括中央温度传感器;
所述对象区域包括所述非外围区域中的一个;并且
确定所述对象区域的所述温度包括基于针对外围区域和针对所述对象区域测量的温度来确定温度。
5.如权利要求1所述的方法,其中将所述第一矩阵部分分类为有效包括:
确定所述第一矩阵部分的非零元素的数目高于阈值。
6.如权利要求1所述的方法,其中将所述第二矩阵部分分类为无效包括:
确定所述第二矩阵部分的非零元素的数目低于阈值。
7.如权利要求1所述的方法,其中将所述第一矩阵部分分配给所述低温区域并且将所述第二矩阵部分分配给所述高温区域包括交换所述第一矩阵部分和所述第二矩阵部分。
8.如权利要求1所述的方法,其中执行所述矩阵乘法包括:
将对应于输入向量的一组电压施加于所述存储器内处理器的一组字线。
9.如权利要求1所述的方法,其还包括交换输入向量的元素。
10.一种存储器内矩阵乘法处理系统,其包括:
温度控制器;以及
存储器内处理器,
其中所述温度控制器被配置为:
将所述存储器内处理器的区域分类为至少一个低温区域和至少一个高温区域,
将矩阵的第一矩阵部分分类为有效并且将所述矩阵的第二矩阵部分分类为无效,
将所述第一矩阵部分分配给所述低温区域并且将所述第二矩阵部分分配给所述高温区域,以及
在所述存储器内处理器中执行与所述矩阵的矩阵乘法,以接收乘积。
11.如权利要求10所述的存储器内矩阵乘法处理系统,其中将所述存储器内处理器的所述区域分类包括:
确定对象区域的温度;以及
基于所述温度与温度阈值的比较,将所述对象区域分类为低温区域或高温区域。
12.如权利要求11所述的存储器内矩阵乘法处理系统,其中所述对象区域包括具有外围温度传感器和中央温度传感器的外围区域;并且
确定所述对象区域的所述温度包括将所述温度确定为由所述外围温度传感器和所述中央温度传感器测量的最高温度。
13.如权利要求12所述的存储器内矩阵乘法处理系统,其中:
所述存储器内处理器包括外围区域,所述外围区域各自具有外围温度传感器和中央温度传感器;
所述存储器内处理器包括非外围区域,所述非外围区域各自包括中央温度传感器;
所述对象区域包括所述非外围区域中的一个;并且
确定所述对象区域的所述温度包括基于针对外围区域和针对所述对象区域测量的温度来确定温度。
14.如权利要求10所述的存储器内矩阵乘法处理系统,其中将所述第一矩阵部分分类为有效包括:
确定所述第一矩阵部分的非零元素的数目高于阈值。
15.如权利要求10所述的存储器内矩阵乘法处理系统,其中将所述第二矩阵部分分类为无效包括:
确定所述第二矩阵部分的非零元素的数目低于阈值。
16.如权利要求10所述的存储器内矩阵乘法处理系统,其中将所述第一矩阵部分分配给所述低温区域并且将所述第二矩阵部分分配给所述高温区域包括交换所述第一矩阵部分和所述第二矩阵部分。
17.如权利要求10所述的存储器内矩阵乘法处理系统,其中执行所述矩阵乘法包括:
将对应于输入向量的一组电压施加于所述存储器内处理器的一组字线。
18.如权利要求10所述的存储器内矩阵乘法处理系统,其中所述温度控制器被进一步配置为交换输入向量的元素。
19.一种计算装置,其包括:
处理器;以及
存储器内矩阵乘法处理系统,所述存储器内矩阵乘法处理系统包括:
温度控制器;以及
存储器内处理器,
其中所述温度控制器被配置为:
将所述存储器内处理器的区域分类为至少一个低温区域和至少一个高温区域,
将矩阵的第一矩阵部分分类为有效并且将所述矩阵的第二矩阵部分分类为无效,
将所述第一矩阵部分分配给所述低温区域并且将所述第二矩阵部分分配给所述高温区域,以及
在所述存储器内处理器中执行与所述矩阵的矩阵乘法,以接收乘积。
20.如权利要求19所述的计算装置,其中将所述存储器内处理器的所述区域分类包括:
确定对象区域的温度;以及
基于所述温度与温度阈值的比较,将所述对象区域分类为低温区域或高温区域。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/428,903 US11507641B2 (en) | 2019-05-31 | 2019-05-31 | Temperature-based adjustments for in-memory matrix multiplication |
US16/428,903 | 2019-05-31 | ||
PCT/US2020/032119 WO2020242746A1 (en) | 2019-05-31 | 2020-05-08 | Temperature-based adjustments for in-memory matrix multiplication |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113924621A true CN113924621A (zh) | 2022-01-11 |
Family
ID=73549716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080040319.0A Pending CN113924621A (zh) | 2019-05-31 | 2020-05-08 | 用于存储器内矩阵乘法的基于温度的调整 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11507641B2 (zh) |
EP (1) | EP3977317A4 (zh) |
JP (1) | JP2022534477A (zh) |
KR (1) | KR20220003647A (zh) |
CN (1) | CN113924621A (zh) |
WO (1) | WO2020242746A1 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110205826A1 (en) * | 2010-02-22 | 2011-08-25 | Sony Corporation | Storage control device, storage device and storage device system |
US20140047285A1 (en) * | 2012-08-10 | 2014-02-13 | Stmicroelectronics International N.V. | Memory manager |
US20150143026A1 (en) * | 2013-11-21 | 2015-05-21 | Sandisk Technologies Inc. | Temperature based flash memory system maintenance |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8750065B2 (en) | 2011-06-28 | 2014-06-10 | Rochester Institute Of Technology | Thermal management apparatuses with temperature sensing resistive random access memory devices and methods thereof |
KR20170134444A (ko) | 2015-04-10 | 2017-12-06 | 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 | 온도 보상 회로 |
US10424370B2 (en) | 2017-10-24 | 2019-09-24 | International Business Machines Corporation | Sensor device with resistive memory for signal compression and reconstruction |
CN108830840A (zh) | 2018-05-31 | 2018-11-16 | 江苏华鹰光电科技有限公司 | 一种电路板缺陷的主动智能检测方法及其应用 |
US10755783B2 (en) * | 2018-08-27 | 2020-08-25 | Silicon Storage Technology | Temperature and leakage compensation for memory cells in an analog neural memory system used in a deep learning neural network |
-
2019
- 2019-05-31 US US16/428,903 patent/US11507641B2/en active Active
-
2020
- 2020-05-08 WO PCT/US2020/032119 patent/WO2020242746A1/en unknown
- 2020-05-08 CN CN202080040319.0A patent/CN113924621A/zh active Pending
- 2020-05-08 JP JP2021568589A patent/JP2022534477A/ja active Pending
- 2020-05-08 EP EP20813165.6A patent/EP3977317A4/en active Pending
- 2020-05-08 KR KR1020217043110A patent/KR20220003647A/ko unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110205826A1 (en) * | 2010-02-22 | 2011-08-25 | Sony Corporation | Storage control device, storage device and storage device system |
US20140047285A1 (en) * | 2012-08-10 | 2014-02-13 | Stmicroelectronics International N.V. | Memory manager |
US20150143026A1 (en) * | 2013-11-21 | 2015-05-21 | Sandisk Technologies Inc. | Temperature based flash memory system maintenance |
Non-Patent Citations (1)
Title |
---|
MAJED VALAD BEIGI等: "Thermal-aware Optimizations of ReRAM-based Neuromorphic Computing Systems", 《2018 55TH ACM/ESDA/IEEE DESIGN AUTOMATION CONFERENCE (DAC)》, pages 1 - 5 * |
Also Published As
Publication number | Publication date |
---|---|
EP3977317A4 (en) | 2023-01-25 |
EP3977317A1 (en) | 2022-04-06 |
KR20220003647A (ko) | 2022-01-10 |
US11507641B2 (en) | 2022-11-22 |
JP2022534477A (ja) | 2022-08-01 |
US20200380063A1 (en) | 2020-12-03 |
WO2020242746A1 (en) | 2020-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11610127B2 (en) | Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation | |
EP3564867A1 (en) | Peripheral circuit and system for supporting rram-based neural network training | |
CN112085186A (zh) | 一种神经网络的量化参数确定方法及相关产品 | |
CN111931922A (zh) | 一种提高模型推断精度的量化方法 | |
JP6293963B1 (ja) | ニューロモルフィック素子を含むアレイの制御装置、離散化ステップサイズの演算方法およびプログラム | |
US10083287B2 (en) | Fingerprint sensing device and electronic device including the same | |
CN112785597A (zh) | 识别图像的方法和系统 | |
US20200019744A1 (en) | Method and apparatus for processing image data | |
Chen et al. | A general framework of piecewise-polynomial Mumford–Shah model for image segmentation | |
CN113994347A (zh) | 用于负值和正值的非对称缩放因子支持的系统和方法 | |
CN112150343A (zh) | 基于忆阻器阵列实现二值形态学操作的方法及电子装置 | |
CN114579079A (zh) | 用于常数乘法的集成电路、操作其的方法和包括其的装置 | |
CN113924621A (zh) | 用于存储器内矩阵乘法的基于温度的调整 | |
US20210247838A1 (en) | Operating method of power optimization scheduler and computing apparatus including power optimization scheduler | |
US10949498B1 (en) | Softmax circuit | |
JP6705052B2 (ja) | 入力装置とその制御方法及びプログラム | |
Sivanandam et al. | Run time reconfigurable modified Vedic multiplier for high speed multimedia applications | |
CN109583512B (zh) | 图像处理方法、装置及系统 | |
EP4089524A1 (en) | Apparatus and method with multiply-accumulate operation | |
CN115761239B (zh) | 一种语义分割方法及相关装置 | |
US10037191B2 (en) | Performing a comparison computation in a computer system | |
US20240184533A1 (en) | Apparatus and method with data processing | |
US20230230217A1 (en) | Image detection method, computing device, and storage medium | |
EP4191481A1 (en) | Method and apparatus with neural network architecture search | |
EP4141646A1 (en) | Method and apparatus with calculation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |