Patent classifications
G06F7/53
DEVICE AND METHOD FOR ACCELERATING MATRIX MULTIPLY OPERATIONS
A processing device is provided which comprises memory configured to store data and a plurality of processor cores in communication with each other via first and second hierarchical communication links. Processor cores of a first hierarchical processor core group are in communication with each other via the first hierarchical communication links and are configured to store, in the memory, a sub-portion of data of a first matrix and a sub-portion of data of a second matrix. The processor cores are also configured to determine a product of the sub-portion of data of the first matrix and the sub-portion of data of the second matrix, receive, from another processor core, another sub-portion of data of the second matrix and determine a product of the sub-portion of data of the first matrix and the other sub-portion of data of the second matrix.
Multiple Mode Arithmetic Circuit
A tile of an FPGA includes a multiple mode arithmetic circuit. The multiple mode arithmetic circuit is configured by control signals to operate in an integer mode, a floating-point mode, or both. In some example embodiments, multiple integer modes (e.g., unsigned, two's complement, and sign-magnitude) are selectable, multiple floating-point modes (e.g., 16-bit mantissa and 8-bit sign, 8-bit mantissa and 6-bit sign, and 6-bit mantissa and 6-bit sign) are supported, or any suitable combination thereof. The tile may also fuse a memory circuit with the arithmetic circuits. Connections directly between multiple instances of the tile are also available, allowing multiple tiles to be treated as larger memories or arithmetic circuits. By using these connections, referred to as cascade inputs and outputs, the input and output bandwidth of the arithmetic circuit is further increased.
METHODS AND APPARATUS TO ESTIMATE POPULATION REACH FROM DIFFERENT MARGINAL RATINGS AND/OR UNIONS OF MARGINAL RATINGS BASED ON IMPRESSION DATA
Example methods, apparatus, and articles of manufacture are disclosed to estimate population reach. An example apparatus includes processor circuitry to determine first multipliers corresponding to a panelist impression count and panelist audience size totals of at least one of a first margin of media, a second margin of the media, or a union of the first margin and the second margin, the first margin, the second margin, and the union included in a tree association; concurrently determine second multipliers using the tree association and the first multipliers; determine third multipliers corresponding to a total audience size exposed to the media at at least one of the first margin, the second margin, or the union based on the tree association using database proprietor impression totals; and determine, based on the third multipliers, an estimate for the population reach of the media for at least one of the first margin, the second margin, or the union.
METHODS AND APPARATUS TO ESTIMATE POPULATION REACH FROM DIFFERENT MARGINAL RATINGS AND/OR UNIONS OF MARGINAL RATINGS BASED ON IMPRESSION DATA
Example methods, apparatus, and articles of manufacture are disclosed to estimate population reach. An example apparatus includes processor circuitry to determine first multipliers corresponding to a panelist impression count and panelist audience size totals of at least one of a first margin of media, a second margin of the media, or a union of the first margin and the second margin, the first margin, the second margin, and the union included in a tree association; concurrently determine second multipliers using the tree association and the first multipliers; determine third multipliers corresponding to a total audience size exposed to the media at at least one of the first margin, the second margin, or the union based on the tree association using database proprietor impression totals; and determine, based on the third multipliers, an estimate for the population reach of the media for at least one of the first margin, the second margin, or the union.
MULTIPLE MULTIPLICATION ARRAYS
A data processing apparatus is provided. An A×B multiplier array has a group of logic gates clocked by a first clock signal, where A and B are both integers. A C×D multiplier array, separate from the A×B multiplier array, has second group of logic gates clocked by a second clock signal, where C and D are both integers. Addition circuitry performs an addition operation between a first at least partial product produced by the A×B multiplier array and a second at least partial product produced by the C×D multiplier array.
Multiple accumulate busses in a systolic array
Systems and methods are provided to enable parallelized multiply-accumulate operations in a systolic array. Each column of the systolic array can include multiple busses enabling independent transmission of input partial sums along the respective bus. Each processing element of a given columnar bus can receive an input partial sum from a prior element of the given columnar bus, and perform arithmetic operations on the input partial sum. Each processing element can generate an output partial sum based on the arithmetic operations, provide the output partial sum to a next processing element of the given columnar bus, without the output partial sum being processed by a processing element of the column located between the two processing elements that uses a different columnar bus. Use of columnar busses can enable parallelization to increase speed or enable increased latency at individual processing elements.
Multiple accumulate busses in a systolic array
Systems and methods are provided to enable parallelized multiply-accumulate operations in a systolic array. Each column of the systolic array can include multiple busses enabling independent transmission of input partial sums along the respective bus. Each processing element of a given columnar bus can receive an input partial sum from a prior element of the given columnar bus, and perform arithmetic operations on the input partial sum. Each processing element can generate an output partial sum based on the arithmetic operations, provide the output partial sum to a next processing element of the given columnar bus, without the output partial sum being processed by a processing element of the column located between the two processing elements that uses a different columnar bus. Use of columnar busses can enable parallelization to increase speed or enable increased latency at individual processing elements.
IN-MEMORY COMPUTATION CIRCUIT AND METHOD
A memory circuit includes a selection circuit, a column of memory cells, and an adder tree. The selection circuit is configured to receive input data elements, each input data element including a number of bits equal to H, and output a selected set of kth bits of the H bits of the input data elements. Each memory cell of the column of memory cells includes a first storage unit configured to store a first weight data element and a first multiplier configured to generate a first product data element based on the first weight data element and a first kth bit of the selected set of kth bits. The adder tree is configured to generate a summation data element based on each of the first product data elements.
Systems and methods for data placement for in-memory-compute
According to one embodiment, a memory module includes: a memory die including a dynamic random access memory (DRAM) banks, each including: an array of DRAM cells arranged in pages; a row buffer to store values of one of the pages; an input/output (IO) module; and an in-memory compute (IMC) module including: an arithmetic logic unit (ALU) to receive operands from the row buffer or the IO module and to compute an output based on the operands and one of a plurality of ALU operations; and a result register to store the output of the ALU; and a controller to: receive, from a host processor, operands and an instruction; determine, based on the instruction, a data layout; supply the operands to the DRAM banks in accordance with the data layout; and control an IMC module to perform one of the ALU operations on the operands in accordance with the instruction.
METHOD AND APPARATUS FOR VECTOR SORTING
A method for sorting of a vector in a processor is provided that includes performing, by the processor in response to a vector sort instruction, sorting of values stored in lanes of the vector to generate a sorted vector, wherein the values are sorted in an order indicated by the vector sort instruction, and storing the sorted vector in a storage location.