Grid Computing System

The grid computing system optimizes hardware configuration based on vehicle state, enhancing efficiency by adapting to different application jobs and avoiding redundant resources during driving.

JP7797820B2Active Publication Date: 2026-01-14MAZDA MOTOR CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021167204
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-10-12
Publication Date
2026-01-14
Estimated Expiration
2041-10-12

AI Technical Summary

Technical Problem

Existing grid computing systems fail to optimize hardware configuration for vehicle driving and non-vehicle driving information processing, leading to inefficient resource utilization.

Method used

A grid computing system with a master device and on-board computing device that dynamically reconfigures hardware based on the vehicle's operating state, using programmable hardware to adapt to different application jobs.

Benefits of technology

Improves calculation efficiency by using optimal hardware configurations for both vehicle driving and application jobs, avoiding redundant resources during vehicle operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007797820000001
    Figure 0007797820000001
  • Figure 0007797820000002
    Figure 0007797820000002
  • Figure 0007797820000003
    Figure 0007797820000003
Patent Text Reader

Abstract

To make a hardware configuration of a main arithmetic device of a vehicle optimum according to a requested application job in grid computing.SOLUTION: A grid computing system includes: a master device which manages grid computing; and an on-vehicle arithmetic device which is configured so as to be able to participate in the grid computing while a vehicle does not operate. In the on-vehicle arithmetic device, while the vehicle 10 operates, a circuit based on running config information is configurated as a reconstruction circuit 125 and running control processing of the vehicle is executed. While the vehicle 10 does not operate, a circuit based on arithmetic config information is configurated as the reconstruction circuit 125 and an application job is executed.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The technology disclosed herein belongs to the technical field of grid computing systems. [Background technology]

[0002] Patent Document 1 discloses an on-board computing device configured to be capable of processing vehicle driving information to assist vehicle driving while the vehicle is driving, and to be capable of processing non-vehicle driving information other than vehicle driving information while the vehicle is not driving. The on-board computing device of Patent Document 1 is configured to switch the reconfigurable circuit to a circuit appropriate for vehicle driving information processing when the detection means detects that the vehicle is driving, and to switch the reconfigurable circuit to a circuit appropriate for non-vehicle driving information processing when the detection means detects that the vehicle is not driving. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 6421403 Summary of the Invention [Problem to be solved by the invention]

[0004] However, there are a wide variety of application jobs that are the subject of computation in grid computing. The optimal hardware configuration may differ depending on the application job. Therefore, simply switching the reconfigurable circuit from a vehicle driving information processing circuit to a non-vehicle driving information processing circuit when the vehicle is not driving, as in Patent Document 1, is not sufficient, and there is room for improvement.

[0005] The technology disclosed herein has been developed in consideration of these points, and aims to optimize the hardware configuration of the vehicle's main processing unit to suit the requested application job when performing grid computing. [Means for solving the problem]

[0006] In order to solve the above problem, a first aspect of the present disclosure is directed to a grid computing system including a master device that manages grid computing and an on-board computing device that is configured to be able to participate in the grid computing when a vehicle is not in operation, wherein the on-board computing device includes a communication unit that communicates with the master device, a motion detector that detects the operating state of the vehicle, a reconfiguration circuit that is configured to allow programmable hardware reconfiguration, a control circuit that controls the hardware reconfiguration of the reconfiguration circuit based on the operating state of the vehicle detected by the motion detector, and a memory unit that stores driving configuration information that is configuration information of the hardware configuration for vehicle driving control, the master device transmits to the vehicle job data of an application job to be executed and calculation configuration information that is configuration information of the hardware configuration for the application job, and the on-board computing device configures the reconfiguration circuit based on the driving configuration information and executes vehicle driving control processing using the reconfiguration circuit when the vehicle is in operation, and configures the reconfiguration circuit based on the calculation configuration information received from the master device and executes the application job using the reconfiguration circuit when the vehicle is not in operation.

[0007] According to the above aspect, calculations can be performed using circuits with an optimal configuration for executing the application job to be executed. This allows the vehicle to improve the calculation efficiency for the requested job. Furthermore, when the vehicle is driving, the on-board calculation device uses a hardware configuration based on the driving configuration information stored in the storage unit in the vehicle, thereby avoiding redundant calculation resources. [Effects of the Invention]

[0008] As described above, according to the technology disclosed herein, the on-board computing device receives hardware configuration information corresponding to the requested application job from the management server and reconfigures the hardware, thereby improving the computing efficiency for the requested application job. Furthermore, when the vehicle is running, the on-board computing device uses the hardware configuration suitable for driving control stored in the storage unit in the vehicle, thereby avoiding redundant computing resources. [Brief explanation of the drawings]

[0009] [Figure 1] Schematic diagram illustrating the configuration of a grid computing system [Figure 2] Conceptual diagram to explain grid computing [Figure 3] A block diagram illustrating the configuration of a vehicle [Figure 4] Block diagram illustrating a client-server configuration [Figure 5] Block diagram showing an example of the configuration of a management server [Figure 6] FIG. 1 is a block diagram illustrating an example of a connection configuration of a system according to an embodiment. [Figure 7] FIG. 10 is a diagram showing an example of the configuration and calculation flow of a reconfigurable circuit during driving control. [Figure 8] 1 is a flowchart showing an example of the operation of a grid computing system. [Figure 9] 10 is a flowchart showing an example of the operation of a main processing unit of a vehicle. [Figure 10] FIG. 1 is a diagram showing an example of the configuration of a reconfigurable circuit and an example of a calculation flow during job calculation. [Figure 11] FIG. 10 is a diagram showing another example of the configuration of a reconfigurable circuit and a calculation flow during job calculation. [Figure 12] FIG. 10 is a diagram showing another example of the configuration of a reconfigurable circuit and a calculation flow during job calculation. [Figure 13] FIG. 1 is a diagram showing an example of the configuration and operation flow of a reconfiguration circuit; DETAILED DESCRIPTION OF THE INVENTION

