The Embedded Microprocessor Benchmark Consortium (EEMBC) has released version 2.0 of its suite for measuring the performance of typical automotive powertrain tasks on multicore processors.
AutoBench 2.0 provides a suite of benchmarks that works with the consortium’s MultiBench tool to test and analyze the performance and scalability of multicore architectures and platforms, recognizing the increasing use of multithreaded and parallelized software in automotive systems.
The suite updates a number of kernels that were included the group’s widely-used AutoBench 1.1, including angle-to-time conversion, CAN remote-data request, matrix arithmetic, road-speed calculation, and tooth-to-spark measurement.
Instead of just testing the performance of code on individual algorithms, the version 2.0 benchmark makes it possible to test multicore scalability by controlling the amount of concurrency of each workload.
“Beyond helping understand and evaluate the performance of specific processors and systems, AutoBench 2.0 assesses the impact of memory bottlenecks, efficiency of thread synchronization, and other related functions in automotive systems using multicore processors so designers can make informed decisions that optimize their products,” said Peter Torelli, EEMBC director of software engineering.
Testing for scalability
“Putting multiple execution cores into a single processor does not by itself guarantee greater multiples of processing power, and there is no prima facie reason to expect that a multicore processor will deliver a dramatic increase in a system’s capabilities, computing resources, or throughput,” said Paul Teich, principal analyst at Tirias Research. “This is why AutoBench 2.0 is so valuable. It shows when parallelization and scaling contribute to performance – and, at least as important, when and why they don’t.”
The MultiBench makes it possible for users to define different configurations for multicore execution. Users can control the number of worker threads in each context and allocate multiple contexts in differing combinations. By adjusting the number of workers and contexts, they can evaluate how well the memory architecture of the processor will cope with multiple parallel threads and how, as the number of workers scale up, the application will be affected by issues such as thread synchronization.
Like the original MultiBench, AutoBench 2.0 targets the evaluation of scalable symmetrical multicore processor (SMP) architectures with shared memory. To simplify porting and increase portability, the MultiBench framework was written for Linux‐based operating systems using GNU‐like tool chains and was implemented with an abstraction layer and test harness to facilitate porting to different platforms.
The abstraction layer provides a method to implement thread scheduling, signaling, and affinity. By default, the threading is implemented with a POSIX-compliant pthread programming interface.