WO2021250898A1 - Information processing device, information processing method, and program - Google Patents

Information processing device, information processing method, and program Download PDF

Info

Publication number
WO2021250898A1
WO2021250898A1 PCT/JP2020/023249 JP2020023249W WO2021250898A1 WO 2021250898 A1 WO2021250898 A1 WO 2021250898A1 JP 2020023249 W JP2020023249 W JP 2020023249W WO 2021250898 A1 WO2021250898 A1 WO 2021250898A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
execution
library
information processing
external
Prior art date
Application number
PCT/JP2020/023249
Other languages
French (fr)
Japanese (ja)
Inventor
一久 石坂
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2020/023249 priority Critical patent/WO2021250898A1/en
Publication of WO2021250898A1 publication Critical patent/WO2021250898A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Definitions

  • the present invention relates to an information processing device, an information processing method and a program.
  • Patent Document 1 describes a plug-in framework that can be incorporated into an application to enable dynamic customization of engine interfaces by extension through those plug-in modules. ..
  • the plugin framework includes an engine along with various plugin personalities and plugin extensions. These framework components allow the client application to access the service to the application that called the service. Further, Patent Document 1 describes a plug-in interface profile that associates a plug-in interface client with a set of plug-in interface-related attributes at run time.
  • An object of the present invention is to provide an information processing method, an information processing method, and a program that solve the above problems.
  • the information processing apparatus identifies a subprogram described in the main program from a library including a plurality of subprograms, and a predetermined subprogram represented by the specified subprogram.
  • the library includes an execution management unit that manages an execution state of processing and an execution processing unit that executes a predetermined process indicated by the specific program, and the library is a predetermined program indicated by an external program different from the plurality of subprograms. Includes a designated program for executing the processing of.
  • the information processing method identifies a subprogram described in the main program from a library including a plurality of subprograms, and is a predetermined subprogram represented by the specified subprogram.
  • the library has a first step of managing the execution state of the process and a second step of executing a predetermined process indicated by the specific program, and the library is indicated by an external program different from the plurality of subprograms. Includes a designated program for executing a predetermined process.
  • the program identifies and identifies the subprogram described in the main program from the library including the plurality of subprograms for the computer of the information processing apparatus including the plurality of devices. It functions as an execution management unit that manages the execution state of a predetermined process indicated by the specific program, which is a program, and an execution processing unit that executes a predetermined process indicated by the specific program.
  • the library includes a designated program for executing a predetermined process indicated by an external program different from the plurality of subprograms.
  • FIG. 1 is a schematic block diagram showing a hardware configuration example of the information processing apparatus 10 according to the embodiment of the present invention.
  • the information processing apparatus 10 includes one or more devices and a memory, and constitutes a computer system.
  • the device refers to hardware having a function of executing a process instructed by various instructions (commands), mainly a processor.
  • Processors typically include arithmetic units, registers and peripheral circuits.
  • the information processing device 10 includes a CPU (Central Processing Unit) 12, a memory 12 m, and a memory device 16.
  • the CPU 12 is connected to each of the memory 12m and the memory device 16 so as to be able to input / output various data to each other according to a predetermined standard (for example, PCI (Peripheral Component interconnect) Express).
  • PCI Peripheral Component interconnect
  • the CPU 12 is a processor mainly used as a host device (Host Device).
  • a host device means a device that performs central processing in a computer system.
  • the processor reads various programs from the programs stored in the memory device 16 in advance, and writes the read programs in the memory 12m (recording).
  • the processor executes the processing indicated by the instructions described in various programs. In the present application, executing the process indicated by the instruction described in various programs may be referred to as executing the program, executing the program, or the like. Further, executing the process indicated by the instruction may be referred to as executing the instruction, executing the instruction, or the like.
  • the memory 12m includes, for example, a volatile main storage device such as a DRAM (Dynamic Random Access Memory), and is used as a work area for storing data used for processing in the CPU 12 or generated data.
  • the memory 12m functions as a system memory.
  • the memory device 16 includes, for example, any auxiliary storage device such as a ROM (Read Only Memory), an HDD (Hard Disk Drive), or an SSD (Solid Disk Drive), or a set thereof, and various data can be stored in the information processing device 10.
  • the memory device 16 stores various programs such as an OS (Operating System), a library, a utility, and an application program, and various parameter sets used for executing them.
  • the number of devices included in the information processing apparatus 10 is not limited to one, and may be two or more. Devices are generally classified into host devices and accelerators. Some or all of the two or more devices may be accelerators.
  • the accelerator is a device for controlling the processing by the host device and supporting the speeding up of the processing as a computer system.
  • the type of device used as an accelerator is arbitrary.
  • the device used as an accelerator is not limited to the CPU, but can be any of an image processing unit (GPU: Graphic Processing Unit), a vector engine (VE: Vector Engine), a deep learning accelerator (DLA), a quantum processor, and the like. , Or a combination thereof may be used.
  • a dedicated main storage device may or may not be connected to each device.
  • the memory 12m is not limited to its own part (memory 12m), and the position and size (information amount) of the data stored in the other memory.
  • the management data indicating the above may be stored.
  • the information processing apparatus 10 may include an operation unit (not shown) that receives an operation input and generates an operation signal for instructing an operation according to the received operation input.
  • the information processing apparatus 10 is an input / output unit (not shown) for inputting or outputting various data with other devices according to a predetermined input / output standard (for example, PCI Express) or communication standard (for example, IEEE802.3). ) May be provided.
  • a predetermined input / output standard for example, PCI Express
  • communication standard for example, IEEE802.3
  • FIG. 2 is a schematic block diagram showing a functional configuration example of the information processing apparatus 10 according to the present embodiment.
  • the CPU 12 executes a program described later and functions as an information processing device 10 including an execution management unit 22 and an execution processing unit 24.
  • the execution management unit 22 identifies the main program (Main Program) to be executed, and manages the execution of one or more various instructions described in the main program.
  • the execution management unit 22 may specify either the main program stored in the memory 12 m in advance based on the operation signal input from the operation unit or the input / output unit, or the main program to be executed from the input / output unit. May be obtained.
  • the main program means a program including at least one preset call (reference) instruction of a subprogram, and is not necessarily limited to the highest-level program in a set of programs.
  • the main program in the present application may be, for example, a program treated as a subprogram referred to in response to a call instruction from another program.
  • the main program is typically an application program (user program) developed by an individual user.
  • the subprogram is a function program that mainly saves the output data as a return value at the end of execution is taken as an example, but it is not limited to this.
  • the subprogram may be a subroutine that returns output data in another form or a subroutine that does not return output data.
  • the output data can be referred to by using the address when the subsequent instruction of the main program or the subsequent function program is executed.
  • the function program may be called a kernel.
  • the function program may be a program instructing predetermined element processing that performs various data processing.
  • the element processing is not limited to the calculation of individual function values, but may be a series of calculation sets such as image recognition using a machine learning model and prediction of weather information using a physical model.
  • the execution management unit 22 sequentially executes the individual instructions described in the main program. That is, after the execution of a certain instruction is completed, the execution management unit 22 sequentially repeats the process of executing the next described instruction until there are no unexecuted instructions. When the repetition of one or more instructions is described in the main program, the execution management unit 22 repeats the execution of the instruction to be repeated according to the repetition condition. When the condition judgment is described in the main program, the execution management unit 22 determines whether or not the condition is satisfied, and if it is satisfied, executes the instruction to be executed in that case and is satisfied. If not, the instruction to be executed in that case is executed.
  • the execution management unit 22 determines whether or not each instruction is an instruction indicating a call to a predetermined function program (hereinafter referred to as a call instruction). When the execution management unit 22 determines that the call command is a call command, the execution management unit 22 outputs (notifies) the call command to the execution processing unit 24.
  • the call instruction includes a descriptor of input data to be processed in the process indicated by the function program (hereinafter, input data descriptor).
  • the input data descriptor contains at least an address indicating the location of the input data.
  • the input data descriptor may include the amount of information of the input data, the transfer method, any one of the data types, or a combination thereof.
  • the execution management unit 22 inputs the execution device information indicating the execution device ED04 that executes the process indicated by the function program from the execution processing unit 24.
  • the execution management unit 22 outputs the call instruction to the execution device specified by the input execution device information.
  • the execution device ED04 is notified of the input data descriptor together with its function program by a call instruction.
  • the execution management unit 22 changes the instruction to be executed to the next instruction.
  • the call instruction may include an output data descriptor by the process instructed by the function program. If the call instruction contains an output data descriptor, the execution completion notification input from the execution device includes the output data descriptor. Therefore, the execution management unit 22 can detect the end of the process by inputting the execution completion notification including the output data descriptor from the execution device.
  • the output data descriptor is a descriptor of the output data acquired by the process indicated by the function program.
  • the output data descriptor contains at least an address indicating the location of the output data.
  • the output data descriptor may include the amount of information of the output data, the transfer method, any one of the data types, or a combination thereof.
  • the execution management unit 22 executes the process instructed by the predetermined execution management program and exerts its function.
  • the execution management program is included as a part of a predetermined software framework (Software Framework).
  • Software Framework includes a function library consisting of one or more (usually, a plurality) subprograms indicating element processing for realizing various general functions.
  • the software framework is simply referred to as a framework.
  • Frameworks include, for example, OpenCV, TensorFlow, Keras, Tornado, and the like. Frameworks can often be used to develop application programs that describe instructions for calling function programs to become individual general functions. By using the framework, the burden on the development of the program for realizing the general function is avoided or reduced, which can contribute to the efficiency of the application program development. It was
  • the execution management unit 22 manages the execution of the subprogram belonging to the library of the framework in principle, but the function of the other subprogram (hereinafter referred to as the external program) cannot be called as it is.
  • the designated program blackbox kernel, FIG. 3
  • the external program for example, kernel B, FIG. 3
  • the predetermined processing instructed by the called external program is performed. make it feasible.
  • the framework library is called a standard library, and among the subprograms included in the standard library, the preset subprograms other than the specified program may be called the standard program.
  • a library that is not included in the framework that is, a library to which an external program belongs may be called an external library.
  • Each library (that is, a standard library, an external library) may be configured as a DLL (Dynamic Link Library).
  • DLL is a library including subprograms configured in a format that can be combined (dynamically linked) and executed when the main program is executed. In DLL, each subprogram is written in binary format.
  • Each DLL is called not only by a specific main program but also by other main programs (reference), and can execute a predetermined process indicated by the called subprogram (shared).
  • the execution processing unit 24 specifies a function program instructed by a call instruction input from the execution management unit 22.
  • the execution processing unit 24 starts execution of the specified function program.
  • the execution processing unit 24 further specifies the input data indicated by the input data information.
  • the execution processing unit 24 starts executing the processing indicated by the function program for the specified input data.
  • the execution processing unit 24 generates an execution end notification when the processing is completed, and outputs the generated execution end notification to the execution management unit 22.
  • the execution processing unit 24 identifies the output data indicated by the output data information among the various data acquired by the processing.
  • the execution processing unit 24 outputs the specified output data to the execution management unit 22 in association with the execution end notification information.
  • the execution processing unit 24 executes the designated program, input data acquisition unit 242, library load unit 244, and function address resolution unit.
  • the functions of 246, the function calling unit 248, and the output data setting unit 250 are realized. Among them, the input data acquisition unit 242 and the output data setting unit 250 perform processing unique to the library, that is, common to the function programs belonging to the library.
  • the input data acquisition unit 242 acquires the input data information in the unique predetermined format by using the predetermined procedure peculiar to the predetermined framework with the call command.
  • the input data information specified by the designated program includes external program information.
  • the external program information may include information that identifies the external program, for example, a function name as the name of the external program.
  • the external program information may include the name of the external library to which the external program belongs, that is, the library name.
  • the input data acquisition unit 242 outputs the acquired input data information to the library load unit 244, the function address resolution unit 246, and the output data setting unit 250.
  • the library loading unit 244 specifies a library name indicated by input data information input from the input data acquisition unit 242, and among the libraries stored in the memory device 16 (FIG. 1) in advance, an external library having the specified library name. Is read.
  • the library loading unit 244 stores (loads) the read external library in the memory 12m.
  • the library loading unit 244 specifies a function address indicating a position on the storage area of each external program belonging to the external library stored in the memory 12m.
  • the library loading unit 244 generates external program information indicating the correspondence between the function name and the specified function address for each external program stored in the memory 12m, and stores the generated external program information in the memory 12m. ..
  • the function address may be expressed in a general-purpose format in advance.
  • the general-purpose format may be, for example, a format according to the rules specified by the OS installed in the information processing apparatus 10.
  • the function address resolution unit 246 specifies the function name indicated by the input data information input from the input data acquisition unit 242, and determines the function address of the external program having the specified function name (address resolution). More specifically, the function address solving unit 246 refers to the external program information stored in the memory 12m in advance by the library loading unit 244, and determines the function address corresponding to the specified function name. The function address solving unit 246 outputs the function address information indicating the defined function address to the function calling unit 248.
  • the function calling unit 248 specifies the function address indicated by the function address information input from the function address solving unit 246, and starts executing the function program indicated by the specified function address. When the processing of the function program is completed, the function calling unit 248 outputs an execution end notification indicating the end to the output data setting unit 250.
  • the output data setting unit 250 sets at least the output data including the execution end notification, and outputs the set output data to the execution management unit 22.
  • the output data setting unit 250 sets the output data indicated by the output data information input from the input data acquisition unit 242 among the various data acquired by the process started by the function call unit 248.
  • the output data setting unit 250 includes the execution end notification in the set output data, and outputs the output data including the execution end notification to the execution management unit 22.
  • the functions of the input data acquisition unit 242 and the output data setting unit 250 and the format of the data to be handled may be unique to the framework. That is, when the execution processing unit 24 executes the standard program as the function program indicated by the call instruction, the execution processing unit 24 realizes the functions of the input data acquisition unit 242 and the output data setting unit 250, while the library load unit 244 and the function.
  • the function of the address resolution unit 246 is omitted.
  • the input data acquisition unit 242 specifies the input data indicated by the input data information included in the call command input from the execution management unit 22, and acquires the specified input data.
  • the input data is associated with the acquired input data, and a calling instruction is output to the function calling unit 248.
  • the function calling unit 248 refers to the standard function address information stored in the memory 12m in advance, and specifies the function address corresponding to the function name indicated by the calling instruction.
  • the function caller 248 starts executing the standard program specified by the specified function address.
  • the input data acquired in the process shown in the standard program is used.
  • the standard function address information is predetermined information indicating the correspondence between the function name and the function address, which is the name of each standard program.
  • the function address may be described in a predetermined format unique to the framework (unique).
  • the function address indicated by the standard function address information has a different format from the function address of the external program. This has been one of the reasons why the external program cannot be accessed as it is and the external program cannot be executed.
  • FIG. 3 is an explanatory diagram for explaining an operation example of the information processing apparatus 10 according to the present embodiment.
  • FIG. 3 is an example of a case where a user program is provided as a main program to be executed. In the user program, execution of the three function programs kernel1, kernel8, and blackbox is instructed in that order.
  • the function programs kernel1 and kernel8 are standard programs included in the framework library. In the user program, a call instruction indicating execution of each of the function programs kernel1 and kernel8 is described.
  • the execution management unit 22 sequentially calls the function programs kernel1 and kernel8 from the framework library according to those call instructions, and causes the execution processing unit 24 to execute them.
  • a call instruction indicating the designated program blackbox is described after the function programs kernel1 and kernel8.
  • the function program kernelB is instructed as the input data information of the designated program blackbox.
  • the function program kernelB is an external program included in the external library.
  • the execution management unit 22 calls the designated program blackbox kernel from the library of the framework according to the call instruction indicating the designated program blackbox, and causes the execution processing unit 24 to execute the kernel.
  • the execution processing unit 24 identifies the function program kernelB indicated by the input data information as the processing instructed by the blackbox kernel, and then the execution processing unit 24 loads at least the function program kernelB from the external library into the memory 12m. , Starts the execution of the loaded function program kernelB.
  • FIG. 4 is a diagram showing an example of the main program according to this embodiment.
  • the main program exemplified in FIG. 4 is the extraction of the predicted value pred indicating the possibility of the region of interest from the output data data using the deep learning (DL) model as the user program to be processed, and the predicted value. It is instructed to repeatedly execute the process (simulation) to obtain the output data by performing arithmetic processing for each element area of the area of interest obtained based on the program with higher accuracy than other analysis areas.
  • DL deep learning
  • data init () indicates the initialization of the output data, that is, the process of determining the initial value in each element area in the analysis area.
  • data init () indicates the repetition of the process instructed by the instruction ... described accompanying this statement.
  • tp1 fw. kernel.
  • the conv (data) is a call instruction indicating that a convolution operation is performed on the output data data of the previous step according to the function program data in the framework, and the obtained operation result is defined as the output data mp1.
  • tp2 fw. kernel.
  • relu (tmp1) calculates the function value of the normalized linear function (Rectified Linear Function) using the data tp1 as input data, and determines the obtained function value as the output data tpp2. It is a call instruction indicating that.
  • pred fw. kernel.
  • softmax (tmp2) calculates the function value of the Softmax Function using the data tp2 as input data according to the function program softmax in the framework, and outputs the predicted value pred which is the obtained function value. It is a calling command indicating that it is defined as.
  • data fw. kernel.
  • the blackbox (data, pred, "libsim.so”, “dosim") is a function program included in the framework, and as input data to be processed according to the specified program blackbox, the output data data of the previous step and the predicted value pred.
  • External library libsim It is a call instruction indicating that the output data tp3 obtained for so and the external program dosim is defined.
  • the specified external program dosim performs predetermined arithmetic processing (simulation) using the output data data of the previous step as input data with higher accuracy than other target areas for the important area obtained based on the predicted value pred.
  • the process of calculating the output data of the current step is shown.
  • data fw.
  • the run (data) is a call instruction indicating that the output data data of the previous step is updated to the output data data of the latest step obtained by executing the process instructed by for or less.
  • the symbol # indicates a comment line. Comment lines are mainly used to describe explanations of various instructions and parameters, and do not indicate any processing.
  • the execution management unit 22 indicates by those call instructions as in the prior art. It suffices to have the execution processing unit 24 execute the standard program to be executed. In the user program illustrated in FIG. 8, the execution of the two function programs kernel1 and kernel8 is instructed in that order.
  • the function programs kernel1 and kernel8 are both standard programs included in the framework library. However, in the user program exemplified in FIG. 9, the execution of the external program kernelB is instructed in addition to the function programs kernel1 and kernel8.
  • the execution management unit 22 differs from the library of the framework to which the execution management unit 22 belongs in the processing and data format for each of the input data information and the output data information for the external program kernelB. Therefore, the location of the external program is not specified, and reading fails.
  • the subprogram instructed by the call instruction described in the main program is an external program
  • the location of the external program is specified by executing the specified program, and the specified external program is specified. It can be made feasible. Therefore, the development of the main program can be promoted by making it possible to execute the external program without modifying the framework other than including the designated program.
  • the information processing apparatus 10 includes a plurality of devices, and the library of the framework may include a designated program in which any one of the plurality of devices is designated as an execution device.
  • the execution management unit 22 causes the execution device to execute the designated program. Further, the execution management unit 22 may cause the execution device to execute an external program called by the designated program to exert the function of the execution processing unit 24.
  • FIG. 5 is a schematic block diagram showing a hardware configuration example of the information processing apparatus 10 according to this modification.
  • the information processing apparatus 10 includes a CPU 12, a GPU 14, and a memory device 16.
  • the CPU 12, the GPU 14, and the memory device 16 are connected to each other so that various data can be input and output according to a predetermined standard.
  • the memory device 16 can be referred to by either the CPU 12 or the GPU 14.
  • a memory 12m and a memory 14m are connected to the CPU 12 and the GPU 14, respectively, so that various data can be input / output.
  • the CPU 12 functions as a module including an execution management unit 22 and an execution processing unit 24c.
  • the GPU 14 functions as a module including an execution processing unit 24g.
  • the execution processing units 24c and 24g execute a standard program and an external program, respectively. Standard programs and external programs are stored in advance in the memories 12m and 14m.
  • FIG. 6 is a diagram showing an example of the main program according to this modification.
  • the eighth line of FIG. 6 shows a call instruction indicating a designated program that specifies an execution device.
  • Call command data fw. kernel.
  • blackbox_gpu data, pred, "libsim.so", "dosim"
  • blackbox_gpu is a function name indicating a designated program in which GPU14 is designated as an execution device.
  • the designated program is executed as the execution processing unit 24g in the GPU 14, and the library "libsim.so" called by the execution of the designated program is loaded into the memory 14m. Further, the function program "dosim" called by the execution of the designated program is executed by the execution processing unit 24g.
  • the execution processing unit 24g acquires the output data data and the predicted value pred of the previous step as the input data to be processed from the CPU 12. Then, the execution processing unit 24g outputs the output data data to the CPU 12 when the processing instructed by the function program “dosim” is completed.
  • the execution management unit 22 has an effect of allocating a device to a function program (in this example, “dosim” or the like) and improving the efficiency of data transfer according to the device on which the designated program is executed. Can be played.
  • a function program in this example, “dosim” or the like
  • the information processing apparatus 10 includes the CPU 12 and the GPU 14, but the present invention is not limited to this.
  • the vector engine may be designated as an execution device.
  • a plurality of designated programs may be included in the framework library, and different execution devices may be designated for each designated program.
  • the call instruction instructs the execution of each designated program.
  • the input data information instructed by the call instruction may be instructed by a function program to be executed by the execution device. Further, the input data information may further indicate a library including the function program.
  • the execution management unit 22 may determine whether the function program instructed for each call instruction described in the main program is a standard program or an external program.
  • the execution management unit 22 determines that the function program is an external program
  • the execution management unit 22 includes input data information indicating the function program (furthermore, a library including the function program may also be instructed), and a call instruction indicating the designated program. May be generated.
  • the execution management unit 22 outputs the generated call instruction to the execution processing unit 24 in place of the call instruction to be processed indicating the function program.
  • the execution processing unit 24 is instructed to execute the designated program by the call instruction input from the execution management unit 22.
  • the execution management unit 22 can call and execute the function program by the above method. Therefore, the external program can be executed without explicitly describing the designated program in the main program.
  • FIG. 7 is a schematic block diagram illustrating the minimum configuration of the present embodiment.
  • the information processing apparatus 10 includes an execution management unit 22 and an execution processing unit 24.
  • the execution management unit 22 identifies a subprogram described in the main program (for example, an application program) from a library including a plurality of subprograms (for example, a function program and a kernel), and is a specific subprogram that is the specified subprogram. Manages the execution status of the indicated predetermined process.
  • the execution processing unit 24 executes a predetermined process indicated by the specified specific program.
  • the library includes a designated program (for example, a blackbox kernel) for executing a predetermined process indicated by an external program different from the plurality of subprograms.
  • the specified program when the specified program is specified as a subprogram based on the main program, an external program different from the subprogram included in the library is specified as the process indicated by the specified program, and the specified external program is used.
  • the indicated predetermined process can be executed. Therefore, the external program can be executed without modifying the framework related to the execution management unit 22 other than including the designated program in the library. Therefore, the development of the main program is promoted by effectively utilizing the existing framework.
  • the execution processing unit 24 may define an external program based on the program name (for example, the function name) shown in the input data information for the specific program.
  • the execution management unit 22 specifies the designated program as the execution target, and the external program is specified as the input data for the designated program.
  • the specified program can be executed according to the input method of the existing framework, and the external program is specified as the process instructed by the specified program.
  • the execution processing unit 24 stores a plurality of external programs included in the library shown in the input data information in a memory (for example, memories 12 m and 14 m of the execution device), and the program name of the external program and the location of the external program.
  • External program information indicating the relationship with the address indicating the above may be generated.
  • the execution processing unit 24 may specify an external program indicating a predetermined process based on the address corresponding to the program name shown in the input data information by using the generated external program information. According to this configuration, the library including the specified external program is acquired, and the external program information indicating the relationship between the program name of each external program contained in the library and the address indicating the location of the external program is generated. ..
  • the address corresponding to the program name shown in the input data information is specified. Based on the address, access to the external program located at that address becomes easy. Therefore, it is possible to improve the series of processing efficiencies shown in the main program.
  • the information processing apparatus 10 includes a plurality of devices, and the execution management unit 22 may execute a process indicated by an external program by using a predetermined designated device among the plurality of devices. According to this configuration, the process indicated by the external program can be executed on a predetermined designated device. By causing the designated device to execute the process, the resources of the information processing apparatus 10 can be effectively utilized.
  • a predetermined designated device for example, CPU12, GPU14
  • the execution management unit 22 causes the designated device to execute the process indicated by the external program using the designated designated device. May be good.
  • the designated device when the designated device instructs a predetermined designated program, the designated device can specify and execute the external program. By instructing the designated program, the designated device related to the execution of the external program called by the designated program is specified.
  • the information processing apparatus 10 described above may include a computer system inside the information processing apparatus 10. Then, each process of the above-mentioned processing is stored in a computer-readable storage medium in the form of a program, and the processing is performed by reading and executing this program by a computer.
  • the computer system shall include software such as an OS, device driver, utility program, and hardware such as peripheral devices.
  • the “computer-readable recording medium” refers to a portable medium such as a magnetic disk, a magneto-optical disk, a ROM, or a semiconductor memory, and a storage device such as a hard disk built in a computer system.
  • a computer-readable recording medium is a medium that dynamically holds a program for a short time, such as a communication line used when transmitting a program using a network such as the Internet or a communication line such as a telephone line. It may also include a program that holds a program for a certain period of time, such as a volatile memory inside a computer system that serves as a server or a client. Further, the above program may be for realizing a part of the above-mentioned functions, and further, a so-called difference file (difference) which can realize the above-mentioned functions in combination with a program already recorded in the computer system. It may be a program).
  • a part or all of the information processing apparatus 10 in the above-described embodiment may be realized as an integrated circuit such as an LSI (Large Scale integration).
  • LSI Large Scale integration
  • Each functional block of the information processing apparatus 10 may be individually made into a processor, or a part or all of them may be integrated into a processor.
  • the method of making an integrated circuit is not limited to the LSI, and may be realized by a dedicated circuit or a general-purpose processor. Further, when an integrated circuit technology that replaces LSI appears due to the progress of semiconductor technology, an integrated circuit based on the technology may be used.
  • the processing indicated by the designated program is different from that of the subprogram included in the library.
  • An external program can be specified, and a predetermined process indicated by the specified external program can be executed. Therefore, the external program can be executed without modifying the framework related to the execution management unit 22 other than including the designated program in the library. Therefore, the development of the main program is promoted by effectively utilizing the existing framework.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention comprises: an execution management unit which specifies, from a library including a plurality of sub-programs, a sub-program described in a main program, and manages the execution state of a prescribed process indicated by a specific program, which is the specified sub-program; and an execution processing unit which executes the prescribed process indicated by the specific program. The library includes a designation program for causing a prescribed process, which is indicated by an external program different from the plurality of sub-programs, to be executed. The present embodiment can be achieved through any of an information processing device, an information processing method, and a program.