[0010] The embodiments will be described in detail with reference to the drawings. In the drawings, the same or equivalent parts will be designated by the same reference numerals, and repeated explanations may be omitted. Furthermore, in the following embodiments, configurations highly relevant to the contents of the present disclosure will be mainly described. Note that the following embodiments are merely illustrative, and there is no intention to limit the contents of the present disclosure by the presence or absence of descriptions or the exemplified numerical values, etc.

[0011] First Embodiment (Grid Computing System) FIG. 1 illustrates an example of the configuration of a grid computing system 1 (hereinafter simply referred to as "system 1") according to an embodiment.

[0012] The system 1 includes a plurality of vehicles 10, a plurality of client terminals 30, and a management server 50. These components can communicate with each other via a communication network 6. Each of the plurality of vehicles 10 is equipped with a main processing unit 105. The management server 50 is an example of a master device. A vehicle is an example of a moving object. The master device may be realized in the cloud.

[0013] [Grid Computing] 2, in the system 1 of the embodiment, a grid computing G (hereinafter also simply referred to as "grid G") is configured by a plurality of main processing units 105. In the system 1, grid computing is executed in which an available main processing unit 105 among the plurality of main processing units 105 executes an application job (hereinafter also simply referred to as "job").

[0014] When the vehicle 10 is running, the computing power of the main computing device 105 is required to control the running of the vehicle 10, and the main computing device 105 is in an operating state. On the other hand, for example, when the vehicle 10 is stopped and the power of the vehicle 10 is turned off, the computing power of the main computing device 105 for controlling the running of the vehicle is substantially unnecessary. Therefore, the vehicle 10 is in an inoperating state, and the above-mentioned grid computing process is executed while the vehicle 10 is not in operation (for example, while the vehicle is stopped). The method for determining whether the vehicle is in operation or not is not particularly limited, but for example, a method can be used in which the vehicle is determined to be in an operating state when the ignition is on and determined to be in an inoperating state when the ignition is off.

[0015] 〔vehicle〕 A battery (not shown) is mounted on the vehicle 10. Power from the battery is supplied to on-board devices such as the main processing unit 105. Examples of such vehicles 10 include electric vehicles and plug-in hybrid vehicles.

[0016] As shown in FIG. 3, the vehicle 10 includes a communication unit 101, a storage unit 103, and a main processing unit (MPU: Micro-Processing Unit) 105.

[0017] -Communications Department- The communication unit 101 transmits and receives information and data to and from the management server 50. Specifically, the communication unit 101 receives job data D1 of an application job and computation configuration information, which is hardware configuration information (hereinafter simply referred to as "configuration information") used when executing the job data, from the management server 50. The information and data received by the communication unit 101 are sent to a control circuit 123 of the main processing unit 105, which will be described later.

[0018] -Storage Department- The storage unit 103 stores information and data. The specific configuration of the storage unit 103 is not particularly limited. For example, the storage unit 103 may be realized by a memory built into a chip, a hard disk drive (HDD), a solid state drive (SSD), or an optical disc such as a DVD or BD.

[0019] In this example, the storage unit 103 stores vehicle information D10. The vehicle information D10 includes basic vehicle information D11, vehicle state information D13, and operation information D15.

[0020] <Vehicle basic information> The vehicle basic information D11 includes vehicle identification information and resource information.

[0021] The vehicle identification information includes information for identifying the vehicle, such as a VIN, and user identification information for identifying the owner of the vehicle 10.

[0022] The resource information is information about the computational resources (CPU, GPU, etc.) described below. The resource information includes, for example, a computational resource ID assigned to each computational resource and performance information indicating the performance of each computational resource. The performance of a computational resource includes a computational capacity indicating the computational capability of the computational resource (specifically, the maximum computational capability), the ratio of CPUs to GPUs in the computational resource, etc. The computational capacity of a computational resource is, for example, the amount of data that each computational resource can compute per unit time.

[0023] <Vehicle status information> The vehicle state information D13 is information indicating the state of the vehicle 10, and includes, for example, vehicle position information, driving history information, vehicle communication information, vehicle power source information, and the like.

[0024] The vehicle position information indicates the position (latitude and longitude) of the vehicle 10. For example, the vehicle position information can be acquired by a GPS (Global Positioning System).

[0025] The driving history information is, for example, information indicating vehicle driving information detected by the driving detector 121 (described later) in association with time, or information indicating the vehicle position information in association with time. In addition to the driving history information, driving schedule information indicating future driving schedules of the vehicle 10 may be included.

[0026] The vehicle communication information includes information indicating the communication state between the vehicle 10 and the communication network 6, and information on the communication bandwidth between the vehicle 10 and the management server 50. The vehicle communication information is updated, for example, at predetermined time intervals.

