IP Library Granted Patent US 11,106,434
Granted Patent B1
US 11,106,434 · App. 16/997,342 · Granted Aug 31, 2021

Method, device, and computer program product for generating program code

Inventors: Jinpeng Liu (Shanghai, CN); Jin Li (Shanghai, CN); Jiacheng Ni (Shanghai, CN); Danqing Sha (Shanghai, CN)
Assignee: EMC IP Holding Company LLC
G06F8/30G06F8/447G06F8/71G06N20/00
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,106,434
App. No.
16/997,342
Granted
Aug 31, 2021
Kind
B1
Abstract

Embodiments of the present disclosure relate to a method, a device, and a computer program product for generating program code. In one embodiment, a method for generating program code is disclosed, including: acquiring code configuration information that includes code function information indicating a target function and device configuration information of a target device; and generating program code based on the code configuration information, wherein when executed, the program code can cause the target device to implement the target function. Through the embodiments of the present disclosure, the diversity and flexibility of function implementation can be improved, and the workload of developing program code can be significantly reduced.

Claims (58)

1. A method for generating program code, comprising:

acquiring code configuration information that comprises code function information indicating a target function and device configuration information of a target device; and

generating program code based on the code configuration information, wherein when executed, the program code can cause the target device to implement the target function;

wherein acquiring the code function information comprises acquiring a deep learning model configured to implement the target function;

wherein generating the program code comprises:

generating a first program code segment and a second program code segment, wherein the first program code segment, when executed, generates an intermediate representation of the deep learning model suitable for implementing the target function on the target device, and the second program code segment, when executed, implements the target function on the target device by calling the intermediate representation;

wherein the deep learning model is acquired at least in part by downloading deep learning model information from a designated resource location; and

wherein the intermediate representation of the deep learning model is generated at least in part by compiling the downloaded deep learning model information through a development framework.

2. The method according to claim 1 , wherein acquiring the code function information further comprises acquiring at least one of the following:

input data information related to data to be input into the program code; and

a type of a development framework used for training the deep learning model.

3. The method according to claim 1 , wherein acquiring the device configuration information comprises acquiring at least one of following: a type of a computing platform of the target device and a model of the target device.

4. The method according to claim 1 , wherein generating the program code further comprises:

acquiring predefined template code related to the target function; and

modifying at least a part of the predefined template code based on the code configuration information to generate the program code specific to the target function and the target device.

5. The method according to claim 1 , wherein generating the program code further comprises:

inputting the code function information and the device configuration information into a cross-development-framework deep learning compiler to generate the program code.

6. The method according to claim 1 , wherein the designated resource location is identified by a uniform resource locator that points to the deep learning model.

7. The method according to claim 1 , wherein the target function comprises one or more of image recognition, image classification, voice recognition, text recognition and video processing.

8. A computing device, comprising:

at least one processor; and

at least one memory storing computer program instructions, wherein the at least one memory and the computer program instructions are configured to cause, with the at least one processor, the computing device to perform actions comprising:

acquiring code configuration information that comprises code function information indicating a target function and device configuration information of a target device; and

generating program code based on the code configuration information, wherein when executed, the program code can cause the target device to implement the target function;

wherein acquiring the code function information comprises acquiring a deep learning model configured to implement the target function;

wherein generating the program code comprises:

generating a first program code segment and a second program code segment, wherein the first program code segment, when executed, generates an intermediate representation of the deep learning model suitable for implementing the target function on the target device, and the second program code segment, when executed, implements the target function on the target device by calling the intermediate representation;

wherein the deep learning model is acquired at least in part by downloading deep learning model information from a designated resource location; and

wherein the intermediate representation of the deep learning model is generated at least in part by compiling the downloaded deep learning model information through a development framework.

9. The computing device according to claim 8 , wherein acquiring the code function information further comprises acquiring at least one of the following:

input data information related to data to be input into the program code; and

a type of a development framework used for training the deep learning model.

10. The computing device according to claim 8 , wherein acquiring the device configuration information comprises acquiring at least one of following: a type of a computing platform of the target device and a model of the target device.

11. The computing device according to claim 8 , wherein generating the program code further comprises:

acquiring predefined template code related to the target function; and

modifying at least a part of the predefined template code based on the code configuration information to generate the program code specific to the target function and the target device.

12. The computing device according to claim 8 , wherein generating the program code further comprises:

inputting the code function information and the device configuration information into a cross-development-framework deep learning compiler to generate the program code.

13. The computing device according to claim 8 , wherein the designated resource location is identified by a uniform resource locator that points to the deep learning model.

14. A non-transitory computer-readable storage medium storing machine-executable instructions, wherein when executed by at least one processor, the machine-executable instructions cause the at least one processor to implement a method for generating program code, the method comprising:

acquiring code configuration information that comprises code function information indicating a target function and device configuration information of a target device; and

generating program code based on the code configuration information, wherein when executed, the program code can cause the target device to implement the target function;

wherein acquiring the code function information comprises acquiring a deep learning model configured to implement the target function;

wherein generating the program code comprises:

generating a first program code segment and a second program code segment, wherein the first program code segment, when executed, generates an intermediate representation of the deep learning model suitable for implementing the target function on the target device, and the second program code segment, when executed, implements the target function on the target device by calling the intermediate representation;

wherein the deep learning model is acquired at least in part by downloading deep learning model information from a designated resource location; and

wherein the intermediate representation of the deep learning model is generated at least in part by compiling the downloaded deep learning model information through a development framework.

15. The non-transitory computer-readable storage medium according to claim 14 , wherein acquiring the code function information further comprises acquiring at least one of the following:

input data information related to data to be input into the program code; and

a type of a development framework used for training the deep learning model.

16. The non-transitory computer-readable storage medium according to claim 14 , wherein acquiring the device configuration information comprises acquiring at least one of following: a type of a computing platform of the target device and a model of the target device.

17. The non-transitory computer-readable storage medium according to claim 14 , wherein generating the program code further comprises:

acquiring predefined template code related to the target function; and

modifying at least a part of the predefined template code based on the code configuration information to generate the program code specific to the target function and the target device.

18. The non-transitory computer-readable storage medium according to claim 14 , wherein generating the program code further comprises:

inputting the code function information and the device configuration information into a cross-development-framework deep learning compiler to generate the program code.

19. The non-transitory computer-readable storage medium according to claim 14 , wherein the designated resource location is identified by a uniform resource locator that points to the deep learning model.

20. The non-transitory computer-readable storage medium according to claim 14 , wherein the target function comprises one or more of image recognition, image classification, voice recognition, text recognition and video processing.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2020
From: LIU, JINPENG; LI, JIN; NI, JIACHENG; SHA, DANQING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053540/0502 →