Description

情報処理装置、情報処理方法およびプログラムInformation processing equipment, information processing methods and programs
 本発明は、情報処理装置、情報処理方法およびプログラムに関する。 The present invention relates to an information processing device, an information processing method and a program.
 特許文献1には、エンジン・インタフェースの動的なカスタム化を、それらのプラグイン・モジュールを通じての拡張により可能とするための、アプリケーション中に組み込むことができるプラグイン・フレームワークについて記載されている。 当該プラグイン・フレームワークは、様々なプラグイン・パーソナリティとプラグイン・エクステンションと一緒にエンジンを含む。これらのフレームワーク・コンポーネントは、サービスを呼び出したアプリケーションにはクライアント・アプリケーションがサービスにアクセスすることを可能にする。また、特許文献1には、プラグイン・インタフェースクライアントを実行時にプラグイン・インタフェース関連属性の組と関連させるプラグイン・インタフェースプロファイルについて記載されている。 Patent Document 1 describes a plug-in framework that can be incorporated into an application to enable dynamic customization of engine interfaces by extension through those plug-in modules. .. The plugin framework includes an engine along with various plugin personalities and plugin extensions. These framework components allow the client application to access the service to the application that called the service. Further, Patent Document 1 describes a plug-in interface profile that associates a plug-in interface client with a set of plug-in interface-related attributes at run time.