[0027] The vehicle power source information includes information indicating the power source state of the vehicle 10, vehicle battery remaining amount information, vehicle charging information, etc. For example, the vehicle power source information indicates whether the ignition power is on / off, whether the accessory power is on / off, etc. The vehicle battery remaining amount information indicates the remaining amount of a battery (not shown) installed in the vehicle 10. The vehicle charging information indicates whether the vehicle 10 is being charged in a charging facility (not shown).

[0028] <Operation information> The operation information D15 includes, for example, operation history information indicating the operation history of the main processing unit 105 and operation schedule information indicating the operation schedule of the main processing unit 105.

[0029] The operation history information indicates, for example, the utilization rate of the computational resources of the main computing device 105 and / or the amount of job processing performed, in association with time. The operation history information includes a normal operation history and a grid operation history. The normal operation history indicates the history of the operation of the main computing device 105 for user use, such as providing services such as vehicle driving, car navigation, and music playback. The grid operation history indicates the history of the operation of the main computing device 105 to execute grid computing processing.

[0030] The operation schedule information includes, for example, usage schedule information indicating the future usage status of the main processing unit 105.

[0031] -Main processing unit- The main processing unit 105 controls each part of the vehicle 10. In this example, the main processing unit 105 controls each actuator (not shown) in accordance with various information obtained from sensors (not shown). The main processing unit 105 is an example of an on-vehicle processing unit.

[0032] The main processing unit 105 includes a processor, a memory, etc. Examples of the processor include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), etc. The memory stores a program for operating the processor, information and data indicating the processing results of the processor, etc.

[0033] In this disclosure, resources available for grid computing calculations and processing, such as CPUs and GPUs, are referred to as "computational resources." Computational resources include some or all of the CPUs and GPUs installed in the vehicle 10. For example, time periods during which use as a computational resource is permitted and time periods during which use as a computational resource is restricted may be separated. That is, a single CPU may be counted as a computational resource during certain time periods and not counted as a computational resource during other time periods. Furthermore, when a CPU is implemented with a single or multiple cores, some of the multiple cores may be counted as computational resources, and the remaining cores may not be counted as computational resources. The same applies to GPUs. Furthermore, the computational resources may include circuit resources of a reconfigurable circuit, which will be described later.

[0034] 6 illustrates the configurations used to explain this embodiment from among the configurations of the management server 50 and the main processing unit 105 of the vehicle 10. In other words, the management server 50 and the main processing unit 105 of the vehicle 10 may include configurations other than those shown in FIG.

[0035] As shown in FIG. 6, in this example, the main processing unit 105 includes a run detector 121, a control circuit 123, a reconstruction circuit 125, a ROM 127, and a selector 128.

[0036] <Travel detector> The travel detector 121 detects the travel state of the vehicle. Vehicle travel information indicating the travel state of the vehicle 10 detected by the travel detector 121 is output to the control circuit 123. The vehicle travel information indicates whether the vehicle 10 is traveling (traveling state) or not traveling (non-traveling state).

[0037] The method for detecting the running state of vehicle 10 is not particularly limited. For example, a sensor attached to vehicle 10, such as a vehicle speed sensor (not shown) or an accelerator opening sensor (not shown), may be used to detect whether the vehicle is running or not. Alternatively, for example, an in-vehicle camera (not shown) or the like may be used to determine whether a driver is in the driver's seat. Alternatively, for example, the running / not running state of the vehicle may be detected by the on / off state of an ignition switch, or the running / not running state may be detected using location information such as GPS. Alternatively, the above methods may be combined.

[0038] Furthermore, the traveling state of the vehicle 10 may include a state in which the vehicle 10 is preparing to travel (a state in which the vehicle 10 is highly likely to travel thereafter) in addition to a state in which the vehicle 10 is actually traveling. For example, the vehicle 10 may be detected as being in a state in which the vehicle 10 is highly likely to travel when the ignition switch is turned on and the driver touches the steering wheel. Then, information indicating a state in which the vehicle 10 is highly likely to travel may be included in the vehicle traveling information.

[0039] Control circuit The control circuit 123 exchanges information and data with the control unit 505 of the management server 50 via the communication unit 101 and the communication unit 501. The control circuit 123 controls the reconfiguration of the hardware configuration of the reconfiguration circuit 125 based on the running state of the vehicle detected by the running detector 121.

[0040] The control circuit 123 includes a storage unit 124 as an internal memory for temporarily storing the job data D1 and temporarily saving the processing results.

[0041] Specifically, in this example, the control circuit 123 performs the following processes and controls: (1) transmits the vehicle 10 driving information and resource information received from the driving detector 121 to a configuration data selector 521 of the control unit 505, which will be described later; (2) switches the selector 128 based on the driving state of the vehicle 10 detected by the driving detector 121; (3) receives information indicating the details of a job calculation request including job data D1, and causes the reconfiguration circuit 125 to execute a calculation using the job data D1 based on the information; (4) stores the calculation results of the reconfiguration circuit 125 in the memory unit 124; and (5) transmits the calculation results of the memory unit 124 to the management server 50. The operation flow of the control circuit 123 will be described later.

[0042] <Reconfiguration circuit> The reconfigurable circuit 125 is a circuit configured to allow programmable hardware reconfiguration. Specifically, the reconfigurable circuit 125 is a programmable hardware device that incorporates a wide variety of fine-grained arithmetic elements and one or more memories, and can switch the internal connections between them. Examples of the reconfigurable circuit 125 include an FPGA (Field Programmable Gate Array) and a DRP (Dynamically Reconfigurable Processor). In this disclosure, the term "arithmetic element" refers to a combinational circuit that performs multiply-accumulate operations.

