An abstraction layer abstracts the hardware characteristics of a particular device so that the same software can run with little or no modifications on multiple hardware platforms.
Often, abstraction layers are provided at no cost. The hardware vendor wishes to make it easier to write code to their hardware and to move from one device to the next.
But cost aside, are abstraction layers free? Not really.
First, they take up space and make the code larger. But more importantly, they don’t necessarily take advantage of everything that the processor has to offer. Different processors might have different architectures, extra instructions, different cache sizes, and so forth. Taking advantage of these could potentially make algorithms run faster.
“Wait!” you might say. Writing code ‘directly to the metal’ is tedious and re-optimizing the same code to the next class of processors could mean a lot of rework. Can this type of work be automated? Recent academic research in the field of machine programming is showing that it is possible. And Inteon intends to turn research results into robust commercial products that help enterprises significantly reduce the time it takes to support a new hardware platform.
As we work to make that vision—of accelerating the ability to support new hardware platforms quickly—come true, we invite you to join us on the journey. Reach out to us today to learn how.