特表2004-534304号公報Japanese Patent Publication No. 2004-534304
 他方、人工知能(AI:Artificial Intelligence)技術や機械学習(ML:Machine Learning)技術を実装する場合などに用いられるプログラムを開発する際、既存のフレームワークとともに、それには含まれない他の副プログラムを、当該フレームワークを改変せずに利用することが期待されていた。 On the other hand, when developing programs used for implementing artificial intelligence (AI) technology and machine learning (ML: Machine Learning) technology, along with existing frameworks, other sub-programs that are not included in it. Was expected to be used without modification of the framework.
 本発明は、上記の課題を解決する情報処理方法、情報処理方法、およびプログラムを提供することを目的とする。 An object of the present invention is to provide an information processing method, an information processing method, and a program that solve the above problems.
 本発明の第1の態様によれば、情報処理装置は、複数の副プログラムを含むライブラリから、主プログラムに記述された副プログラムを特定し、特定した副プログラムである特定プログラムで示される所定の処理の実行状態を管理する実行管理部と、前記特定プログラムで示される所定の処理を実行する実行処理部と、を備え、前記ライブラリは、前記複数の副プログラムとは異なる外部プログラムで示される所定の処理を実行させるための指定プログラムを含む。 According to the first aspect of the present invention, the information processing apparatus identifies a subprogram described in the main program from a library including a plurality of subprograms, and a predetermined subprogram represented by the specified subprogram. The library includes an execution management unit that manages an execution state of processing and an execution processing unit that executes a predetermined process indicated by the specific program, and the library is a predetermined program indicated by an external program different from the plurality of subprograms. Includes a designated program for executing the processing of.
 本発明の第2の態様によれば、情報処理方法は、複数の副プログラムを含むライブラリから、主プログラムに記述された副プログラムを特定し、特定した副プログラムである特定プログラムで示される所定の処理の実行状態を管理する第1ステップと、前記特定プログラムで示される所定の処理を実行する第2ステップと、を有し、前記ライブラリは、前記複数の副プログラムとは異なる外部プログラムで示される所定の処理を実行させるための指定プログラムを含む。 According to the second aspect of the present invention, the information processing method identifies a subprogram described in the main program from a library including a plurality of subprograms, and is a predetermined subprogram represented by the specified subprogram. The library has a first step of managing the execution state of the process and a second step of executing a predetermined process indicated by the specific program, and the library is indicated by an external program different from the plurality of subprograms. Includes a designated program for executing a predetermined process.
 本発明の第3の態様によれば、プログラムは、複数のデバイスを備える情報処理装置のコンピュータを、複数の副プログラムを含むライブラリから、主プログラムに記述された副プログラムを特定し、特定した副プログラムである特定プログラムで示される所定の処理の実行状態を管理する実行管理部と、前記特定プログラムで示される所定の処理を実行する実行処理部として機能させる。ライブラリは、前記複数の副プログラムとは異なる外部プログラムで示される所定の処理を実行させるための指定プログラムを含む。 According to the third aspect of the present invention, the program identifies and identifies the subprogram described in the main program from the library including the plurality of subprograms for the computer of the information processing apparatus including the plurality of devices. It functions as an execution management unit that manages the execution state of a predetermined process indicated by the specific program, which is a program, and an execution processing unit that executes a predetermined process indicated by the specific program. The library includes a designated program for executing a predetermined process indicated by an external program different from the plurality of subprograms.
 本発明によれば、既存のフレームワークとともに、他の副プログラムを当該フレームワークの改変を伴わずに利用することができる。 According to the present invention, other subprograms can be used together with the existing framework without modification of the framework.
本実施形態に係る情報処理装置のハードウェア構成例を示す概略ブロック図である。It is a schematic block diagram which shows the hardware configuration example of the information processing apparatus which concerns on this embodiment. 本実施形態に係る情報処理装置の機能構成例を示す概略ブロック図である。It is a schematic block diagram which shows the functional structure example of the information processing apparatus which concerns on this embodiment. 本実施形態に係る情報処理装置の動作例を示す説明図である。It is explanatory drawing which shows the operation example of the information processing apparatus which concerns on this embodiment. 本実施形態に係る主プログラムの例を示す図である。It is a figure which shows the example of the main program which concerns on this embodiment. 本実施形態の変形例に係るハードウェア構成例を示す概略ブロック図である。It is a schematic block diagram which shows the hardware configuration example which concerns on the modification of this embodiment. 本実施形態の変形例に係る主プログラムの例を示す図である。It is a figure which shows the example of the main program which concerns on the modification of this embodiment. 本実施形態に係る最小構成の情報処理装置の機能構成例を示す概略ブロック図である。It is a schematic block diagram which shows the functional configuration example of the information processing apparatus of the minimum configuration which concerns on this embodiment. 従来の情報処理装置の一動作例を示す説明図である。It is explanatory drawing which shows one operation example of the conventional information processing apparatus. 従来の情報処理装置の他の動作例を示す説明図である。It is explanatory drawing which shows the other operation example of the conventional information processing apparatus.
 以下、図面を参照して本発明の実施形態について説明する。
 図1は、本発明の一実施形態に係る情報処理装置10のハードウェア構成例を示す概略ブロック図である。
 情報処理装置10は、1個以上のデバイスとメモリを備え、コンピュータシステムを構成する。本実施形態では、デバイスとは、各種の命令(コマンド)で指示される処理を実行する機能を有するハードウェア、主にプロセッサを指す。プロセッサは、典型的には、演算装置、レジスタおよび周辺回路を備える。
 図1に示す例では、情報処理装置10は、CPU(中央処理装置;Central Processing Unit)12、メモリ12mおよびメモリデバイス16を含んで構成される。CPU12は、メモリ12mとメモリデバイス16のそれぞれに所定の規格(例えば、PCI(Peripheral Component interconnect) Express)に従って相互に各種のデータを入出力可能に接続される。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a schematic block diagram showing a hardware configuration example of the information processing apparatus 10 according to the embodiment of the present invention.
The information processing apparatus 10 includes one or more devices and a memory, and constitutes a computer system. In the present embodiment, the device refers to hardware having a function of executing a process instructed by various instructions (commands), mainly a processor. Processors typically include arithmetic units, registers and peripheral circuits.
In the example shown in FIG. 1, the information processing device 10 includes a CPU (Central Processing Unit) 12, a memory 12 m, and a memory device 16. The CPU 12 is connected to each of the memory 12m and the memory device 16 so as to be able to input / output various data to each other according to a predetermined standard (for example, PCI (Peripheral Component interconnect) Express).
 CPU12は、主にホストデバイス(Host Device)として用いられるプロセッサである。ホストデバイスは、コンピュータシステムにおいて中心的な処理を行うデバイスを意味する。プロセッサは、予めメモリデバイス16に記憶されているプログラムから各種のプログラムを読み出し、読み出したプログラムをメモリ12mに書き込む(記録)。プロセッサは、各種のプログラムに記述されている命令で示される処理を実行する。なお、本願では各種のプログラムに記述された命令で示される処理を実行することを、プログラムを実行する、プログラムの実行、などと呼ぶことがある。また、その命令で示される処理を実行することを、命令を実行する、命令の実行、などと呼ぶことがある。 The CPU 12 is a processor mainly used as a host device (Host Device). A host device means a device that performs central processing in a computer system. The processor reads various programs from the programs stored in the memory device 16 in advance, and writes the read programs in the memory 12m (recording). The processor executes the processing indicated by the instructions described in various programs. In the present application, executing the process indicated by the instruction described in various programs may be referred to as executing the program, executing the program, or the like. Further, executing the process indicated by the instruction may be referred to as executing the instruction, executing the instruction, or the like.
 メモリ12mは、例えば、DRAM(Dynamic Random Access Memory)などの揮発性の主記憶装置を備え、CPU12における処理に用いられるデータまたは生成されたデータを格納するための作業領域として用いられる。メモリ12mは、システムメモリとして機能する。
 メモリデバイス16は、例えば、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid Disk Drive)などのいずれの補助記憶装置もしくはそれらの組を備え、情報処理装置10において各種のデータを利用可能に記憶する。メモリデバイス16には、OS(Operating System)、ライブラリ、ユーティリティ、アプリケーションプログラムなど各種のプログラムや、それらの実行に用いられる各種のパラメータセットなどが記憶される。
