[00:00:35] Camille Morhardt: Hi, welcome to Cyber Security Inside. This is a quick take from James Reinders a High Performance Computing Engineer at Intel, and he is also a, can you say what it is? You’re a One API evangelist. Want to find out what that means?
[00:00:52] James Reinders: Absolutely. So one of the big changes in computing–especially high performance computing–has been the diversity of processing devices–put another way, the introduction of accelerators. So it’s not just about having a faster and faster processor, it’s often about specialty processor as a general-purpose processor maybe augmented with some capabilities on it, like vector units and then having other devices, like a GPO or an FPJ hook to it.
Hennessy and Patterson were very famous for their computer architecture textbook, and many other things have called it as “we’re entering the new golden age of computer architecture.” By that they mean there’s just an explosion and new ideas about how you can design a processor to speed up this like inferencing or to speed up deep learning or training, or how to speed up video processing. And we see this all the time. There’s all sorts of functional units and different things. We’re really seeing the beginnings of a real explosion in computer architecture.
So the question is how do we survive that as software engineers? (laughs) You know, I want to use all of this stuff, but gosh, if I want to do a matrix multiplier, I want to do something more complicated, how do I do that and make it applicable to all these devices? So that when somebody shows up and says, “Hey, I’ve got a better mouse trap for you” and it gets put in my computer, can I use it?
And there are a number of different ways of looking at this one is programming languages. So things like, uh, Sickle, which is a standard from the Cronos Group is looking at how do we make that accessible from C++. One API, which is an industry initiative started by Intel, is looking at extending that to tooling, to libraries, to interfaces with the hardware. So, you know, so that I could write a program and access whatever accelerator there is–no matter what vendor it comes from, no matter what architecture it uses.
Now, the sounds like pie in the sky. It sounds, you know, it’s understandable if you suddenly get skeptical because you know, there’s no such thing as run everywhere–at least not run everywhere well. But there are some very interesting things we can do. And that’s what I’m super excited about in my work and the people I work with is we’re looking at how do we take advantage of the potential of heterogeneous computing with lots of different vendors, lots of different architectures that play, uh, and make that accessible from software.
[00:03:22] Camille Morhardt: So in this case, as a software engineer, you wouldn’t have to understand how to write for every different kind of hardware that you might want to run a piece of software on?
[00:03:32] James Reinders: That’s the ultimate goal. And it depends on what level of programming you’re doing, how much we can abstract that for you. And if you’re at lower levels, you want access to some of those differences, but you don’t want to be frustrated by all of them. And so we hope to abstract the way the, the right amount of it for whatever level your, your application’s being written at.
[00:03:52] Camille Morhardt: That’s fascinating. One API. Thank you, James. Reinders for giving us a quick definition. What That Means: One API.
[00:03:59] James Reinders: My pleasure.
[00:03:59] Camille Morhardt: And if you’re interested in definitions–in depth and in brief–of other topics that are buzzing around us today in the world of tech, check out What That Means, a sub series of Cyber Security Inside.