IP Library › Granted Patent US 10,957,006
Granted Patent B2
US 10,957,006 · App. 16/413,786 · Granted Mar 23, 2021

Information processing device and method of controlling same, and non-transitory computer readable medium

Inventor: Yuzuru Okubo (Kawasaki, JP)
Assignee: CANON KABUSHIKI KAISHA
G06T1/20G06T1/60G06T15/80
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 10,957,006
App. No.
16/413,786
Granted
Mar 23, 2021
Kind
B2
Abstract

An information processing device including a GPU comprises: a retrieval unit that retrieves an instruction set including a first source code block, a plurality of second source code blocks obtained by tuning the first source code block for each of a plurality of GPUs of different types, and attribute information of the GPUs respectively corresponding to the plurality of second source code blocks; a selection unit that selects, from among the first source code block and the plurality of second source code blocks included in the instruction set, a source code block to be executed by the GPU on a basis of attribute information of the GPU; a compilation unit that compiles the selected source code block into a data format that can be interpreted by the GPU; and a control unit that causes the GPU to execute compiled code.

Claims (34)

1. An information processing device comprising:

a memory storing a program;

a first Graphics Processing Unit (GPU); and

a Central Processing Unit (CPU) that implements the program to execute a plurality of tasks, including:

a retrieving task that retrieves an instruction set including a first source code block that is pre-tuned, a plurality of second source code blocks obtained by tuning the first source code block for each of a plurality of GPUs of different types, and attribute information of the plurality of GPUs respectively corresponding to the plurality of second source code blocks;

a calculating task that calculates similarities between attribute information of the first GPU and each of the attribute information of the plurality of GPUs respectively corresponding to the plurality of second source code blocks;

a determining task that determines whether a highest similarity, among the calculated similarities, is equal to or greater than a predetermined threshold;

a selecting task that selects a source code, from among the first source code block and the plurality of second source code blocks, corresponding to:

one of the plurality of second source code blocks corresponding to the highest similarity, in a case where the highest similarity is equal to or greater than the predetermined threshold; and

the first source code block, in a case where the highest similarity is smaller than the predetermined threshold;

a compiling task that compiles the selected source code block to generate a compiled code for the first GPU; and

an executing task that causes the first GPU to execute the generated compiled code.

2. The information processing device according to claim 1 , wherein:

the plurality of tasks include a storing task that stores the generated compiled code in a storage device,

wherein the retrieving task, the calculating task, the determining task, the selecting task, the compiling task, and the executing task are executed in a case where the generated compiled code has not yet been stored in the storage device.

3. The information processing device according to claim 1 , wherein, in a case where the generated compiled code exceeds an instruction cache length or a maximum instruction length of the first GPU, the selecting task selects another source code, from among the first source code block and the plurality of second source code blocks, and the compiling task compiles the selected another source code block.

4. A method of controlling an information processing device including a first Graphics Processing Unit (GPU), the method comprising:

retrieving an instruction set including a first source code block that is pre-tuned, a plurality of second source code blocks obtained by tuning the first source code block for each of a plurality of GPUs of different types, and attribute information of the plurality of GPUs respectively corresponding to the plurality of second source code blocks;

calculating similarities between attribute information of the first GPU and each of the attribute information of the plurality of GPUs respectively corresponding to the plurality of second source code blocks;

determining whether a highest similarity, among the calculated similarities, is equal to or greater than a predetermined threshold;

selecting a source code, from among the first source code block and the plurality of second source code blocks, corresponding to:

one of the plurality of second source code blocks corresponding to the highest similarity, in a case where the highest similarity is equal to or greater than the predetermined threshold; and

the first source code block, in a case where the highest similarity is smaller than the predetermined threshold;

compiling the selected source code block to generate a compiled code for the first GPU; and

causing the first GPU to execute the generated compiled code.

5. A non-transitory computer readable medium storing a program executable by a Central Processing Unit (CPU) of an information processing device that comprises the CPU and a first Graphics Processing Unit (GPU) to execute a method comprising:

retrieving an instruction set including a first source code block that is pre-tuned, a plurality of second source code blocks obtained by tuning the first source code block for each of a plurality of GPUs of different types, and attribute information of the plurality of GPUs respectively corresponding to the plurality of second source code blocks;

calculating similarities between attribute information of the first GPU and each of the attribute information of the plurality of GPUs respectively corresponding to the plurality of second source code blocks;

determining whether a highest similarity, among the calculated similarities, is equal to or greater than a predetermined threshold;

selecting a source code, from among the first source code block and the plurality of second source code blocks, corresponding to:

one of the plurality of second source code blocks corresponding to the highest similarity, in a case where the highest similarity is equal to or greater than the predetermined threshold; and

the first source code block, in a case where the highest similarity is smaller than the predetermined threshold;

compiling the selected source code block to generate a compiled code for the first GPU; and

causing the first GPU to execute the generated compiled code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2019
From: OKUBO, YUZURU
To: CANON KABUSHIKI KAISHA
Reel/Frame 049855/0546 →
Priority Claims (1)
JP JP2018-099796 · May 24, 2018 · national
Continuity (1)
Related Publication 20190362459A1 · Nov 28, 2019