[go: up one dir, main page]

WO2017043284A1 - 情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体 - Google Patents

情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体 Download PDF

Info

Publication number
WO2017043284A1
WO2017043284A1 PCT/JP2016/074155 JP2016074155W WO2017043284A1 WO 2017043284 A1 WO2017043284 A1 WO 2017043284A1 JP 2016074155 W JP2016074155 W JP 2016074155W WO 2017043284 A1 WO2017043284 A1 WO 2017043284A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
data
control device
time
divided data
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2016/074155
Other languages
English (en)
French (fr)
Inventor
昂生 竹本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Corp
Original Assignee
Fujifilm Corp
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 Fujifilm Corp filed Critical Fujifilm Corp
Priority to JP2017539092A priority Critical patent/JP6675408B2/ja
Priority to CN201680051763.6A priority patent/CN107949838B/zh
Publication of WO2017043284A1 publication Critical patent/WO2017043284A1/ja
Priority to US15/903,039 priority patent/US10191776B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Definitions

  • the present disclosure relates to an information processing system, an information processing method, an information processing program, and a storage medium.
  • a technique for executing data processing performed by the control device instead of an external processing device is generally known.
  • a processing device for example, a device that performs processing using a GPU (Graphics Processing Unit), a DSP (Digital Signal Processor), or the like is known.
  • the GPU is originally intended for image processing, but in recent years, a development environment for use in general-purpose computation has been provided.
  • the GPU can execute numerical operations at a higher speed than a CPU (Central Processing Unit).
  • CPU Central Processing Unit
  • the GPU is often an external discrete device controlled by a control device. Therefore, in order to cause the GPU to perform processing on the processing target data, the processing target data is transferred from the control device to the GPU through the external bus, and the processed data obtained by the processing is transferred to the control device. There are many cases.
  • Japanese Patent Application Laid-Open No. 2010-244096 describes a technology for transferring divided data obtained by dividing data to be processed by a predetermined number of divisions from the CPU to the GPU and processing the divided data by the GPU.
  • the entire processing time spent on the processing target data is executed by executing the transfer of the divided data from the CPU to the GPU and the processing on the divided data on the GPU in parallel. Is shortened.
  • the divided data divided by a predetermined number of divisions is simply transferred from the control device to the processing device, and the processing device processes the divided data. If the process is repeated, the transfer time may be hindered (so-called bottleneck), and the time from the start to the completion of the processing of the data to be processed (hereinafter referred to as “the overall processing time”) may become longer.
  • the overall processing time may become long as described above. Note that this is not limited to the case where the processing device uses a GPU, and other discrete devices that execute image processing and arithmetic processing such as DSP and Intel product name Xeon Phi (registered trademark) as the processing device. This may also occur when an apparatus using a simple device is applied.
  • the present disclosure has been made in consideration of the above facts, and is an information processing system, information processing method, and information that can effectively reduce the time required when processing is executed outside the control device.
  • a processing program and a storage medium are provided.
  • 1st aspect of this indication is an information processing system, Comprising: The control apparatus which transfers the control command which described the processing content with respect to data to be processed and data, and the control command provided outside the control apparatus Is transferred, the processing device that performs processing according to the control command for the data, the transfer time for transferring the divided data obtained by dividing the data from the control device to the processing device, and the processing for processing the divided data by the processing device And a planning device that determines a data division size within a predetermined range based on the amount of data, transfer time, and processing time, and the control device is determined by the planning device. The divided data obtained by dividing the data according to the division size is sequentially transferred to the processing device. When the control command is transferred from the control device, the processing device Transfer parallel divided data into et processor, performs the divided data previously transferred, the process according to the corresponding control command.
  • the planning apparatus of the information processing system may determine the division size as the minimum value when the determined division size is less than the predetermined minimum value.
  • the information processing system includes a plurality of processing devices having a predetermined transfer time and processing time, and the planning device determines a division size for each of the processing devices and controls the control device based on the determined division size.
  • the processing completion time from the start of the transfer of the divided data from the processing device to the processing device until the completion of the transfer of all the data obtained by processing the divided data from the processing device to the control device is calculated.
  • the shortest processing device may be determined as the transfer destination of the divided data by the control device.
  • the planning apparatus of the information processing system may determine the division size as the minimum value when the determined division size is less than a predetermined minimum value for each of the processing devices.
  • the processing device of the information processing system of this aspect transfers the processed data obtained by the processing to the control device, and the planning device transfers the divided data by the transfer time of the processed data from the processing device to the control device. If the transfer time is longer than the transfer time from the control device to the processing device, the data division size may be determined such that the difference between the transfer time of the processed data and the processing time is within a predetermined range.
  • the control device of the information processing system of this aspect may be a CPU (Central Processing Unit) and the processing device may be a GPU (Graphics Processing Unit).
  • CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • the division data of the information processing system according to this aspect may be transferred from the control device to the processing device by DMA (Direct Memory Access).
  • DMA Direct Memory Access
  • the planning device of the information processing system according to this aspect may be included in the control device.
  • an information processing method in which a control device that transfers data to be processed and a processing command that describes processing content for the data is transferred by the control device, and the processing device provided outside the control device.
  • the control command is transferred from the control device
  • the data is processed according to the control command
  • the planning device transfers the divided data obtained by dividing the data from the control device to the processing device, and the divided data. Determining the data division size within which the difference from the processing time for processing the processing device is within a predetermined range based on the amount of data, the transfer time, and the processing time.
  • the divided data obtained by dividing the data according to the division size determined by the device is sequentially transferred to the processing device, and the processing device sends a control command from the control device. If There is transferred, including the transfer and parallel divided data to the processing unit from the control unit, the divided data was last transferred performs a process according to the corresponding control commands, that.
  • an information processing method in which the planning device transfers the divided data obtained by dividing the processing target data from the control device to a processing device provided outside the control device; Determining a division size of the data within which a difference from a processing time for processing the divided data by the processing device is within a predetermined range based on the amount of the data, the transfer time, and the processing time;
  • the control device sequentially transfers the divided data obtained by dividing the data according to the division size determined by the planning device, and the control command describing the processing content for the data to the processing device, and
  • the processing command is transferred from the control device to the processing device, in parallel with the transfer of the divided data from the control device to the processing device, the previously transferred against split data comprises performing a process corresponding to said corresponding control command.
  • the fourth aspect of the present disclosure is an information processing program for causing a computer to function as a planning device for the information processing system of the first aspect.
  • a computer-readable persistent storage medium storing a program for causing a computer to execute information processing, wherein the information processing is performed by a control device from an amount of data to be processed and the data And a processing time for transferring the amount of data from the control device to a processing device provided outside the control device, and a processing time for executing the processing content for the amount of data. And determining the division size of the divided data obtained by dividing the data, the division size being a transfer time for transferring the divided data from the control device to the processing device, and the divided data being the processing device. The difference between the processing time and the processing time is within a predetermined range, and the division size is output to the control device.
  • the technology of the present disclosure provides an information processing system, an information processing method, an information processing program, and a storage medium that can effectively reduce the time required when processing is executed outside a control device. Can do.
  • 5 is a timing chart showing an example of a divided data transfer period, a process execution period for divided data, and a processed data transfer period when dividing and transferring data to be processed. It is a flowchart which shows an example of the flow of the division
  • 6 is a timing chart showing an example of a transfer period of data to be processed, a process execution period for the data to be processed, and a transfer period of processed data when the data to be processed is not divided.
  • FIG. 5 is a timing chart showing an example of a divided data transfer period, a process execution period for divided data, and a processed data transfer period when dividing and transferring data to be processed. It is a block diagram which shows the structural example of the information processing system which concerns on 2nd Embodiment. It is a flowchart which shows an example of the flow of the division size calculation process performed by the calculation part of the planning apparatus which concerns on 2nd Embodiment. It is a block diagram which shows the structural example of another information processing system.
  • the information processing system 10 of this embodiment includes a control device 20, a processing device 30, and a planning device 40.
  • the control device 20 includes a CPU 22, a system memory 24, and an HDD (Hard Disk Drive) 26 for storing various information.
  • a CPU 22 central processing unit 22
  • a system memory 24 for storing various information.
  • an HDD 26 Hard Disk Drive
  • the CPU 22 comprehensively controls the entire control device 20 by executing various processes using predetermined data.
  • the CPU 22 according to the present embodiment generates divided data by dividing the data to be processed into a size corresponding to a division size described later input from the planning device 40.
  • the CPU 22 of the present embodiment transfers the generated divided data and a control command describing the processing content for the divided data to a GPU (Graphics Processing Unit) 32 described later of the processing device 30.
  • a GPU Graphics Processing Unit
  • the system memory 24 is a memory that is used when various processes are executed by the CPU 22.
  • the divided data and the data transferred from the processing device 30 obtained by processing the divided data by the GPU 32 of the processing device 30. (Hereinafter referred to as “processed data”) and the like are stored.
  • the GPU 32 of the processing device 30 performs processing on data to be processed (strictly divided data) instead of the CPU 22 of the control device 20.
  • the processing device 30 of this embodiment includes a GPU 32 and a video memory 34.
  • the GPU 32 controls the entire processing apparatus 30 in an integrated manner.
  • the GPU 32 when receiving a control command from the CPU 22, the GPU 32 according to the present embodiment performs processing indicated by the control command asynchronously with the CPU 22 on the divided data received together with the control command.
  • the type of processing executed by the GPU 32 instead of the CPU 22 is not limited, and examples thereof include processing related to image processing (color space conversion processing, image compression processing, and the like), numerical calculation processing, audio processing, and the like.
  • Such GPU 32 is preferably compatible with GPGPU (General-purpose computing-on graphics-processing-units).
  • the video memory 34 is a memory used when processing the data by the GPU 32, and stores the divided data received from the control device 20, the processed data described above, and the like.
  • data transfer between the system memory 24 of the control device 20 and the video memory 34 of the processing device 30 is performed by DMA (Direct Memory Access).
  • the processing device 30 performs processing on the divided data by the GPU 32 and data transfer with the control device 20 (reception of divided data from the control device 20 and transmission of processed data to the control device 20). ) Can be performed in parallel. Further, the processing device 30 can perform reception of divided data from the control device 20 and transmission of processed data to the control device 20 in parallel as data transfer.
  • the planning device 40 is configured such that the difference between the transfer time for transferring the divided data from the control device 20 to the processing device 30 and the processing time for processing the divided data by the processing device 30 is within a predetermined range. This is a device that determines the size based on the amount of data to be processed, the transfer time, and the processing time.
  • the planning apparatus 40 includes a setting information storage unit 42, a calculation unit 44, and an output unit 46.
  • the GPU 32 used in the processing device 30 any one of a plurality of types of GPUs having different specifications is used depending on the use of the information processing system 10 and required performance. GPU is selectively adopted.
  • the optimal division size corresponding to the type of the GPU 32 employed in the processing device 30 is derived by calculation by the calculation unit 44.
  • the setting information storage unit 42 of the planning device 40 has setting information including various data used for calculation of the division size by the calculation unit 44 for each type of GPU 32 that can be employed in the processing device 30. Stored in advance.
  • the setting information 43 A , 43 B , and 43 C corresponding to the corresponding GPUs 32 are stored in the setting information storage unit 42 in advance. ing.
  • the setting information 43 A , 43 B , and 43 C are collectively referred to as “setting information 43” when it is not necessary to distinguish between them.
  • the number of types of GPUs 32 that can be employed in the processing device 30 is not limited to three.
  • the setting information 43 includes a data transfer time Tt, a processing time Tp for each process, a constant time To for each transfer, and a minimum division size min.
  • the data transfer time Tt is the time taken to transfer a predetermined amount of data between the control device 20 (more specifically, the system memory 24) and the processing device 30 (more specifically, the video memory 34). .
  • the data transfer time from the system memory 24 to the video memory 34 and the data transfer time from the video memory 34 to the system memory 24 include the error range and are the same. The case will be described.
  • the processing time Tp of each process is a time required for processing a predetermined amount of data for each content of processing executed by the corresponding GPU 32.
  • FIG. 3 shows a color space conversion processing time Tp1 and a filter processing time Tp2 as specific examples of the processing time Tp.
  • the color space conversion process include a color space conversion process from the RGB color space to the YCbCr color space, a color space conversion process from the RGB color space to the HSV color space, and the like.
  • Examples of filter processing include filter processing using a convolution filter and filter processing using a median filter. Note that the type of processing executed by the GPU 32 is not limited to the above.
  • image data to be processed is image data
  • image size change processing so-called enlargement processing and reduction processing
  • transposition processing rotation processing
  • vertical direction combination processing and horizontal direction combination
  • General-purpose processing such as color conversion processing using processing, LUT (Look Up Table), etc.
  • the types of the processing include maximum value calculation processing, minimum value calculation processing, average value Reduction processing such as calculation processing and histogram calculation processing may be used.
  • the constant time To for each transfer is a so-called overhead that occurs when data is transferred between the control device 20 and the processing device 30.
  • the minimum division size min is a lower limit value of the size of the divided data processed by the GPU 32.
  • data of a certain size is required to realize a high-speed parallel processing function with the GPU 32.
  • FIG. 4 shows an example of the correspondence between the processing time per processing unit and the division size in the processing device 30 (GPU 32).
  • “one processing unit” means “predetermined amount” of “predetermined amount of data” in the description of the setting information.
  • the processing time when the division size is less than the minimum division size, the processing time hardly changes (at least as compared with the case where the division size is equal to or larger than the minimum division size) even if the division size is reduced.
  • the minimum division size min is determined in advance according to the performance of the GPU 32.
  • the calculation unit 44 transfers the divided data from the control device 20 to the processing device 30 based on the setting information 43 stored in the setting information storage unit 42, and the processing time for processing the divided data by the processing device 30.
  • the division size of the data to be processed is calculated so that the difference between them falls within a predetermined range.
  • the “predetermined range” is specifically a range that is predetermined according to the processing speed required for the information processing system 10, and the transfer time and the processing time are equal. It is preferable that it is a range which can be considered.
  • the output unit 46 outputs the division size calculated by the calculation unit 44 to the CPU 22 of the control device 20.
  • the planning device 40 is configured by hardware.
  • the configuration is not limited to this, and the planning device 40 may be configured by software (program).
  • program program
  • FIG. 5 a form in which processing executed in the planning device 40 is stored as software in the HDD 26 of the control device 20 is conceivable.
  • control device 20 outputs the size and processing content (processing type) of the data to be processed to the planning device 40.
  • the control device 20 also outputs information for specifying the type of the GPU 32 of the processing device 30 that performs processing to the planning device 40.
  • the planning device 40 executes a division size calculation process, which will be described in detail later, in the next step S102. Then, the optimum division size is determined by calculation.
  • the planning device 40 outputs the determined division size to the control device 20.
  • the control device 20 divides the data to be processed based on the division size input from the planning device 40, and sends the divided data and the control command to the processing device 30 for each divided data obtained by this. Send sequentially.
  • the method by which the control device 20 divides the data to be processed is not particularly limited, and may be divided by a method according to the processing content, the type of data to be processed, and the like.
  • Area image data is not limited to this.
  • the data to be processed may be divided into image data of a rectangular shape and the same area arranged in one predetermined direction.
  • the processing device 30 performs processing corresponding to the corresponding control command on the divided data sequentially received from the control device 20, and sequentially transmits the processed data obtained thereby to the control device 20.
  • a series of operations in the information processing system 10 ends.
  • the processing on the divided data in the processing device 30 and the transfer of processed data from the processing device 30 to the control device 20 are performed in parallel.
  • FIG. 8 shows an example of a timing chart of a divided data transfer period, a process execution period for the divided data, and a processed data transfer period when the data to be processed is divided and transferred. Yes.
  • the divided data D1 to D5 obtained by dividing the processing target data into five pieces are divided data, transferred, and processed. Show.
  • the processing for the divided data D1 in the processing device 30 is performed in parallel.
  • step S200 the calculation unit 44 calculates the data transfer prediction time Ttx and the data processing prediction time Tpx for the entire processing target data. Specifically, the calculation unit 44 refers to the setting information 43 stored in the setting information storage unit 42 according to the information specifying the GPU 32, and the data transfer time Tt and the processing time Tp according to the processing content. Is read. Then, based on the read data transfer time Tt and processing time Tp, and the size of the data to be processed, the data transfer prediction time Ttx and the data processing prediction time Tpx are calculated.
  • the overall processing time until the processing on the processing target data D in the apparatus 30 is completed is a time obtained by adding the data transfer prediction time Ttx, the constant time To, and the data processing prediction time Tpx (Ttx + To + Tpx).
  • the overall processing time of the processing target data is obtained by processing the processing target data D from the processing device 30 from the start of the transfer of the processing target data D in the control device 20. This is until the transfer of the processed data to the control device 20 is completed.
  • the transfer of the processed data may not be performed in parallel with the transfer of the divided data from the control device 20 to the processing device 30 and the processing for the divided data in the processing device 30. Therefore, in the information processing system 10 according to the present embodiment, in order to avoid complicated processing, the entire period from the start of transfer of processing target data to the processing device 30 until the processing in the processing device 30 is completed is overall. The division size is calculated by assuming that the processing time is short. Similarly, even when the processing device 30 processes the divided data, in the information processing system 10 of this embodiment, the period from the start of the transfer of the processing target data to the processing device 30 until the processing in the processing device 30 is completed. Is regarded as the overall processing time.
  • the calculation unit 44 determines whether or not the data processing prediction time Tpx is longer than the data transfer prediction time Ttx (Ttx ⁇ Tpx). If the determination is negative (the data transfer predicted time Ttx is equal to or longer than the data processing predicted time Tpx, that is, if Ttx ⁇ Tpx), the process proceeds to step S204.
  • the example shown in FIG. 8 is a case where the predicted data transfer time Ttx is equal to or longer than the predicted data processing time Tpx.
  • step S202 if the data processing predicted time Tpx is longer than the data transfer predicted time Ttx (Ttx ⁇ Tpx), an affirmative determination is made in step S202 and the process proceeds to step S206.
  • the optimal division number n can be obtained from the following equation (4) from the equation (3). According to the equation (4), the transfer time of the divided data from the control device 20 to the processing device 30 and the processing time for processing the divided data by the processing device 30 become more equal.
  • step S206 the calculation unit 44 calculates the number of divisions n using equation (4), and then proceeds to step S208.
  • the transfer time is based on the transfer rate from the control device 20 to the processing device 30, but the transfer rate from the processing device 30 to the control device 20 ( If the speed at which the processed data is transferred is slower than the transfer speed from the control device 20 to the processing device 30, the division size may be determined based on the speed at which the processed data is transferred.
  • the data transfer rate Tt of the setting information 43 stored in the setting information storage unit 42 may be set as a transfer rate at which processed data is transferred from the processing device 30 to the control device 20.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Image Processing (AREA)
  • Information Transfer Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Multi Processors (AREA)

Abstract

情報処理システムは、処理対象のデータ及び処理対象のデータに対する処理内容を記述した制御コマンドを転送する制御装置と、制御装置の外部に設けられ、制御装置から制御コマンドが転送されると、制御コマンドに応じた処理を行う処理装置と、分割データを制御装置から処理装置へ転送する転送時間と、分割データを処理装置で処理する処理時間との差が予め定められた範囲内となる処理対象のデータの分割サイズを、処理対象のデータの量、転送時間及び処理時間に基づいて決定する計画装置と、を備え、計画装置により決定された分割サイズに従って処理対象のデータを分割して得られた分割データを処理装置に転送する。

Description

情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体
 本願は2015年9月10日出願の日本出願第2015-178715号の優先権を主張すると共に、その全文を参照により本明細書に援用する。
 本開示は、情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体に関する。
 制御装置における処理の負荷を低減するために、制御装置で行うデータの処理を外部の処理装置に代わりに実行させる技術が一般に知られている。このような処理装置として、例えば、GPU(Graphics Processing Unit)やDSP(Digital Signal Processor)等により処理を行う装置が知られている。
 GPUは、本来は画像処理のためのものであるが、近年になって、汎用計算に使用するための開発環境が提供されている。GPUは、CPU(Central Processing Unit)に比べて、数値演算を高速に実行することができる。
 GPUは、制御装置によって制御される、外部のディスクリートなデバイスとされている場合が多い。そのため、GPUに処理対象のデータに対する処理を行わせるには、外部バスを通して処理対象のデータを制御装置からGPUへ転送し、処理によって得られた処理済データを制御装置へ転送する形態とされている場合が多い。
 例えば、特開2010-244096号公報には、処理対象のデータを所定の分割数で分割した分割データをCPUからGPUへ転送し、分割データをGPUで処理する技術が記載されている。特開2010-244096号公報に記載の技術では、CPUからGPUへの分割データの転送と、GPUでの分割データに対する処理とを並列に実行することにより、処理対象のデータに対する処理に費やされる全体の時間が短縮される。
 しかしながら、制御装置の外部の処理装置にデータの処理を行わせる場合、単純に、制御装置から処理装置に所定の分割数で分割された分割データを転送し、処理装置が分割データを処理する動作を繰り返すと、転送時間が妨げ(いわゆるボトルネック)となり、処理対象のデータに対する処理開始から完了までの時間(以下、「全体的な処理時間」という)が長くなる場合がある。
 上記文献に記載の技術においても、所定の分割数で処理対象のデータを分割するため、上述のように全体的な処理時間が長くなる場合がある。なお、これは、処理装置がGPUを用いたものである場合に限らず、処理装置としてDSPおよびインテル社製商品名Xeon Phi(登録商標)等の画像処理及び演算処理等を実行する他のディスクリートなデバイスを用いた装置を適用した場合にも生じ得る。
 本開示は、上記事実を考慮して成されたもので、処理を制御装置の外部で実行する場合に必要とされる時間を効果的に短縮することができる情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体を提供する。
 本開示の第1の態様は、情報処理システムであって、処理対象のデータ及びデータに対する処理内容を記述した制御コマンドを転送する制御装置と、制御装置の外部に設けられ、制御装置から制御コマンドが転送されると、データに対して制御コマンドに応じた処理を行う処理装置と、データを分割した分割データを制御装置から処理装置へ転送する転送時間と、分割データを処理装置で処理する処理時間との差が予め定められた範囲内となるデータの分割サイズを、データの量、転送時間及び処理時間に基づいて決定する計画装置と、を備え、制御装置は、計画装置により決定された分割サイズに従ってデータを分割して得られた分割データを処理装置に順次転送し、処理装置は、制御装置から制御コマンドが転送された場合、制御装置から処理装置への分割データの転送と並列で、前回転送された分割データに対して、対応する制御コマンドに応じた処理を行う。
 本態様の情報処理システムの計画装置は、決定した分割サイズが予め定められた最小値未満の場合は、分割サイズを最小値に決定してもよい。
 本態様の情報処理システムは、転送時間及び処理時間が予め定められた処理装置を複数備え、計画装置は、処理装置の各々毎に、分割サイズを決定し、決定した分割サイズに基づいて制御装置から処理装置へ分割データの転送を開始してから、処理装置から制御装置へ分割データを処理して得られた全てのデータの転送を終了するまでの処理完了時間を算出し、処理完了時間が最短の処理装置を制御装置による分割データの転送先として決定してもよい。
 本態様の情報処理システムの計画装置は、処理装置の各々毎に、決定した分割サイズが予め定められた最小値未満の場合は、分割サイズを最小値に決定してもよい。
 本態様の情報処理システムの処理装置は、処理によって得られた処理済データを制御装置に転送し、計画装置は、処理装置から制御装置への処理済データの転送時間の方が、分割データを制御装置から処理装置に転送する転送時間より長い場合は、処理済データの転送時間と、処理時間との差が予め定められた範囲内となるデータの分割サイズを決定してもよい。
 本態様の情報処理システムの制御装置はCPU(Central Processing Unit)であり、処理装置はGPU(Graphics Processing Unit)であってもよい。
 本態様の情報処理システムの分割データは、DMA(Direct Memory Access)により制御装置から処理装置に転送されてもよい。
 本態様の情報処理システムの計画装置は、制御装置に含まれてもよい。
 本開示の第2の態様は、情報処理方法であって、制御装置により、処理対象のデータ及びデータに対する処理内容を記述した制御コマンドを転送し、前記制御装置の外部に設けられた処理装置により、制御装置から制御コマンドが転送されると、データに対して制御コマンドに応じた処理を行い、計画装置により、データを分割した分割データを制御装置から処理装置へ転送する転送時間と、分割データを処理装置で処理する処理時間との差が予め定められた範囲内となるデータの分割サイズを、データの量、転送時間及び処理時間に基づいて決定する、ことを含み、制御装置により、計画装置により決定された分割サイズに従ってデータを分割して得られた分割データを処理装置に順次転送し、処理装置により、制御装置から制御コマンドが転送された場合、制御装置から処理装置への分割データの転送と並列で、前回転送された分割データに対して、対応する制御コマンドに応じた処理を行う、ことを含む。
 本開示の第3の態様は、情報処理方法であって、計画装置が、処理対象のデータを分割した分割データを制御装置から前記制御装置の外部に設けられた処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となる前記データの分割サイズを、前記データの量、前記転送時間及び前記処理時間に基づいて決定し、前記制御装置が、前記計画装置により決定された分割サイズに従って前記データを分割して得られた分割データと、前記データに対する処理内容を記述した制御コマンドと、を前記処理装置に順次転送し、前記処理装置が、前記制御装置から前記制御コマンドが転送された場合、前記制御装置から前記処理装置への前記分割データの転送と並列で、前回転送された前記分割データに対して、対応する前記制御コマンドに応じた処理を行うことを含む。
 本開示の第4の態様は、情報処理プログラムであって、コンピュータを、第1の態様の情報処理システムの計画装置として機能させるものである。
 本開示の第5の態様は、コンピュータに情報処理を実行させるプログラムを記憶したコンピュータ可読持続性記憶媒体であって、前記情報処理が、制御装置から、処理対象のデータの量と、前記データに対する処理内容と、を受信し、前記データの量を前記制御装置から前記制御装置の外部に設けられた処理装置へ転送する転送時間と、前記データの量に対して前記処理内容を実行する処理時間と、に基づいて、前記データを分割した分割データの分割サイズを決定し、前記分割サイズが、前記分割データを前記制御装置から前記処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となるサイズであり、前記分割サイズを、前記制御装置に出力すること、を含む。
 本開示の技術では、制御装置の外部で処理を実行する場合に必要とされる時間を効果的に短縮することができる情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体を提供することができる。
第1実施形態に係る情報処理システムの構成例を示すブロック図である。 第1実施形態に係る計画装置の構成例を示すブロック図である。 第1実施形態に係る設計情報の一例を示す模式図である。 第1実施形態に係る処理装置(GPU)における1処理単位当たりの処理時間と分割サイズとの対応関係の一例を表すグラフである。 計画装置をソフトウエアとして構成した場合の情報処理システムの構成例を示すブロック図である。 第1実施形態に係る情報処理システムの全体的な動作の流れの一例を示すフローチャートである。 処理対象のデータの分割手順の説明に供する図である。 処理対象のデータを分割して転送する場合における、分割データの転送期間と、分割データに対する処理の実行期間と、処理済データの転送期間との一例を示したタイミングチャートである。 第1実施形態に係る計画装置の計算部で実行される分割サイズ計算処理の流れの一例を示すフローチャートである。 処理対象のデータを分割しない場合における、処理対象のデータの転送期間と、処理対象のデータに対する処理の実行期間と、処理済データの転送期間との一例を示したタイミングチャートである。 処理対象のデータを分割して転送する場合における、分割データの転送期間と、分割データに対する処理の実行期間と、処理済データの転送期間との一例を示したタイミングチャートである。 第2実施形態に係る情報処理システムの構成例を示すブロック図である。 第2実施形態に係る計画装置の計算部で実行される分割サイズ計算処理の流れの一例を示すフローチャートである。 他の情報処理システムの構成例を示すブロック図である。
 以下、図面を参照して実施形態を詳細に説明する。なお、本実施形態は本開示を限定するものではない。
[第1実施形態]
 まず、本実施形態の情報処理システムについて説明する。図1に示すように、本実施形態の情報処理システム10は、制御装置20、処理装置30、及び計画装置40を備えている。
 制御装置20は、CPU22、システムメモリ24、及び各種情報を記憶するHDD(Hard Disk Drive)26を備えている。
 CPU22は、予め定められたデータを用いた各種処理を実行すること等により、制御装置20の全体を統括的に制御する。また、本実施形態のCPU22は、計画装置40から入力された、後述する分割サイズに応じたサイズに処理対象のデータを分割して分割データを生成する。また、本実施形態のCPU22は、処理装置30の後述するGPU(Graphics Processing Unit)32に、生成した分割データと、分割データに対する処理内容を記述した制御コマンドとを転送する。
 システムメモリ24は、CPU22により各種処理を実行する場合に用いられるメモリであり、上記分割データや、処理装置30のGPU32により分割データに対する処理が行われて得られた処理装置30から転送されたデータ(以下、「処理済データ」という)等が格納される。
 一方、本実施形態の処理装置30のGPU32は、制御装置20のCPU22の代わりに処理対象のデータ(厳密には、分割データ)に対する処理を行う。本実施形態の処理装置30は、GPU32及びビデオメモリ34を備えている。
 GPU32は、処理装置30の全体を統括的に制御する。また、本実施形態のGPU32は、CPU22から制御コマンドを受信すると、制御コマンドと共に受信された分割データに対して、制御コマンドにより示される処理をCPU22と非同期に行う。なお、GPU32がCPU22の代わりに実行する処理の種類は限定されないが、例えば、画像処理に関する処理(色空間変換処理および画像圧縮処理等)、数値演算処理、および音声処理等が挙げられる。このようなGPU32としては、GPGPU(General-purpose computing on graphics processing units)に対応したものであることが好ましい。
 ビデオメモリ34は、GPU32によりデータに対する処理を実行する場合に用いられるメモリであり、制御装置20から受信した分割データや、上述した処理済データ等が格納される。なお、本実施形態に係る情報処理システムでは、制御装置20のシステムメモリ24と処理装置30のビデオメモリ34との間でのデータ転送を、DMA(Direct Memory Access)により行う。
 なお、本実施形態に係る処理装置30は、GPU32による分割データに対する処理と、制御装置20との間のデータ転送(制御装置20からの分割データの受信および制御装置20への処理済データの送信)とを並列(Parallel)で行うことができる。また、処理装置30は、データ転送として、制御装置20から分割データの受信と、制御装置20への処理済データの送信とを並列で行うことができる。
 本実施形態の計画装置40は、分割データを制御装置20から処理装置30へ転送する転送時間と、分割データを処理装置30で処理する処理時間との差が予め定められた範囲内となる分割サイズを、処理対象のデータの量、転送時間及び処理時間に基づいて決定する装置である。本実施形態の計画装置40は、図2に示すように、設定情報記憶部42、計算部44、及び出力部46を備えている。
 本実施形態に係る情報処理システム10では、処理装置30に用いられるGPU32として、情報処理システム10の用途や要求される性能等に応じて、各々仕様が異なる複数の種類のGPUから何れか1つのGPUが選択的に採用される。そして、本実施形態に係る計画装置40では、処理装置30に採用されているGPU32の種類に応じた最適な分割サイズを計算部44によって演算により導出する。
 このため、本実施形態に係る計画装置40の設定情報記憶部42は、処理装置30に採用され得るGPU32の種類毎に、計算部44による分割サイズの演算に用いる各種データが含まれる設定情報が予め記憶されている。
 本実施形態に係る情報処理システム10では、処理装置30に採用され得るGPU32の種類として3種類のGPU32(以下、各々「GPU」、「GPU」、及び「GPU」という。)が想定されている。従って、本実施形態に係る情報処理システム10では、一例として図3に示すように、各々対応するGPU32に対応する設定情報43、43、および43が設定情報記憶部42に予め記憶されている。なお、以下では、設定情報43、43、および43を特に区別して説明する必要がない場合は、「設定情報43」と総称する。また、処理装置30に採用され得るGPU32の種類の数は3に限らない。
 図3に示すように、本実施形態に係る設定情報43は、データ転送時間Tt、各処理の処理時間Tp、転送1回ごとの定数時間To、及び最小分割サイズminを含む。
 データ転送時間Ttは、制御装置20(より具体的には、システムメモリ24)と処理装置30(より具体的には、ビデオメモリ34)との間で所定量のデータの転送にかかる時間である。なお、本実施形態では、錯綜を回避するため、システムメモリ24からビデオメモリ34へのデータ転送時間と、ビデオメモリ34からシステムメモリ24へのデータ転送時間とが誤差の範囲を含み、同一である場合について説明する。
 各処理の処理時間Tpは、対応するGPU32が実行する処理の内容毎に所定量のデータの処理に要する時間である。図3では、処理時間Tpの具体例として、色空間変換処理時間Tp1及びフィルタの処理時間Tp2が示されている。色空間変換処理としては、例えば、RGB色空間からYCbCr色空間への色空間変換処理及びRGB色空間からHSV色空間への色空間変換処理等が挙げられる。また、フィルタ処理としては、例えば、コンボリューションフィルタによるフィルタ処理及びメディアンフィルタによるフィルタ処理等が挙げられる。なお、GPU32が実行する処理の種類は、上記に限定されない。処理対象のデータが画像データの場合における他の処理の種類としては、例えば、画像サイズの変更処理(いわゆる拡大処理および縮小処理)、転置処理、回転処理、垂直方向の結合処理、水平方向の結合処理、LUT(Look Up Table)を用いた色変換処理等の汎用的な処理が挙げられる、また、例えば、上記処理の種類としては、最大値の計算処理、最小値の計算処理、平均値の計算処理、及びヒストグラムの計算処理等のリダクション処理が挙げられる。
 転送1回ごとの定数時間Toは、制御装置20と処理装置30との間でデータの転送を行うことに伴って生じる、いわゆるオーバーヘッドである。
 最小分割サイズminは、GPU32で処理を行う分割データのサイズの下限値である。一般に、GPU32で高速な並列処理機能を実現するためには、ある程度のサイズのデータが必要となることが知られている。図4には、処理装置30(GPU32)における1処理単位あたりの処理時間と分割サイズとの対応関係の一例が示されている。なお、図4において「1処理単位」とは、上記設定情報の説明における「所定量のデータ」の「所定量」のことを言う。図4に示すように、分割サイズが最小分割サイズ未満の場合、分割サイズが小さくなっても、処理時間がほとんど(少なくとも、分割サイズが最小分割サイズ以上の場合に比べて)変化しない。すなわち、分割サイズが最小分割サイズ未満では、GPU32が高速な並列処理機能を発揮しきれていないことがわかる。そこで、本実施形態に係る情報処理システム10では、最小分割サイズminをGPU32の性能に応じて予め定めている。
 計算部44は、設定情報記憶部42に記憶されている設定情報43に基づいて分割データを制御装置20から処理装置30へ転送する転送時間と、分割データを処理装置30で処理する処理時間との差が予め定められた範囲内となる、処理対象のデータの分割サイズを計算する。ここで、「予め定められた範囲」とは、具体的には、情報処理システム10に要求される処理速度等に応じて予め定められる範囲であり、上記転送時間と上記処理時間とが等しいとみなせる範囲であることが好ましい。
 出力部46は、計算部44により計算された分割サイズを制御装置20のCPU22へ出力する。
 なお、本実施形態では、計画装置40をハードウェアにより構成しているが、これに限らず、計画装置40をソフトウエア(プログラム)により構成してもよい。この場合、一例として図5に示すように、計画装置40において実行される処理を、制御装置20のHDD26内にソフトウエアとして記憶する形態が考えられる。
 次に、本実施形態の情報処理システム10の作用について説明する。まず、図6を参照して、情報処理システム10の全体的な動作の流れについて説明する。
 まず、ステップS100で制御装置20が、処理対象のデータのサイズ及び処理内容(処理の種類)を計画装置40に出力する。なお、本実施形態に係る情報処理システム10では、制御装置20は、処理を行う処理装置30のGPU32の種類を特定するための情報も計画装置40に出力する。
 計画装置40に処理対象のデータのサイズ、処理内容、及びGPU32の種類を特定するための情報が入力されると、次のステップS102で計画装置40が、詳細を後述する分割サイズ計算処理を実行して、最適な分割サイズを演算によって決定する。
 次のステップS104で計画装置40が、決定した分割サイズを制御装置20に出力する。
 次のステップS106で制御装置20が、計画装置40から入力された分割サイズに基づいて処理対象のデータを分割し、これによって得られた分割データ毎に、分割データ及び制御コマンドを処理装置30へ順次送信する。ここで、制御装置20が処理対象のデータを分割する方法は特に限定されず、処理内容や、処理対象のデータの種類等に応じた方法で分割すればよい。例えば、処理対象のデータが2次元のラスター形式の画像の画像データである場合、一例として図7に示すように、矩形状で、かつ面積が等しい複数(図7では、4×4=16個)の領域の画像データに分割してもよい。なお、処理対象のデータの分割方法はこれに限定されない。例えば、所定の一方向に並んだ矩形状かつ同一面積の画像の画像データに処理対象のデータを分割してもよい。
 次のステップS108で処理装置30が、制御装置20から順次受信した分割データに対して、対応する制御コマンドに応じた処理を行い、これによって得られた処理済データを制御装置20に順次送信して、情報処理システム10における一連の動作が終了する。
 なお、本実施形態の情報処理システム10では、処理装置30における分割データに対する処理と、処理装置30から制御装置20への処理済データの転送と、が並列に行われる。
 図8には、処理対象のデータを分割して転送する場合における、分割データの転送期間と、分割データに対する処理の実行期間と、処理済データの転送期間とのタイミングチャートの一例が示されている。なお、図8に示した例では、処理対象のデータを5つに分割して得られた分割データD1~D5について分割データの転送、処理の実行、及び処理済データの転送を順次行う場合を示している。
 図8に示したように、本実施形態の情報処理システム10では、例えば、制御装置20から処理装置30への分割データD3の転送と、処理装置30における分割データD2に対する処理と、処理装置30から制御装置20への処理済データD1(分割データD1を処理した処理済データ)の転送と、が並列に行われる。
 次に、図9を参照して、上記情報処理システム10の全体的な動作のステップS102の処理で計画装置40により実行される分割サイズ計算処理について説明する。
 図9のステップS200で計算部44は、処理対象のデータ全体に対するデータ転送予測時間Ttx及びデータ処理予測時間Tpxを算出する。具体的には、計算部44は、GPU32を特定する情報に応じた、設定情報記憶部42に記憶されている設定情報43を参照し、処理内容に応じた、データ転送時間Tt及び処理時間Tpを読み出す。そして、読み出したデータ転送時間Tt及び処理時間Tpと、処理対象のデータのサイズとに基づいてデータ転送予測時間Ttx及びデータ処理予測時間Tpxを算出する。
 一例として、処理対象のデータを分割しないで処理装置30にデータを転送して処理装置30で処理する場合、図10に示すように、制御装置20における処理対象のデータDの転送開始から、処理装置30における処理対象のデータDに対する処理を完了するまでの全体的な処理時間は、データ転送予測時間Ttxと、定数時間Toと、データ処理予測時間Tpxとを加算(Ttx+To+Tpx)した時間となる。なお、処理対象のデータの全体的な処理時間は、厳密には、制御装置20における処理対象のデータDの転送開始から、処理対象のデータDを処理装置30が処理し、これによって得られた処理済データの制御装置20への転送が完了するまでの間である。しかしながら、処理済データの転送は、制御装置20から処理装置30への分割データの転送及び処理装置30における分割データに対する処理と並列に行わなくてもよい。そのため、本実施形態に係る情報処理システム10では、処理が繁雑になるのを避けるため、処理対象のデータの処理装置30への転送開始から処理装置30における処理が完了するまでの期間を全体的な処理時間とみなして分割サイズの計算を行っている。同様に、分割データを処理装置30が処理する場合においても、本実施形態の情報処理システム10では、処理対象のデータの処理装置30への転送開始から処理装置30における処理が完了するまでの期間を全体的な処理時間とみなしてしている。
 次のステップS202で、計算部44はデータ処理予測時間Tpxがデータ転送予測時間Ttxよりも長い(Ttx<Tpx)か否かを判定する。ここで否定判定となった場合(データ転送予測時間Ttxがデータ処理予測時間Tpx以上、すなわち、Ttx≧Tpxの場合)は、ステップS204へ進む。
 なお、図8に示した例は、データ転送予測時間Ttxがデータ処理予測時間Tpx以上となる場合である。図8に示した例の場合、制御装置20における最初の分割データD1の転送開始から、処理装置30における最後の分割データD5の処理を完了するまでの全体的な処理時間は、分割数をn(図8に示す例ではn=5)とすると、次の(1)式で表される。
Figure JPOXMLDOC01-appb-M000001

 相加相乗平均に基づくと、(1)式から、最適な分割数nは次の(2)式により得られる。(2)式によれば、制御装置20から処理装置30への分割データの転送時間と分割データを処理装置30で処理する処理時間とがより等しくなる。
Figure JPOXMLDOC01-appb-M000002

 そのため、ステップS204で、計算部44は(2)式を用いて、分割数nを算出した後、ステップS208へ移行する。
 一方、データ処理予測時間Tpxがデータ転送予測時間Ttxよりも長い(Ttx<Tpx)場合は、ステップS202において肯定判定となりステップS206へ進む。
 図11に示す一例は、データ処理予測時間Tpxがデータ転送予測時間Ttxよりも長い場合である。図11に示した場合では、制御装置20における最初の分割データ(D1)の転送開始から、処理装置30における最後の分割データ(D5)の処理を完了するまでの全体的な処理時間は、分割数をn(図11ではn=5)とすると、次の(3)式となる。
Figure JPOXMLDOC01-appb-M000003

 相加相乗平均に基づくと、(3)式から、最適な分割数nは次の(4)式により得られる。(4)式によれば、制御装置20から処理装置30への分割データの転送時間と分割データを処理装置30で処理する処理時間とがより等しくなる。
Figure JPOXMLDOC01-appb-M000004

 そのため、ステップS206で、計算部44は(4)式を用いて、分割数nを算出した後、ステップS208へ移行する。
 ステップS208で、計算部44は分割サイズを計算する。具体的には、処理対象データのデータ量を分割サイズで除することにより、分割サイズを計算する。なお、計算結果が割り切れない場合は、四捨五入、切り上げ、及び切り捨て等の所定の方法により計算結果を丸めて、整数の値とすればよい。
 次のステップS210で計算部44は、算出した分割サイズが最小分割サイズmin未満であるか否かを判定する。分割サイズが最小分割サイズmin以上である場合は否定判定となり、ステップS214へ移行する。
 一方、分割サイズが最小分割サイズmin未満の場合は肯定判定となり、ステップS212へ移行する。ステップS212では、分割サイズを、算出した分割サイズから最小分割サイズminに変更した後、ステップS214へ移行する。このように、分割サイズが最小分割サイズmin未満の場合は、分割サイズを最小分割サイズminとすることにより、処理装置30のGPU32が高速な並列処理機能を十分に発揮できるため、全体的な処理時間を効果的に短縮することができる。
 ステップS214で出力部46は、以上の処理によって得られた分割サイズを制御装置20に出力した後、本分割サイズ計算処理を終了する。
 上述したように、制御装置20は、情報処理システム10の全体的な動作(図6参照)のステップS106の処理で、計画装置40から入力された分割サイズに基づいて処理対象のデータを分割して、分割データ及び制御コマンドを処理装置30に出力する。
[第2実施形態]
 次に、第2実施形態について説明する。なお、第1実施形態に係る情報処理システム10と同様の部分については同一符号を付して、詳細な説明を省略する。
 まず、本実施形態の情報処理システムについて説明する。図12に示すように、本実施形態の情報処理システム10は、処理装置30、30、及び30を備えており、それぞれ制御装置20に接続されている点で第1実施形態の情報処理システム10(図1参照)と異なっている。処理装置30、30、及び30は、それぞれ異なる種類のGPU32、32、及び32を各々備えると共に、ビデオメモリ34を各々備えている。なお、以下では、処理装置30、30、及び30を特に区別して説明する必要がない場合は、「処理装置30」と総称する。同様にGPU32、32、及び32を特に区別して説明する必要がない場合は、「GPU32」と総称する。また、情報処理システム10が備え得る処理装置30の数は3に限らない。
 また、制御装置20及び計画装置40の構成は、第1実施形態の計画装置40と同様であるが、計画装置40の設定情報記憶部42には、情報処理システム10が備える全ての処理装置30のGPU32に関する設定情報43が記憶されている。
 次に、本実施形態の情報処理システム10の作用について説明する。情報処理システム10の全体的な動作の流れには第1実施形態(図6参照)と同様であるため、ここでの説明は省略する。本実施形態では、計画装置40で行われる分割サイズ計算処理の一部が第1実施形態とは異なるため、図13を参照して、異なる処理について説明する。
 図13に示すように本実施形態の分割サイズ計算処理は、ステップS214の前にステップS213A~S213Cの処理が第1実施形態の分割サイズ計算処理に対して追加されている。
 ステップS213Aで、計算部44は全体的な処理時間を計算する。ここで、データ転送予測時間Ttxがデータ処理予測時間Tpx以上である場合、すなわち、Ttx≧Tpxの場合は、上記(1)式を用いて全体的な処理時間を計算する。また、データ転送予測時間Ttxがデータ処理予測時間Tpx以上である場合、すなわち、Ttx<Tpxの場合は、上記(3)式を用いて全体的な処理時間を計算する。
 次のステップS213Bで、計算部44は全体的な処理時間が未計算の処理装置30が有るか否かを判定する。全体的な処理時間が未計算の処理装置30が有る場合は肯定判定となり、ステップS200に戻って本分割サイズ計算処理を繰り返す。
 一方、全体的な処理時間が未計算の処理装置30が無い場合は否定判定となり、ステップS213Cに移行する。
 ステップS213Cで計算部44は、全体的な処理時間が最短の処理装置30を選出した後、ステップS214へ移行する。
 このように本実施形態の情報処理システム10では、処理装置30を複数備えており、計算部44が全体の処理速度が最短の処理装置30を選出し、選出された処理装置30のGPU32が制御装置20のCPU22の代わりに処理を行うため、全体的な処理時間をより効果的に短縮することができる。
 以上説明したように上記各実施形態の情報処理システム10は、処理対象のデータ及び処理対象のデータに対する処理内容を記述した制御コマンドを転送する制御装置20と、制御装置20の外部に設けられ、制御装置20から制御コマンドが転送されると、入力されたデータに対して制御コマンドに応じた処理を行う処理装置30と、処理対象のデータを分割した分割データを制御装置20から処理装置30へ転送する転送時間と、分割データを処理装置30で処理する処理時間との差が予め定められた範囲内となる処理対象のデータの分割サイズを、処理対象のデータの量、転送時間及び処理時間に基づいて決定する計画装置40と、を備える。そして、情報処理システム10の制御装置20は、計画装置40により決定された分割サイズに従って処理対象のデータを分割して得られた分割データを処理装置30に転送し、処理装置30は、制御装置20から制御コマンドが転送された場合、制御装置20から処理装置30への分割データの転送と並行して、前回転送された分割データに対して、対応する制御コマンドに応じた処理を行う。
 従って、上記各実施形態の情報処理システム10では、処理を制御装置20の外部の処理装置30で実行する場合に必要とされる全体的な時間を効果的に短縮することができる。
 なお、上記各実施形態では、制御装置20がCPU22を備え、処理装置30がGPU32を備える場合について説明したが、一例として図14に示すように、制御装置20としてCPU22そのものを適用してもよいし、処理装置30としてGPU32そのものを適用してもよい。また、GPU32は、いわゆるディスクリートなデバイスであればよく、DSPや、CPU、及びXeon Phi(登録商標)等であってもよい。
 また、上記各実施形態では、(2)式及び(4)式により、最適な分割数nを算出し、分割数nに基づいて最適な分割サイズを決定していたが、分割サイズの決定方法は、(2)式及び(4)式に限定されるものではない。分割データを制御装置20から処理装置30へ転送する転送時間と、分割データを処理装置30で処理する処理時間との差が予め定められた範囲内となればよく、その決定方法は特に限定されるものではない。
 また、情報処理システム10が複数の処理装置30を備えており、処理対象のデータが複数有る(例えば、複数ページ分の画像データ)場合は、処理対象のデータ毎に異なる処理装置30で、並列して処理を実行させるようにしてもよい。
 また、情報処理システム10が複数の処理装置30を備えており、1つの処理対象のデータ(分割データ)に対して、連続して種類が異なる処理を行う場合は、順次、異なる処理装置30で異なる処理を行わせるようにしてもよい。この場合、計画装置40は、異なる処理を行う処理装置30のうち、処理時間が長く係る処理装置30に基づいて、分割サイズを決定することが好ましい。
 また、上記各実施形態では、処理装置30のGPU32が制御装置20のCPU22と非同期に処理を行う場合について説明したが、CPU22と同期して処理を行ってもよい。
 また、上記各実施形態では、分割サイズを決定する場合に、転送時間については、制御装置20から処理装置30への転送速度に基づいているが、処理装置30から制御装置20への転送速度(処理済データを転送する速度)の方が、制御装置20から処理装置30への転送速度よりも遅い場合は、処理済データを転送する速度に基づいて分割サイズを決定してもよい。なお、この場合、設定情報記憶部42に記憶しておく設定情報43のデータ転送速度Ttを処理済データを処理装置30から制御装置20に転送する転送速度としておいてもよい。
 また、処理装置30から制御装置20へ送信する処理済データのデータ量が、分割データに比べて少なくなる場合、例えば、処理装置30において画像データの圧縮処理を行う場合、より具体的には、データ量を4分の1に圧縮する場合には、圧縮された画像データの処理装置30から制御装置20への送信回数を1/4回(4分の1回)にして4回分をまとめて制御装置20へ送信することにより最適化を行ってもよい。
 その他、上記各実施形態で説明した情報処理システム10、制御装置20、処理装置30、及び計画装置40等の構成及び動作等は一例であり、本開示の主旨を逸脱しない範囲内において適宜変更可能である。
 なお、本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。

Claims (11)

  1.  処理対象のデータ及び前記データに対する処理内容を記述した制御コマンドを転送する制御装置と、
     前記制御装置の外部に設けられ、前記制御装置から前記制御コマンドが転送されると、前記データに対して前記制御コマンドに応じた処理を行う処理装置と、
     前記データを分割した分割データを前記制御装置から前記処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となる前記データの分割サイズを、前記データの量、前記転送時間及び前記処理時間に基づいて決定する計画装置と、
     を備え、
     前記制御装置は、前記計画装置により決定された分割サイズに従って前記データを分割して得られた分割データを前記処理装置に順次転送し、
     前記処理装置は、前記制御装置から前記制御コマンドが転送された場合、前記制御装置から前記処理装置への前記分割データの転送と並列で、前回転送された前記分割データに対して、対応する前記制御コマンドに応じた処理を行う、
     情報処理システム。
  2.  前記転送時間及び前記処理時間が予め定められた前記処理装置を複数備え、
     前記計画装置は、前記処理装置の各々毎に、前記分割サイズを決定し、決定した前記分割サイズに基づいて前記制御装置から前記処理装置へ前記分割データの転送を開始してから、前記処理装置から前記制御装置へ前記分割データを処理して得られた全てのデータの転送を終了するまでの処理完了時間を算出し、前記処理完了時間が最短の前記処理装置を前記制御装置による前記分割データの転送先として決定する、
     請求項1に記載の情報処理システム。
  3.  前記計画装置は、決定した分割サイズが予め定められた最小値未満の場合は、前記分割サイズを前記最小値に決定する、
    請求項1に記載の情報処理システム。
  4.  前記計画装置は、前記処理装置の各々毎に、決定した分割サイズが予め定められた最小値未満の場合は、前記分割サイズを前記最小値に決定する、
    請求項2に記載の情報処理システム。
  5.  前記処理装置は、前記処理によって得られた処理済データを前記制御装置に転送し、
     前記計画装置は、前記処理装置から前記制御装置への前記処理済データの転送時間の方が、前記分割データを前記制御装置から前記処理装置に転送する転送時間より長い場合は、前記処理済データの転送時間と、前記処理時間との差が予め定められた範囲内となる前記データの分割サイズを決定する、
    請求項1から請求項4のいずれか1項に記載の情報処理システム。
  6.  前記制御装置はCPU(Central Processing Unit)であり、前記処理装置はGPU(Graphics Processing Unit)である、
     請求項1から請求項5のいずれか1項に記載の情報処理システム。
  7.  前記分割データは、DMA(Direct Memory Access)により前記制御装置から前記処理装置に転送される、
     請求項1から請求項6のいずれか1項に記載の情報処理システム。
  8.  前記計画装置は、前記制御装置に含まれる、
     請求項1から請求項7のいずれか1項に記載の情報処理システム。
  9.  計画装置が、処理対象のデータを分割した分割データを制御装置から前記制御装置の外部に設けられた処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となる前記データの分割サイズを、前記データの量、前記転送時間及び前記処理時間に基づいて決定し、
     前記制御装置が、前記計画装置により決定された分割サイズに従って前記データを分割して得られた分割データと、前記データに対する処理内容を記述した制御コマンドと、を前記処理装置に順次転送し、
     前記処理装置が、前記制御装置から前記制御コマンドが転送された場合、前記制御装置から前記処理装置への前記分割データの転送と並列で、前回転送された前記分割データに対して、対応する前記制御コマンドに応じた処理を行う
     ことを含む情報処理方法。
  10.  コンピュータを、請求項1から請求項8のいずれか1項記載の情報処理システムの計画装置として機能させるための情報処理プログラム。
  11.  コンピュータに情報処理を実行させるプログラムを記憶したコンピュータ可読持続性記憶媒体であって、前記情報処理が、
     制御装置から、処理対象のデータの量と、前記データに対する処理内容と、を受信し、
     前記データの量を前記制御装置から前記制御装置の外部に設けられた処理装置へ転送する転送時間と、前記データの量に対して前記処理内容を実行する処理時間と、に基づいて、前記データを分割した分割データの分割サイズを決定し、前記分割サイズが、前記分割データを前記制御装置から前記処理装置へ転送する転送時間と、前記分割データを前記処理装置で処理する処理時間との差が予め定められた範囲内となるサイズであり、
     前記分割サイズを、前記制御装置に出力すること、
     を含む、記憶媒体。
PCT/JP2016/074155 2015-09-10 2016-08-18 情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体 Ceased WO2017043284A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017539092A JP6675408B2 (ja) 2015-09-10 2016-08-18 情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体
CN201680051763.6A CN107949838B (zh) 2015-09-10 2016-08-18 信息处理系统、信息处理方法及存储介质
US15/903,039 US10191776B2 (en) 2015-09-10 2018-02-23 Information processing system, information processing method, information processing program, and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015178715 2015-09-10
JP2015-178715 2015-09-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/903,039 Continuation US10191776B2 (en) 2015-09-10 2018-02-23 Information processing system, information processing method, information processing program, and storage medium

Publications (1)

Publication Number Publication Date
WO2017043284A1 true WO2017043284A1 (ja) 2017-03-16

Family

ID=58239393

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/074155 Ceased WO2017043284A1 (ja) 2015-09-10 2016-08-18 情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体

Country Status (4)

Country Link
US (1) US10191776B2 (ja)
JP (1) JP6675408B2 (ja)
CN (1) CN107949838B (ja)
WO (1) WO2017043284A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021009901A1 (ja) * 2019-07-18 2021-01-21 技術研究組合光電子融合基盤技術研究所 並列計算方法およびシステム
JP2022124176A (ja) * 2021-02-15 2022-08-25 富士通株式会社 ストレージシステム,ストレージ装置及びコンパクション処理方法
CN116955960A (zh) * 2023-08-24 2023-10-27 徐辉设计股份有限公司 基于bim建模的能耗分析方法、系统及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010073210A (ja) * 2008-09-17 2010-04-02 Toshiba Corp 画像処理装置
JP2010244096A (ja) * 2009-04-01 2010-10-28 Seiko Epson Corp データ処理装置、印刷システムおよびプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553476B1 (en) * 1997-02-10 2003-04-22 Matsushita Electric Industrial Co., Ltd. Storage management based on predicted I/O execution times
JP3689699B2 (ja) * 2003-02-12 2005-08-31 キヤノン株式会社 情報処理装置および印刷処理方法ならびにプログラム、記憶媒体
CN100473068C (zh) * 2003-06-02 2009-03-25 中兴通讯股份有限公司 一种基于docsis协议的下行mpeg-2格式数据传输方法
JP2011170669A (ja) * 2010-02-19 2011-09-01 Oki Semiconductor Co Ltd メモリ書き込みシステム及び方法
US8699753B2 (en) * 2010-11-30 2014-04-15 Panasonic Corporation Object detecting device, image dividing device, integrated circuit, method of detecting object, object detecting program, and recording medium
JP2013175074A (ja) * 2012-02-27 2013-09-05 Olympus Corp 複数処理実行方法
JP5651622B2 (ja) * 2012-03-07 2015-01-14 株式会社東芝 データ伝送装置、データ伝送方法、及びプログラム
JP5613710B2 (ja) * 2012-03-21 2014-10-29 株式会社東芝 サーバ端末、画面転送システムおよび画面転送方法
JP5645031B2 (ja) * 2012-11-21 2014-12-24 独立行政法人情報通信研究機構 データ送受信方法
CN103473188B (zh) * 2013-09-12 2017-04-26 华为技术有限公司 Dsp处理器与外部存储器的数据交互方法、装置及系统
US9733978B2 (en) * 2015-08-27 2017-08-15 Qualcomm Incorporated Data management for multiple processing units using data transfer costs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010073210A (ja) * 2008-09-17 2010-04-02 Toshiba Corp 画像処理装置
JP2010244096A (ja) * 2009-04-01 2010-10-28 Seiko Epson Corp データ処理装置、印刷システムおよびプログラム

Also Published As

Publication number Publication date
JPWO2017043284A1 (ja) 2018-06-28
CN107949838A (zh) 2018-04-20
US10191776B2 (en) 2019-01-29
JP6675408B2 (ja) 2020-04-01
CN107949838B (zh) 2021-02-19
US20180181444A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
CN108229645B (zh) 卷积加速和计算处理方法、装置、电子设备及存储介质
KR101687081B1 (ko) 단채널 컨볼루션 레이어를 위한 처리 방법 및 장치, 및 다채널 컨볼루션 레이어를 위한 처리 방법 및 장치
KR102667790B1 (ko) 뉴럴 네트워크 회로, 에지 디바이스 및 뉴럴 네트워크 연산 방법
US11411575B2 (en) Irreversible compression of neural network output
US20160352952A1 (en) Data processing apparatus, data processing method, and storage medium
JP6675408B2 (ja) 情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体
WO2017163441A1 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
US8705880B2 (en) Image compression device, image expansion device, and image processing apparatus
US11539955B2 (en) Method and system for improving compression ratio through pixel conversion of image file
US9600747B2 (en) Image forming apparatus and control method that execute a plurality of rendering processing units in parallel
US9172839B2 (en) Image forming apparatus, control method and storage medium
US8554003B2 (en) Image data processing apparatus, image data processing method, and computer readable medium
US10325189B2 (en) Image processing apparatus and image processing method that perform, in units of band areas, rasterization based on second intermediate data stored in a first memory area and compressed raster data stored in a second memory area
US10089561B2 (en) Generating a raster image region by rendering in parallel plural regions of smaller height and segmenting the generated raster image region into plural regions of smaller width
US6809422B2 (en) One-chip image processing apparatus
US8744181B2 (en) Image processing apparatus and computer readable medium
JP2008205636A (ja) 画像処理装置、画像処理装置の画像処理方法、及びプログラム
KR20150086758A (ko) 그래픽 처리 장치 및 방법
US10555009B2 (en) Encoding device, encoding method, decoding device, decoding method, and generation method
CN112189216A (zh) 数据处理方法及设备
JP2017194932A (ja) 画像処理装置、画像処理方法、及びプログラム
US9646403B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
US20210335018A1 (en) Data generating device, training device, and data generating method
EP3116225A1 (en) Method for supporting color conversion on pre-multiplied data
US20250285282A1 (en) Program, image processing method, and image processing device

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: 16844147

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017539092

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16844147

Country of ref document: EP

Kind code of ref document: A1