# CPU-GPU-Memory DVFS for Power-Efficient MPSoC in Mobile Cyber Physical Systems
## 6 Experimental Results  
### Experimental Applications  
To evaluate the efficacy of CGM-DVFS, we modified some of the existing popular applications, thus mimicking a mixed workload as utilised by users, such that the agent is capable of recording the performance output during the profiling step. The following applications were chosen for the experimental evaluation:  
**Face detection**: Face detection using a Haar-cascade [40] is utilised, in which faces are detected based on the presence of Haar features in the video image frame. This application is denoted as _face_.  
**YOLO object detection**: Object detection using the You Only Look Once (YOLO) approach [17] is utilised, in which objects are detected based on different regions in the video image frame. This application is denoted as _yolo_.  
**Video rendering**: A video rendering program is utilised, in which each video image frame is converted to a greyscale image and then the text, \"Hello, World\({}_{i}\)\" is rendered on top of the video image frame to be shown as the output. This application is denoted as _render_.  
**On-device streaming**: A video streaming application is utilised, in which the video is streamed from the on-device storage. This application is denoted as _stream_.  
**Traffic sign detection**: An application to detect traffic signs using a Haar cascade [41] is utilised, in which Haar features for traffic signs are being detected. This application is denoted as _traffic_.  
**MobileNet object classification**: An application to classify dogs and cats in video image frames using the MobileNet CNN model [42] is utilised. This application is denoted as _classify_.  
For the aforementioned applications (face, yolo, render, stream, traffic and classify), since all of them are computer-vision-based, we chose frames per second (FPS) to be the performance output and therefore the CGM-DVFS agent recorded the FPS as \(Prf_{i}\), as mentioned in the profiling step. In our experiments, we chose the desired FPS (\(Prf_{desrial}\)) to be 60.  
**Additional benchmark applications**: Since benchmark applications from PARSEC and SPLASH-2 benchmark suites do not allow one to observe the intermediate performance (execution time) of the application when executing it without the use of a performance counter, we executed blackscholes (denoted as blks.) from PARSEC, streamcluster (denoted as strm.) from PARSEC and fft from SPLASH-2 216 times (as per reduced CDP) such that each execution was performed on each configuration from the reduced CDP. The minimum execution time out of 216 executions of the respective benchmark application (228.18 seconds for blks., 368.15 seconds for strm.& 12.58 seconds for fft) was chosen as the \(Prf_{desired}\) for that application. We chose to perform this experimentation method to prove the scalability and efficacy of CGM-DVFS across different types of applications and not just for computer-vision-based applications.  
_Note_: Since we chose the minimum (best) execution time for the additional benchmark applications and given the fact that the media-based benchmark applications such as face, yolo, render, stream, traffic and classify do not have a specific execution time since they are continuously executed, the power consumption here is proportional to the energy consumption (energy = power \(\times\) execution time) for executing the respective applications, since the execution time is constant in this case.