Porting and Performance contest sponsored by Linaro

Welcome to the Linaro Performance Challenge

In anticipation of ARM’s new 64-bit architecture, Linaro reviewed some of the source code of a typical GNU/Linux system and found over 1400 source code modules that included ARM assembly language which might need to be ported and does need to be tested to work on new ARM 64-bit processors (Aarch64).

Linaro also recognized that some of the modules were written a long time ago (by computer standards) when CPUs were single core and not multi-core, compilers were not as optimized and RAM memories were smaller and more expensive leading to trade-offs in portability and algorithm selection. In today’s era, it might be better to re-evaluate the use of assembly language and perhaps replace it completely with a higher-level language such as “C”. It might also be worthwhile to review algorithms that made sense in an earlier time, but have outlived their usefulness.

In some cases the assembly language that exists in the code was “transposed” from existing assembly language of a different architecture and did not necessarily utilize the best features of each assembly or machine language architecture. In other cases it might make more sense to create a compiler intrinsic to do certain functions such as identifying the architecture of the machine.

Finally, while the code in the modules may be very efficient and highly portable, the compiler invocations may need review to take advantage of new optimization switches.

All this amounts to a major opportunity to not only ensure GNU/Linux based systems will operate efficiently on new ARM 64-bit processors, but also to optimize the performance of these systems across architectures. In pursuit of this performance goal, Linaro decided to create a long-running performance contest directed at these modules, and in the future extend the contest to even more modules which may or may not have assembler language in them.