Visible to the public Compiler-Assisted Test Acceleration on GPUs for Embedded Software

TitleCompiler-Assisted Test Acceleration on GPUs for Embedded Software
Publication TypeConference Paper
Year of Publication2017
AuthorsYaneva, Vanya, Rajan, Ajitha, Dubach, Christophe
Conference NameProceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis
Conference LocationNew York, NY, USA
ISBN Number978-1-4503-5076-1
KeywordsAutomated Testing, Collaboration, compilers, Embedded Software, Functional testing, GPUs, human factors, Metrics, policy-based governance, Policy-Governed Secure Collaboration, pubcrawl, resilience, Resiliency, Safe Coding

Embedded software is found everywhere from our highly visible mobile devices to the confines of our car in the form of smart sensors. Embedded software companies are under huge pressure to produce safe applications that limit risks, and testing is absolutely critical to alleviate concerns regarding safety and user privacy. This requires using large test suites throughout the development process, increasing time-to-market and ultimately hindering competitivity. Speeding up test execution is, therefore, of paramount importance for embedded software developers. This is traditionally achieved by running, in parallel, multiple tests on large-scale clusters of computers. However, this approach is costly in terms of infrastructure maintenance and energy consumed, and is at times inconvenient as developers have to wait for their tests to be scheduled on a shared resource. We propose to look at exploiting GPUs (Graphics Processing Units) for running embedded software testing. GPUs are readily available in most computers and offer tremendous amounts of parallelism, making them an ideal target for embedded software testing. In this paper, we demonstrate, for the first time, how test executions of embedded C programs can be automatically performed on a GPU, without involving the end user. We take a compiler-assisted approach which automatically compiles the C program into GPU kernels for parallel execution of the input tests. Using this technique, we achieve an average speedup of 16A when compared to CPU execution of input tests across nine programs from an industry standard embedded benchmark suite.

Citation Keyyaneva_compiler-assisted_2017