The memory 12m includes, for example, a volatile main storage device such as a DRAM (Dynamic Random Access Memory), and is used as a work area for storing data used for processing in the CPU 12 or generated data. The memory 12m functions as a system memory.
The memory device 16 includes, for example, any auxiliary storage device such as a ROM (Read Only Memory), an HDD (Hard Disk Drive), or an SSD (Solid Disk Drive), or a set thereof, and various data can be stored in the information processing device 10. Remember available. The memory device 16 stores various programs such as an OS (Operating System), a library, a utility, and an application program, and various parameter sets used for executing them.
 なお、情報処理装置10が備えるデバイスの数は、1個に限られず、2個以上であってもよい。一般にデバイスは、ホストデバイスとアクセラレータ(Accelerator)に分類される。2個以上のデバイスの一部または全部は、アクセラレータであってもよい。アクセラレータは、ホストデバイスにより、その処理が制御され、コンピュータシステムとしての処理の高速化を支援するためのデバイスである。アクセラレータとして用いられるデバイスの種別は、任意である。アクセラレータとして用いられるデバイスは、CPUに限らず、画像処理装置(GPU:Graphic Processing Unit)、ベクトルエンジン(VE:Vector Engine)、深層学習アクセラレータ(DLA:Deep Learning Accelerator)、量子プロセッサ、などのいずれか、またはそれらの組み合わせが用いられてもよい。
 個々のデバイスには、内蔵のメモリの他、専用の主記憶装置が接続されてもよいし、接続されていなくてもよい。なお、情報処理装置10にメモリ12m以外の他のメモリを備える場合には、メモリ12mは自部(メモリ12m)に限らず、他のメモリに格納されているデータの位置とサイズ(情報量)を示す管理データを記憶してもよい。
The number of devices included in the information processing apparatus 10 is not limited to one, and may be two or more. Devices are generally classified into host devices and accelerators. Some or all of the two or more devices may be accelerators. The accelerator is a device for controlling the processing by the host device and supporting the speeding up of the processing as a computer system. The type of device used as an accelerator is arbitrary. The device used as an accelerator is not limited to the CPU, but can be any of an image processing unit (GPU: Graphic Processing Unit), a vector engine (VE: Vector Engine), a deep learning accelerator (DLA), a quantum processor, and the like. , Or a combination thereof may be used.
In addition to the built-in memory, a dedicated main storage device may or may not be connected to each device. When the information processing apparatus 10 is provided with a memory other than the memory 12m, the memory 12m is not limited to its own part (memory 12m), and the position and size (information amount) of the data stored in the other memory. The management data indicating the above may be stored.
 また、情報処理装置10は、操作入力を受け付け、受け付けた操作入力に応じて動作を指示するための操作信号を生成する操作部(図示せず)を備えてもよい。情報処理装置10は、他の機器との各種のデータを所定の入出力規格(例えば、PCI Express)または通信規格(例えば、IEEE802.3)に従って入力または出力するための入出力部(図示せず)を備えてもよい。 Further, the information processing apparatus 10 may include an operation unit (not shown) that receives an operation input and generates an operation signal for instructing an operation according to the received operation input. The information processing apparatus 10 is an input / output unit (not shown) for inputting or outputting various data with other devices according to a predetermined input / output standard (for example, PCI Express) or communication standard (for example, IEEE802.3). ) May be provided.
 次に、本実施形態に係る情報処理装置10の機能構成例について説明する。図2は、本実施形態に係る情報処理装置10の機能構成例を示す概略ブロック図である。CPU12は、後述のプログラムを実行し、実行管理部22と、実行処理部24と、を備える情報処理装置10として、機能させる。
 実行管理部22は、実行対象の主プログラム(Main Program)を特定し、主プログラムに記述された1以上の各種の命令の実行を管理する。実行管理部22は、操作部または入出力部から入力される操作信号に基づいて予めメモリ12mに記憶された主プログラムのいずれかを特定してもよいし、入出力部から実行対象の主プログラムを取得してもよい。本願では、主プログラムとは、少なくとも1個の予め設定された副プログラムの呼び出し(参照)命令を含むプログラムを意味し、必ずしも一連のプログラムのセットのうち最上位のプログラムに限らない。本願での主プログラムは、例えば、他のプログラムからの呼出命令に応じて参照される副プログラムとして扱われるプログラムであってもよい。主プログラムは、典型的には個々のユーザが開発したアプリケーションプログラム(ユーザプログラム)である。
