IP Library › Granted Patent US 11,853,758
Granted Patent B2
US 11,853,758 · App. 16/585,521 · Granted Dec 26, 2023

Techniques for decoupled access-execute near-memory processing

Inventors: Berkin Akin (Hillsboro, OR); Alaa R. Alameldeen (Hillsboro, OR)
Assignee: Intel Corporation
G06F9/3004G06F9/30087
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,853,758
App. No.
16/585,521
Granted
Dec 26, 2023
Kind
B2
Abstract

Techniques for decoupled access-execute near-memory processing include examples of first or second circuitry of a near-memory processor receiving instructions that cause the first circuitry to implement system memory access operations to access one or more data chunks and the second circuitry to implement compute operations using the one or more data chunks.

Claims (43)

1. An apparatus comprising:

a first circuitry of a near-memory processor to:

receive data access instructions to access a system memory, the data access instructions having corresponding compute instructions that were received by a second circuitry of the near-memory processor;

exchange synchronization information with the second circuitry to store one or more data chunks from the accessed system memory to a local memory at the near-memory processor for the second circuitry to use for one or more compute iterations; and

map data access operations for the first circuitry to access the system memory to obtain the one or more data chunks based on the data access instructions and the exchanged synchronization information, wherein the first circuitry is to map the data access operations such that a memory access bandwidth to obtain and store the one or more data chunks to the local memory substantially matches a computing throughput for the second circuitry to compute results in the one or more compute iterations using the one or more data chunks stored to the local memory.

2. The apparatus of claim 1 , the exchanged synchronization information comprises a barrier synchronization primitive to indicate to the first circuitry a number of subsequent data chunks to access from the system memory while the second circuitry computes results using at least a portion of the one or more data chunks, the number of subsequent data chunks determined based on substantially matching the memory access bandwidth to the computing throughput.

3. The apparatus of claim 1 , further comprising the first circuitry to:

access the system memory through an interface coupled with the near-memory processor via one or more memory channels to obtain the one or more data chunks via the one or memory channels based on the mapped data access operations; and

store the one or more data chunks to the local memory based on the mapped data access operations.

4. The apparatus of claim 3 , further comprising the first circuitry to:

obtain results of the one or more compute iterations based on the exchanged synchronization information; and

cause the results to be stored in the system memory based on the data access instructions.

5. The apparatus of claim 1 , comprising the data access instructions included in instructions received from an application hosted by a computing platform that also hosts the near-memory processor.

6. The apparatus of claim 1 , comprising:

the first circuitry to include one or more access processors; and

the second circuitry to include one or more execute processors and one or more vector functional units, respective one or more execute processors to control respective one or more vector functional units for the respective one or more vector functional units to compute the results in the one or more compute iterations.

7. The apparatus of claim 6 , comprising the local memory arranged in a centralized configuration via which the one or more execute processors or vector functional units separately have access to the local memory.

8. The apparatus of claim 6 , comprising the local memory arranged in a distributed configuration via which the one or more execute processors or vector functional units have access to allocated portions of the local memory.

9. An apparatus comprising:

a first circuitry of a near-memory processor to:

receive compute instructions to use one or more data chunks accessed from a system memory in one or more compute iterations, the one or more data chunks accessed and stored to a local memory by a second circuitry of the near-memory processor based on corresponding data access instructions;

exchange synchronization information with the second circuitry to access the one or more data chunks stored to the local memory for use in the one or more compute iterations; and

map compute operations for the first circuitry to use the one or more data chunks based on the received compute instructions and the exchanged synchronization information, wherein the first circuitry is to map the compute operations such that a computing throughput for the first circuitry to compute results in the one or more compute iterations substantially matches a memory access bandwidth for the second circuitry to store the one or more data chunks to the local memory.

10. The apparatus of claim 9 , further comprising the first circuitry to:

access the local memory through an interface to the local memory to obtain the one or more data chunks based on the mapped compute operations; and

store results of the one or more compute iterations to the local memory through the interface based on the exchanged synchronization information.

11. The apparatus of claim 9 , comprising:

the first circuitry including one or more execute processors and one or more vector functional units, respective one or more execute processors to control respective one or more vector functional units for the respective one or more vector functional units to compute the results in the one or more compute iterations; and

the second circuitry including one or more access processors coupled with system memory through one or more memory channels coupled with the near-memory processor.

12. The apparatus of claim 11 , the one or more vector functional units comprise single instruction, multiple data (SIMD) arithmetic logic units (ALUs).

13. The apparatus of claim 11 , comprising the local memory arranged in a centralized configuration via which the one or more vector functional units separately have access to the local memory.

14. The apparatus of claim 11 , comprising the local memory arranged in a distributed configuration via which the one or more vector functional units have access to allocated portions of the local memory.

15. A near-memory processor comprising:

an interface to access system memory coupled with the near-memory processor via one or more memory channels;

a local memory;

a first circuitry; and

a second circuitry to:

receive data access instructions to access the system memory that have corresponding compute instructions that were received by the first circuitry;

exchange synchronization information with the first circuitry to store one or more data chunks from the accessed system memory to the local memory for the first circuitry to use for one or more compute iterations; and

map data access operations for the second circuitry to access the system memory through the interface to obtain the one or more data chunks based on the data access instructions and the exchanged synchronization information, wherein the second circuitry is to map the data access operations such that a memory access bandwidth to obtain and store the one or more data chunks to the local memory substantially matches a computing throughput for the first circuitry to compute results in the one or more compute iterations using the one or more data chunks stored to the local memory.

16. The near-memory processor of claim 15 , comprising:

the second circuitry to include one or more access processors; and

the first circuitry to include one or more execute processors and one or more vector functional units, respective one or more execute processors to control respective one or more vector functional units for the respective one or more vector functional units to compute the results in the one or more compute iterations.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2019
From: AKIN, BERKIN; ALAMELDEEN, ALAA R.
To: INTEL CORPORATION
Reel/Frame 050730/0454 →
Continuity (1)
Related Publication 20200026513A1 · Jan 23, 2020