IP Library › Granted Patent US 12,210,877
Granted Patent B2
US 12,210,877 · App. 18/118,367 · Granted Jan 28, 2025

Offloading computation based on extended instruction set architecture

Inventors: Viacheslav Dubeyko (Los Angeles, CA); Jian Wang (Beijing, CN)
Assignees: Lemon Inc.; Beijing Youzhuju Network Technology Co., Ltd.
G06F9/30189G06F9/30145
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,210,877
App. No.
18/118,367
Granted
Jan 28, 2025
Kind
B2
Abstract

The present disclosure describes techniques for offloading computation based on an extended instruction set architecture (ISA). The extended ISA may be created based on identifying functions executed multiple times by a central processing unit (CPU). The extended ISA may comprise hashes corresponding to the functions and identifiers of extended operations associated with the functions. The extended operations may be converted from original operations of the functions. The extended operations may be executable by a storage device. The storage device may be associated with at least one computational core. Code may be synthesized based at least in part on the extended ISA. Computation of the synthesized code may be offloaded into the storage device.

Claims (60)

1. A method, comprising:

creating an extended instruction set architecture (ISA) based on identifying functions executed multiple times by a central processing unit (CPU), wherein the extended ISA comprises hashes corresponding to the functions and identifiers of extended operations associated with the functions, wherein the extended operations are converted from original operations of the functions, wherein the extended operations are executable by a storage device, and wherein the storage device is associated with at least one computational core;

synthesizing code based at least in part on the extended ISA;

offloading computation of the synthesized code into the storage device; and

creating a plurality of streams in the storage device, each of the plurality of streams configured to contain a particular type of objects and configured to facilitate application of operations to the particular type of objects.

2. The method of claim 1 , further comprising:

creating a virtual table configured to associate the identifiers of the extended operations with function pointers of the functions.

3. The method of claim 2 , further comprising:

determining, by the storage device, a function using the virtual table based on an identifier of an extended operation sent from the CPU; and

executing code of the function by the at least one computational core.

4. The method of claim 1 , further comprising:

re-compiling at least a portion of an application using the extended ISA; and

offloading execution of the at least a portion of the application into the storage device.

5. The method of claim 1 , further comprising:

storing the synthesized code in a dedicated memory area of the storage device, wherein the synthesized code is identifiable based on a corresponding identification number.

6. The method of claim 1 , further comprising:

registering a data type for any particular type of objects into a data type table based on determining that a corresponding stream among the plurality of streams comprises a quantity of objects satisfying a threshold.

7. The method of claim 6 , further comprising:

associating the registered data type with at least one function executable by the at least one computational core; and

offloading computation into the storage device by requesting to apply the at least one function associated with the registered data type to objects in the corresponding stream.

8. A system, comprising:

at least one processor; and

at least one memory comprising computer-readable instructions that upon execution by the at least one processor cause the system to perform operations comprising:

creating an extended instruction set architecture (ISA) based on identifying functions executed multiple times by a central processing unit (CPU), wherein the extended ISA comprises hashes corresponding to the functions and identifiers of extended operations associated with the functions, wherein the extended operations are converted from original operations of the functions, wherein the extended operations are executable by a storage device, and wherein the storage device is associated with at least one computational core;

synthesizing code based at least in part on the extended ISA;

offloading computation of the synthesized code into the storage device; and

creating a plurality of streams in the storage device, each of the plurality of streams configured to contain a particular type of objects and configured to facilitate application of operations to the particular type of objects.

9. The system of claim 8 , the operations further comprising:

creating a virtual table configured to associate the identifiers of the extended operations with function pointers of the functions.

10. The system of claim 9 , the operations further comprising:

determining, by the storage device, a function using the virtual table based on an identifier of an extended operation sent from the CPU; and

executing code of the function by the at least one computational core.

11. The system of claim 8 , the operations further comprising:

re-compiling at least a portion of an application using the extended ISA; and

offloading execution of the at least a portion of the application into the storage device.

12. The system of claim 8 , the operations further comprising:

storing the synthesized code in a dedicated memory area of the storage device, wherein the synthesized code is identifiable based on a corresponding identification number.

13. The system of claim 8 , the operations further comprising:

registering a data type for any particular type of objects into a data type table based on determining that a corresponding stream among the plurality of streams comprises a quantity of objects satisfying a threshold;

associating the registered data type with at least one function executable by the at least one computational core; and

offloading computation into the storage device by requesting to apply the at least one function associated with the registered data type to objects in the corresponding stream.

14. A non-transitory computer-readable storage medium, storing computer-readable instructions that upon execution by a processor cause the processor to implement operations, the operation comprising:

creating an extended instruction set architecture (ISA) based on identifying functions executed multiple times by a central processing unit (CPU), wherein the extended ISA comprises hashes corresponding to the functions and identifiers of extended operations associated with the functions, wherein the extended operations are converted from original operations of the functions, wherein the extended operations are executable by a storage device, and wherein the storage device is associated with at least one computational core;

synthesizing code based at least in part on the extended ISA;

offloading computation of the synthesized code into the storage device; and

creating a plurality of streams in the storage device, each of the plurality of streams configured to contain a particular type of objects and configured to facilitate application of operations to the particular type of objects.

15. The non-transitory computer-readable storage medium of claim 14 , the operations further comprising:

creating a virtual table configured to associate the identifiers of the extended operations with function pointers of the functions.

16. The non-transitory computer-readable storage medium of claim 15 , the operations further comprising:

determining, by the storage device, a function using the virtual table based on an identifier of an extended operation sent from the CPU; and

executing code of the function by the at least one computational core.

17. The non-transitory computer-readable storage medium of claim 14 , the operations further comprising:

re-compiling at least a portion of an application using the extended ISA; and

offloading execution of the at least a portion of the application into the storage device.

18. The non-transitory computer-readable storage medium of claim 14 , the operations further comprising:

storing the synthesized code in a dedicated memory area of the storage device, wherein the synthesized code is identifiable based on a corresponding identification number.

19. The non-transitory computer-readable storage medium of claim 14 , the operations further comprising:

registering a data type for any particular type of objects into a data type table based on determining that a corresponding stream among the plurality of streams comprises a quantity of objects satisfying a threshold;

associating the registered data type with at least one function executable by the at least one computational core; and

offloading computation into the storage device by requesting to apply the at least one function associated with the registered data type to objects in the corresponding stream.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2024
From: DUBEYKO, VIACHESLAV
To: BYTEDANCE INC.
Reel/Frame 069636/0709 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2024
From: WANG, JIAN
To: DOUYIN VISION CO., LTD.
Reel/Frame 069636/0771 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2024
From: BYTEDANCE INC.
To: BEIJING YOUZHUJU NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 069638/0735 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2024
From: DOUYIN VISION CO., LTD.
To: BEIJING YOUZHUJU NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 069638/0862 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2024
From: DOUYIN VISION CO., LTD.
To: LEMON INC.
Reel/Frame 069638/0952 →
Continuity (1)
Related Publication 20230205532A1 · Jun 29, 2023
References Cited (2)
US 9405561B2 · Giroux · 2016 [cited by examiner]
US 20220206855A1 · Challapalle · 2022 [cited by examiner]
Cited By (1)
US 12,699,605