Next, a functional configuration example of the information processing apparatus 10 according to the present embodiment will be described. FIG. 2 is a schematic block diagram showing a functional configuration example of the information processing apparatus 10 according to the present embodiment. The CPU 12 executes a program described later and functions as an information processing device 10 including an execution management unit 22 and an execution processing unit 24.
The execution management unit 22 identifies the main program (Main Program) to be executed, and manages the execution of one or more various instructions described in the main program. The execution management unit 22 may specify either the main program stored in the memory 12 m in advance based on the operation signal input from the operation unit or the input / output unit, or the main program to be executed from the input / output unit. May be obtained. In the present application, the main program means a program including at least one preset call (reference) instruction of a subprogram, and is not necessarily limited to the highest-level program in a set of programs. The main program in the present application may be, for example, a program treated as a subprogram referred to in response to a call instruction from another program. The main program is typically an application program (user program) developed by an individual user.
 以下の説明では、副プログラムが主に実行終了時に出力データを返り値として保存する関数プログラムである場合を例とするが、これには限られない。副プログラムは、出力データを別の形で返すサブルーチンや出力データを返さないサブルーチンであってもよい。別の形として、例えば、指定されたアドレスに演算結果とする出力データを格納する方法がある。出力データは、主プログラムの後続する命令もしくは後続する関数プログラムの実行の際に、そのアドレスを用いて参照可能となる。ここで、関数プログラムをカーネル(Kernel)と呼ぶことがある。関数プログラムは、各種のデータ処理をなす所定の要素処理を指示するプログラムであってもよい。要素処理は、例えば、個々の関数値の演算に限らず、機械学習モデルを用いた画像認識、物理モデルを用いた気象情報の予測、など一連の演算セットであってもよい。 In the following explanation, the case where the subprogram is a function program that mainly saves the output data as a return value at the end of execution is taken as an example, but it is not limited to this. The subprogram may be a subroutine that returns output data in another form or a subroutine that does not return output data. As another form, for example, there is a method of storing the output data as the operation result at the specified address. The output data can be referred to by using the address when the subsequent instruction of the main program or the subsequent function program is executed. Here, the function program may be called a kernel. The function program may be a program instructing predetermined element processing that performs various data processing. The element processing is not limited to the calculation of individual function values, but may be a series of calculation sets such as image recognition using a machine learning model and prediction of weather information using a physical model.
 実行管理部22は、主プログラムに記述された個々の命令を順次実行する。即ち、実行管理部22は、ある命令の実行が終了した後、次に記述された命令を実行する処理を、未実行の命令がなくなるまで順次繰り返す。主プログラムに1以上の命令の繰り返しが記述されている場合には、実行管理部22は、その繰り返し条件に従って、繰り返し対象の命令の実行を繰り返す。主プログラムに条件判断が記述されている場合には、実行管理部22は、その条件を満足するか否かを判定し、満足する場合には、その場合に実行すべき命令を実行し、満足しない場合には、その場合に実行すべき命令を実行する。但し、実行管理部22は、個々の命令が所定の関数プログラムの呼び出しを示す命令(以下、呼出命令)であるか否かを判定する。実行管理部22は、呼出命令であると判定するとき、その呼出命令を実行処理部24に出力(通知)する。呼出命令には、その関数プログラムで示される処理において処理対象となる入力データの記述子(以下、入力データ記述子)が含まれる。入力データ記述子には、少なくとも入力データの所在を示すアドレスが含まれる。入力データ記述子には、その入力データの情報量、転送方式、データ型式のいずれか、またはその組み合わせが含まれてもよい。 The execution management unit 22 sequentially executes the individual instructions described in the main program. That is, after the execution of a certain instruction is completed, the execution management unit 22 sequentially repeats the process of executing the next described instruction until there are no unexecuted instructions. When the repetition of one or more instructions is described in the main program, the execution management unit 22 repeats the execution of the instruction to be repeated according to the repetition condition. When the condition judgment is described in the main program, the execution management unit 22 determines whether or not the condition is satisfied, and if it is satisfied, executes the instruction to be executed in that case and is satisfied. If not, the instruction to be executed in that case is executed. However, the execution management unit 22 determines whether or not each instruction is an instruction indicating a call to a predetermined function program (hereinafter referred to as a call instruction). When the execution management unit 22 determines that the call command is a call command, the execution management unit 22 outputs (notifies) the call command to the execution processing unit 24. The call instruction includes a descriptor of input data to be processed in the process indicated by the function program (hereinafter, input data descriptor). The input data descriptor contains at least an address indicating the location of the input data. The input data descriptor may include the amount of information of the input data, the transfer method, any one of the data types, or a combination thereof.
 その後、実行管理部22には、実行処理部24から、その関数プログラムで示される処理を実行する実行デバイスED04を示す実行デバイス情報が入力される。実行管理部22は、入力される実行デバイス情報で指示される実行デバイスに、その呼出命令を出力する。実行デバイスED04には、呼出命令をもって、その関数プログラムとともに入力データ記述子が通知される。実行管理部22は、その関数プログラムを実行した実行デバイスED04から実行終了の通知(以下、実行終了通知)が入力されるとき、実行対象の命令を次の命令に変更する。 After that, the execution management unit 22 inputs the execution device information indicating the execution device ED04 that executes the process indicated by the function program from the execution processing unit 24. The execution management unit 22 outputs the call instruction to the execution device specified by the input execution device information. The execution device ED04 is notified of the input data descriptor together with its function program by a call instruction. When the execution end notification (hereinafter referred to as the execution end notification) is input from the execution device ED04 that has executed the function program, the execution management unit 22 changes the instruction to be executed to the next instruction.
 なお、呼出命令には、その関数プログラムで指示される処理により出力データ記述子が含まれてもよい。呼出命令に出力データ記述子が含まれる場合には、実行デバイスから入力される実行完了通知に出力データ記述子が含まれる。従って、実行管理部22は、実行デバイスから出力データ記述子を含む実行完了通知が入力されることで、その処理の終了を検出することができる。出力データ記述子は、その関数プログラムで示される処理により取得された出力データの記述子である。出力データ記述子には、少なくとも出力データの所在を示すアドレスが含まれる。出力データ記述子には、その出力データの情報量、転送方式、データ型式のいずれか、またはその組み合わせが含まれてもよい。 The call instruction may include an output data descriptor by the process instructed by the function program. If the call instruction contains an output data descriptor, the execution completion notification input from the execution device includes the output data descriptor. Therefore, the execution management unit 22 can detect the end of the process by inputting the execution completion notification including the output data descriptor from the execution device. The output data descriptor is a descriptor of the output data acquired by the process indicated by the function program. The output data descriptor contains at least an address indicating the location of the output data. The output data descriptor may include the amount of information of the output data, the transfer method, any one of the data types, or a combination thereof.
 実行管理部22は、所定の実行管理プログラムで指示される処理を実行して、その機能を発揮する。実行管理プログラムは、所定のソフトウェアフレームワーク(Software Framework)の一部として含まれる。一般に、ソフトウェアフレームワークは、各種の一般的な機能を実現するための要素処理を示す副プログラムを1個以上(通例、複数個)からなる関数ライブラリを含む。以下の説明では、ソフトウェアフレームワークを、単にフレームワークと呼ぶ。 The execution management unit 22 executes the process instructed by the predetermined execution management program and exerts its function. The execution management program is included as a part of a predetermined software framework (Software Framework). In general, a software framework includes a function library consisting of one or more (usually, a plurality) subprograms indicating element processing for realizing various general functions. In the following description, the software framework is simply referred to as a framework.
 フレームワークには、例えば、OpenCV、TensorFlow、Keras、Tornado、などがある。フレームワークは、個々の一般的な機能をなるための関数プログラムを呼び出すための命令を記述したアプリケーションプログラムの開発にしばしば用いられうる。フレームワークを利用することにより一般的な機能を実現するためのプログラムの開発に対する負担が回避または低減するため、アプリケーションプログラム開発の効率化に寄与しうる。  Frameworks include, for example, OpenCV, TensorFlow, Keras, Tornado, and the like. Frameworks can often be used to develop application programs that describe instructions for calling function programs to become individual general functions. By using the framework, the burden on the development of the program for realizing the general function is avoided or reduced, which can contribute to the efficiency of the application program development. It was
 但し、実行管理部22は、原則として、そのフレームワークのライブラリに属する副プログラムの実行を管理するが、そのままでは、それ以外の副プログラム(以下、外部プログラム)の機能を呼び出すことはできない。この点に関し、本実施形態ではフレームワークに指定プログラム(blackboxカーネル、図3)を予め含めておく。指定プログラムに対する入力データ情報として、実行対象の外部プログラムを示す外部プログラム情報を含めることで、外部プログラム(例えば、kernel B、図3)を呼び出し、呼び出た外部プログラムで指示される所定の処理を実行可能とする。 However, the execution management unit 22 manages the execution of the subprogram belonging to the library of the framework in principle, but the function of the other subprogram (hereinafter referred to as the external program) cannot be called as it is. In this regard, in this embodiment, the designated program (blackbox kernel, FIG. 3) is included in the framework in advance. By including the external program information indicating the external program to be executed as the input data information for the specified program, the external program (for example, kernel B, FIG. 3) is called, and the predetermined processing instructed by the called external program is performed. Make it feasible.
 なお、以下の説明では、フレームワークのライブラリを標準ライブラリと呼び、標準ライブラリに含まれる副プログラムのうち、指定プログラム以外の予め設定された副プログラムを標準プログラムと呼ぶことがある。また、フレームワークに含まれないライブラリ、つまり、外部プログラムが属するライブラリを外部ライブラリと呼ぶことがある。個々のライブラリ(即ち、標準ライブラリ、外部ライブラリ)は、DLL(動的リンクライブラリ;Dynamic Link Library)として構成されてもよい。DLLは、主プログラムの実行時に結合(動的リンク)して実行可能とする形式で構成された副プログラムを含むライブラリである。DLLでは、個々の副プログラムはバイナリ形式で記述される。個々のDLLは、特定の主プログラムに限らず、他の主プログラムからも呼び出され(参照)、呼び出された副プログラムで示される所定の処理を実行可能(共有)とする。 In the following explanation, the framework library is called a standard library, and among the subprograms included in the standard library, the preset subprograms other than the specified program may be called the standard program. In addition, a library that is not included in the framework, that is, a library to which an external program belongs may be called an external library. Each library (that is, a standard library, an external library) may be configured as a DLL (Dynamic Link Library). DLL is a library including subprograms configured in a format that can be combined (dynamically linked) and executed when the main program is executed. In DLL, each subprogram is written in binary format. Each DLL is called not only by a specific main program but also by other main programs (reference), and can execute a predetermined process indicated by the called subprogram (shared).
 実行処理部24は、実行管理部22から入力される呼出命令で指示される関数プログラムを特定する。実行処理部24は、特定した関数プログラムの実行を開始する。呼出命令に入力データ情報が含まれる場合には、実行処理部24は、その入力データ情報で示される入力データをさらに特定する。実行処理部24は、特定した入力データに対して関数プログラムで示される処理の実行を開始する。実行処理部24は、その処理が終了すると実行終了通知を生成し、生成した実行終了通知を実行管理部22に出力する。呼出命令に出力データ情報が含まれる場合には、実行処理部24は、処理により取得された各種のデータのうち、その出力データ情報で示される出力データを特定する。実行処理部24は、特定した出力データを実行終了通知情報と関連付けて実行管理部22に出力する。 The execution processing unit 24 specifies a function program instructed by a call instruction input from the execution management unit 22. The execution processing unit 24 starts execution of the specified function program. When the call instruction includes input data information, the execution processing unit 24 further specifies the input data indicated by the input data information. The execution processing unit 24 starts executing the processing indicated by the function program for the specified input data. The execution processing unit 24 generates an execution end notification when the processing is completed, and outputs the generated execution end notification to the execution management unit 22. When the call instruction includes output data information, the execution processing unit 24 identifies the output data indicated by the output data information among the various data acquired by the processing. The execution processing unit 24 outputs the specified output data to the execution management unit 22 in association with the execution end notification information.
 実行処理部24は、呼出命令で指示される関数プログラムが指定プログラム(blackbox カーネル)である場合には、その指定プログラムを実行して、入力データ取得部242、ライブラリロード部244、関数アドレス解決部246、関数呼出部248および出力データ設定部250の機能を実現する。そのうち、入力データ取得部242と出力データ設定部250は、そのライブラリ固有、つまりそのライブラリに属する関数プログラムに共通の処理を行う。 When the function program instructed by the call instruction is a designated program (blackbox kernel), the execution processing unit 24 executes the designated program, input data acquisition unit 242, library load unit 244, and function address resolution unit. The functions of 246, the function calling unit 248, and the output data setting unit 250 are realized. Among them, the input data acquisition unit 242 and the output data setting unit 250 perform processing unique to the library, that is, common to the function programs belonging to the library.
 入力データ取得部242は、呼出命令をもって所定のフレームワークに固有の予め定めた手順を用いて、その固有の予め定めた形式の入力データ情報を取得する。指定プログラムで特定される入力データ情報には、外部プログラム情報が含まれる。外部プログラム情報として、その外部プログラムを特定する情報、例えば、外部プログラムの名称として関数名が含まれうる。外部プログラム情報には、その外部プログラムが属する外部ライブラリの名称、つまりライブラリ名が含まれうる。入力データ取得部242は、取得した入力データ情報をライブラリロード部244、関数アドレス解決部246および出力データ設定部250に出力する。 The input data acquisition unit 242 acquires the input data information in the unique predetermined format by using the predetermined procedure peculiar to the predetermined framework with the call command. The input data information specified by the designated program includes external program information. The external program information may include information that identifies the external program, for example, a function name as the name of the external program. The external program information may include the name of the external library to which the external program belongs, that is, the library name. The input data acquisition unit 242 outputs the acquired input data information to the library load unit 244, the function address resolution unit 246, and the output data setting unit 250.
 ライブラリロード部244は、入力データ取得部242から入力される入力データ情報が示すライブラリ名を特定し、予めメモリデバイス16(図1)に記憶されたライブラリのうち、特定したライブラリ名を有する外部ライブラリを読み出す。ライブラリロード部244は、読み出した外部ライブラリをメモリ12mに記憶する(ロード)。ライブラリロード部244は、メモリ12mに記憶した外部ライブラリに属する個々の外部プログラムの記憶領域上の位置を示す関数アドレスを特定する。ライブラリロード部244は、メモリ12mに記憶した外部プログラムごとに、その関数名と特定した関数アドレスとの対応関係を示す外部プログラム情報を生成し、生成した外部プログラム情報をメモリ12mに記憶しておく。関数アドレスは、予め汎用の形式で表現されていてもよい。汎用の形式は、例えば、情報処理装置10にインストールされたOSで指定された規則に従った形式であってもよい。 The library loading unit 244 specifies a library name indicated by input data information input from the input data acquisition unit 242, and among the libraries stored in the memory device 16 (FIG. 1) in advance, an external library having the specified library name. Is read. The library loading unit 244 stores (loads) the read external library in the memory 12m. The library loading unit 244 specifies a function address indicating a position on the storage area of each external program belonging to the external library stored in the memory 12m. The library loading unit 244 generates external program information indicating the correspondence between the function name and the specified function address for each external program stored in the memory 12m, and stores the generated external program information in the memory 12m. .. The function address may be expressed in a general-purpose format in advance. The general-purpose format may be, for example, a format according to the rules specified by the OS installed in the information processing apparatus 10.
 関数アドレス解決部246は、入力データ取得部242から入力される入力データ情報が示す関数名を特定し、特定した関数名を有する外部プログラムの関数アドレスを定める(アドレス解決)。より具体的には、関数アドレス解決部246は、ライブラリロード部244により予めメモリ12mに記憶された外部プログラム情報を参照し、特定した関数名に対応する関数アドレスを定める。関数アドレス解決部246は、定めた関数アドレスを示す関数アドレス情報を関数呼出部248に出力する。 The function address resolution unit 246 specifies the function name indicated by the input data information input from the input data acquisition unit 242, and determines the function address of the external program having the specified function name (address resolution). More specifically, the function address solving unit 246 refers to the external program information stored in the memory 12m in advance by the library loading unit 244, and determines the function address corresponding to the specified function name. The function address solving unit 246 outputs the function address information indicating the defined function address to the function calling unit 248.
 関数呼出部248は、関数アドレス解決部246から入力される関数アドレス情報で示される関数アドレスを特定し、特定した関数アドレスで示される関数プログラムの実行を開始する。関数呼出部248は、関数プログラムの処理が終了するとき、その終了を示す実行終了通知を出力データ設定部250に出力する。 The function calling unit 248 specifies the function address indicated by the function address information input from the function address solving unit 246, and starts executing the function program indicated by the specified function address. When the processing of the function program is completed, the function calling unit 248 outputs an execution end notification indicating the end to the output data setting unit 250.
 出力データ設定部250は、関数呼出部248から実行終了通知が入力されるとき、少なくとも実行終了通知を含む出力データを設定し、設定した出力データを実行管理部22に出力する。出力データ設定部250は、関数呼出部248により開始された処理により取得された各種のデータのうち、入力データ取得部242から入力される出力データ情報で示される出力データを設定する。出力データ設定部250は、設定した出力データに実行終了通知を含め、実行終了通知を含めた出力データを実行管理部22に出力する。 When the execution end notification is input from the function call unit 248, the output data setting unit 250 sets at least the output data including the execution end notification, and outputs the set output data to the execution management unit 22. The output data setting unit 250 sets the output data indicated by the output data information input from the input data acquisition unit 242 among the various data acquired by the process started by the function call unit 248. The output data setting unit 250 includes the execution end notification in the set output data, and outputs the output data including the execution end notification to the execution management unit 22.
 なお、入力データ取得部242および出力データ設定部250の機能、扱われるデータの形式は、そのフレームワークに固有でありうる。即ち、実行処理部24は、呼出命令で示される関数プログラムとして標準プログラムを実行する場合には、入力データ取得部242、出力データ設定部250の機能を実現する一方で、ライブラリロード部244および関数アドレス解決部246の機能が省略される。入力データ取得部242は、実行管理部22から入力される呼出命令に含まれる入力データ情報が示す入力データを特定し、特定した入力データを取得する。入力データは、取得した入力データと関連付けて呼出命令を関数呼出部248に出力する。関数呼出部248は、予めメモリ12mに記憶された標準関数アドレス情報を参照し、呼出命令で示される関数名に対応する関数アドレスを特定する。関数呼出部248は、特定した関数アドレスで指示される標準プログラムの実行を開始する。標準プログラムで示される処理において取得した入力データが用いられる。ここで、標準関数アドレス情報は、標準プログラムごとに、その名称である関数名と関数アドレスとの対応関係を示す予め定められた情報である。その関数アドレスは、そのフレームワーク固有(独自)に予め定めた形式で記述されてもよい。標準関数アドレス情報で示される関数アドレスは、外部プログラムの関数アドレスとは異なる形式となる。そのことは、従来、そのままでは外部プログラムにアクセスできず、外部プログラムを実行できない一因となっていた。 The functions of the input data acquisition unit 242 and the output data setting unit 250 and the format of the data to be handled may be unique to the framework. That is, when the execution processing unit 24 executes the standard program as the function program indicated by the call instruction, the execution processing unit 24 realizes the functions of the input data acquisition unit 242 and the output data setting unit 250, while the library load unit 244 and the function. The function of the address resolution unit 246 is omitted. The input data acquisition unit 242 specifies the input data indicated by the input data information included in the call command input from the execution management unit 22, and acquires the specified input data. The input data is associated with the acquired input data, and a calling instruction is output to the function calling unit 248. The function calling unit 248 refers to the standard function address information stored in the memory 12m in advance, and specifies the function address corresponding to the function name indicated by the calling instruction. The function caller 248 starts executing the standard program specified by the specified function address. The input data acquired in the process shown in the standard program is used. Here, the standard function address information is predetermined information indicating the correspondence between the function name and the function address, which is the name of each standard program. The function address may be described in a predetermined format unique to the framework (unique). The function address indicated by the standard function address information has a different format from the function address of the external program. This has been one of the reasons why the external program cannot be accessed as it is and the external program cannot be executed.