[0043] As described above, the reconfiguration circuit 125, under the control of the control circuit 123, applies a hardware configuration appropriate for controlling the running of the vehicle 10 and for job calculation to execute a job of the grid G ​​(hereinafter simply referred to as "job calculation"). Furthermore, in the present disclosure, when job data D1 is transmitted from the management server 50 to the vehicle 10, calculation configuration information D3 appropriate for the calculation of that job is also transmitted. Then, when the job is calculated, the hardware of the reconfiguration circuit 125 is reconfigured based on the calculation configuration information D3.

[0044] For example, in order to reduce the calculation load when controlling the driving of the vehicle 10, it is expected that the calculation elements will have a lower bit count. By using a lower bit count calculation element, it becomes possible to achieve high-precision calculations with high throughput required for driving control of the vehicle 10. On the other hand, in order to increase the calculation precision when performing job calculations, for example, it is possible to make the calculation elements capable of handling multiple bits.

[0045] Here, as described above, when handling a wide variety of job operations during job operation, the optimum hardware configuration may vary significantly for each job (see FIGS. 9 to 12). Therefore, as described above, the hardware of the reconfigurable circuit 125 is reconfigured based on the operation configuration information D3 received each time from the management server 50. Specific configuration examples of the reconfigurable circuit 125 will be described later.

[0046] <ROM> ROM 127 stores driving configuration information, which is configuration information of the hardware configuration for vehicle driving control. The driving configuration information is information that is stored in advance in vehicle 10, and is stored in ROM 127, for example, during the manufacturing process of vehicle 10. The driving configuration information includes connection information for specifying the connection method between each of a plurality of arithmetic elements and a plurality of internal memories. The connection information of the driving configuration information also includes information for configuring a bit calculator that performs, for example, a product-sum operation using a plurality of arithmetic elements. Compared to the hardware configuration based on the aforementioned arithmetic configuration information, the driving configuration information is configuration information of a hardware configuration that is more suitable for vehicle driving control.

[0047] Here, a hardware configuration suitable for driving control is, for example, a configuration that prioritizes response speed. More specifically, a configuration in which the same hardware resources are divided into low-bit arithmetic elements and the number of arithmetic elements is increased as much as possible can be exemplified. This can shorten processing time. ROM 127 may be configured to allow the stored driving configuration information to be rewritten, for example, during maintenance of vehicle 10.

[0048] <selector> The selector 128 receives the calculation configuration information D3 received from the control unit 505 of the management server 50 and the driving configuration information stored in the ROM 127. Then, based on the configuration switching signal output from the control circuit 123, the selector 128 selects either the driving configuration information or the calculation configuration information D3 and outputs it to the reconfiguration circuit 125. In other words, the configuration switching signal is a signal that sets whether to select the driving configuration information or the calculation configuration information D3.

[0049] [Client terminal] The client terminal 30 is owned by a client. The client requests the calculation of job data. Examples of such clients include companies, research institutes, and educational institutions.

[0050] As shown in FIG. 4, the client terminal 30 includes a communication unit 301, a storage unit 303, and a control unit 302.

[0051] -Communications Department- The communication unit 301 is connected to the management server 50 so as to be capable of two-way communication, and transmits and receives information and data therebetween. The information and data received by the communication unit 301 are sent to the control unit 302.

[0052] -Control Unit- The control unit 302 controls each unit of the client terminal 30. The control unit 302 has a processor, a memory, etc. The memory stores a program for operating the processor, information and data indicating the processing results of the processor, etc.

[0053] When requesting a job, the control unit 302 retrieves job information D32 of the job to be requested and job data D1 required for the calculation of the job from the storage unit 303, and transmits them to the management server 50 via the communication unit 301. At this time, in addition to the job information D32 and job data D1, client information D31 is also transmitted as necessary.

[0054] -Storage Department- The storage unit 303 stores information and data. In this example, the storage unit 303 stores client information D31 and job data D1.

[0055] <Client Information> The client information D31 is information about the client, and includes a client ID set for the client, a client terminal ID set for the client terminal 30 owned by the client, a person in charge's name, address, telephone number, etc.

[0056] <Job Data> The job data D1 is data corresponding to a job and is processed to execute the job.

[0057] The job data D1 can be classified by operation type. Examples of operation types include CPU-based operation types and GPU-based operation types. Job data D1 of the CPU-based operation type tend to require complex operations with many conditional branches, such as simulation operations. Job data D1 of the GPU-based operation type tend to require a huge amount of simple operations, such as image processing and machine learning.

[0058] Furthermore, the job data D1 can be classified by processing conditions. Examples of processing conditions include processing conditions that require constant communication and processing conditions that do not require constant communication. Job data D1 with processing conditions that require constant communication requires that the main processing device 105 be always available for communication in grid computing processing. Job data D1 with processing conditions that do not require constant communication does not require that the main processing device 105 be always available for communication in grid computing processing.

[0059] <Job Information> Job information D32 relating to the job is stored in association with the job data D1. The job information D32 includes, for example, job name information, job content information, job data operation type, processing conditions, required operation capacity, and job delivery date information.

[0060] [Management Server] The management server 50 manages the operation of grid computing. In other words, the system 1 includes the management server 50. The management server 50 is owned by the operator that operates the system 1.

[0061] As shown in FIG. 5, the management server 50 includes a communication unit 501, a storage unit 503, and a control unit 505.

