IP Library Granted Patent US 11,182,694
Granted Patent B2
US 11,182,694 · App. 15/942,218 · Granted Nov 23, 2021

Data path for GPU machine learning training with key value SSD

Inventors: Joo Hwan Lee (San Jose, CA); Yang Seok Ki (Palo Alto, CA)
Assignee: Samsung Electronics Co., Ltd.
G06N20/00G06F12/1081G06F13/102G06F2212/621
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,182,694
App. No.
15/942,218
Granted
Nov 23, 2021
Kind
B2
Abstract

A system and method for machine learning. The system includes a GPU with a GPU memory, and a key value storage device connected to the GPU memory. The method includes, writing, by the GPU, a key value request to a key value request queue in a input-output region of the GPU memory, the key value request including a key. The method further includes reading, by the key value storage device, the key value request from the key value request queue, and writing, by the key value storage device, in response to the key value request, a value to the input-output region of the GPU memory, the value corresponding to the key of the key value request.

Claims (54)

1. A method for key value access in a machine learning system, the method comprising:

writing, by a first graphics processing unit, a first key value request to a key value request queue in a first input-output region of a first memory connected to the first graphics processing unit, the first key value request including a key;

performing, by a first key value storage device connected to the first memory, memory-mapped input and output operations in the first input-output region;

reading, by the first key value storage device, the first key value request from the key value request queue, and

writing, by the first key value storage device, a first value to the first input-output region of the first memory according to the first key value request, the first value including the key of the first key value request,

wherein the first graphics processing unit is memory-mapped to the first memory to perform memory-mapped input and output operations in the first input-output region of the first memory.

2. The method of claim 1 , further comprising, performing, by the first key value storage device, a key lookup, in the first key value storage device, to retrieve the first value for the writing of the first value to the input-output region of the first memory.

3. The method of claim 1 , wherein the first key value request includes a return-value region, the return-value region being a region allocated for the first value.

4. The method of claim 3 , wherein the writing of the first value to the first input-output region of the first memory comprises writing the first value to the return-value region.

5. The method of claim 1 , wherein the writing of the first value to the first input-output region of the first memory comprises writing the first value to a return-value queue in the first input-output region of the first memory.

6. The method of claim 1 , further comprising configuring, by a host connected to the first key value storage device and to the first graphics processing unit:

the first key value storage device to access the first input-output region of the first memory to receive key value requests and to write values in response to the key value requests; and

the first graphics processing unit to store key value requests in the first input-output region of the first memory and to read values from the first input-output region of the first memory.

7. The method of claim 6 , further comprising, writing, by a second graphics processing unit connected to the host, a second key value request to a key value request queue in an input-output region of a second memory connected to the second graphics processing unit, the second key value request including a key;

reading, by a second key value storage device connected to the host and to the second memory, the second key value request from the key value request queue, and

writing, by the second key value storage device, in response to the second key value request, a second value to the input-output region of the second memory, the second value corresponding to the key of the second key value request.

8. The method of claim 7 , further comprising:

performing, by the first key value storage device, a key lookup, in the first key value storage device, to retrieve the first value, and

performing, concurrently with the performing of the key lookup by the first key value storage device, a key lookup, by the second key value storage device, in the second key value storage device, to retrieve the second value.

9. The method of claim 1 , wherein the reading, by the first key value storage device of the first key value request comprises reading the first key value request via peer-to-peer direct memory access.

10. The method of claim 1 , wherein the writing, by the first key value storage device, of the first value, comprises writing the first value via peer-to-peer direct memory access.

11. The method of claim 10 , wherein the first key value storage device is connected to the first graphics processing unit by a peripheral component interconnect connection.

12. The method of claim 1 , further comprising writing, by the first graphics processing unit, a second key value request to the key value request queue, after the writing, by the first graphics processing unit, of the first key value request and before the writing, by the writing, by the first key value storage device, of the first value.

13. The method of claim 1 , further comprising:

writing, by the first graphics processing unit, a second key value request to a key value request queue in a second input-output region of the first memory, the second key value request including a key;

reading, by a second key value storage device connected to the first memory, the second key value request from the key value request queue of the second input-output region of the first memory, and

writing, by the second key value storage device, in response to the second key value request, a second value to the second input-output region of the first memory, the second value corresponding to the key of the second key value request.

14. The method of claim 13 , further comprising:

performing, by the first key value storage device, a key lookup, in the first key value storage device, to retrieve the first value, and

performing, concurrently with the performing of the key lookup by the first key value storage device, a key lookup, by the second key value storage device, in the second key value storage device, to retrieve the second value.

15. A system for machine learning, the system comprising:

a graphics processing unit;

a memory connected to the graphics processing unit; and

a key value storage device;

the key value storage device being connected to the graphics processing unit by a peripheral component interconnect connection;

the graphics processing unit being configured to perform memory-mapped input and output operations in an input-output region of the memory, and to write one or more key value requests to a key value request queue within the input-output region;

the key value storage device being configured to:

perform memory-mapped input and output operations in the input-output region;

read the one or more key value requests from the key value request queue; and

in response to a key value request of the one or more key value requests, write a value in the input-output region of the memory, the value corresponding to a key of the key value request.

16. The system of claim 15 , wherein the key value request includes a return-value region, the return-value region being a region allocated for the value.

17. The system of claim 16 , wherein writing of the value to the input-output region of the memory comprises writing the value to the return-value region.

18. The system of claim 15 , wherein the writing of the value to the input-output region of the memory comprises writing the value to a return-value queue in the input-output region of the memory.

19. A system for machine learning, the system comprising:

a graphics processing unit;

a key value storage device; and

shared memory for communication between the graphics processing unit and the key value storage device;

the graphics processing unit being configured to send one or more key value requests to the key value storage device via the shared,

the key value storage device being configured to:

perform memory-mapped input and output operations in the shared memory;

receive the one or more key value requests; and

in response to a key value request of the one or more key value requests, send a value to the graphics processing unit via the shared, the value including a key of the key value request,

wherein the graphics processing unit is memory-mapped to the shared memory to perform memory-mapped input and output operations in the shared memory.

20. The system of claim 19 , wherein the shared memory comprises a memory connected to the graphics processing unit, and configured to be accessed by the key value storage device via peer-to-peer direct memory access through a peripheral component interconnect connection.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2018
From: LEE, JOO HWAN; KI, YANG SEOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 045402/0241 →
Continuity (2)
Provisional Application 62625532 · Feb 2, 2018
Related Publication 20190244140A1 · Aug 8, 2019