(動作例)
 次に、本実施形態に係る情報処理装置10の動作例について説明する。図3は、本実施形態に係る情報処理装置10の動作例を説明するための説明図である。図3は、あるユーザプログラムが実行対象の主プログラムとして提供される場合を例にする。当該ユーザプログラムでは、3つの関数プログラムkernel1、kernel8、blackboxの実行が、その順序で指示されている。関数プログラムkernel1、kernel8がフレームワークのライブラリに含まれる標準プログラムである。ユーザプログラムには、関数プログラムkernel1、kernel8それぞれの実行を示す呼出命令が記述されている。実行管理部22は、それらの呼出命令に従って、フレームワークのライブラリから、それぞれ関数プログラムkernel1、kernel8を順次呼び出し、実行処理部24に実行させる。
(Operation example)
Next, an operation example of the information processing apparatus 10 according to the present embodiment will be described. FIG. 3 is an explanatory diagram for explaining an operation example of the information processing apparatus 10 according to the present embodiment. FIG. 3 is an example of a case where a user program is provided as a main program to be executed. In the user program, execution of the three function programs kernel1, kernel8, and blackbox is instructed in that order. The function programs kernel1 and kernel8 are standard programs included in the framework library. In the user program, a call instruction indicating execution of each of the function programs kernel1 and kernel8 is described. The execution management unit 22 sequentially calls the function programs kernel1 and kernel8 from the framework library according to those call instructions, and causes the execution processing unit 24 to execute them.
 他方、ユーザプログラムには、指定プログラムblackboxを示す呼出命令が、関数プログラムkernel1、kernel8の後に記述されている。指定プログラムblackboxの入力データ情報として、関数プログラムkernelBが指示されている。関数プログラムkernelBは、外部ライブラリに含まれる外部プログラムである。実行管理部22は、指定プログラムblackboxを示す呼出命令に従って、フレームワークのライブラリから、指定プログラムblackboxカーネルを呼び出し、実行処理部24に実行させる。実行処理部24は、blackboxカーネルで指示される処理として、入力データ情報で示される関数プログラムkernelBを特定する、その後、実行処理部24は、外部ライブラリから、少なくとも関数プログラムkernelBをメモリ12mにロードし、ロードした関数プログラムkernelBの実行を開始する。 On the other hand, in the user program, a call instruction indicating the designated program blackbox is described after the function programs kernel1 and kernel8. The function program kernelB is instructed as the input data information of the designated program blackbox. The function program kernelB is an external program included in the external library. The execution management unit 22 calls the designated program blackbox kernel from the library of the framework according to the call instruction indicating the designated program blackbox, and causes the execution processing unit 24 to execute the kernel. The execution processing unit 24 identifies the function program kernelB indicated by the input data information as the processing instructed by the blackbox kernel, and then the execution processing unit 24 loads at least the function program kernelB from the external library into the memory 12m. , Starts the execution of the loaded function program kernelB.
 図4は、本実施形態に係る主プログラムの例を示す図である。図4に例示される主プログラムは、処理対象とするユーザプログラムとして深層学習(DL:Deep Learning)モデルを用いた出力データdataから関心領域である可能性を示す予測値predの抽出と、予測値predに基づいて得られる関心領域を他の解析領域よりも高い精度で要素領域ごとに演算処理を行って出力dataを得る処理(シミュレーション)の繰り返し実行を指示する。 FIG. 4 is a diagram showing an example of the main program according to this embodiment. The main program exemplified in FIG. 4 is the extraction of the predicted value pred indicating the possibility of the region of interest from the output data data using the deep learning (DL) model as the user program to be processed, and the predicted value. It is instructed to repeatedly execute the process (simulation) to obtain the output data by performing arithmetic processing for each element area of the area of interest obtained based on the program with higher accuracy than other analysis areas.
 図4の第1行において、data=init()は、出力データの初期化、即ち解析領域内の各要素領域における初期値を定める処理を示す。
 第2行において、for …は、この文に付随して記述された命令…で指示される処理の繰り返しを示す。
 第4行において、tmp1=fw.kernel.conv(data)は、フレームワーク内の関数プログラムconvに従って、前ステップの出力データdataに対して畳み込み演算を行い、得られた演算結果を出力データtmp1として定めることを示す呼出命令である。
In the first line of FIG. 4, data = init () indicates the initialization of the output data, that is, the process of determining the initial value in each element area in the analysis area.
In the second line, for ... indicates the repetition of the process instructed by the instruction ... described accompanying this statement.
In the fourth line, tp1 = fw. kernel. The conv (data) is a call instruction indicating that a convolution operation is performed on the output data data of the previous step according to the function program data in the framework, and the obtained operation result is defined as the output data mp1.
 第5行において、tmp2=fw.kernel.relu(tmp1)は、フレームワーク内の関数プログラムreluに従って、データtmp1を入力データとして、その正規化線形関数(Rectified Linear Function)の関数値を算出し、得られた関数値を出力データtmp2として定めることを示す呼出命令である。 
 第6行において、pred=fw.kernel.softmax(tmp2)は、フレームワーク内の関数プログラムsoftmaxに従って、データtmp2を入力データとして、そのソフトマックス関数(Softmax Function)の関数値を算出し、得られた関数値である予測値predを出力データとして定めることを示す呼出命令である。
In the fifth line, tp2 = fw. kernel. According to the function program relu in the framework, relu (tmp1) calculates the function value of the normalized linear function (Rectified Linear Function) using the data tp1 as input data, and determines the obtained function value as the output data tpp2. It is a call instruction indicating that.
In the sixth line, pred = fw. kernel. softmax (tmp2) calculates the function value of the Softmax Function using the data tp2 as input data according to the function program softmax in the framework, and outputs the predicted value pred which is the obtained function value. It is a calling command indicating that it is defined as.
 第8行において、data=fw.kernel.blackbox(data,pred,”libsim.so”,”dosim”)は、フレームワークに含めた関数プログラムとして、指定プログラムblackboxに従って、処理対象とする入力データとして、前ステップの出力データdata、予測値pred、外部ライブラリlibsim.so、および外部プログラムdosimに対して得られる出力データtmp3を定めることを示す呼出命令である。指定プログラムblackboxの実行により、外部ライブラリlibsim.soがロードされ、ロードした外部ライブラリのうち外部プログラムdosimが特定される。特定された外部プログラムdosimは、予測値predに基づいて得られる重要領域に対して他の対象領域よりも高い精度で、前ステップの出力データdataを入力データとして所定の演算処理(シミュレーション)を行って現ステップの出力データを算出する処理を示す。
 第10行において、data=fw.run(data)は、前ステップの出力データdataに対して、for以下で指示された処理を実行して得られた最新のステップの出力データdataに更新することを示す呼出命令である。
 なお、図4において、記号#は、コメント行を示す。コメント行は、主に各種の命令やパラメータの説明文を記述するために用いられ、何らかの処理を示すものではない。
In the eighth line, data = fw. kernel. The blackbox (data, pred, "libsim.so", "dosim") is a function program included in the framework, and as input data to be processed according to the specified program blackbox, the output data data of the previous step and the predicted value pred. , External library libsim. It is a call instruction indicating that the output data tp3 obtained for so and the external program dosim is defined. By executing the specified program blackbox, the external library libsim. so is loaded, and the external program dosim is specified among the loaded external libraries. The specified external program dosim performs predetermined arithmetic processing (simulation) using the output data data of the previous step as input data with higher accuracy than other target areas for the important area obtained based on the predicted value pred. The process of calculating the output data of the current step is shown.
In the tenth line, data = fw. The run (data) is a call instruction indicating that the output data data of the previous step is updated to the output data data of the latest step obtained by executing the process instructed by for or less.
In FIG. 4, the symbol # indicates a comment line. Comment lines are mainly used to describe explanations of various instructions and parameters, and do not indicate any processing.
 なお、ユーザプログラムがフレームワークのライブラリに含まれる標準プログラムに対する呼出命令を含み、外部プログラムに対する呼出命令を含まない場合には、従来技術と同様に、実行管理部22は、それらの呼出命令で示される標準プログラムを実行処理部24に実行させれば足りる。図8に例示されるユーザプログラムでは、2つの関数プログラムkernel1、kernel8の実行が、その順序で指示されている。関数プログラムkernel1、kernel8は、いずれもフレームワークのライブラリに含まれる標準プログラムである。
 しかしながら、図9に例示されるユーザプログラムでは、関数プログラムkernel1、kernel8に加え、外部プログラムkernelBの実行が指示されている。実行管理部22は、外部プログラムkernelBに対しては、実行管理部22が属するフレームワークのライブラリとは入力データ情報、出力データ情報のそれぞれに対する処理や、データ形式が異なる。そのため、外部プログラムの所在が特定されず、ひいては読み出しに失敗する。
When the user program includes a call instruction for a standard program included in the framework library and does not include a call instruction for an external program, the execution management unit 22 indicates by those call instructions as in the prior art. It suffices to have the execution processing unit 24 execute the standard program to be executed. In the user program illustrated in FIG. 8, the execution of the two function programs kernel1 and kernel8 is instructed in that order. The function programs kernel1 and kernel8 are both standard programs included in the framework library.
However, in the user program exemplified in FIG. 9, the execution of the external program kernelB is instructed in addition to the function programs kernel1 and kernel8. The execution management unit 22 differs from the library of the framework to which the execution management unit 22 belongs in the processing and data format for each of the input data information and the output data information for the external program kernelB. Therefore, the location of the external program is not specified, and reading fails.
 これに対し、本実施形態によれば、主プログラムに記述された呼出命令で指示される副プログラムが外部プログラムである場合、指定プログラムの実行により外部プログラムの所在を特定し、特定した外部プログラムを実行可能とすることができる。そのため、指定プログラムを含める以外にフレームワークの改変を伴わずに、外部プログラムを実行可能とすることで、主プログラムの開発を促進することができる。 On the other hand, according to the present embodiment, when the subprogram instructed by the call instruction described in the main program is an external program, the location of the external program is specified by executing the specified program, and the specified external program is specified. It can be made feasible. Therefore, the development of the main program can be promoted by making it possible to execute the external program without modifying the framework other than including the designated program.
(変形例)
 次に、本実施形態の変形例について説明する。但し、特に断らない限り、上記の実施形態と同様の構成を備えるものとし、その説明を援用する。以下の説明では、上記の実施形態との差異点を主とする。
 本実施形態に係る情報処理装置10は、複数のデバイスを備え、フレームワークのライブラリには、複数のデバイスのいずれ1つが実行デバイスとして指定された指定プログラムが含まれていてもよい。実行管理部22は、実行デバイスにその指定プログラムを実行させる。また、実行管理部22は、指定プログラムにより呼び出される外部プログラムを実行デバイスに実行させ、実行処理部24の機能を発揮させてもよい。
(Modification example)
Next, a modification of the present embodiment will be described. However, unless otherwise specified, the same configuration as that of the above embodiment shall be provided, and the description thereof shall be incorporated. In the following description, the differences from the above embodiments will be the main points.
The information processing apparatus 10 according to the present embodiment includes a plurality of devices, and the library of the framework may include a designated program in which any one of the plurality of devices is designated as an execution device. The execution management unit 22 causes the execution device to execute the designated program. Further, the execution management unit 22 may cause the execution device to execute an external program called by the designated program to exert the function of the execution processing unit 24.
 図5は、本変形例に係る情報処理装置10のハードウェア構成例を示す概略ブロック図である。図5に示す例では、情報処理装置10は、CPU12、GPU14およびメモリデバイス16を含んで構成される。CPU12、GPU14およびメモリデバイス16間は、所定の規格に従って相互に各種のデータを入出力可能に接続される。メモリデバイス16には、CPU12、GPU14のいずれからも参照可能とする。CPU12、GPU14には、それぞれメモリ12m、メモリ14mが各種のデータを入出力可能に接続される。 
 CPU12は、実行管理部22と実行処理部24cを備えるモジュールとして機能する。GPU14は、実行処理部24gを備えるモジュールとして機能する。実行処理部24c、24gは、それぞれ標準プログラム、外部プログラムを実行する。メモリ12m、14mには、標準プログラム、外部プログラムを予め記憶させておく。