[0062] -Communications Department- The communication unit 501 is connected to the vehicle 10 and the client terminal 30 so as to be able to perform two-way communication, and transmits and receives information and data therebetween. The information and data received by the communication unit 501 is sent to the control unit 505.

[0063] -Storage Department- The storage unit 503 stores information and data. The specific configuration of the storage unit 503 is not particularly limited. For example, the storage unit 503 may be realized by a memory built into a chip, a hard disk drive (HDD), a solid state drive (SSD), or an optical disc such as a DVD or BD.

[0064] In this example, the storage unit 503 stores various tables and data such as a vehicle information table D51, a job table D53, a matching table D55, job data D1, calculation result data D2, and calculation configuration information D3.

[0065] <Vehicle Information Table> The vehicle information table D51 is a table for managing vehicle information, and stores a list of vehicle information D10 for each vehicle.

[0066] <Job Table> The job table D53 is a table for managing jobs requested by clients. For each job, the job table D53 registers job information D32, such as the reception number set for that job, the client ID set for the client that requested the job, and the name and content of the job. The job table D53 also registers, for each job, the calculation type and processing conditions of the job data corresponding to that job, the required calculation capacity that is the calculation capacity required to calculate the job data, the delivery date set for that job, and the like. In the job table D53, each piece of job data D1 is linked so that it can be determined which client requested the job.

[0067] Matching Table The matching table D55 is a table for managing the results of matching in the matching process. For each job, the matching table D55 registers the reception number set for that job, the job data ID set in the job data D1 corresponding to that job, the vehicle identification information of the vehicle assigned to that job data D1 by the matching process, and the like.

[0068] <Job Data> The job data D1 stored in the storage unit 503 is data of a job accepted from the client terminal 30 in a job acceptance process, which will be described later.

[0069] <Calculation result data> The calculation result data D2 stored in the storage unit 503 is data of the calculation result of a job executed on each target vehicle 10 by grid computing processing, which will be described later.

[0070] <Calculation configuration information> The computation configuration information stored in the storage unit 503 is prepared for each job type (inference model) and indicates the hardware configuration of the reconfiguration circuit 125 applied to each job type. Examples of job types include a learning model type in which computation accuracy is generally prioritized, a serially connected computation processing flow model type aimed at shortening computation processing time, and a parallel connected computation processing flow model type.

[0071] In order to accommodate a wide range of jobs requested by users, it is necessary to be able to execute a variety of inference models. Therefore, the storage unit 503 stores a variety of computation configuration information so that it can accommodate each inference model. Specific examples of hardware configurations according to inference models will be explained later in "Operation of Grid Computing System." Note that one computation configuration information may be configured to accommodate multiple inference models.

[0072] The computation configuration information includes control information for controlling the computation precision of the computation elements and the number of computation elements. Specifically, for example, increasing the bit precision of the computation elements (multiply-accumulate operations) increases the amount of circuit resources used and reduces the number of computation elements that can be implemented, while decreasing the bit precision of the computation elements reduces the amount of circuit resources used and increases the number of computation elements that can be implemented. As a result, the number of computation elements that can be installed in the dynamically reconfigurable circuit resource changes depending on the computation precision.

[0073] The calculation configuration information includes connection information for specifying a connection method between each of the multiple calculation elements and the multiple internal memories. The connection information of the calculation configuration information also includes information for configuring a bit calculator that performs a multiply-and-accumulate operation using the multiple calculation elements. The number of bits of the bit calculator configured based on the calculation configuration information can be made larger than the number of bits of the bit calculator configured based on the driving configuration information because the calculation processing time is longer than when driving, making it possible to reduce the number of calculation elements and thereby suppress calculation parallelism.

[0074] -Control Unit- In this example, the control unit 505 has the function of executing a series of controls and processes related to the operation and management of grid computing. For example, it executes the controls and processes in the flow chart of Fig. 7 described below. Note that in the following explanation, for the sake of convenience, the operations and processes are described with the management server 50 as the main body, but there are cases in which the control unit 505 contributes to the processes and controls.

[0075] The control unit 505 stores information and data received from the client terminal 30 in the storage unit 503. For example, when the control unit 505 receives job data D1 from the client terminal 30, the control unit 505 saves the job data D1 in the storage unit 503. Furthermore, when the control unit 505 receives job information D32 from the client terminal 30, the control unit 505 registers the job information D32 in a job table D53 in the storage unit 503.

[0076] The control unit 505 stores information and data received from each vehicle 10 in the storage unit 503. For example, when the control unit 505 receives vehicle information D10 (including vehicle driving information and resource information) from the vehicle 10, it registers the information in the vehicle information table D51 of the storage unit 503.

[0077] As shown in FIG. 6, in this example, the control unit 505 includes a configuration data selector 521.

[0078] The configuration data selector 521 selects configuration information to be applied to a job requested by a client terminal (hereinafter referred to as a "requested job"). In this example, the configuration data selector 521 selects calculation configuration information D3 based on job information D32 and / or job data D1 of the requested job.

[0079] Here, the computation configuration information includes information such as how to combine fine-grained computation elements and internal memories prepared inside the reconfigurable circuit 125, and wiring information for switching the connections between them.

[0080] Furthermore, the method of registering the calculation configuration information is not particularly limited, but examples include (1) a method of registering calculation configuration information in advance that is in accordance with a configuration suitable for each major job type, and (2) a method in which, when a user (a user of client terminal 30) registers a job, the user himself / herself creates calculation configuration information optimized for the job and registers it together with the job.

