IP Library Granted Patent US 12,299,548
Granted Patent B2
US 12,299,548 · App. 18/437,769 · Granted May 13, 2025

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 12,299,548
App. No.
18/437,769
Granted
May 13, 2025
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 (44)

1. A method comprising:

receiving, by a key value storage device, a first key value request from a queue that is memory mapped to an input-output region of memory of another device based on a configuration by a host device; and

writing, by the key value storage device, to the input-output region of the memory of the other device, a first value based on the first key value request.

2. The method of claim 1 , further comprising, performing, by the key value storage device, a key lookup in the key value storage device to identify the first value.

3. The method of claim 1 , wherein the first key value request includes a return-value region, the return-value region specifying a region in the input-output region of the memory of the other device that is allocated for the first value.

4. The method of claim 3 , wherein the writing of the first value to the input-output region of the memory of the other device comprises writing the first value to the return-value region included in the first key value request.

5. The method of claim 1 , further comprising:

receiving, by the other device, the configuration from the host device; and

based on the configuration from the host device:

transmitting, by the other device, key value requests to the queue that is memory mapped to the input-output region of the memory of the other device; and

reading, by the other device, values from the input-output region of the memory of the other device.

6. The method of claim 1 , wherein the other device comprises a graphics processing unit configured to:

write the first key value request to the queue that is memory mapped to the input-output region of the memory of the other device; and

read the first value from the input-output region of the memory of the other device.

7. The method of claim 1 , wherein the first key value request is read, by the key value storage device, from the queue via peer-to-peer direct memory access.

8. The method of claim 1 , wherein the first value is written, by the key value storage device, to the input-output region of the memory via peer-to-peer direct memory access.

9. The method of claim 1 , wherein the key value storage device is connected to the other device by a peripheral component interconnect connection.

10. The method of claim 1 , wherein the first key value request is written, by the other device, to the queue that is memory mapped to the input-output region of the other device; and

wherein the method further comprises writing, by the other device, a second key value request to the queue before the writing, by the key value storage device, of the first value to the input-output region of the memory of the other device.

11. A system comprising:

a first device comprising memory; and

a key value storage device comprising a queue that is memory mapped to an input-output region of the memory of the first device based on a configuration by a host device,

wherein the key value storage device is configured to:

receive a first key value request, issued by the first device, from the queue; and

write, to the input-output region of the memory of the first device, a first value based on the first key value request.

12. The system of claim 11 , wherein the key value storage device is further configured to perform a key lookup in the key value storage device to identify the first value.

13. The system of claim 11 , wherein the first key value request includes a return-value region, the return-value region specifying a region in the input-output region of the memory of the first device that is allocated for the first value.

14. The system of claim 11 , wherein the first device comprises a graphics processing unit configured to:

write the first key value request to the queue of the key value storage device that is memory mapped to the input-output region of the memory of the first device; and

read the first value from the input-output region of the memory of the first device.

15. The system of claim 11 , wherein the key value storage device is configured to read the first key value request from the queue via peer-to-peer direct memory access.

16. The system of claim 11 , wherein the key value storage device is configured to write the first value to the input-output region of the memory via peer-to-peer direct memory access.

17. A system comprising:

a graphics processing unit comprising memory; and

a key value storage device comprising a queue that is memory mapped to an input-output region of the memory of the graphics processing unit based on a configuration by a host device,

wherein the key value storage device is configured to:

receive a first key value request, issued by the graphics processing unit, from the queue; and

write, to the input-output region of the memory of the graphics processing unit, a first value based on the first key value request.

18. The system of claim 17 , wherein the graphics processing unit is configured to:

write the first key value request to the queue of the key value storage device; and

read the first value from the input-output region of the memory of the graphics processing unit.

19. The system of claim 18 , wherein the key value storage device is configured to read the first key value request from the queue via peer-to-peer direct memory access, and

wherein the key value storage device is configured to write the first value to the input-output region of the memory via peer-to-peer direct memory access.

