We will soon live in an era where perhaps more than 80 per cent of computer processors’ transistors must be powered off and ‘remain dark’ at any time to prevent the chip from overheating.
Hardware design is rapidly evolving to prevent this need to ‘power down’ transistors and coming up with innovative solutions. But these improvements at hardware level bring with them complexities which are tricky for compilers to contend with. Unless we can find ways of helping compilers keep pace with these hardware changes they will no longer be able to efficiently translate high-level programming language or source code used by software into the machine code that computer hardware understands.
Until this problem is solved, the software industry will stagnate; software will no longer be able to communicate efficiently with hardware and efforts to resolve the dark silicone problem will have been in vein.
Thanks to a £98,000 Engineering and Physical Sciences Research council grant, researchers at Lancaster University are now working on new ‘smart’ compilers which use machine learning to self-educate and find more efficient ways of doing their job as the middle man between software and hardware.
Zheng Wang, Lecturer at Lancaster University’s School of Computing and Communications, said: “Software developers are struggling to cope with this dramatic increase in hardware complexity and the current tools are simply inadequate to the task. If we are unable to solve these problems then for the first time in decades, progress in the software industries will stagnate.“Our project aims to provide enabling techniques at compiler-level using machine learning.
“Traditional compiler construction approaches that rely on human experts to spend many years on building an efficient compiler are no longer feasible. The new, emerging complex architecture of the hardware means it will take much longer time to build a decent compiler.
“For the first time, machine learning will live in the application environment, learning how to optimise programs for individual computing devices. Our smart compilation system will acquire knowledge each time a program is compiled and run, and use the knowledge to learn how to optimise programs for each hardware platform and for each user. The more our system learns, the more it knows what works. Over time, programs will run faster and the entire computing system will become more energy efficient.”