[0081] Furthermore, when the configuration data selector 521 receives a notification of a non-driving state as vehicle driving information from a vehicle (hereinafter referred to as "target vehicle 10") that is the target of a job request, the configuration data selector 521 determines a requested job for the target vehicle based on resource information of the target vehicle, etc. Thereafter, the configuration data selector 521 transmits the calculation configuration information optimal for the requested job to the target vehicle 10 together with the job information D32 and job data D1 of the requested job.

[0082] A more specific example of the operation of the configuration data selector 521 will be explained in the section "Operation of the Grid Computing System" below.

[0083] [Grid Computing System Operation] An example of the operation of the system 1 will be described below with reference to the flowcharts of Figures 7 and 8. In this explanation, the system 1 includes a client terminal 30, a management server 50, and a target vehicle 10, and the explanation will focus on the operation of each component and the exchange of information between them.

[0084] Fig. 7 is a flowchart showing the operation of the entire system, and Fig. 8 is a flowchart for the main processing unit 105 of the vehicle 10. In addition, common operations in Fig. 7 and Fig. 8 are denoted by common reference numerals.

[0085] -Step S31 (S311 to S314)- In step S31, if the target vehicle 10 is traveling, the traveling configuration information is applied to the target vehicle 10. Specifically, in step S311 of Fig. 8, the traveling detector 121 of the target vehicle 10 detects that the target vehicle 10 is in a traveling state (operating state).

[0086] In the next step S312, the control circuit 123 outputs a configuration switching signal indicating selection of the driving configuration information to the selector 128. Then, the driving configuration information registered in the ROM 127 is input to the reconfiguration circuit 125. Then, in the reconfiguration circuit 125, a circuit based on the driving configuration information is configured.

[0087] FIG. 9 shows an example of the configuration and calculation flow of the reconfiguration circuit 125 when performing inference calculations using a neural network during driving control of the target vehicle 10.

[0088] For example, when controlling vehicle driving, the reconfiguration circuit 125 is configured with low-bit arithmetic units and has a hardware configuration that maximizes the number of arithmetic units, with a view to prioritizing reduction in power consumption and maximization of throughput. Fig. 9 shows an example in which the reconfiguration circuit 125 is configured with an 8-bit × M PE array when controlling vehicle driving. Here, M is a natural number equal to or greater than 2, for example, M = 32. The number of bits of each low-bit arithmetic unit is not limited to 8 bits, and may be other numbers of bits, or a combination of different numbers of bits.

[0089] In step S313, the main processing unit 105 executes driving control based on the inference calculation in the reconstruction circuit 125. Specifically, input data, position information, and the like from various sensors (not shown), cameras, radars, and the like mounted on the target vehicle 10 are provided to the reconstruction circuit 125, and various actuators arranged at various locations on the target vehicle 10 are controlled based on the inference calculation in the reconstruction circuit 125.

[0090] Fig. 13 conceptually shows example configurations of the reconfigurable circuit 125 when the vehicle is traveling and when grid computing calculations are being executed. Specifically, the lower left side of Fig. 13 shows an example configuration of the reconfigurable circuit 125 when the vehicle is traveling, and the lower right side of Fig. 13 shows an example configuration of the reconfigurable circuit 125 when grid computing calculations are being executed.

[0091] During driving, the reconfigurable circuit 125 prioritizes latency, arithmetic processing speed, and energy saving. Specifically, for example, as a method of allocating circuit resources, the allocation of circuit resources to one arithmetic element is reduced by lowering the calculation accuracy.

[0092] 13, a data flow format allows multiple different processes to be processed in a flowing manner for a single data transfer. More specifically, for example, to perform edge extraction filter processing on an image (corresponding to processing A), input image data is provided from the storage unit 124 to the input of the reconstruction circuit 125. After performing the edge extraction processing, the output result is used to perform feature extraction processing (corresponding to processing B), and then, in a data flow format, feature extraction processing of a higher level of abstraction (corresponding to processing C and processing D) is performed to obtain output data, which is a feature extraction result for image recognition. In this way, by performing a series of processes in a data flow format, the number of accesses to a storage device 7 (e.g., DRAM) provided outside a semiconductor chip (not shown) on which the main processing unit 105 is mounted can be reduced as much as possible, thereby achieving low power consumption.

[0093] On the other hand, when performing grid computing operations, the reconfigurable circuit 125 allocates circuit resources with a priority on computational accuracy. For example, the reconfigurable circuit 125 is configured to execute one highly accurate process (even a small number of processes) with a single data transfer from the storage device 7 to the reconfigurable circuit 125. More specifically, for example, if there are four processes (processes A to D), the reconfigurable circuit 125 is configured as a circuit for the first process A, which is executed with high accuracy and the result is stored in the storage device 7. Thereafter, the reconfigurable circuit 125 is rewritten as a circuit for executing the next process B, which retrieves the result of process A from the storage device 7, executes the next process B, and stores the result in the storage device 7. This is then repeated in sequence, with the next process C and the next process D. This increases the number of data transfers between the storage device 7 and the reconfigurable circuit 125, but enables more accurate operations to be performed. Specific examples of grid computing operations will be described later.

[0094] 8, in step S314, it is determined whether the traveling state of the target vehicle 10 continues. Then, while the traveling state continues (YES in step S314), the traveling control in step S313 continues.

