MEMORY LOOKUP COMPUTING MECHANISMS
20230101422 · 2023-03-30
Inventors
Cpc classification
G06F7/00
PHYSICS
G06F17/16
PHYSICS
Y02D10/00
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
International classification
G06F9/30
PHYSICS
G06F17/16
PHYSICS
G06F7/00
PHYSICS
Abstract
According to some example embodiments of the present disclosure, in a method for a memory lookup mechanism in a high-bandwidth memory system, the method includes: using a memory die to conduct a multiplication operation using a lookup table (LUT) methodology by accessing a LUT, which includes floating point operation results, stored on the memory die; sending, by the memory die, a result of the multiplication operation to a logic die including a processor and a buffer; and conducting, by the logic die, a matrix multiplication operation using computation units.
Claims
1. A storage system comprising: a first device configured to store matrix data; and a second device configured to: receive intermediate matrix multiplication result data based on the matrix data from the first device; and output a matrix multiplication result based on the intermediate matrix multiplication result data.
2. The storage system of claim 1, wherein the first device supports in-memory computing operations.
3. The storage system of claim 1, wherein the first device further stores a lookup table, and wherein the first device is further configured to output the intermediate matrix multiplication result data based on the lookup table.
4. The storage system of claim 1, wherein the first device corresponds to a first storage device, the storage system further comprising a second storage device distinct from the first storage device.
5. The storage system of claim 4, wherein the second storage device comprises dynamic random access memory.
6. The storage system of claim 1, wherein the second device is configured to execute an artificial intelligence application based on access to the first device.
7. A storage device comprising: storage media configured to store matrix data; and an interface configured to send intermediate matrix multiplication result data, based on the matrix data, to a second device configured to output a matrix multiplication result based on the intermediate matrix multiplication result data.
8. The storage device of claim 7, wherein the intermediate matrix data is distinct from the matrix data.
9. The storage device of claim 7, wherein the storage media supports in-memory computing operations.
10. The storage device of claim 7, wherein the storage media further stores a lookup table, and wherein the storage media is further configured to output the intermediate matrix multiplication result data based on the lookup table.
11. The storage device of claim 7, wherein the storage media corresponds to a first storage device, the storage device further comprising a second storage device distinct from the first storage device.
12. The storage device of claim 11, wherein the second storage device comprises dynamic random access memory.
13. The storage device of claim 7, wherein the second device is configured to execute an artificial intelligence application based on access to the storage media.
14. A method comprising: storing matrix data at a storage device; and sending, from the storage device, intermediate matrix multiplication result data, based on the matrix data, to a second device configured to output a matrix multiplication result based on the intermediate matrix multiplication result data.
15. The method of claim 14, wherein the storage device supports in-memory computing operations.
16. The method of claim 14, further comprising storing at the storage device a lookup table, and wherein the storage device is further configured to output the intermediate matrix multiplication result data based on the lookup table.
17. The method of claim 14, wherein the storage device corresponds to a first storage device, and wherein a second storage device is distinct from the first storage device.
18. The method of claim 17, wherein the second storage device comprises dynamic random access memory.
19. The method of claim 14, wherein the second device is configured to execute an artificial intelligence application based on access to the storage device.
20. The method of claim 14, wherein the intermediate matrix data is distinct from the matrix data.
21. A method comprising: performing, by a memory device, a first operation using a lookup table (LUT) stored on the memory die; sending, by the memory device, a result of the first operation to a processor device; and performing, by the processor device, a matrix multiplication operation using the result of the first operation performed on the memory device.
22. The method of claim 21, wherein the first operation includes a multiplication operation.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Some embodiments can be understood in more detail from the following description taken in conjunction with the accompanying drawings, in which:
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
DETAILED DESCRIPTION
[0036] Features of the inventive concept and methods of accomplishing the same may be understood more readily by reference to the following detailed description of embodiments and the accompanying drawings. Hereinafter, embodiments will be described in more detail with reference to the accompanying drawings, in which like reference numbers refer to like elements throughout. The present disclosure, however, may be embodied in various different forms, and should not be construed as being limited to only the illustrated embodiments herein. Rather, these embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey the aspects and features of the present disclosure to those skilled in the art. Accordingly, processes, elements, and techniques that are not necessary to those having ordinary skill in the art for a complete understanding of the aspects and features of embodiments of the present disclosure may not be described. Unless otherwise noted, like reference numerals denote like elements throughout the attached drawings and the written description, and thus, descriptions thereof will not be repeated. In the drawings, the relative sizes of elements, layers, and regions may be exaggerated for clarity.
[0037] In the following description, for the purposes of explanation, numerous specific details are set forth to provide a thorough understanding of various embodiments. It is apparent, however, that various embodiments may be practiced without these specific details or with one or more equivalent arrangements. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring various embodiments.
[0038] It will be understood that when an element, layer, region, or component is referred to as being “on,” “connected to,” or “coupled to” another element, layer, region, or component, it can be directly on, connected to, or coupled to the other element, layer, region, or component, or one or more intervening elements, layers, regions, or components may be present. However, “directly connected/directly coupled” refers to one component directly connecting or coupling another component without an intermediate component. Meanwhile, other expressions describing relationships between components such as “between,” “immediately between” or “adjacent to” and “directly adjacent to” may be construed similarly. In addition, it will also be understood that when an element or layer is referred to as being “between” two elements or layers, it can be the only element or layer between the two elements or layers, or one or more intervening elements or layers may also be present.
[0039] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the present disclosure. As used herein, the singular forms “a” and “an” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “have,” “having,” “includes,” and “including,” when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
[0040] As used herein, the term “substantially,” “about,” “approximately,” and similar terms are used as terms of approximation and not as terms of degree, and are intended to account for the inherent deviations in measured or calculated values that would be recognized by those of ordinary skill in the art. “About” or “approximately,” as used herein, is inclusive of the stated value and means within an acceptable range of deviation for the particular value as determined by one of ordinary skill in the art, considering the measurement in question and the error associated with measurement of the particular quantity (i.e., the limitations of the measurement system). For example, “about” may mean within one or more standard deviations, or within ±30%, 20%, 10%, 5% of the stated value. Further, the use of “may” when describing embodiments of the disclosure refers to “one or more embodiments of the disclosure.” As used herein, the terms “use,” “using,” and “used” may be considered synonymous with the terms “utilize,” “utilizing,” and “utilized,” respectively. Also, the term “exemplary” is intended to refer to an example or illustration.
[0041] When a certain embodiment may be implemented differently, a specific process order may be performed differently from the described order. For example, two consecutively described processes may be performed substantially at the same time or performed in an order opposite to the described order.
[0042] Various embodiments are described herein with reference to sectional illustrations that are schematic illustrations of embodiments and/or intermediate structures. As such, variations from the shapes of the illustrations as a result, for example, of manufacturing techniques and/or tolerances, are to be expected. Further, specific structural or functional descriptions disclosed herein are merely illustrative for the purpose of describing embodiments according to the concept of the present disclosure. Thus, embodiments disclosed herein should not be construed as limited to the particular illustrated shapes of regions, but are to include deviations in shapes that result from, for instance, manufacturing. For example, an implanted region illustrated as a rectangle will, typically, have rounded or curved features and/or a gradient of implant concentration at its edges rather than a binary change from implanted to non-implanted region. Likewise, a buried region formed by implantation may result in some implantation in the region between the buried region and the surface through which the implantation takes place. Thus, the regions illustrated in the drawings are schematic in nature and their shapes are not intended to illustrate the actual shape of a region of a device and are not intended to be limiting.
[0043] The electronic or electric devices and/or any other relevant devices or components according to embodiments of the disclosure described herein may be implemented utilizing any suitable hardware, firmware (e.g., an application-specific integrated circuit), software, or a combination of software, firmware, and hardware. For example, the various components of these devices may be formed on one integrated circuit (IC) chip or on separate IC chips. Further, the various components of these devices may be implemented on a flexible printed circuit film, a tape carrier package (TCP), a printed circuit board (PCB), or formed on one substrate. Further, the various components of these devices may be a process or thread, running on one or more processors, in one or more computing devices, executing computer program instructions and interacting with other system components for performing the various functionalities described herein. The computer program instructions are stored in a memory which may be implemented in a computing device using a standard memory device, such as, for example, a random access memory (RAM). The computer program instructions may also be stored in other non-transitory computer readable media such as, for example, a CD-ROM, flash drive, or the like. Also, a person of skill in the art should recognize that the functionality of various computing devices may be combined or integrated into a single computing device, or the functionality of a particular computing device may be distributed across one or more other computing devices without departing from the spirit and scope of the exemplary embodiments of the disclosure.
[0044] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which embodiments of the disclosure belong. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present specification, and should not be interpreted in an idealized or overly formal sense, unless expressly so defined herein.
[0045] Large data batch sizes are used to shorten total training time without losing accuracy. This approach can scale-up by increasing utilization of computation/memory utilization on a single high-performance process. Alternatively, this approach can scale out by distributing learning on multiple high-performance processors using model parallelism and data parallelism.
[0046] Deep learning applications exhibit various compute-to-memory ratios. Convolutional layers have high compute-to-memory ratios. Fully connected layers/recurrent layers have medium-low compute-to-memory ratios. Elementwise/scalar operations have low compute-to-memory ratios. Application wise compute-to-memory ratio depends on the above combination.
[0047] For low compute-to-memory ratio workloads, compute-centric throughput processors may suitably use large memory capacity and bandwidth. On-chip memory cannot contain large batch size data nor large layer size data. State of the art processors, such as graphics processing units (GPUs), central processing units (CPUs), and field-programmable gate arrays (FGPAs), employ High Bandwidth Memory (HBM). For high computer-to-memory ratio workloads, if the workload is computation bound, memory bandwidth and memory capacity is under-utilized.
[0048]
[0049] Referring to
[0050] Referring to
[0051] Part of the memory stacks 120 are configured as a lookup table (“LUT”) to utilize bank-level parallelism. Lookup tables are stored on the memory dies 130. The LUTs contain results (e.g., pre-computed results) of floating point operations. The results are real number values. The results contained in the LUTs on the memory dies 130 can be streamed to the logic die 150.
[0052]
[0053]
[0054] The DRAM die 210A transmits the result C′ to the buffer (“BUF”) 230A located on the logic die 280A. The buffer 230A stores the results C′. The buffer 230A allows for quicker access of the results C′ for use in matrix multiplication operations conducted by the logic die 280A in conjunction with the DRAM die 210A. The buffer 230A transmits the result C′ to an accumulator (“ACC”) 240A. In various embodiments, the accumulator 240A will gather results C′ for use in calculating intermediate results of matrix multiplication operations conducted by the logic die 280A and the DRAM die 210A.
[0055]
[0056] In the present embodiment, the sign logic and exponent addition and subtraction logic are not implemented by the LUT to enable reduction in the size of the LUT. Because input values A.fraction and B.fraction are symmetrical, it is suitable to store only half of the results on the LUT 220B. The reduced size of the LUT 220B allows for more storage space on the DRAM die 210B.
[0057] The DRAM die 210B transmits the result C.fraction to the buffer 230B located on the logic die 280B. The buffer 230B stores the result C.fraction. The buffer 230B allows for quicker access of the result C.fraction for use in matrix multiplication operations conducted by the logic die 280B. The buffer 230B streams the result C.fraction to an adjustor (“ADJ”) 250. The adjustor 250 aligns/processes the result C.fraction to produce result C′. After alignment, the adjustor 250 transmits the result C′ to the accumulator 240B, which is able to effectively achieve the same tasks as the accumulator 240A of
[0058]
[0059] In some embodiments, the size of the LUT 220C can be further reduced. Before concatenation, the control engine on DRAM die 210C may sort the tensor value results Tensor C′ in the rows and columns according to their absolute value and to their pre-computer sign bit logic. If the row index is larger than the column index, the control engine on DRAM die 210C may switch the row index and the column index. The control engine on DRAM die 210C may assume the row index and column index are unsigned integers. Further, the control engine on DRAM die 210 C may use pre-computer sign bit logic to select the LUT 220C for concatenation of the row and column address lookup.
[0060] The DRAM die 210C transmits the tensor value results Tensor C′ to the buffer 230C located on the logic die 280C. The buffer 230C stores the tensor value results Tensor C′. The buffer 230C allows for quicker access of the tensor value results Tensor C′ for use in matrix multiplication operations conducted by the logic die 280C. The buffer 230C transmits the Tensor result C′ to the Tensor Post Processing Unit (“TPU”) 260, which may contain one or more accumulators, such as the accumulators 240A and 240B of
[0061]
[0062] The DRAM die 210D transmits the real number value result C″ to the buffer 230D located on the logic die 280D. The buffer 230D stores the real number value results C″. The buffer 230D allows for quicker access of the real number value results C″ for use in the matrix multiplication operations conducted by the logic die 280D. The buffer 230D transmits the real number value results C″ to a fused-layer post processor (FPU) 290. In situations where the real number value result C″ is an intermediate value in a series of operations conducted by the logic die 280D, the FPU 290 may transmit the real number value result C″ to a buffer die 270. In some embodiments the buffer die 270 may contain multiple buffers that are similar to the buffer 230D of the logic die 280D. The separate buffer die 270 will allow for wider stores of intermediate results that are suitable for larger and more complex operations.
[0063]
[0064] Referring to
[0065]
[0066] Referring to
[0067]
[0068] Referring to
[0069]
[0070] Referring to
[0071]
[0072] Referring to
[0073]
(A.sub.1*2.sup.12+A.sub.0)*(B.sub.1*2.sup.12+B.sub.0)==2.sup.12*A.sub.1*B.sub.1+2.sup.12*(A.sub.1*B.sub.0+B.sub.1*A.sub.0)+A.sub.0*B.sub.0
The normal expression can be displayed as follows:
24=12+12
2.sup.12=4K
[0074]
[0075] Referring to
[0076] To address energy consumption and storage issues, the present embodiment focuses on a small computation pyramid. The small computation pyramid is represented by the shaded areas of the input feature maps (910, 930, 950). As each layer progresses, the shaded area decreases. When storing the intermediate results, only the shaded areas of the input feature maps are stored. Each of these intermediate results are stored on a buffer die rather than the DRAM die. The buffer die is illustrated as buffer die 270 in
[0077] The foregoing is illustrative of example embodiments, and is not to be construed as limiting thereof. Although a few example embodiments have been described, those skilled in the art will readily appreciate that many modifications are possible in the example embodiments without materially departing from the novel teachings and advantages of example embodiments. Accordingly, all such modifications are intended to be included within the scope of example embodiments as defined in the claims. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents but also equivalent structures. Therefore, it is to be understood that the foregoing is illustrative of example embodiments and is not to be construed as limited to the specific embodiments disclosed, and that modifications to the disclosed example embodiments, as well as other example embodiments, are intended to be included within the scope of the appended claims. The inventive concept is defined by the following claims, with equivalents of the claims to be included therein.