20. The system of claim 17 , wherein the first key value request comprises an address exposing the input-output region of the memory of the graphics processing unit based on the configuration by the host device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2024
From: LEE, JOO HWAN; KI, YANG SEOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 067379/0914 →
Continuity (4)
Continuation 17533059 · Nov 22, 2021
Continuation 15942218 · Mar 30, 2018
Provisional Application 62625532 · Feb 2, 2018
Related Publication 20240185132A1 · Jun 6, 2024
References Cited (45)
US 6009148A · Reeves · 1999 [cited by applicant]
US 8095694B2 · Rostaing et al. · 2012 [cited by applicant]
US 8996781B2 · Schuette et al. · 2015 [cited by applicant]
US 9336217B2 · Kruglick · 2016 [cited by applicant]
US 9607177B2 · Jejurikar et al. · 2017 [cited by applicant]
US 9927984B2 · Qiu et al. · 2018 [cited by applicant]
US 10127270B1 · Evenson · 2018 [cited by applicant]
US 10204046B1 · Peer · 2019 [cited by applicant]
US 10515566B2 · Moon · 2019 [cited by applicant]
US 20120310370A1 · Huang et al. · 2012 [cited by applicant]
US 20130042060A1 · Marukame et al. · 2013 [cited by applicant]
US 20130212088A1 · Park · 2013 [cited by applicant]
US 20130271380A1 · Kim · 2013 [cited by applicant]
US 20130275391A1 · Batwara et al. · 2013 [cited by applicant]
US 20130275656A1 · Talagala et al. · 2013 [cited by applicant]
US 20150302111A1 · Yue et al. · 2015 [cited by applicant]
US 20150324118A1 · Mccambridge et al. · 2015 [cited by applicant]
US 20160034809A1 · Trenholm et al. · 2016 [cited by applicant]
US 20160099810A1 · Li et al. · 2016 [cited by applicant]
US 20160267016A1 · Lee et al. · 2016 [cited by applicant]
US 20160283156A1 · Kufeldt et al. · 2016 [cited by applicant]
US 20160379686A1 · Burger et al. · 2016 [cited by applicant]
US 20170039269A1 · Raff et al. · 2017 [cited by applicant]
US 20170147233A1 · De · 2017 [cited by applicant]
US 20170147516A1 · De · 2017 [cited by examiner]
US 20170148431A1 · Catanzaro et al. · 2017 [cited by applicant]
US 20170169358A1 · Choi et al. · 2017 [cited by applicant]
US 20170235671A1 · Jung · 2017 [cited by applicant]
US 20170242867A1 · Sinha et al. · 2017 [cited by applicant]
US 20170277438A1 · Gole et al. · 2017 [cited by applicant]
US 20170286284A1 · Resinger et al. · 2017 [cited by applicant]
US 20170300407A1 · Qiu et al. · 2017 [cited by applicant]
US 20180330276A1 · Dai · 2018 [cited by examiner]
US 20180357234A1 · De · 2018 [cited by applicant]
US 20190196483A1 · Uemura · 2019 [cited by examiner]
US 20190244096A1 · Lee et al. · 2019 [cited by applicant]
US 20190244140A1 · Lee · 2019 [cited by examiner]
US 20190258587A1 · Zhou · 2019 [cited by applicant]
CN 105580027A · 2016 [cited by applicant]
JP 201776398A · 2017 [cited by applicant]
TW 201714076A · 2017 [cited by applicant]
WO WO2011153041A2 · 2011 [cited by applicant]
WO WO2017003831A1 · 2017 [cited by applicant]
Chinese Office Action dated Mar. 27, 2024, issued in Chinese Patent Application No. 201910054704.X (7 pages). [cited by applicant]
Wu, Chin-Hsien et al.; An Efficient B-Tree Layer for Flash-Memory Storage Systems, Department of Computer Science and Information Engineering, National Taiwan University, Taipei, Taiwan, 2003, 20 pages. [cited by applicant]