FIG. 5 is a schematic block diagram showing a hardware configuration example of the information processing apparatus 10 according to this modification. In the example shown in FIG. 5, the information processing apparatus 10 includes a CPU 12, a GPU 14, and a memory device 16. The CPU 12, the GPU 14, and the memory device 16 are connected to each other so that various data can be input and output according to a predetermined standard. The memory device 16 can be referred to by either the CPU 12 or the GPU 14. A memory 12m and a memory 14m are connected to the CPU 12 and the GPU 14, respectively, so that various data can be input / output.
The CPU 12 functions as a module including an execution management unit 22 and an execution processing unit 24c. The GPU 14 functions as a module including an execution processing unit 24g. The execution processing units 24c and 24g execute a standard program and an external program, respectively. Standard programs and external programs are stored in advance in the memories 12m and 14m.
 実行デバイスを指定した指定プログラムの実行を指示するためには、実行デバイスのデバイス名を含めた呼出命令を記述しておいてもよい。実行管理部22は、処理対象の呼出命令に基づいて、その指定プログラムを指定された実行デバイスに実行させ、実行処理部24c、24gのいずれかとして機能させる。
 図6は、本変形例に係る主プログラムの例を示す図である。図6の第8行は、実行デバイスを指定した指定プログラムを示す呼出命令を示す。呼出命令data=fw.kernel.blackbox_gpu(data,pred,“libsim.so”,“dosim”)のうち、「blackbox_gpu」が実行デバイスとしてGPU14が指定された指定プログラムを示す関数名である。従って、指定プログラムはGPU14において実行処理部24gとして実行され、指定プログラムの実行により呼び出されるライブラリ“libsim.so”は、メモリ14mにロードされる。また、指定プログラムの実行により呼び出される関数プログラム“dosim”は、実行処理部24gにより実行される。実行処理部24gは、処理対象とする入力データとしての前ステップの出力データdata、予測値predを、CPU12から取得する。そして、実行処理部24gは、関数プログラム“dosim”で指示される処理が終了するとき出力データdataをCPU12に出力する。
 このようにすることで、例えば、実行管理部22は、指定プログラムが実行されるデバイスに応じて、関数プログラム(この例では、“dosim”等)に対するデバイスの割り当てやデータ転送の効率化といった効果を奏することができる。
In order to instruct the execution of the designated program in which the execution device is specified, a call instruction including the device name of the execution device may be described. The execution management unit 22 causes the designated execution device to execute the designated program based on the call instruction to be processed, and causes it to function as either the execution processing unit 24c or 24g.
FIG. 6 is a diagram showing an example of the main program according to this modification. The eighth line of FIG. 6 shows a call instruction indicating a designated program that specifies an execution device. Call command data = fw. kernel. Among blackbox_gpu (data, pred, "libsim.so", "dosim"), "blackbox_gpu" is a function name indicating a designated program in which GPU14 is designated as an execution device. Therefore, the designated program is executed as the execution processing unit 24g in the GPU 14, and the library "libsim.so" called by the execution of the designated program is loaded into the memory 14m. Further, the function program "dosim" called by the execution of the designated program is executed by the execution processing unit 24g. The execution processing unit 24g acquires the output data data and the predicted value pred of the previous step as the input data to be processed from the CPU 12. Then, the execution processing unit 24g outputs the output data data to the CPU 12 when the processing instructed by the function program “dosim” is completed.
By doing so, for example, the execution management unit 22 has an effect of allocating a device to a function program (in this example, “dosim” or the like) and improving the efficiency of data transfer according to the device on which the designated program is executed. Can be played.
 なお、図5、図6に示す例では、情報処理装置10がCPU12、GPU14を備える場合を前提としたが、これには限られない。情報処理装置10が、それ以外のデバイスとして、例えば、ベクトルエンジンを備える場合には、ベクトルエンジンが実行デバイスとして指定されてもよい。また、複数個の指定プログラムがフレームワークのライブラリに含まれ、指定プログラムごとに異なる実行デバイスが指定されてもよい。主プログラムにおいて呼出命令により、個々の指定プログラムの実行が指示される。その呼出命令で指示される入力データ情報には、その実行デバイスに実行させるための関数プログラムが指示されてもよい。また、入力データ情報には、さらに、その関数プログラムを含むライブラリも指示されてもよい。
 また、実行管理部22は、主プログラムに記述された呼出命令ごとに指示される関数プログラムが標準プログラムであるか外部プログラムであるかを判定してもよい。実行管理部22は、その関数プログラムを外部プログラムとして判定した場合、その関数プログラムを示す入力データ情報(さらに、その関数プログラムを含むライブラリも指示されてもよい)を含み、指定プログラムを示す呼出命令を生成してもよい。実行管理部22は、その関数プログラムを示す処理対象の呼出命令に代え、生成した呼出命令を実行処理部24に出力する。実行処理部24は、実行管理部22から入力された呼出命令により指定プログラムの実行が指示される。実行管理部22は、上記の手法により、その関数プログラムを呼び出し、実行することができる。よって、主プログラムに指定プログラムを明示的に記述しておかなくても、外部プログラムが実行可能となる。
In the examples shown in FIGS. 5 and 6, it is assumed that the information processing apparatus 10 includes the CPU 12 and the GPU 14, but the present invention is not limited to this. When the information processing apparatus 10 includes, for example, a vector engine as other devices, the vector engine may be designated as an execution device. Further, a plurality of designated programs may be included in the framework library, and different execution devices may be designated for each designated program. In the main program, the call instruction instructs the execution of each designated program. The input data information instructed by the call instruction may be instructed by a function program to be executed by the execution device. Further, the input data information may further indicate a library including the function program.
Further, the execution management unit 22 may determine whether the function program instructed for each call instruction described in the main program is a standard program or an external program. When the execution management unit 22 determines that the function program is an external program, the execution management unit 22 includes input data information indicating the function program (furthermore, a library including the function program may also be instructed), and a call instruction indicating the designated program. May be generated. The execution management unit 22 outputs the generated call instruction to the execution processing unit 24 in place of the call instruction to be processed indicating the function program. The execution processing unit 24 is instructed to execute the designated program by the call instruction input from the execution management unit 22. The execution management unit 22 can call and execute the function program by the above method. Therefore, the external program can be executed without explicitly describing the designated program in the main program.
 次に、本実施形態の最小構成について説明する。図7は、本実施形態の最小構成を例示する概略ブロック図である。
 図7に示すように本実施形態に係る情報処理装置10は、実行管理部22と、実行処理部24と、を備える。
 実行管理部22は、複数の副プログラム(例えば、関数プログラム、カーネル)を含むライブラリから、主プログラム(例えば、アプリケーションプログラム)に記述された副プログラムを特定し、特定した副プログラムである特定プログラムで示される所定の処理の実行状態を管理する。
 実行処理部24は、特定された特定プログラムで示される所定の処理を実行する。
 そして、ライブラリは、複数の副プログラムとは異なる外部プログラムで示される所定の処理を実行させるための指定プログラム(例えば、blackboxカーネル)を含む。
Next, the minimum configuration of this embodiment will be described. FIG. 7 is a schematic block diagram illustrating the minimum configuration of the present embodiment.
As shown in FIG. 7, the information processing apparatus 10 according to the present embodiment includes an execution management unit 22 and an execution processing unit 24.
The execution management unit 22 identifies a subprogram described in the main program (for example, an application program) from a library including a plurality of subprograms (for example, a function program and a kernel), and is a specific subprogram that is the specified subprogram. Manages the execution status of the indicated predetermined process.
The execution processing unit 24 executes a predetermined process indicated by the specified specific program.
Then, the library includes a designated program (for example, a blackbox kernel) for executing a predetermined process indicated by an external program different from the plurality of subprograms.
 この構成によれば、主プログラムに基づいて指定プログラムが副プログラムとして特定されるとき、指定プログラムで示される処理として、ライブラリに含まれる副プログラムとは異なる外部プログラムを特定し、特定した外部プログラムで示される所定の処理が実行可能となる。そのため、指定プログラムを当該ライブラリに含める以外に実行管理部22に係るフレームワークの改変を伴わずに、外部プログラムが実行可能となる。そのため、既存のフレームワークを有効に活用して、主プログラムの開発が促進される。 According to this configuration, when the specified program is specified as a subprogram based on the main program, an external program different from the subprogram included in the library is specified as the process indicated by the specified program, and the specified external program is used. The indicated predetermined process can be executed. Therefore, the external program can be executed without modifying the framework related to the execution management unit 22 other than including the designated program in the library. Therefore, the development of the main program is promoted by effectively utilizing the existing framework.
 また、実行処理部24は、特定プログラムに対する入力データ情報に示されるプログラム名(例えば、関数名)に基づいて外部プログラムを定めてもよい。
 この構成によれば、実行管理部22により指定プログラムが実行対象として特定され、指定プログラムに対する入力データとして外部プログラムが特定される。既存フレームワークの入力方式に従って指定プログラムが実行可能となり、指定プログラムで指示される処理として外部プログラムが特定される。
Further, the execution processing unit 24 may define an external program based on the program name (for example, the function name) shown in the input data information for the specific program.
According to this configuration, the execution management unit 22 specifies the designated program as the execution target, and the external program is specified as the input data for the designated program. The specified program can be executed according to the input method of the existing framework, and the external program is specified as the process instructed by the specified program.
 また、実行処理部24は、入力データ情報に示されるライブラリに含まれる複数の外部プログラムをメモリ(例えば、実行デバイスのメモリ12m、14m)に記憶し、外部プログラムのプログラム名と当該外部プログラムの所在を示すアドレスとの関係を示す外部プログラム情報を生成してもよい。実行処理部24は、生成した外部プログラム情報を用いて、入力データ情報に示されるプログラム名に対応するアドレスに基づいて所定の処理を示す外部プログラムを特定してもよい。
 この構成によれば、指示された外部プログラムを含むライブラリを取得し、ライブラリに含まれる個々の外部プログラムのプログラム名とその外部プログラムの所在を示すアドレスとの関係を示す外部プログラム情報が生成される。そして、外部プログラム情報を参照することで、入力データ情報に示されるプログラム名に対応するアドレスが特定される。当該アドレスに基づいて、そのアドレスに所在する外部プログラムへのアクセスが容易になる。そのため、主プログラムで示される一連の処理効率を向上させることができる。
Further, the execution processing unit 24 stores a plurality of external programs included in the library shown in the input data information in a memory (for example, memories 12 m and 14 m of the execution device), and the program name of the external program and the location of the external program. External program information indicating the relationship with the address indicating the above may be generated. The execution processing unit 24 may specify an external program indicating a predetermined process based on the address corresponding to the program name shown in the input data information by using the generated external program information.
According to this configuration, the library including the specified external program is acquired, and the external program information indicating the relationship between the program name of each external program contained in the library and the address indicating the location of the external program is generated. .. Then, by referring to the external program information, the address corresponding to the program name shown in the input data information is specified. Based on the address, access to the external program located at that address becomes easy. Therefore, it is possible to improve the series of processing efficiencies shown in the main program.
 また、情報処理装置10は、複数のデバイスを備え、実行管理部22は、複数のデバイスのうち予め定めた指定デバイスを用いて、外部プログラムで示される処理を実行させてもよい。
 この構成によれば、外部プログラムで示される処理を所定の指定デバイスに対して実行させることができる。当該処理を指定デバイスに実行させることで、情報処理装置10のリソースの有効活用を図ることができる。
Further, the information processing apparatus 10 includes a plurality of devices, and the execution management unit 22 may execute a process indicated by an external program by using a predetermined designated device among the plurality of devices.
According to this configuration, the process indicated by the external program can be executed on a predetermined designated device. By causing the designated device to execute the process, the resources of the information processing apparatus 10 can be effectively utilized.
 指定プログラムには、複数のデバイスのうち予め定めた指定デバイス(例えば、CPU12、GPU14)が指示され、実行管理部22は、指示された指定デバイスを用いて外部プログラムで示される処理を実行させてもよい。
 この構成によれば、指定デバイスが予め定められた指定プログラムを指示することで、その指定デバイスに外部プログラムを特定し、実行させることができる。指定プログラムを指示することで、その指定プログラムに呼び出される外部プログラムの実行に係る指定デバイスが特定される。