[0095] -Steps S32 to S34, S21- When a non-traveling state of the target vehicle 10 (for example, a stopped vehicle with the ignition off) is detected, a NO determination is made in step S314 in FIG. 8 (corresponding to step S32 in FIG. 7).

[0096] In the next step S33, the target vehicle 10 transmits the vehicle travel information (non-operating state) and the latest resource information to the management server 50.

[0097] Furthermore, in step S34, the control circuit 123 outputs a configuration switching signal to the selector 128, which indicates that the calculation configuration information D3 received from the management server 50 should be selected. This switches the selector 128, and the calculation configuration information D3 received from the management server 50 is stored in the storage unit 124.

[0098] In step S21, the management server 50 receives vehicle driving information (non-operating state) and the latest resource information from the target vehicle 10. Note that the resource information of each vehicle 10 may be registered in advance in the management server 50 before or while the vehicle is driving, and this information may be used.

[0099] The order of steps S33 and S34 is not limited to that shown in FIG. 7, and the process of step S34 may be executed first, followed by the process of step S33.

[0100] -Steps S11, S22- In step S11, the client terminal 30 transmits the contents of a computation request for an application job to the management server 50. The contents of the computation request include, for example, client information D31, job information D32, and job data D1.

[0101] In step S22, the management server 50 receives the content of the computation request for the application job from the client terminal 30.

[0102] The order of steps S21 and S22 is not limited to the order shown in FIG. 8, and the reception in step S22 may be performed first, followed by the reception in step S21.

[0103] -Steps S23, S24, S35- In step S23, the management server 50 determines a requested job for the target vehicle 10. Then, it selects the optimal computation configuration information for the target vehicle 10 based on the computation request content (job information D32 and / or job data D1) of the requested job.

[0104] 10 to 12 show an example of the configuration of an optimal reconfiguration circuit according to the content of calculation (inference model) and an example of its operation.

[0105] FIG. 10 shows an example of a learning model that performs iterative learning.

[0106] 10, the reconfiguration circuit 125 is configured with a 32-bit high-precision processor and a 32-bit × N PE array in order to improve the accuracy of calculations. Here, N is a natural number smaller than M, for example, N = 4. The reconfiguration circuit 125 reconfigures the output data analysis and parameter generator circuits to make them function.

[0107] Figure 11 shows an example of a serially connected processing flow model for a portion of the VGG16 convolutional neural network model.

[0108] Specifically, in this example, the reconfiguration circuit 125 aims to reduce processing time by parallelizing operations by connecting PE arrays in serial and pipeline fashion to configure the reconfiguration circuit 125. Fig. 11 shows the configuration of a portion of the reconfiguration circuit 125, in which two 3x3x512 convolution PE arrays are connected in serial and pipeline fashion.

[0109] FIG. 12 shows an example of a parallel-connected computational flow model for a part of the convolutional neural network model of the GoogLeNet network structure.

[0110] Specifically, in this example, the reconfiguration circuit 125 parallelizes data processing by connecting PE arrays with different configurations (1x1conv64, 3x3conv128, 5x5conv32, 3x3MAXpool32) in parallel, thereby shortening processing time. Furthermore, a Concat circuit (combining circuit) is provided to combine the output results of the above-mentioned multiple arranged PE arrays.

[0111] Returning to FIG. 7, in the next step S24, the management server 50 transmits to the target vehicle 10 the computation request content (job information D32 and job data D1) and the computation configuration information D3 selected in step S23.

[0112] In step S35, the management server 50 receives the computation request content of the application job from the client terminal 30. Specifically, the target vehicle 10 receives the content of the requested job and its job data D1 from the management server 50, as well as computation configuration information D3 to be applied to the requested job.

[0113] -Step S36- As described above, the selector 128 is switched so as to output the calculation configuration information D3 received from the management server 50 to the reconstruction circuit 125 (see step S34). Therefore, when the target vehicle 10 receives the calculation configuration information D3 from the management server 50, the calculation configuration information D3 is output to the reconstruction circuit 125 via the selector 128.

[0114] Thereafter, in step S36, the reconfiguration circuit 125 reconfigures the circuit based on the calculation configuration information D3. For example, when calculation configuration information D3 corresponding to any of the calculations in Figures 10 to 12 is received, a circuit according to that calculation configuration information D3 is configured.

[0115] -Step S37- In step S37, calculations are performed using the reconfiguration circuit 125 that was reconfigured in step S36. Below, an overview of each calculation process using the reconfiguration circuit 125 in Figs.

[0116] The processing flow of the reconfigurable circuit in FIG. 10 is composed of the following steps (P1) to (P7).

[0117] (P1) First, in C61, job data D1 stored as input data in storage unit 124 (internal memory) is read out.

[0118] (P2) In the next step C62, the job data D1 stored in the storage unit 124 is input to the 32-bit high-precision processor array of the reconfiguration circuit 125.

[0119] (P3) In the next step C63, the processing results from the high-precision processor array are stored in the storage unit 124.

[0120] (P4) In the next step C64, the reconstruction circuit 125 analyzes the output data stored in the memory and measures the error with the teacher data (correct answer data). Then, it redesigns the parameters to reduce the error, replaces the input data of C61, and requests recalculation.

[0121] (P5) In the next C65, updated parameters are generated by the parameter generator and applied to the 32-bit high-precision processor array used in C62.

[0122] (P6) Then, the updated input data stored in the storage unit 124 is input to the 32-bit high-precision processor array and re-calculated.

