Chris Lattner
๐ค SpeakerAppearances Over Time
Podcast Appearances
kernel, a numerical algorithm that actually keeps things in the accelerator instead of having to write all the way out to memory.
What's happened with these accelerators now is you get multiple levels of memory.
Like in a GPU, for example, you'll have global memory and local memory and all these things.
If you zoom way into how hardware works, the register file is actually a memory.
So the registers are like an L0 cache.
And so a lot of taking advantage of the hardware ends up being fully utilizing the full power in all of its capability.
And this has a number of problems, right?
One of which is, again, the complexity of disaster, right?
There's too much hardware.
Even if you just say, let's look at the chips from one line of vendor like Apple or Intel or whatever it is.
each version of the chip comes out with new features and they change things so that it takes more time or less time to do different things.
And you can't rewrite all the software whenever a new chip comes out, right?
And so this is where you need a much more scalable approach.
And this is what Mojo and what the modular stack provides is it provides this infrastructure and the system for factoring all this complexity and then allowing people to express algorithms.
You talk about auto-tuning, for example,
express algorithms in a more portable way so that when a new chip comes out, you don't have to rewrite it all.
So to me, I kind of joke, what is a compiler?
Well, there's many ways to explain that.
You convert thing A into thing B, and you convert source code to machine code.
You can talk about many, many things that compilers do.