WO2022024634A1 - 演算装置および車両制御装置 - Google Patents
演算装置および車両制御装置 Download PDFInfo
- Publication number
- WO2022024634A1 WO2022024634A1 PCT/JP2021/024398 JP2021024398W WO2022024634A1 WO 2022024634 A1 WO2022024634 A1 WO 2022024634A1 JP 2021024398 W JP2021024398 W JP 2021024398W WO 2022024634 A1 WO2022024634 A1 WO 2022024634A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- arithmetic unit
- failure detector
- arithmetic
- failure
- influence
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 20
- 230000008859 change Effects 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 28
- 230000010365 information processing Effects 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 22
- 238000001514 detection method Methods 0.000 abstract description 13
- 238000013528 artificial neural network Methods 0.000 abstract description 7
- 230000007246 mechanism Effects 0.000 abstract description 2
- 230000007257 malfunction Effects 0.000 abstract 4
- 238000012545 processing Methods 0.000 description 29
- 210000002569 neuron Anatomy 0.000 description 14
- 238000013527 convolutional neural network Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 230000001186 cumulative effect Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008707 rearrangement Effects 0.000 description 4
- 230000006866 deterioration Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 238000005352 clarification Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 239000013585 weight reducing agent Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0736—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
- G06F11/0739—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Definitions
- the present invention relates to an arithmetic unit. Among them, in particular, it relates to the arrangement of arithmetic units constituting the arithmetic unit.
- a neural network such as a deep neural network (Deep Neural Network).
- a convolutional neural network CNN
- image recognition processing is a kind of information processing. It is known that such image processing dramatically improves recognition accuracy as compared with conventional rule-based algorithms, and is being put to practical use in various fields.
- the following techniques are known as means for detecting a failure of an arithmetic unit equipped with a general combination logic circuit (random logic). For example, there is known a technique of detecting whether or not each output value always matches by a lock step (duplication) method. In addition, there is known a technique of inputting a failure detection pattern (test signal) for detecting a failure of an arithmetic unit into a circuit and determining whether or not the output value of the circuit matches the expected value.
- a failure detection pattern test signal
- Patent Document 1 for the purpose of self-diagnosing the presence or absence of a failure of an image processing device, which arithmetic unit is used in a pipeline type arithmetic unit arranged in a plurality of stages is stored and tested. By testing only the arithmetic unit used to generate the pattern, a configuration that enables inspection in a short time without full inspection is disclosed.
- a device used for calculation such as an arithmetic unit becomes expensive. Further, the number of parallel arithmetic units that can be mounted on the device is reduced, and the information processing speed, for example, the frame rate of image processing is lowered.
- the present invention has been made to solve such a problem, and an object of the present invention is to provide an arithmetic unit capable of reducing the circuit overhead for failure detection and realizing the cost reduction of the device.
- a failure including a failure and a defect.
- An example of the arithmetic unit according to the present invention is an arithmetic unit that executes predetermined information processing on input data, each of which executes an arithmetic operation on an input and outputs the result of the arithmetic operation to perform the information processing. It has a plurality of arithmetic units to be realized and a failure detector arranged in at least one of the plurality of arithmetic units to detect a failure of the arithmetic unit, and the failure detector is one of the plurality of arithmetic units. , Is an arithmetic unit arranged in an arithmetic unit determined according to the degree of influence indicating the degree of influence on the information processing by the arithmetic result of the arithmetic unit.
- an example of the vehicle control device is the vehicle control device that outputs a control signal for controlling the vehicle based on the image data, and each of the vehicle control devices executes an operation for an input based on the image data. It has a plurality of arithmetic units that realize the generation of control signals, and a failure detector that is arranged in at least one of the plurality of arithmetic units and detects a failure of the arithmetic unit, and the failure detector is the plurality of.
- the vehicle control device is arranged in the arithmetic unit determined according to the degree of influence indicating the degree of influence on the control of the vehicle by the calculation result of the arithmetic unit.
- the present invention it is possible to suppress an increase in the number of fault detectors to be arranged, that is, an increase in circuit overhead in fault detection in an arithmetic unit using a neural network or the like.
- Example 1 of this invention It is a block diagram which shows the structural example of the arithmetic unit in Example 1 of this invention. It is a block diagram which shows the structural example of the arithmetic unit (without a failure detector) in Example 1 of this invention. It is a block diagram which shows the structural example of the arithmetic unit and the failure detector arranged in the arithmetic unit in Example 1 of this invention. It is a block diagram which shows the structural example of the arithmetic unit provided with the failure detector arrangement device and the failure detector arrangement storage part in Example 1 of this invention. It is a figure which shows an example of the failure detector arrangement information used in Example 1 of this invention.
- FIG. 4 It is a block diagram which shows the example which arranged the failure detector in the arithmetic unit device in Example 4 of this invention. It is an enlarged view which shows the example of the arithmetic unit which arranged the failure detector in the arithmetic unit device in Example 4 of this invention. It is an enlarged view which shows the example of exchanging the function of the arithmetic unit device in Example 4 of this invention. It is a figure which shows an example of the failure detector arrangement information used in Example 4 of this invention. It is a figure explaining the layer of the neuron (computer 110) of Example 5 of this invention. It is a figure which shows an example of the arrangement of the failure detector in Example 5 of this invention. It is a figure for demonstrating the application example of each Example of this invention.
- the expressions "table” and “information” are used, but they may be “list”, “queue” or “information” and “table”, respectively.
- the identification information can be read as “identifier”, “name”, “ID”, “number” and the like.
- the processing performed by executing the program may be described.
- the computer executes the program by the processor (for example, CPU, GPU), and performs the processing specified by the program while using the storage resource (for example, memory), the interface device (for example, the communication port) and the like.
- the main body of the processing performed by executing the program may be a processor.
- the main body of the process of executing the program may be a controller, an apparatus, a system, a computer, or a node having a processor.
- the main body of the processing performed by executing the program may be any arithmetic unit, and may include a dedicated circuit for performing a specific processing.
- the dedicated circuit is, for example, FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit), CPLD (Complex Programmable Digital Device), or the like.
- the program may be installed on the computer from the program source.
- the program source may be, for example, a program distribution server or a computer-readable storage medium.
- the program distribution server includes a processor and a storage resource for storing the program to be distributed, and the processor of the program distribution server may distribute the program to be distributed to other computers.
- two or more programs may be realized as one program, or one program may be realized as two or more programs.
- FIG. 1A is a block diagram showing a configuration example of the arithmetic unit according to the first embodiment.
- the arithmetic apparatus 1 includes an arithmetic unit 11 that executes image processing on image data 2 that is input data and outputs a recognition result 3 that is output data.
- the arithmetic unit 11 is supposed to perform a large-scale parallel arithmetic such as CNN, and executes the arithmetic unit 110 shown in FIG. 1B, that is, the processing in which the layers in which neurons are arranged in parallel spans many layers.
- the input 130 of the calculator 110 for example, the input signal, may be coupled to each output 140 of the calculator 110 in the previous layer, or may be coupled to only some arbitrary outputs, and each layer.
- the number of neurons (arithmetic unit 110) in the above may be arbitrary.
- the arithmetic unit 11 has a plurality of arithmetic units 110. Further, the arithmetic unit 1 outputs information indicating normal / abnormal 4 which is a detection result of the failure detector 120 described later.
- the failure detector 120 shown in FIG. 1C is arranged.
- the failure detector 120 has the following configuration.
- the test signal generation circuit 121 that generates the test signal 150 at the input unit of the comparator 110, the selector 122 on the input side for switching between the input 130 to the comparator and the test signal 150, and the test signal 150 match the expected values. It is a comparator 123 for confirming whether or not. Then, the output 140 is output from the arithmetic unit 110. Further, the normal / abnormal signal 160 of the failure detector 120 is output from the comparator 123.
- This configuration is an example, and is not limited to this as long as it has a function for detecting a failure of the arithmetic unit 110.
- "arrangement" in the arithmetic unit means to make the failure of the arithmetic unit detectable, and includes, for example, connecting to the arithmetic unit. Further, in order to realize the arrangement, both the arrangement using FPGA and the like and the arrangement fixed as hardware are included as described later.
- the arithmetic unit 110 in which the failure detector 120 is arranged and the arithmetic unit 110 in which the failure detector 120 is not arranged are mixed.
- the failure detector 120 is arranged in at least one arithmetic unit 110.
- the arithmetic unit 110 consisting of a product-sum operation of a large number of input signals and a circuit having a rounding function such as a bit shift and an activation function, such as CNN, even if a 1-bit failure occurs, the calculation result is obtained. Changes are often negligibly small.
- the change in the calculation result is large in one calculation unit, the result of information processing (recognition result) which is the final calculation result is calculated because the calculation is performed in the next layer and subsequent layers including the results of other calculation units.
- the change with respect to the expected value may be small.
- CNN calculation parameters weights, biases, etc. determined by training using the learning data set are assigned different values for each layer and calculation unit.
- the arithmetic unit to which a minute value close to 0 is assigned has only a minute result no matter what data is input, so it is said that the influence of the failure on the calculation result and recognition result 3 is small. I can say.
- the degree of influence of the failure on the arithmetic unit 110 arithmetic result and the information processing result of the arithmetic unit 1 differs depending on the characteristics of the algorithm itself and the method of assigning the arithmetic parameters (learning result). This degree of influence is investigated in advance at the time of designing the CNN, an arithmetic unit having a large influence on the calculation result is specified, and the failure detector 120 is arranged for this.
- a failure detector arrangement device 101 and a failure detector arrangement storage unit 102 are provided. That is, the failure detector arrangement 101 determines the arrangement of the failure detector 120 based on the failure detector arrangement information 1021 stored in the failure detector arrangement storage unit 102.
- the function of the failure detector arrangement 101 is a process according to a program, but the function may be realized as hardware.
- the arithmetic unit 1 shown in FIGS. 1A and 1D may be used as the vehicle control device.
- FIG. 1E shows an example of the failure detector arrangement information 1021.
- the failure detector placement information 1021 includes an "arithmetic unit” which is identification information for identifying an arithmetic unit, an "impact degree” indicating the influence of the calculation result of the arithmetic unit on the recognition process, and an "arrangement presence / absence" of the failure detector 120.
- the "arithmetic unit” may use other identification information such as a name other than the number.
- the degree of influence is an index calculated by a predetermined algorithm and indicating the degree of influence on the information processing of the arithmetic unit 1 by the arithmetic result of the arithmetic unit. Therefore, the degree of influence includes being determined according to at least one of the result of information processing described later and the control according to the result of this information processing. This enables information processing of the arithmetic unit 1 and appropriate failure detection according to the application destination.
- the degree of influence includes the degree of deterioration (recognition accuracy), which is the degree of change in the recognition result, which is the result of information processing, and the degree of influence, in which the recognition result is determined according to the influence on the control result of the vehicle.
- the degree of influence indicates the degree of influence on information processing by the calculation result of the arithmetic unit or the like.
- the threshold value of the degree of influence is stored as "0.5", and when the threshold value exceeds this, the "arrangement / non-arrangement” is arranged, that is, the failure detector 120 is arranged in the corresponding arithmetic unit 110. Judge. On the contrary, when it is equal to or less than the threshold value, it is determined that there is no “arrangement / presence”, that is, the failure detector 120 is not arranged in the corresponding arithmetic unit 110. Further, the failure detector arrangement information 1021 does not have to include the “degree of influence”.
- Presence or absence of placement may be determined by combining multiple requirements.
- the degree of change in the recognition result or the recognition result may be determined based on the product or sum of the degree of influence on the control result of the vehicle. Further, the degree of influence may be newly calculated by using both the degree of change in the recognition result and the degree of influence of the recognition result on the control result of the vehicle. Further, when both the degree of change in the recognition result and the degree of influence of the recognition result on the control result of the vehicle exceed the threshold value, it may be determined that the recognition result is arranged.
- the arrangement of the failure detector 120 may be manually determined regardless of the failure detector arrangement 101 and the failure detector arrangement storage unit 102. Further, the failure detector arrangement device 101 and the failure detector arrangement storage unit 102 may be provided in a device separate from the arithmetic unit 1. In this case, it is desirable to provide this in the design device or manufacturing device of the arithmetic unit 1 and determine whether or not the failure detector 120 is arranged at the time of designing or manufacturing. The processing in this case will be described with reference to the flowchart shown in FIG. 1F.
- step S1 the design device inputs a learning image stored in advance in accordance with the operation of the designer, and learns, that is, updates the parameters.
- step S2 the design device evaluates the accuracy of the learning result, that is, the accuracy of the image processing, using the inference image stored in advance. This evaluation calculates the performance of the arithmetic unit specified by a predetermined algorithm, that is, an index indicating the accuracy. Then, steps S1 and S2 are repeated until the accuracy satisfies a certain criterion or the predetermined number of times is completed.
- step S3 the design device injects an error into a place (calculator) whose degree of influence should be investigated based on the inference image.
- step S4 the design device evaluates the degree of influence of each arithmetic unit. That is, the design device calculates the degree of influence as shown in FIG. 1E, and determines whether or not a failure detector is arranged in the arithmetic unit. Using this result, a failure detector is placed in the manufacturing equipment. It should be noted that steps S3 and 4 are repeated until the error location (calculator) for which the degree of influence is to be investigated is completed.
- one of the methods for determining the degree of influence of failure in CNN for image processing is to evaluate the degree of change in the recognition result as described above.
- the simplest evaluation method in this example is to calculate the recognition accuracy from the inference result when the image data for inference is input to the trained CNN.
- the recognition accuracy can be evaluated by, for example, how much the coordinates and size of the bounding box of the vehicle that recognizes the object differ from the correct answer value.
- a threshold value for how much the value of this recognition accuracy deteriorates in the event of a failure is defined, and the arithmetic unit 110 or the arithmetic unit device constituting the arithmetic unit 110 that deteriorates more than the threshold value arranges the failure detector 120. It becomes a standard to do. That is, in this example, the degree of deterioration indicating the recognition accuracy is used as the degree of influence.
- the degree of deterioration it is possible to use the degree of change in the result of the recognition process that occurs when at least one of the failure of the arithmetic unit 110 and the bit inversion occurs.
- the failure detector 120 for the failure site (calculator 110) having an influence such as the latter. That is, in this example, whether or not a predetermined control is to be executed is also used as the degree of influence. As an example, it is possible to use the possibility of executing predetermined control in a plurality of assumed situations by simulation or the like as the degree of influence. Further, the predetermined control includes emergency control including sudden steering wheel and sudden braking when the arithmetic unit 1 outputs a control signal of the vehicle. In this case, the failure detector 120 is arranged in the arithmetic unit 110 that performs the calculation that causes the emergency control. This makes it possible to realize fail-safe control in ADAS and AD.
- Example 1 As a configuration for detecting the failure of the arithmetic unit, the number of failure detectors can be reduced by preferentially arranging the failure detectors in the part having a high influence on the recognition result, and high safety can be achieved. It is possible to secure and reduce device costs.
- the failure detector 120 is dynamically arranged.
- the failure detector 120 is dynamically rearranged with respect to the arithmetic unit 110.
- the arrangement relationship between the failure detector 120 and the arithmetic unit 110 is dynamically changed. The details will be described below.
- FIG. 2A shows the configuration of the arithmetic unit 1 of this embodiment.
- the arithmetic unit 1 of this embodiment has an arithmetic unit 11, a failure detector reconfiguring device 12, a failure detector arrangement scheduler 13, and a failure detector arrangement planning unit 14.
- the arithmetic unit 11 has a plurality of arithmetic units 110.
- the functions of the failure detector reconfiguring device 12 and the failure detector arrangement scheduler 13 are processes according to the program, but the functions may be realized as hardware.
- the failure detector placement scheduler 13 receives the placement replacement trigger 6, the failure is executed so as to execute the rearrangement (configuration) according to the failure detector placement plan information stored in the failure detector placement planning unit 14.
- the instruction is output to the detector reconfiguring device 12. Therefore, the failure detector reconfiguring device 12 executes the rearrangement of the failure detector 120 according to the failure detector arrangement plan information.
- the present embodiment may also have the failure detector arrangement device 101 and the failure detector arrangement storage unit 102.
- the failure detector reconfiguring device 12 and the failure detector placement planning unit 14 may have the functions of the failure detector arrangement device 101 and the failure detector arrangement storage unit 102, respectively.
- the function of the failure detector arrangement storage unit 102 will be described as having the failure detector arrangement planning unit 14.
- the failure detector arrangement planning unit 14 stores the failure detector arrangement planning information 141 shown in FIG. 2B. According to this content, the failure detector reconfiguring device 12 executes the rearrangement of the failure detector 120. For this reason, it is desirable that the arithmetic unit 1 is a reconfigurable device such as an FPGA.
- the failure detector arrangement plan information 141 is created by the failure detector arrangement scheduler 13 using the failure detector arrangement information 1021 of FIG. 2C (same as FIG. 1E).
- the failure detector arrangement scheduler 13 is the failure detector arrangement information 1021 No. 1 which is a comparison position arithmetic unit of the degree of influence, that is, an arithmetic unit below the threshold value. Identify 3-5, 7, 10, and M. Then, the failure detector arrangement scheduler 13 stores the identification information of these arithmetic units in the arithmetic unit (below the threshold value) having a low influence degree of the failure detector arrangement plan information 141.
- the identification information of the failure detector arrangement information 1021 is diverted, but it may be reassigned. Then, the failure detector arrangement scheduler 13 replaces the arithmetic unit in which the failure detector 120 is arranged for each time, and records the failure detector arrangement information 1021. In FIG. 2B, the presence / absence of arrangement is determined for each time, but a trigger other than the time may be used. As described above, in this embodiment, the arithmetic unit 110 in which the failure detector 120 is arranged is changed periodically.
- the number of arithmetic units in which the failure detector is not arranged is N (N is a natural number).
- n is defined as the number of replacement detections
- n N
- n is also a natural number.
- the failure detector is not arranged in the arithmetic units other than the above (No. 5 and later in FIG. 2B).
- the failure detector placement scheduler 13 tells the failure detector reconfigurator 12 that the No. Instruct the arithmetic units 5 and 7 to place the failure detector 120.
- the failure detector arrangement scheduler 13 is set to No. No. other than 5 and 7. 3 and 4, No.
- the failure detector 120 is not arranged in the arithmetic unit after 10.
- the failure detector reconfiguring device 12 replaces and reconfigures the arrangement of the failure detector in the calculation unit according to this command.
- the fault detector placement scheduler 13 repeats such replacement of the fault detector placement, that is, the placement conversion at each timing when the placement replacement trigger 6 is received. When this is repeated x times, No. Even arithmetic units up to M will be covered. Here, the relationship of n * x> N holds (x is also a natural number). In addition, it will return to the first arrangement by the x + 1th arrangement conversion (one round). As a result, as shown in FIG. 2A, "the calculation device that has a small effect on the recognition result, the failure detector is not placed at the time shown in the figure", and “the calculation device that has a small effect on the recognition result, the failure detector is placed at the time shown in the figure".
- failure detector 120 is arranged for at least one arithmetic unit, and the failure detector 120 is not arranged for at least one of the other arithmetic units.
- the fault detector arrangement scheduler 13 sets the upper limit so as not to exceed the total number of fault detectors 120.
- the number of times the failure detector 120 of the "arithmetic unit having a small influence on the recognition result" is arranged is the same every time the arrangement conversion is completed, but it may be variable.
- the failure detector placement scheduler 13 may increase the number of times the failure detector placement information 1021 is placed as the arithmetic unit having a greater influence. In this case, it is desirable that the failure detector placement scheduler 13 determines the number of placements in proportion to the degree of influence.
- the failure detector arrangement plan information 141 indicating this arrangement may be programmed based on a counter or a mathematical formula, or stored in the failure detector arrangement planning unit 14 in the form of a table or the like as shown in FIG. 2B. You may leave it. Further, as described above, the trigger of the arrangement conversion may be waiting for a signal, turning on the engine, or may use an arbitrary cycle.
- the trigger of the arrangement conversion may be waiting for a signal, turning on the engine, or may use an arbitrary cycle.
- the degree of influence of the highly sensitive neuron that is, the arithmetic unit 110 may differ depending on the environment.
- the failure detector 120 is arranged according to each assumed environment, the numerical value of the degree of influence is high and the sensitivity is high in each arithmetic unit as a whole, and the difference is hard to appear.
- the problem arises that the number of arithmetic units that require is increased. That is, there is an overhead related to the arrangement of the fault detector 120.
- the degree of influence of the arithmetic unit is calculated for each environment, stored in the failure detector arrangement storage unit 102 of FIG. 3A, and the arrangement of the failure detector 120 is determined using this.
- the details will be described below, but the environment also includes scenes, situations, conditions, time zones, weather, locations, and the like.
- FIG. 3A shows the configuration of the arithmetic unit 1 of this embodiment.
- the arithmetic unit 1 of this embodiment has a failure detector reconfiguring device 12, an environment determination device 15, and a failure detector arrangement storage unit 102 in addition to the calculation unit 11.
- the functions of the failure detector reconfiguring device 12 and the environment determination device 15 are processes according to the program, but the functions may be realized as hardware.
- the present embodiment may also have a failure detector arrangement device 101 and a failure detector arrangement planning unit 14, as in the first and second embodiments.
- the failure detector reconfiguring device 12 and the failure detector placement storage unit 102 may have the functions of the failure detector arrangement device 101 and the failure detector arrangement planning unit 14, respectively. That is, the functions of Examples 1 to 3 may be combined and carried out. Further, each of these parts may be provided in an external device of the arithmetic unit 1 as in the first and second embodiments.
- the failure detector arrangement storage unit 102 has the same storage function as that of the first embodiment, but differs from the first embodiment in that the failure detector arrangement information 1021 is stored for each environment. That is, the failure detector arrangement storage unit 102 of this embodiment has the failure detector arrangement information 1021-1 in the environment 1 (highway) shown in FIG. 3B, the failure detector arrangement information 1021-2 in the environment 2 (urban area), and so on. The location information of each failure detector such as is stored. Further, although not shown, the environment of the failure detector arrangement information 1021 may include time zones such as nighttime and daytime, weather such as fine weather and rainy weather, and locations / regions such as urban areas and suburbs.
- the environment determination device 15 inputs the condition 5 related to image shooting and running.
- the environment determination device 15 may determine the environment based on the input condition 5, or may use the result of determination by an external arithmetic unit as the condition 5 as the environment.
- the environment determination device 15 outputs the environment, which is the above determination result, to the failure detector reconfiguring device 12.
- the failure detector reconfiguring device 12 specifies the failure detector arrangement information 1021 according to the received environment. For example, if the environment is a "highway", the fault detector reconfigurator 12 identifies the fault detector placement information 1021-1 of the fault detector in environment 1. Then, the failure detector reconfiguring device 12 arranges the failure detector 120 by using the failure detector arrangement information 1021-1.
- the environment determination device 15 detects that the environment has changed according to the input condition 5, it outputs to that effect to the failure detector reconfiguring device 12. Then, the failure detector reconfiguring device 12 rearranges the failure detector 120 in the calculation unit 11 with reference to the failure detector arrangement information 1021 of the failure detector arrangement storage unit 102. Therefore, it is desirable that the arithmetic unit 1 is a reconfigurable device such as an FPGA.
- the environment determining device 15 may output changes in the environment when the vehicle is stopped due to a traffic light or the like, or when the vehicle is traveling at a low speed (a situation in which safety is guaranteed). Further, the failure detector reconfiguring device 12 may be rearranged in the above-mentioned state.
- the failure detector 120 can be arranged according to various driving environments, it is possible to control the vehicle according to the driving environment.
- the failure detector 120 is arranged in the neuron, that is, in the arithmetic unit 110 unit, but in the present embodiment 4, the failure detector 120 is further arranged in the arithmetic unit device in the neuron. Decide if you want to.
- the arithmetic unit device includes a multiplier 111 and the like as described later.
- CNN it is known that the configuration as shown in FIG. 4A is taken as an example of the arithmetic configuration of one neuron (calculator 110).
- each arithmetic unit 110 constituting the arithmetic unit 11 calculates the totalizer 111, the cumulative adder 112, the bit shift (rounding) 113, the bias coefficient adder 114, the activation function arithmetic unit (ReLU arithmetic unit) 115, and the like.
- the values of the weight and the bias coefficient are different for each neuron. Therefore, in addition to calculating the degree of influence for each neuron (calculator 110) based on the values of the weight and the bias coefficient, it is also possible to calculate the degree of influence for each arithmetic unit device in the neuron.
- the degree of influence is calculated for each arithmetic unit device, and the circuit overhead can be further suppressed by arranging the failure detector 120 in the arithmetic unit 110 having a high degree of influence, for example, as shown in FIG. 4B. The process for this will be described below.
- the configuration of this embodiment can be realized by any one of Examples 1 to 3 or a combination thereof.
- the configuration of the first embodiment that is, the configuration of FIG. 1D will be described as an example.
- the failure detector arrangement information 1021 the failure detector arrangement information 1021-3 shown in FIG. 4E is used.
- the failure detector arrangement information 1021-3 shown in FIG. 4E stores the degree of influence for each arithmetic unit constituting the arithmetic unit 1.
- the failure detector arrangement 101 determines the arrangement of the failure detector 120 based on the failure detector arrangement information 1021-3 stored in the failure detector arrangement storage unit 102.
- the failure detector 120 for the arithmetic unit device is arranged based on the failure detector arrangement information 1021-3.
- the degree of influence of the integrator 1 and the integrator F is larger than the threshold value, so that the failure detector 120 is arranged therein.
- FIG. 4C An enlarged view of the arithmetic unit 110-1 is shown in FIG. 4C.
- the failure detector arrangement 101 is the integrator No.
- the failure detector 120 of 1 notifies that the integrator 1 has failed.
- the failure detector arrangement 101 uses the failure detector arrangement information 1021-3 to identify the integrator in which the failure detector 120 is not arranged.
- the failure detector arranger 101 identifies an integrator under predetermined conditions such as the one having the minimum influence. This is because it can be determined that the smaller the degree of influence is, the smaller the influence is even if the multiplier 1 is replaced with the failed arithmetic unit device.
- the failure detector arranger 101 identifies the integrator 2. Then, the failure detector arranger 101 switches the functions of the integrator 1 and the integrator 2 to the arithmetic unit 110, and outputs an instruction to arrange the failure detector 120 to the integrator 2.
- the arithmetic unit 110-1 is configured as shown in FIG. 4D. Therefore, also in this embodiment, it is desirable that the arithmetic unit 1 is a reconfigurable device such as an FPGA.
- the failure detector arranger 101 first switches the functions of the integrator 1 and the integrator 2 each time a failure is detected, and executes an alternative process. Then, the failure detector arranger 101 outputs an instruction to arrange the failure detector 120 when the alternative process is performed a certain number of times or more. Further, it is desirable that the failure detector arranger 101 outputs warning information to an external device such as an in-vehicle terminal when the substitution process is performed a certain number of times or more.
- the failure detector arranger 101 selects the arithmetic unit device whose functions are to be replaced from those that satisfy predetermined conditions such as adjacent devices.
- this process can be similarly processed in Examples 1 to 3. That is, it is also possible to replace the processing of the arithmetic unit in which the failure is detected with another arithmetic unit for processing.
- ⁇ Effect of Example 4> By arranging in the arithmetic unit device, it is possible to arrange the failure detector with respect to the arithmetic unit more finely. Further, even if a failure is detected, it is possible to prevent the system from directly entering the degenerate mode or the stop mode, and the system can be safely continued to operate like vehicle control for a while ⁇ Example 5>.
- the failure detector 120 is commonly arranged for each type of arithmetic unit device constituting each arithmetic unit 110 arranged in parallel will be described.
- the arithmetic of each neuron may not be implemented in the device due to the limitation of circuit resources.
- the network has the following configuration. That is, the arithmetic configuration of one neuron (arithmetic unit 110) is an adder 111, a cumulative adder 112, a rounding arithmetic unit bit shift (rounding) 113, a bias coefficient adder 114, and an activation function arithmetic unit (ReLU arithmetic unit). It is composed of 115 and the like. In this case, the combination of input data and the values of weight and bias coefficient are different for each neuron.
- the K arithmetic units 110 in the frame line are mounted on the arithmetic unit 11, and when the arithmetic is completed, the weights of the next K arithmetic units 11 are switched to perform the arithmetic.
- the arrangement of the failure detector cannot be determined based on the degree of influence of the weight and the bias coefficient on the calculation result.
- the cumulative adder 112 in FIG. 5B is a highly sensitive portion because the effects of failures are cumulative.
- the activation function arithmetic unit (ReLU arithmetic unit) 115 outputs a negative value as 0 and the other values as they are, it can be said that the sensitivity of the sign bit, that is, the degree of influence is relatively high. Therefore, in this embodiment, the failure detector 120 is arranged in advance for these arithmetic unit devices.
- the configuration of this embodiment can be realized by any one of Examples 1 to 4 or a combination thereof.
- the configuration of the first embodiment that is, the configuration of FIG. 1D will be described as an example.
- the failure detector arrangement 101 uses the configuration information of the arithmetic unit 110 stored in advance. This configuration information determines whether or not it is arranged for each arithmetic unit device. Therefore, it is determined that the arithmetic unit device to be arranged is specified from the failure detector arrangement unit 101, and the failure detector 120 is arranged for these.
- the failure detector arrangement 101 may decide to arrange the failure detector 120 shared by the same type of arithmetic unit device. That is, as shown in FIG. 5B, the failure detector 120 shared by the plurality of cumulative adders 112 is arranged. As described above, the arrangement of the shared failure detector 120 may be performed in the first to fourth embodiments.
- the failure detector 120 is arranged in a predetermined arithmetic unit device such as a cumulative adder 112, a Round, a Bias adder, or the like (not shown).
- a predetermined arithmetic unit device such as a cumulative adder 112, a Round, a Bias adder, or the like (not shown).
- the failure detector 120 can be efficiently arranged even in the arithmetic unit device having a relatively small circuit resource.
- ⁇ Combination of Examples 1 to 5> This is the end of the description of Examples 1 to 5.
- the processing of each embodiment may be executed independently, or at least two of them may be combined and realized.
- Application Examples of Examples 1 to 5> Next, an application example relating to the arrangement of the failure detector 120 of Examples 1 to 5 will be described with reference to FIG.
- the arithmetic unit 1 is applied to a vehicle control device, that is, an in-vehicle ECU, but the first to fifth embodiments can be similarly applied to the in-vehicle control device.
- the control result in the vehicle 3000 is learned, and this result is fed back to the activity in the design and manufacturing departments.
- the process will be described with reference to the configuration of the first embodiment, that is, the configuration of FIG. 1D.
- this application example can also be realized by any one of Examples 1 to 5 or a combination thereof.
- the vehicle 3000 has a vehicle control device 1A-1 and a communication device 3001 that can be realized by the arithmetic unit 1. And these are connected to each other via a communication path. Further, it is assumed that the vehicle control device 1A-1 has the configuration shown in FIG. 1D.
- the failure detector arranger 101 of the vehicle control device 1A-1 performs the processing of each embodiment. Further, the failure detector arranger 101 performs at least one of steps S1 to S4 in FIG. 1F in that order by using the processing result and the control result of the vehicle control device 1A-1. Then, the failure detector arranger 101 transmits its own processing result to the server device 1000 used in the design / manufacturing department via the communication device 3001.
- the server device 1000 is realized by a so-called computer, and a processing device such as a CPU executes the processing according to a program. Then, the server device 1000 performs the remaining processing of steps S1 to S4 in FIG. 1F using the processing result of the failure detector arrangement 101, and stores this result in the file system 4000.
- the server device 1000 stores the result in the file system 4000.
- the file system 4000 may be provided inside or outside the server device 1000 as long as it can store information. Then, reflecting this result, the vehicle control device 1A-2 is manufactured by designing and manufacturing.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Traffic Control Systems (AREA)
- Hardware Redundancy (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
ディープニューラルネットワークなどの大規模多並列演算をハードウェアに実装するとき、故障検出機構の回路オーバヘッドが大きくなる。上記の課題を解決するために、本発明では、ニューラルネットワークに代表される大規模多並列の演算器110と、前記演算器110における故障の有無や場所を検出するための故障検出器120とを備え、画像データを前記演算器110で処理し、認識結果3を出力する演算装置1であって、故障検出器120が配置される演算器110は、故障やビット反転等が生じたときに前記認識の変化が大きくなる演算器110とする演算装置1を提案する。
Description
本発明は、演算装置に関する。その中でも特に、演算装置を構成する演算器の配置に関する。
複数の演算器で実現される演算装置の一適用例として、ディープニューラルネットワーク(Deep Neural Network)等のニューラルネットワークがある。また、このディープニューラルネットワークの一つである畳込みニューラルネットワーク(Convolution Neural Network:CNN)は、情報処理の一種である画像認識処理に応用されていることが知られている。このような画像処理では、従来のルールベースのアルゴリズムに比べて認識精度が飛躍的に向上することが知られており、様々な分野における実用化が進んでいる。
例えば、自動車産業の分野においては、運転アシストや自動運転向けの周辺認識にCNNを適用し、重大事故の防止に貢献することが考えられる。CNNを処理するデバイスの要件として、数十ミリ秒オーダの周期でカメラから送られてくる画像を、高速処理することが求められる。このため、高価なGPUを搭載したデバイスが必要であった。しかし、昨今のアルゴリズムの軽量化やモデルを圧縮する実装技術の進歩により低コストのデバイスを選択可能となり、大衆車向けにもCNNを車載したECUの実用化が進んでいる。
一方で、車載部品に対してはISO26262等で定められた高い安全性・信頼性基準を満たす必要がある。すなわち、画像処理のための演算回路やソフトウェアの故障率や故障検出率などに対して高い要求がある。
一般的な組合せ論理回路(ランダムロジック)が搭載された演算装置の故障を検出するための手段として、以下の技術が知られている。例えば、ロックステップ(二重化)方式によりそれぞれの出力値が常に一致するかどうかを検出する技術が知られている。他にも、演算器の故障を検出するための故障検出パターン(テスト信号)を回路に入力して、回路の出力値が期待値と一致しているかどうかを判定する技術が知られている。
例えば、特許文献1には、画像処理装置の故障の有無を自己診断させる目的で、複数ステージに配置されたパイプライン型の演算器において、どの演算器を使用したかを記憶しておき、テストパタンの生成には使用した演算器のみをテストすることで、全面検査することなく短い時間で検査を可能とする構成が開示されている。
しかしながら、複数の演算器で情報処理を行う場合、例えば、大規模多並列な積和演算器が必要なCNNにおいては、パイプライン型の処理ではないために従来の技術を適用しても、故障検知のための回路オーバヘッドや検査時間が増大するという課題があった。
このような場合、例えば、演算装置のような演算に用いられるデバイスが高コストになる。また、デバイスに実装可能な演算器の並列数が少なくなり情報処理速度、例えば、画像処理のフレームレートが低下すること、等が挙げられる。
本発明は、このような課題を解決するためになされたものであり、故障検知のための回路オーバヘッドを削減して、デバイスの低コスト化を実現できる演算装置を提供することを目的とする。なお、本明細書では、障害、不具合などを含め故障と表現する。
本発明に係る演算装置の一例は、入力データに対して、所定の情報処理を実行する演算装置において、それぞれが入力に対する演算を実行し、当該演算の結果を出力することで、前記情報処理を実現する複数の演算器と、前記複数の演算器の少なくとも1つに配置され、当該演算器の故障を検出する故障検出器とを有し、前記故障検出器は、前記複数の演算器のうち、当該演算器の演算結果による前記情報処理に対する影響の程度を示す影響度に応じて定められる演算器に配置する演算装置である。
また、本発明に係る車両制御装置の一例は、画像データに基づいて、車両を制御する制御信号を出力する車両制御装置において、それぞれが前記画像データに基づく入力に対する演算を実行することで、前記制御信号の生成を実現する複数の演算器と、前記複数の演算器の少なくとも1つに配置され、当該演算器の故障を検出する故障検出器とを有し、前記故障検出器は、前記複数の演算器のうち、当該演算器の演算結果による前記車両への制御に対する影響の程度を示す影響度に応じて定められる演算器に配置される車両制御装置である。
本発明によれば、ニューラルネットワークなどを用いた演算装置での故障検出において、配置する故障検出器の数、つまり、回路オーバヘッドの増大を抑制することが出来る。
上記した以外の課題、構成および効果は、以下の発明を実施するための形態の説明により明らかにされる。
以下、図面を参照して本発明の実施形態を説明する。各実施例は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
各実施例で扱う情報の例として、「テーブル」「情報」との表現を用いるが、それぞれ「リスト」「キュー」もしくは「情報」「テーブル」としてもよい。また、識別情報については、「識別子」、「名」、「ID」、「番号」等と読み替えが可能である。
同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
各実施例において、プログラムを実行して行う処理について説明する場合がある。ここで、計算機は、プロセッサ(例えばCPU、GPU)によりプログラムを実行し、記憶資源(例えばメモリ)やインターフェースデバイス(例えば通信ポート)等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等である。
プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施例において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
以下、図面を参照して本発明の実施形態を説明する。なお、以下の実施例では本発明を、車両制御、例えば、先進運転支援システム(Advanced Driver Assistance System:ADAS)や自動運転(Autonomous Driving:AD)向けの車載ECUに適用した例について説明する。但し、本発明は、ADAS、AD向け車載ECUに限定されるものではない。他には、画像処理などの情報処理全般に適用可能である。その中でも、特に、プラント制御のような安全性が求められる演算装置に広く適用することができる。
<実施例1>
本発明をADAS、AD向け車載ECUに適用した実施例1について、図1A~Fを用いて説明する。図1Aは、実施例1における演算装置の構成例を示すブロック図である。
<実施例1>
本発明をADAS、AD向け車載ECUに適用した実施例1について、図1A~Fを用いて説明する。図1Aは、実施例1における演算装置の構成例を示すブロック図である。
演算装置1は、情報処理の一例として、入力データである画像データ2に対し画像処理を実行し、出力データである認識結果3を出力する演算部11を備える。演算部11はCNNのような大規模並列演算を行うことを想定しており、図1Bに示す演算器110、すなわち、ニューロンが並列配置された層が何層にも渡る処理を実行する。演算器110の入力130、例えば、入力信号は、前の層の演算器110の各出力140とそれぞれ結合されていてもよいし、一部の任意の出力とのみ結合されていてもよく、各層のニューロン(演算器110)の数は任意であってもよい。このように、演算部11は、複数の演算器110を有する。また、当該演算装置1からは、後述する故障検出器120の検出結果である正常/異常4を示す情報が出力される。
また、演算器110が故障したことを検出するための仕組みとして、例えば図1Cに示す故障検出器120が配置される。故障検出器120は、以下の構成を有する。それは、演算器110の入力部にテスト信号150を生成するテスト信号生成回路121、演算器への入力130とテスト信号150を切り替えるための入力側のセレクタ122、テスト信号150が期待値と一致するかを確認するための比較器123である。そして、演算器110からは、出力140が出力される。また、比較器123からは、故障検出器120の正常/異常信号160が出力される。この構成は一例であり、演算器110の故障を検知するための機能を備えていれば、これに限るものではない。また、演算器に「配置」とは、当該演算器の故障を検出可能な状態とすることであり、例えば、演算器と接続することが含まれる。また、配置を実現するためには、後述のようにFPGA等を用いた配置やハードウェアとして固定的な配置のいずれもが含まれる。
ここで、本実施例においては、故障検出器120が配置される演算器110と、配置されない演算器110が混在している構成である。以下、まず、故障検出器の配置有無が混在する理由について以下で説明する。なお、本実施例では、少なくとも1つの演算器110に、故障検出器120が配置されていることになる。
一般的なランダムロジックにおける演算器であれば、回路素子や配線が1か所(1bit)故障したときの演算結果や情報処理の結果は期待値から外れたものになり、その演算器を用いるシステムとしては大きな影響になることが多い。一方で、CNNのように多数の入力信号の積和演算と、ビットシフトや活性化関数などの丸め機能を持った回路から成る演算器110においては、1bitの故障が発生しても演算結果の変化は無視できるほど微小であることが多い。また、1つの演算器において演算結果の変化が大きかったとしても、他の演算器の結果も含めて次層以降で演算されるために、最終的な演算結果である情報処理の結果(認識結果3)では期待値に対する変化が微小になることもある。
また、学習データセットを用いたトレーニングにより決まるCNNの演算パラメータ(重み、バイアス 等)は、層や演算器ごとに異なる値が割り当てられる。割り当てられたパラメータのうち、0に近い微小な値が割り当てられた演算器は、どんなデータが入力されても微小な結果にしかならないため、故障が演算結果や認識結果3に与える影響は小さいと言える。
以上のような理由から、アルゴリズムそのものの特徴や、演算パラメータの割り当てられ方(学習の結果)によって、故障が演算器110演算結果や演算装置1の情報処理結果に与える影響度が異なる。この影響度を、CNNの設計時に予め調査しておき、演算結果に与える影響が大きい演算器を特定し、これに対して、故障検出器120を配置する。
このことを実現するために、本実施例では、図1Dに示すように、故障検出器配置器101および故障検出器配置記憶部102を設ける。つまり、故障検出器配置記憶部102に記憶された故障検出器配置情報1021に基づいて、故障検出器配置器101が故障検出器120の配置を決定する。この故障検出器配置器101の機能は、プログラムに従った処理であるが、ハードウェアとしてその機能を実現してもよい。なお、後述する各実施例でも同様に、図1Aや図1Dに示す演算装置1を車両制御装置として利用してもよい。
ここで、図1Eに、故障検出器配置情報1021の一例を示す。故障検出器配置情報1021は、演算器を識別する識別情報である「演算器」、当該演算器の演算結果が認識処理に与える影響を示す「影響度」および故障検出器120の「配置有無」を有する。ここで、「演算器」は番号以外の名称など他の識別情報を用いてもよい。
ここで、影響度とは、予め定められたアルゴリズムにより算出され、演算器の演算結果による演算装置1の情報処理に対する影響の程度を示す指標である。このため、影響度には、後述の情報処理の結果やこの情報処理の結果に応じた制御のうち少なくとも一方に応じて定められることが含まれる。このことで、演算装置1の情報処理や適用先に応じた適切な故障検出が可能になる。
より具体的には、影響度は、情報処理の結果である認識結果の変化具合である劣化具合(認識精度)や認識結果が車両の制御結果への影響に応じて定められるものを含む。以上のように、影響度は、演算器等の演算算果による情報処理に対する影響の程度を示している。
なお、本実施例は、影響度の閾値を「0.5」と記憶しておき、これを超える場合に、「配置有無」を配置、つまり、該当の演算器110に故障検出器120を配置する、と判断する。逆に、閾値以下の場合、「配置有無」を無、つまり、該当の演算器110に故障検出器120を配置しない、と判断する。また、故障検出器配置情報1021には、「影響度」が含まれていなくともよい。
さらに、「配置有無」を、複数の要件を組み合わせて判断してもよい。例えば、認識結果の変化具合や認識結果が車両の制御結果への影響度それぞれの積や和などに基づいて、判断してもよい。また、認識結果の変化具合や認識結果が車両の制御結果への影響度の双方を用いて、新たに影響度を算出してもよい。またさらに、認識結果の変化具合や認識結果が車両の制御結果への影響度の双方が閾値を超える場合に、配置と判断するなど、それぞれを用いてもよい。
なお、故障検出器配置器101および故障検出器配置記憶部102によらず、人手で故障検出器120の配置を決定してもよい。また、故障検出器配置器101および故障検出器配置記憶部102は、演算装置1とは別装置に設けてもよい。この場合、演算装置1の設計装置や製造装置にこれを設け、設計ないし製造の際に故障検出器120の配置の有無を判断することが望ましい。この場合の処理について、図1Fに示すフローチャートを用いて説明する。
まず、ステップS1において、設計者の操作に応じて、設計装置が予め記憶された学習画像を入力して、学習、つまり、パラメータ更新を行う。次に、ステップS2において、設計装置が、予め記憶された推論画像を用いて、学習の結果による精度、つまり、画像処理の精度を評価する。この評価は、予め定められたアルゴリズムにより特定される演算装置の性能、つまり、精度を示す指標を算出するものである。そして、ステップS1およびS2は、精度が一定基準を満たすか、既定の回数終了まで繰り返される。
次に、ステップS3において、設計装置が推論画像に基づいて、影響度を調査すべき箇所(演算器)に対して、エラー注入を行う。そして、ステップS4において、設計装置が、各演算器の影響度を評価する。つまり、設計装置が図1Eに示すような影響度を算出し、当該演算器に故障検出器の配置有無を判断する。この結果を用いて、製造装置において、故障検出器を配置する。なお、ステップS3および4は、影響度を調査したいエラー箇所(演算器)が終了するまで繰り返す。
次に、故障検出器120の配置の一例について以下で説明する。上述のように、画像処理向けのCNNにおける故障の影響度の判断方法の一つに、上述したように認識結果の変化具合を評価することが挙げられる。この例での最も簡単な評価方法は、学習済みのCNNに推論用の画像データを入力したときの推論結果から認識精度を計算する。認識精度は、例えば物体認識した車のバウンディングボックスの座標、大きさが正解値に対してどれくらい差分があるか、によって評価できる。この認識精度の値が、故障の際にどれだけ劣化するかの閾値を定義しておき、閾値よりも大きな劣化をする演算器110もしくはこれを構成する演算単位機器が、故障検出器120を配置するための基準となる。つまり、本例では、認識精度を示す劣化具合を、上記影響度として用いることになる。
なお、この場合、劣化具合として、演算器110の故障およびビット反転のうち少なくも一方が生じた場合に生じる認識処理の結果における変化の具合を用いることが可能である。
また、認識の精度という観点だけでなく、故障による認識結果がADAS、ADのアプリケーションにおいて与える影響も考慮した評価基準を影響度として用いることも考えられる。具体的には、故障によって認識結果のバウンディングボックスの変化が、急な制御に繋がるかどうかという観点である。すなわち、運転中の画像において、自車両から遥か遠方における誤検知(実際は無いのに有ると認識した場合)やバウンディングボックスの微小な変化は、制御に与える影響は無いと考えられる。一方で、故障によって自車両の数m先で誤検知が起こった場合は、急ブレーキや急ハンドルなどの緊急制御に繋がる可能性がある。後者のような影響を及ぼす故障部位(演算器110)については、故障検出器120を配置することが望ましいと言える。つまり、本例では、予め定められた制御を実行することになるか否かを、影響度としても用いる。その一例として、シミュレーション等により、複数の想定場面において、予め定められた制御を実行する可能性を、影響度として用いることが可能である。また、予め定められた制御として、演算装置1が車両の制御信号出力する場合の急ハンドルや急ブレーキを含む緊急制御が含まれる。この場合、緊急制御の起因となる演算を行う演算器110に、故障検出器120を配置する。このことで、ADAS、ADにおいて、フェールセーフな制御を実現できる。
このような本実施例を実際に適用する場合、は高速道路や市街地などの走行場所や、自車速、周辺車両の混雑度などから、どのような誤検知・不検知が制御に与える影響が大きいかの定義を総合的に判断し、基準を作成することとなる。
<実施例1の効果>
演算装置の故障検出を行なう場合の構成として、認識結果に対して影響度が高い部分に優先的に故障検出器を配置することにより、故障検出器の数の低減が可能となり、高い安全性を担保するとともにデバイスコストの抑制が実現出来る。
<実施例2>
演算器110の故障が固定的に発生する場合の認識結果への影響については、実施例1で対策すればよい。ここで、故障検出器120が配置されていない演算器110においても、それらがいくつも故障すれば演算結果への影響は大きくなるため、対策が必要となる。そこで、実施例2では、故障の影響が小さいと判断された故障検出器120が配置されていない演算器110に対しても、故障の検出を行うことを可能とする。このために、実施例2では、動的に故障検出器120が配置される演算器を変更する。これは言い換えると、故障検出器120が演算器110に対し、動的に再配置されることになる。このように、実施例2では、故障検出器120と演算器110の配置関係が動的に変更される。以下、その詳細を説明する。
<実施例1の効果>
演算装置の故障検出を行なう場合の構成として、認識結果に対して影響度が高い部分に優先的に故障検出器を配置することにより、故障検出器の数の低減が可能となり、高い安全性を担保するとともにデバイスコストの抑制が実現出来る。
<実施例2>
演算器110の故障が固定的に発生する場合の認識結果への影響については、実施例1で対策すればよい。ここで、故障検出器120が配置されていない演算器110においても、それらがいくつも故障すれば演算結果への影響は大きくなるため、対策が必要となる。そこで、実施例2では、故障の影響が小さいと判断された故障検出器120が配置されていない演算器110に対しても、故障の検出を行うことを可能とする。このために、実施例2では、動的に故障検出器120が配置される演算器を変更する。これは言い換えると、故障検出器120が演算器110に対し、動的に再配置されることになる。このように、実施例2では、故障検出器120と演算器110の配置関係が動的に変更される。以下、その詳細を説明する。
まず、図2Aは、本実施例の演算装置1の構成を示す。図2Aに示すように、本実施例の演算装置1は、演算部11、故障検出器再構成器12、故障検出器配置スケジューラ13および故障検出器配置計画部14を有する。そして、演算部11は、複数の演算器110を有する。ここで、故障検出器再構成器12、故障検出器配置スケジューラ13の機能は、プログラムに従った処理であるが、ハードウェアとしてその機能を実現してもよい。
ここで、故障検出器配置スケジューラ13が、配置入替トリガ6を受け付けると、故障検出器配置計画部14に記憶された故障検出器配置計画情報に従って、再配置(構成)を実行するように、故障検出器再構成器12に指示を出力する。このため、故障検出器再構成器12が、故障検出器配置計画情報に従って、故障検出器120の再配置を実行する。
なお、図2Aには、図示しないが、実施例1と同様に、本実施例も故障検出器配置器101および故障検出器配置記憶部102を有してもよい。この場合、故障検出器配置器101および故障検出器配置記憶部102については、それぞれ故障検出器再構成器12および故障検出器配置計画部14がその機能を有してもよい。以下、本実施例では、故障検出器配置記憶部102の機能を故障検出器配置計画部14が有しているものとして説明する。
なお、図2Aには、図示しないが、実施例1と同様に、本実施例も故障検出器配置器101および故障検出器配置記憶部102を有してもよい。この場合、故障検出器配置器101および故障検出器配置記憶部102については、それぞれ故障検出器再構成器12および故障検出器配置計画部14がその機能を有してもよい。以下、本実施例では、故障検出器配置記憶部102の機能を故障検出器配置計画部14が有しているものとして説明する。
以下、本実施例の詳細を説明する。まず、故障検出器配置計画部14には、図2Bに示す故障検出器配置計画情報141が記憶されている。この内容に従って、故障検出器再構成器12が、故障検出器120の再配置を実行する。なお、このために、演算装置1は、FPGA等の再構成可能なデバイスであることが望ましい。
ここで、この故障検出器配置計画情報141は、故障検出器配置スケジューラ13により、図2C(図1Eと同じ)の故障検出器配置情報1021を用いて作成される。このために、まず、故障検出器配置スケジューラ13は、故障検出器配置情報1021のうち、影響度の比較位演算器、つまり、閾値以下の演算器であるNo.3~5、7、10、Mを特定する。そして、故障検出器配置スケジューラ13は、これら演算器の識別情報を、故障検出器配置計画情報141の影響度の低い演算器(閾値以下)に格納する。ここで、本実施例では、識別情報を、故障検出器配置情報1021のものを流用しているが、改めて付与し直してもよい。そして、故障検出器配置スケジューラ13は、時刻ごとの故障検出器120を配置する演算器を入れ替え、故障検出器配置情報1021に記録する。なお、図2Bでは、時刻ごとに配置の有無を決定しているが、時刻以外のトリガを用いてもよい。このように、本実施例では、周期的に故障検出器120の配置される演算器110を変更している。
以下、この入れ替え、つまり、故障検出器120の再構成である配置変換の詳細を説明する。まず、故障検出器が配置されていない演算器個数が、N個であるとする(Nは自然数である)。ここで、nを入替検出数と定義すると、n個の演算器(例:故障検出器配置計画情報141の上位n個)に対して故障検出器120を配置するとする。例えば、故障検出器配置スケジューラ13は、n=2とした場合、時刻=tにおいて、No.3および4に「配置」を記録する。
ここでn<Nであり、nも自然数である。このとき、上記以外(図2BのNo.5以降)の演算器には故障検出器は配置されていない。
次に、信号待ちやエンジンを入れたときの初期化など、指定した配置入替トリガ6のタイミングで、故障検出器配置スケジューラ13は、故障検出器再構成器12に対して、No.5、および7の演算器に故障検出器120を配置するよう指示をする。このとき、故障検出器配置スケジューラ13は、No.5、および7以外のNo.3および4、No.10以降の演算器には故障検出器120は配置されないようにする。故障検出器再構成器12は、この指令に従って演算部内の故障検出器の配置を入れ替え、再構成する。
故障検出器配置スケジューラ13は、このような故障検出器の配置の入れ替え、つまり、配置変換を、配置入替トリガ6を受けたタイミングごとに繰り返す。これを、x回繰り返すとNo.Mまでの演算器までカバーされることになる。ここで、n*x>Nの関係が成り立つ(xも自然数)。なお、x+1回目の配置変換(一巡)で最初の配置に戻ることになる。このことで、図2Aに示すように「認識結果に影響が小さい演算器 図の時刻では故障検出器の配置無し」「認識結果に影響が小さい演算器 図の時刻では故障検出器の配置有り」「認識結果に影響が大きい演算器 故障検出器 配置対象」が混在することになる。つまり、少なくとも1つの演算器に対して、故障検出器120が配置されており、また、他の演算器のうち、少なくとも1つは故障検出器120が配置されていないことになる。
また、上記の例では、定数(n=2)ずつ入れ替える構成としたが、この数は可変としてもよい。但し、故障検出器120の総数を上回らないように、故障検出器配置スケジューラ13がその上限を設ける。また、配置変換が一巡するごとに、「認識結果に影響が小さい演算器」の故障検出器120が配置される回数はそれぞれ同じになるが、可変としてもよい。例えば、故障検出器配置スケジューラ13は、故障検出器配置情報1021の影響度の大きな演算器ほど配置される回数を増加させてもよい。この場合、故障検出器配置スケジューラ13は、影響度に比例させて、その配置回数を決定することが望ましい。
また、この配置を示す故障検出器配置計画情報141については、カウンタや数式ベースでプログラムしておいてもよいし、図2Bに示すようなテーブル等の形式で故障検出器配置計画部14に記憶しておいてもよい。さらに、配置変換のトリガは、上述した通り、信号待ち、エンジン入でもよいし、任意の周期を使ってもよい。
<実施例2の効果>
本実施例によれば、1bit故障の感度など影響度が低い演算器、すなわち故障検出器120が配置されない演算器に対しても、信頼性を担保することができる。
<実施例3>
次に、様々な状況、環境に応じた故障検出器120の配置を行う実施例3について、説明する。車両は、時間帯、場所(道路等)といった様々な走行環境下で走行することが多い。このため、車両に対するADASやADにおいても、その環境にあった制御を行う必要がある。この際、その環境ごとに、感度の高いニューロン、つまり演算器110の影響度は異なることもある。ここで、想定される各環境に対応した、故障検出器120の配置を行おうすると、各演算器とも全体的に影響度の数値が高く感度が高くなり、その差が出にくくなるため、配置が必要となる演算器の数が多くなってしまうとの課題が発生する。
つまり、故障検出器120の配置に関するオーバヘッドが生じる。
<実施例2の効果>
本実施例によれば、1bit故障の感度など影響度が低い演算器、すなわち故障検出器120が配置されない演算器に対しても、信頼性を担保することができる。
<実施例3>
次に、様々な状況、環境に応じた故障検出器120の配置を行う実施例3について、説明する。車両は、時間帯、場所(道路等)といった様々な走行環境下で走行することが多い。このため、車両に対するADASやADにおいても、その環境にあった制御を行う必要がある。この際、その環境ごとに、感度の高いニューロン、つまり演算器110の影響度は異なることもある。ここで、想定される各環境に対応した、故障検出器120の配置を行おうすると、各演算器とも全体的に影響度の数値が高く感度が高くなり、その差が出にくくなるため、配置が必要となる演算器の数が多くなってしまうとの課題が発生する。
つまり、故障検出器120の配置に関するオーバヘッドが生じる。
そこで、本実施例では、環境ごとに演算器の影響度を算出し、図3Aの故障検出器配置記憶部102に保存しておき、これを用いて、故障検出器120の配置を決定する。以下、この詳細を説明するが、環境には、シーン、状況、条件、時間帯、天候、位置なども含まれる。
まず、図3Aは、本実施例の演算装置1の構成を示す。図3Aに示すように、本実施例の演算装置1は、演算部11の他、故障検出器再構成器12、環境判定器15および故障検出器配置記憶部102を有する。故障検出器再構成器12および環境判定器15の機能は、プログラムに従った処理であるが、ハードウェアとしてその機能を実現してもよい。
なお、図3Aには、図示しないが、実施例1、2と同様に、本実施例も故障検出器配置器101や故障検出器配置計画部14を有してもよい。この場合、故障検出器配置器101および故障検出器配置計画部14については、それぞれ故障検出器再構成器12および故障検出器配置記憶部102がその機能を有してもよい。すなわち、実施例1~3については、その機能を組み合わせて実施されてもよい。さらに、これらの各部位は、実施例1や2と同様に演算装置1の外部装置に設けてもよい。
ここで、故障検出器配置記憶部102は、実施例1と同様の記憶機能を有するが、環境ごとにその故障検出器配置情報1021を記憶する点で、実施例1と相違する。つまり、本実施例の故障検出器配置記憶部102は、図3Bに示す環境1(高速道路)の故障検出器配置情報1021-1、環境2(市街地)の故障検出器配置情報1021-2…といった各故障検出器配置情報を記憶している。また、図示しないが、故障検出器配置情報1021の環境には、夜間、日中といった時間帯や晴天、雨天といった天候、都市部、郊外といった位置・地域を含めてもよい。
以下、本実施例の処理について、説明する。まず、環境判定器15は、画像撮影や走行に関する条件5を入力する。ここで、環境判定器15は、入力された条件5に基づいて、環境を判定してもよいし、条件5として外部の演算装置で判定した結果を環境として用いてもよい。
次に、環境判定器15は、上記の判定結果である環境を、故障検出器再構成器12に出力する。そして、故障検出器再構成器12は、受け取った環境に応じた故障検出器配置情報1021を特定する。例えば、環境が「高速道路」であれば、故障検出器再構成器12は、環境1の故障検出器の故障検出器配置情報1021-1を特定する。そして、故障検出器再構成器12は、この故障検出器配置情報1021-1を用いて、故障検出器120の配置を行う。
また、環境判定器15は、入力した条件5に従って、環境が変化したことを検知すると、故障検出器再構成器12へその旨を出力する。そして、故障検出器再構成器12は、故障検出器配置記憶部102の故障検出器配置情報1021を参照して、演算部11内の故障検出器120を再配置する。このために、演算装置1は、FPGA等の再構成可能なデバイスであることが望ましい。なお、環境判定器15は、環境の変化の出力を、信号待ちなどで車が止まっている状態、低速で走行している状態(安全が担保されている状況)のときに行ってもよい。また、故障検出器再構成器12は、再配置を上述の状態の際におこなってもよい。
<実施例3の効果>
様々な走行環境下に応じて、故障検出器120を配置できるので、走行環境に応じた車両制御が可能になる。
<実施例4>
実施例1~3では、ニューロン、つまり、演算器110単位で、故障検出器120を配置していたが、本実施例4では、さらにその中の演算単位機器に対し、故障検出器120を配置するかを決定する。この演算単位機器には、後述のように積算器111などが含まれる。CNNでは1ニューロン(演算器110)の演算構成の一例として、図4Aのような構成を取ることが知られている。つまり、演算部11を構成する各演算器110が、積算器111、累積加算器112、ビットシフト(丸め)113、バイアス係数加算器114、活性化関数演算器(ReLU演算器)115などの演算単位機器を有する。ここで、このような構成では、ニューロンごとに重みとバイアス係数の値が異なっていることが一般的である。このため、重み、バイアス係数の値をもとに、ニューロン(演算器110)ごとの影響度を算出する他、ニューロン内の演算単位機器ごとに影響度を算出することも可能である。本実施例では、演算単位機器ごとに影響度を算出し、例えば図4Bのように、影響度の高い演算器110に故障検出器120を配置することで、回路オーバヘッドをさらに抑制できる。このための処理を、以下説明する。
<実施例3の効果>
様々な走行環境下に応じて、故障検出器120を配置できるので、走行環境に応じた車両制御が可能になる。
<実施例4>
実施例1~3では、ニューロン、つまり、演算器110単位で、故障検出器120を配置していたが、本実施例4では、さらにその中の演算単位機器に対し、故障検出器120を配置するかを決定する。この演算単位機器には、後述のように積算器111などが含まれる。CNNでは1ニューロン(演算器110)の演算構成の一例として、図4Aのような構成を取ることが知られている。つまり、演算部11を構成する各演算器110が、積算器111、累積加算器112、ビットシフト(丸め)113、バイアス係数加算器114、活性化関数演算器(ReLU演算器)115などの演算単位機器を有する。ここで、このような構成では、ニューロンごとに重みとバイアス係数の値が異なっていることが一般的である。このため、重み、バイアス係数の値をもとに、ニューロン(演算器110)ごとの影響度を算出する他、ニューロン内の演算単位機器ごとに影響度を算出することも可能である。本実施例では、演算単位機器ごとに影響度を算出し、例えば図4Bのように、影響度の高い演算器110に故障検出器120を配置することで、回路オーバヘッドをさらに抑制できる。このための処理を、以下説明する。
本実施例の構成は、実施例1~3のいずれかもしくはその組合せで実現できる。ここでは、実施例1の構成、つまり、図1Dの構成を例で説明する。但し、故障検出器配置情報1021は、図4Eに示す故障検出器配置情報1021-3を用いる。ここで、図4Eに示す故障検出器配置情報1021-3は、演算装置1を構成する各演算器の演算単位ごとに、影響度を記憶している。そして、上述した処理により、故障検出器配置記憶部102に記憶された故障検出器配置情報1021-3に基づいて、故障検出器配置器101が故障検出器120の配置を決定する。
以上で、本実施例の故障検出器120の配置を決定する処理の説明を終了する。続いて、演算単位機器における故障が検知した場合の対応について、説明する。
まず、図4Bに示すように、故障検出器配置情報1021-3に基づいて、演算単位機器に対する故障検出器120が配置されているとする。このうち、左上の演算器110-1(No.1)は、図4Eに示すように積算器1および積算器Fの影響度が閾値より大きいため、これらに、故障検出器120が配置されている。この演算器110-1の拡大図を、図4Cに示す。
ここで、故障検出器配置器101は、積算器No.1の故障検出器120から積算器1が故障したことを通知される。次に、故障検出器配置器101は、故障検出器配置情報1021-3を用いて、故障検出器120が配置されていない積算器を特定する。そして、故障検出器配置器101は、そのうち、影響度が最小のものなど所定の条件の積算器を特定する。これは、影響度が小さいものほど、故障した演算単位機器である積算器1と入れ替えても、その影響が小さいと判断できるためである。
この結果、本例では、故障検出器配置器101は、積算器2を特定したとする。そして、故障検出器配置器101は、演算器110に対して、積算器1と積算器2の機能を入れ替え、積算器2に対し、故障検出器120を配置する指示を出力する。この結果、演算器110-1は、図4Dに示すように構成される。このため、本実施例でも、演算装置1は、FPGA等の再構成可能なデバイスであることが望ましい。
なお、故障検出器配置器101は、まず、故障が検出されるごとに、積算器1と積算器2の機能を入れ替え、代替処理を実行させる。そして、故障検出器配置器101が、この代替処理が一定回数以上である場合に、故障検出器120を配置する指示を出力する。さらに、故障検出器配置器101は、代替処理が一定回数以上である場合に、警告情報を、車載端末など外部装置に出力することが望ましい。
さらに、機能を入れ替える演算単位機器を、隣接する機器など所定条件を満たすものから故障検出器配置器101が選択することが望ましい。
お、この処理は、実施例1~3でも同様に処理可能である。つまり、故障が検出された演算器の処理を、他の演算器に入れ替えて処理させることも可能である。
<実施例4の効果>
演算単位機器での配置を行うことで、よりきめ細かく演算器に対する故障検出器の配置が可能となる。また、故障を検知しても、直接的に縮退モードや停止モードになることを抑止でき、しばらくは車両制御のような安全にシステムの動作を継続することが出来る
<実施例5>
次に、並列配置される各演算器110を構成する演算単位機器の種類ごとに、共通して、故障検出器120を配置する実施例5について、説明する。
<実施例4の効果>
演算単位機器での配置を行うことで、よりきめ細かく演算器に対する故障検出器の配置が可能となる。また、故障を検知しても、直接的に縮退モードや停止モードになることを抑止でき、しばらくは車両制御のような安全にシステムの動作を継続することが出来る
<実施例5>
次に、並列配置される各演算器110を構成する演算単位機器の種類ごとに、共通して、故障検出器120を配置する実施例5について、説明する。
演算装置1では、回路リソースの制約により、ニューロン(演算器110)それぞれの演算をデバイスに実装出来ない場合がある。例えば、図5Aのようにニューロンが並んだ層が続いているネットワークにおいて、以下の構成を有する。つまり、1ニューロン(演算器110)の演算構成は積算器111、累積加算器112、丸め演算器であるビットシフト(丸め)113、バイアス係数加算器114、活性化関数演算器(ReLU演算器)115などから構成される。この場合、ニューロンごとに入力データの組み合わせと、重みとバイアス係数の値が異なる。このような演算装置1においては、枠線内のK個の演算器110を演算部11に実装し、演算が終わったら次のK個の演算部11の重みに切り替えて演算を行う。このような場合は、同じ演算器をパラメータだけを切り替えて使いまわし続けるので、重みやバイアス係数による演算結果への影響度では故障検出器の配置を判断できない。
一方で、アルゴリズム上の特性上、故障に対する影響度の高い演算単位機器の種類で定義できる。例えば、図5Bの累積加算器112は故障の影響が累積するため、感度の高い部分である。また、活性化関数演算器(ReLU演算器)115ではマイナスの値を0、それ以外をそのまま出力するものなので、符号ビットの感度、つまり、影響度は比較的高いと言える。そこで、本実施例では、これら予め演算単位機器に対して、故障検出器120を配置する構成とする。なお、本実施例の構成は、実施例1~4のいずれかもしくはその組合せで実現できる。ここでは、実施例1の構成、つまり、図1Dの構成を例で説明する。
このために、故障検出器配置器101は、予め記憶された演算器110の構成情報を用いる。この構成情報は、演算単位機器ごとに、配置の有無を定めている。このため、故障検出器配置器101から配置を行う演算単位機器を特定し、これらに対して故障検出器120を配置すると決定する。ここで、故障検出器配置器101は、同種の演算単位機器で共用する故障検出器120を配置するよう決定してもよい。つまり、図5Bに示すように、複数の累積加算器112で共用する故障検出器120を配置する。このように、共用の故障検出器120の配置は、実施例1~4でも実行してもよい。
以上のように、本実施例では、例えば累積加算器112や図示しないRound、 Bias加算器などの符号ビットのような予め定められた演算単位機器に、故障検出器120を配置する。
<実施例5の効果>
本実施例によれば、回路リソースが比較的小さな演算装置デバイスにおいても、効率的に故障検出器120を配置できる。
<実施例1~5の組み合わせ>
以上で、実施例1~5の説明を終了する。なお、各実施例の処理は、それぞれを単独で実行してもよいし、そのうち少なくともその2つを組み合わせて実現してもよい。
<実施例1~5の応用例>
次に、実施例1~5の故障検出器120の配置に関する応用例を、図6を用いて説明する。なお、本例では、演算装置1を車両制御装置、いわゆる車載ECUに適用した例で説明するが、実施例1~5も同様に車載制御装置に適用することができる。本応用例では、車両3000での制御結果を学習し、この結果を設計、製造部門での活動にフィードバックする。以下その処理を、実施例1の構成、つまり、図1Dの構成を例で説明する。但し、本応用例は、実施例1~5のいずれかもしくはその組合せでも実現できる。
<実施例5の効果>
本実施例によれば、回路リソースが比較的小さな演算装置デバイスにおいても、効率的に故障検出器120を配置できる。
<実施例1~5の組み合わせ>
以上で、実施例1~5の説明を終了する。なお、各実施例の処理は、それぞれを単独で実行してもよいし、そのうち少なくともその2つを組み合わせて実現してもよい。
<実施例1~5の応用例>
次に、実施例1~5の故障検出器120の配置に関する応用例を、図6を用いて説明する。なお、本例では、演算装置1を車両制御装置、いわゆる車載ECUに適用した例で説明するが、実施例1~5も同様に車載制御装置に適用することができる。本応用例では、車両3000での制御結果を学習し、この結果を設計、製造部門での活動にフィードバックする。以下その処理を、実施例1の構成、つまり、図1Dの構成を例で説明する。但し、本応用例は、実施例1~5のいずれかもしくはその組合せでも実現できる。
まず、図6において、車両3000が、演算装置1で実現可能な車両制御装置1A-1と通信装置3001を有する。そして、これらは互いに通信路を介して接続されている。
また、車両制御装置1A-1は、図1Dの構成を有しているものとする。
また、車両制御装置1A-1は、図1Dの構成を有しているものとする。
ここで、車両制御装置1A-1の故障検出器配置器101は、各実施例の処理を行う。
さらに、故障検出器配置器101は、車両制御装置1A-1の処理結果や制御結果を用いて、図1FのステップS1~S4のうち、少なくとも1つをその順序に従って行う。そして、故障検出器配置器101は、自身の処理結果を、通信装置3001を介して、設計・製造部門で利用されるサーバ装置1000に送信する。
さらに、故障検出器配置器101は、車両制御装置1A-1の処理結果や制御結果を用いて、図1FのステップS1~S4のうち、少なくとも1つをその順序に従って行う。そして、故障検出器配置器101は、自身の処理結果を、通信装置3001を介して、設計・製造部門で利用されるサーバ装置1000に送信する。
ここで、サーバ装置1000は、いわゆるコンピュータで実現され、プログラムに従って、CPUの如き処理装置がその処理を実行する。そして、サーバ装置1000は、故障検出器配置器101の処理結果を用いて、図1FのステップS1~S4の残りの処理を行い、この結果をファイルシステム4000に格納する。なお、故障検出器配置器101がステップS1~S4を実行する場合、サーバ装置1000は、その結果をファイルシステム4000に格納する。なお、ファイルシステム4000は、情報を格納できればよく、サーバ装置1000の内部に設けてもよいし、外部に設けてもよい。そして、この結果を反映して、設計や製造を行い、車両制御装置1A-2を製造する。
このため、実際の制御の結果を反映した、より実態に即した故障検出器120の配置を実現可能となる。
1…演算装置、11…演算部、12…故障検出器再構成器、13…故障検出器配置スケジューラ、14…故障検出器配置計画部、15…環境判定器、102…故障検出器配置記憶部、110…演算器、111…積算器、112…累積加算器、113…ビットシフト(丸め)、114…バイアス係数加算器、115…活性化関数演算器(ReLU演算器)、120…故障検出器、121…テスト信号生成回路、122…セレクタ、123…比較器、130…入力、140…出力、150…テスト信号、160…正常/異常信号、170…デバイスに実装可能な演算器の範囲、2…画像データ、3…認識結果、4…正常/異常
Claims (14)
- 入力データに対して、所定の情報処理を実行する演算装置において、
それぞれが入力に対する演算を実行し、当該演算の結果を出力することで、前記情報処理を実現する複数の演算器と、
前記複数の演算器の少なくとも1つに配置され、当該演算器の故障を検出する故障検出器とを有し、
前記故障検出器は、前記複数の演算器のうち、当該演算器の演算結果による前記情報処理に対する影響の程度を示す影響度に応じて定められる演算器に配置することを特徴する演算装置。 - 請求項1に記載の演算装置において、
前記所定の情報処理は、前記入力データに対する認識処理であって、
前記影響度は、前記演算器の演算結果が前記認識処理の認識結果および当該認識結果に応じた制御のうち少なくとも一方に与える影響に応じて定められることを特徴とする演算装置。 - 請求項2に記載の演算装置において、
前記影響度は、前記演算器の演算結果が前記認識処理の認識結果に与える影響を示すし、前記演算器の故障およびビット反転のうち少なくも一方が生じた場合に生じる前記情報処理の結果における変化の具合に応じて定められることを特徴とする演算装置。 - 請求項2に記載の演算装置において、
当該演算装置は、画像データを入力し、車両の制御を行う制御信号を出力する演算装置であって、
前記影響度は、前記演算器の演算結果が、前記認識結果に応じた制御に与える影響により定められ、
前記故障検出器は、前記制御信号による前記車両の緊急制御の起因となる演算器に配置されることを特徴とする演算装置。 - 請求項4に記載の演算装置において、
前記画像データの撮影の撮影環境を判定する環境判定器と、
前記撮影環境ごとに、前記故障検出器の配置の有無を記憶する故障検出器配置記憶部とをさらに有し、
前記故障検出器は、前記故障検出器配置記憶部を用いて、前記環境判定器により判定された撮影環境に応じて、配置されることを特徴とする演算装置。 - 請求項1ないし5のいずれかに記載の演算装置において、
予め定められた条件に従って、動的に、前記故障検出器の配置される演算器が変更されることを特徴とする演算装置。 - 請求項6に記載の演算装置において、
周期的に前記故障検出器の配置される演算器が変更されることを特徴とする演算装置。 - 請求項6に記載の演算装置において、
前記故障検出器が配置された演算器と、前記故障検出器が配置されていない演算器の機能を入れ替えることを特徴とする演算装置。 - 請求項8に記載の演算装置において、
前記故障検出器が、当該故障検出器が配置された演算器の故障を検出した場合に、当該故障が検出された演算器と、前記故障検出器が配置されていない演算器の機能を入れ替えることを特徴とする演算装置。 - 請求項9に記載の演算装置において、
当該演算装置は、画像データを入力し、車両の制御を行う制御信号を出力する演算装置であって、前記機能が入れ替えられた演算器の数が予め定められた閾値を超える場合、前記車両への制御を終了することを特徴とする演算装置。 - 画像データに基づいて、車両を制御する制御信号を出力する車両制御装置において、
それぞれが前記画像データに基づく入力に対する演算を実行することで、前記制御信号の生成を実現する複数の演算器と、
前記複数の演算器の少なくとも1つに配置され、当該演算器の故障を検出する故障検出器とを有し、
前記故障検出器は、前記複数の演算器のうち、当該演算器の演算結果による前記車両への制御に対する影響の程度を示す影響度に応じて定められる演算器に配置されることを特徴する車両制御装置。 - 請求項11に記載の車両制御装置において、
前記故障検出器は、前記制御信号による前記車両の緊急制御の起因となる演算器に配置されることを特徴とする車両制御装置。 - 請求項11または12のいずれかに記載の車両制御装置において、
前記故障検出器が、当該故障検出器が配置された演算器の故障を検出した場合に、当該故障が検出された演算器と、前記故障検出器が配置されていない演算器の機能を入れ替えることを特徴とする車両制御装置。 - 請求項13に記載の車両制御装置において、
前記機能が入れ替えられた演算器の数が予め定められた閾値を超える場合、前記車両への制御を終了することを特徴とする車両制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE112021003053.1T DE112021003053T5 (de) | 2020-07-31 | 2021-06-28 | Rechenvorrichtung und fahrzeugsteuerungsvorrichtung |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-130212 | 2020-07-31 | ||
JP2020130212A JP7449193B2 (ja) | 2020-07-31 | 2020-07-31 | 演算装置および車両制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022024634A1 true WO2022024634A1 (ja) | 2022-02-03 |
Family
ID=80035458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/024398 WO2022024634A1 (ja) | 2020-07-31 | 2021-06-28 | 演算装置および車両制御装置 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP7449193B2 (ja) |
DE (1) | DE112021003053T5 (ja) |
WO (1) | WO2022024634A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS567154A (en) * | 1979-06-27 | 1981-01-24 | Hitachi Ltd | Double system |
JP2009001124A (ja) * | 2007-06-20 | 2009-01-08 | Toyota Motor Corp | 車両用電源装置 |
JP2013193612A (ja) * | 2012-03-21 | 2013-09-30 | Fuji Heavy Ind Ltd | 車両の制御装置 |
WO2019225257A1 (ja) * | 2018-05-23 | 2019-11-28 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 異常検知装置、異常検知方法およびプログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017092757A (ja) | 2015-11-12 | 2017-05-25 | 株式会社リコー | 画像処理装置、及び画像処理方法 |
-
2020
- 2020-07-31 JP JP2020130212A patent/JP7449193B2/ja active Active
-
2021
- 2021-06-28 DE DE112021003053.1T patent/DE112021003053T5/de active Pending
- 2021-06-28 WO PCT/JP2021/024398 patent/WO2022024634A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS567154A (en) * | 1979-06-27 | 1981-01-24 | Hitachi Ltd | Double system |
JP2009001124A (ja) * | 2007-06-20 | 2009-01-08 | Toyota Motor Corp | 車両用電源装置 |
JP2013193612A (ja) * | 2012-03-21 | 2013-09-30 | Fuji Heavy Ind Ltd | 車両の制御装置 |
WO2019225257A1 (ja) * | 2018-05-23 | 2019-11-28 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 異常検知装置、異常検知方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2022026647A (ja) | 2022-02-10 |
JP7449193B2 (ja) | 2024-03-13 |
DE112021003053T5 (de) | 2023-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3451174B1 (en) | Vehicle control system verification device, vehicle control system, and vehicle control system verification method | |
KR20200072573A (ko) | 차선 기반의 확률론적 주변 차량 거동 예측 및 이를 이용한 종방향 제어 방법 | |
Lygeros et al. | A fault tolerant control architecture for automated highway systems | |
EP3997528B1 (en) | System, device and method for testing autonomous vehicles | |
CN112585550A (zh) | 基于神经网络的驾驶功能监控 | |
US10866590B2 (en) | Computer-assisted or autonomous driving safety-related decision making system and apparatus | |
CN111891134A (zh) | 自动驾驶处理系统和片上系统、监测处理模块的方法 | |
Sari et al. | Fail-operational safety architecture for ADAS systems considering domain ECUs | |
KR20180082886A (ko) | 자율주행시스템의 사고 예방을 위한 프로세서 및 동작 방법 | |
US11580797B2 (en) | Systems and methods for monitoring specifications over simulation and test data | |
WO2022024634A1 (ja) | 演算装置および車両制御装置 | |
CN116384755A (zh) | 车路云协同驾驶安全的确定方法、装置、车辆及存储介质 | |
Suk et al. | Rationale-aware autonomous driving policy utilizing safety force field implemented on CARLA simulator | |
CN115933504A (zh) | 行驶控制系统,行驶控制方法及装置 | |
US20230027577A1 (en) | Safe Path Planning Method for Mechatronic Systems | |
JP7491746B2 (ja) | 分散システム | |
CN112636881B (zh) | 一种信号切换方法、装置及车辆 | |
Bansal et al. | Synergistic Redundancy: Towards Verifiable Safety for Autonomous Vehicles | |
Frigerio | Functional-safety analysis of ASIL decomposition for redundant automotive systems | |
WO2023228722A1 (ja) | 画像認識システム | |
US20240185026A1 (en) | Defect detection using multi-modality sensor data | |
US20230365158A1 (en) | Determining a minimal risk maneuver for a vehicle | |
US20240161616A1 (en) | Fulfillment of a safety requirement of at least one vehicle | |
CN115892066A (zh) | 车辆接管检测方法、装置、设备、存储介质以及程序产品 | |
Makarova et al. | Methodology for Assessing the Automated Vehicles Safety Based on Operational Data |
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: 21849641 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21849641 Country of ref document: EP Kind code of ref document: A1 |