[0123] (P7) The above steps (P1) to (P6) are repeated to optimize the parameters.

[0124] The processing flow in FIG. 11 is made up of the following steps (Q1) to (Q4).

[0125] (Q1) First, in C71, the job data D1 stored in the storage unit 124 is read out.

[0126] (Q2) In the next C72, the read job data D1 is input to the PE array of the reconfiguration circuit 125, and the convolution operation is executed in the PE array (3×3 conv512).

[0127] (Q3) In the next C73, the calculation result of C72 is stored in the internal memory.

[0128] (Q4) In the next C74, the data stored in the internal memory in C73 is retrieved and the convolution calculation is performed in the next PE array (3x3conv512).

[0129] The processing flow in FIG. 12 is composed of the following steps (R1) to (R4).

[0130] (R1) First, in C81, the job data D1 stored in the storage unit 124 is read and input to each PE array connected in parallel.

[0131] (R2) Next, in C82 to C85, the convolution calculation process is executed in each PE array and output.

[0132] (R3) Next, the operation results output from each PE array in R2 are combined.

[0133] (R4) Next, the combined result from R3 is stored in the internal memory.

[0134] [Effects of the embodiment] As described above, the main calculation contents of the main calculation device 105 of the vehicle differ when controlling the running of the vehicle and when executing a job of the grid G.

[0135] Therefore, in the system 1 of the above embodiment, a reconfiguration circuit 125 is provided in the main processing unit 105 so that the configuration can be changed to hardware suitable for vehicle driving control and for job calculation to execute jobs on the grid G. The reconfiguration circuit 125 has the feature that it can be programmably reconfigured into circuits for different uses by rewriting the hardware configuration information (hereinafter simply referred to as configuration information), which is internal connection information.

[0136] Furthermore, when the management server 50 transmits the job data D1 for the job to be processed to the vehicle, it also transmits the calculation configuration information suitable for the calculation of that job.

[0137] This allows calculations to be performed using circuits with the optimum configuration for executing the job to be processed, thereby improving the efficiency of calculations for the requested job in the vehicle 10. Furthermore, when the vehicle is running, the main processing unit 105 uses a hardware configuration based on driving configuration information suitable for driving control stored in the ROM 127 within the vehicle, thereby avoiding redundant calculation resources.

[0138] (Other embodiments) The above embodiments may be combined as appropriate. The above embodiments are essentially preferred examples and are not intended to limit the scope of the technology disclosed herein, its applications, or its uses. In other words, the above embodiments are merely examples and should not be interpreted as limiting the scope of the present disclosure. The scope of the present disclosure is defined by the claims, and all modifications and variations that fall within the equivalent scope of the claims are within the scope of the present disclosure. [Industrial Applicability]

[0139] As described above, the vehicle system disclosed herein is configured to be able to execute grid computing, and is extremely useful. [Explanation of symbols]

[0140] 1. Grid Computing System 10 vehicles 50 Management server (master device) 101 Communications Department (Second Communications Department) 103 Storage section 105 Main processing unit (in-vehicle processing unit) 121 Travel detector 123 Control circuit 125 Reconfiguration circuit 501 Communications Department (1st Communications Department) D3 Calculation Config Information

Claims

1. 1. A grid computing system including a master device that manages grid computing and an in-vehicle computing device that is configured to be able to participate in the grid computing while a vehicle is not in operation, The on-board computing device a communication unit that communicates with the master device; a travel detector for detecting an operating state of the vehicle; a reconfigurable circuit configured to be programmable to reconfigure the hardware; a control circuit that controls the reconfiguration of the hardware of the reconfiguration circuit based on the operating state of the vehicle detected by the travel detector; a storage unit disposed in the vehicle, storing driving configuration information which is configuration information of a hardware configuration suitable for vehicle driving control; the master device transmits job data of an application job to be executed and computation configuration information, which is configuration information of a hardware configuration suitable for the application job, to the in-vehicle computation device; The on-board computing device When the vehicle is in operation, the reconfiguration circuit is configured to be suitable for the vehicle driving control based on the driving configuration information, and a driving control process for the vehicle is executed using the reconfiguration circuit; When the vehicle is not in operation, the reconfigurable circuit is configured to be suitable for executing the application job based on the calculation configuration information received from the master device, and the application job is executed using the reconfigurable circuit. Grid computing system.

2. the reconstruction circuit includes a plurality of arithmetic elements; 2. The grid computing system according to claim 1, wherein the computation configuration information includes control information for controlling the computation accuracy of the computation elements and the number of the computation elements.

3. the reconstruction circuit includes a plurality of arithmetic elements and a plurality of internal memories; 2. The grid computing system according to claim 1, wherein the computing configuration information and the running configuration information each include connection information for specifying a connection method between the plurality of computing elements and each of the plurality of internal memories.

4. The connection information of the calculation configuration information and the connection information of the driving configuration information each include information configuring a bit calculator that performs a product-sum calculation using the plurality of calculation elements, 4. The grid computing system according to claim 3, wherein the number of bits of the bit calculator configured based on the operation configuration information is greater than the number of bits of the bit calculator configured based on the running configuration information.

Citation Information

Patent Citations

  • Manufacturing device for optical fiber coupler

    JP1989021403A

  • Electronic control unit, and circuit reconstruction method

    JP2010282563A

  • On-vehicle calculation device, vehicle, and system

    JP2019175216A

  • Semiconductor device and integrated circuit

    JP2020107891A