A predetermined designated device (for example, CPU12, GPU14) among a plurality of devices is instructed to the designated program, and the execution management unit 22 causes the designated device to execute the process indicated by the external program using the designated designated device. May be good.
According to this configuration, when the designated device instructs a predetermined designated program, the designated device can specify and execute the external program. By instructing the designated program, the designated device related to the execution of the external program called by the designated program is specified.
 なお、上記の情報処理装置10は、その内部にコンピュータシステムを備えてもよい。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記憶媒体に記憶され、このプログラムをコンピュータが読み出して実行することによって、それらの処理が行われる。コンピュータシステムは、OS、デバイスドライバ、ユーティリティプログラムなどのソフトウェアや周辺機器等のハードウェアを含むものとする。また、コンピュータ読み取り可能な記録媒体」とは、磁気ディスク、光磁気ディスク、ROM、半導体メモリ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに、コンピュータ読み取り可能な記録媒体、とは、インターネット等のネットワークや電話回線等の通信回線を用いてプログラムを送信する場合に用いる通信線など、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリなど、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。 The information processing apparatus 10 described above may include a computer system inside the information processing apparatus 10. Then, each process of the above-mentioned processing is stored in a computer-readable storage medium in the form of a program, and the processing is performed by reading and executing this program by a computer. The computer system shall include software such as an OS, device driver, utility program, and hardware such as peripheral devices. Further, the “computer-readable recording medium” refers to a portable medium such as a magnetic disk, a magneto-optical disk, a ROM, or a semiconductor memory, and a storage device such as a hard disk built in a computer system. Further, a computer-readable recording medium is a medium that dynamically holds a program for a short time, such as a communication line used when transmitting a program using a network such as the Internet or a communication line such as a telephone line. It may also include a program that holds a program for a certain period of time, such as a volatile memory inside a computer system that serves as a server or a client. Further, the above program may be for realizing a part of the above-mentioned functions, and further, a so-called difference file (difference) which can realize the above-mentioned functions in combination with a program already recorded in the computer system. It may be a program).
 また、上述した実施形態における情報処理装置10の一部、または全部を、LSI(Large Scale integration)等の集積回路として実現してもよい。情報処理装置10の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。 Further, a part or all of the information processing apparatus 10 in the above-described embodiment may be realized as an integrated circuit such as an LSI (Large Scale integration). Each functional block of the information processing apparatus 10 may be individually made into a processor, or a part or all of them may be integrated into a processor. Further, the method of making an integrated circuit is not limited to the LSI, and may be realized by a dedicated circuit or a general-purpose processor. Further, when an integrated circuit technology that replaces LSI appears due to the progress of semiconductor technology, an integrated circuit based on the technology may be used.
 以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態及びその変形例に限定されることはない。本発明の主旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更が可能である。
 また、本発明は前述した説明によって限定されることはなく、添付の特許請求の範囲によってのみ限定される。
Although the preferred embodiments of the present invention have been described above, the present invention is not limited to these embodiments and variations thereof. It is possible to add, omit, replace, and make other changes to the configuration without departing from the gist of the present invention.
Further, the present invention is not limited by the above description, but is limited only by the appended claims.
 上記各態様の情報処理装置、情報処理方法およびプログラムによれば、主プログラムに基づいて指定プログラムが副プログラムとして特定されるとき、指定プログラムで示される処理として、ライブラリに含まれる副プログラムとは異なる外部プログラムを特定し、特定した外部プログラムで示される所定の処理が実行可能となる。そのため、指定プログラムを当該ライブラリに含める以外に実行管理部22に係るフレームワークの改変を伴わずに、外部プログラムが実行可能となる。そのため、既存のフレームワークを有効に活用して、主プログラムの開発が促進される。 According to the information processing apparatus, information processing method and program of each of the above aspects, when the designated program is specified as a subprogram based on the main program, the processing indicated by the designated program is different from that of the subprogram included in the library. An external program can be specified, and a predetermined process indicated by the specified external program can be executed. Therefore, the external program can be executed without modifying the framework related to the execution management unit 22 other than including the designated program in the library. Therefore, the development of the main program is promoted by effectively utilizing the existing framework.
10…情報処理装置、12…CPU、12m…メモリ、14…GPU、14m…メモリ、16…メモリデバイス、22…実行管理部、24(24c、24g)…実行処理部、242…入力データ取得部、244…ライブラリロード部、246…関数アドレス解決部、248…関数呼出部、250…出力データ設定部 10 ... Information processing device, 12 ... CPU, 12m ... Memory, 14 ... GPU, 14m ... Memory, 16 ... Memory device, 22 ... Execution management unit, 24 (24c, 24g) ... Execution processing unit, 242 ... Input data acquisition unit 244 ... Library load unit, 246 ... Function address resolution unit, 248 ... Function call unit, 250 ... Output data setting unit

Claims (7)

  1.  複数の副プログラムを含むライブラリから、主プログラムに記述された副プログラムを特定し、特定した副プログラムである特定プログラムで示される所定の処理の実行状態を管理する実行管理部と、
     前記特定プログラムで示される所定の処理を実行する実行処理部と、を備え、
     前記ライブラリは、前記複数の副プログラムとは異なる外部プログラムで示される所定の処理を実行させるための指定プログラムを含む
     情報処理装置。
    An execution management unit that identifies the subprogram described in the main program from the library containing multiple subprograms and manages the execution status of the predetermined process indicated by the specified subprogram, which is the specified subprogram.
    It is provided with an execution processing unit that executes a predetermined process indicated by the specific program.
    The library is an information processing apparatus including a designated program for executing a predetermined process indicated by an external program different from the plurality of subprograms.
  2.  前記実行処理部は、
     前記特定プログラムに対する入力データ情報に示されるプログラム名に基づいて前記外部プログラムを定める
     請求項1に記載の情報処理装置。
    The execution processing unit
    The information processing apparatus according to claim 1, wherein the external program is defined based on the program name shown in the input data information for the specific program.
  3.  前記実行処理部は、
     前記入力データ情報に示されるライブラリに含まれる複数の外部プログラムをメモリに記憶し、前記外部プログラムのプログラム名と当該外部プログラムの所在を示すアドレスとの関係を示す外部プログラム情報を生成し、
     前記外部プログラム情報を用いて、前記入力データ情報に示されるプログラム名に対応するアドレスに基づいて前記所定の処理を示す外部プログラムを特定する
     請求項2に記載の情報処理装置。
    The execution processing unit
    A plurality of external programs included in the library shown in the input data information are stored in the memory, and external program information indicating the relationship between the program name of the external program and the address indicating the location of the external program is generated.
    The information processing apparatus according to claim 2, wherein the external program information is used to specify an external program indicating the predetermined process based on an address corresponding to the program name shown in the input data information.
  4.  複数のデバイスを備え、
     前記実行管理部は、前記複数のデバイスのうち予め定めた指定デバイスを用いて、前記外部プログラムで示される処理を実行させる
     請求項1から請求項3のいずれか一項に記載の情報処理装置。
    Equipped with multiple devices
    The information processing apparatus according to any one of claims 1 to 3, wherein the execution management unit executes a process indicated by the external program by using a predetermined designated device among the plurality of devices.
  5.  前記指定プログラムには、前記複数のデバイスのうち予め定めた指定デバイスが指示され、
     前記実行管理部は、前記指定デバイスを用いて前記外部プログラムで示される処理を実行させる
     請求項4に記載の情報処理装置。
    The designated program is instructed to be a predetermined designated device among the plurality of devices.
    The information processing device according to claim 4, wherein the execution management unit executes a process indicated by the external program using the designated device.
  6.  情報処理装置における情報処理方法であって、
     複数の副プログラムを含むライブラリから、主プログラムに記述された副プログラムを特定し、特定した副プログラムである特定プログラムで示される所定の処理の実行状態を管理する第1ステップと、
     前記特定プログラムで示される所定の処理を実行する第2ステップと、を有し、
     前記ライブラリは、前記複数の副プログラムとは異なる外部プログラムで示される所定の処理を実行させるための指定プログラムを含む
     情報処理方法。
    It is an information processing method in an information processing device.
    The first step of identifying the subprogram described in the main program from the library including a plurality of subprograms and managing the execution state of the predetermined process indicated by the specified subprogram, which is the specified subprogram, and
    It has a second step of performing a predetermined process indicated by the specific program, and has.
    The library is an information processing method including a designated program for executing a predetermined process indicated by an external program different from the plurality of subprograms.
  7.  情報処理装置のコンピュータに、
     複数の副プログラムを含むライブラリから、主プログラムに記述された副プログラムを特定し、特定した副プログラムである特定プログラムで示される所定の処理の実行状態を管理する第1手順と、
     前記特定プログラムで示される所定の処理を実行する第2手順と、を実行させるためのプログラムであって、
     前記ライブラリは、前記複数の副プログラムとは異なる外部プログラムで示される所定の処理を実行させるための指定プログラムを含む
     プログラム。
    To the computer of the information processing device
    The first step of identifying the subprogram described in the main program from the library including a plurality of subprograms and managing the execution state of the predetermined process indicated by the specified subprogram, which is the specified subprogram, and
    A program for executing a second step of executing a predetermined process indicated by the specific program.
    The library is a program including a designated program for executing a predetermined process indicated by an external program different from the plurality of subprograms.
PCT/JP2020/023249 2020-06-12 2020-06-12 Information processing device, information processing method, and program WO2021250898A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/023249 WO2021250898A1 (en) 2020-06-12 2020-06-12 Information processing device, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/023249 WO2021250898A1 (en) 2020-06-12 2020-06-12 Information processing device, information processing method, and program

Publications (1)

Publication Number Publication Date
WO2021250898A1 true WO2021250898A1 (en) 2021-12-16

Family

ID=78847153

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/023249 WO2021250898A1 (en) 2020-06-12 2020-06-12 Information processing device, information processing method, and program

Country Status (1)

Country Link
WO (1) WO2021250898A1 (en)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"DLL and executable link", DLL MICROSOFT DOCS, 22 August 2019 (2019-08-22), Retrieved from the Internet <URL:https://docs.microsoft.com/ja-jp/cpp/build/linking-an-executable-to-a-dll?view=vs-2019> [retrieved on 20200901] *

Similar Documents

Publication Publication Date Title
US11210109B2 (en) Method and system for loading resources
JP7088897B2 (en) Data access methods, data access devices, equipment and storage media
EP2565786A1 (en) Information processing device and task switching method
JP2009501368A (en) Selective precompilation of virtual code to improve emulator performance
US20210158131A1 (en) Hierarchical partitioning of operators
CN112765023A (en) Test case generation method and device
WO2021250898A1 (en) Information processing device, information processing method, and program
CN112214443A (en) Secondary unloading device and method arranged in graphic processor
US20230409302A1 (en) Computer-readable recording medium storing conversion program and conversion processing method
US9244664B1 (en) System for video development kits with control of executable size
CN114564241B (en) Method and device for accessing hardware device, computer device and storage medium
CN110806891A (en) Method and device for generating software version of embedded equipment
CN115454403A (en) Page construction method and device and storage medium
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
CN110275710B (en) Java local interface consistency checking method and system, storage medium and terminal
WO2021245758A1 (en) Information processing device, information processing method, and program
CN117251118B (en) Virtual NVMe simulation and integration supporting method and system
CN111383164A (en) Graphics processing unit, computing system and operating method thereof
CN112328472B (en) Hardware simulation method and device, electronic equipment and storage medium
CN117806709B (en) Performance optimization method, device, equipment and storage medium of system-level chip
US20220197682A1 (en) Native-image in-memory cache for containerized ahead-of-time applications
CN118296084B (en) Data processing apparatus, instruction synchronization method, electronic apparatus, and storage medium
US11915003B2 (en) Process parasitism-based branch prediction method and device for serverless computing, electronic device, and non-transitory readable storage medium
CN117971583B (en) Method and system for testing storage particles, electronic equipment and storage medium
US20240281737A1 (en) Data compilation and execution device and data compilation and execution method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20940081

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20940081

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP