back to index

David Patterson: Computer Architecture and Data Storage | Lex Fridman Podcast #104


small model | large model

link |
00:00:00.000
The following is a conversation with David Patterson, touring award winner and professor
link |
00:00:05.440
of computer science at Berkeley. He's known for pioneering contributions to RISC processor
link |
00:00:10.800
architecture used by 99% of new chips today and for co creating RAID storage. The impact that
link |
00:00:18.800
these two lines of research and development have had in our world is immeasurable. He's also one of
link |
00:00:25.040
the great educators of computer science in the world. His book with John Hennessy is how I first
link |
00:00:30.160
learned about and was humbled by the inner workings of machines at the lowest level.
link |
00:01:21.120
This episode is supported by the Jordan Harbinger Show.
link |
00:01:24.400
Go to Jordan Harbinger.com slash Lex. It's how he knows I sent you on that page. There's links
link |
00:01:30.800
to subscribe to it on Apple podcast, Spotify, and everywhere else. I've been binging on this podcast.
link |
00:01:36.560
It's amazing. Jordan is a great human being. He gets the best out of his guests, dives deep,
link |
00:01:41.600
calls them out when it's needed, and makes the whole thing fun to listen to. He's interviewed
link |
00:01:46.080
Kobe Bryant, Mark Cuban, Neil deGrasse Tyson, Garry Kasparov, and many more. I recently listened
link |
00:01:52.560
to his conversation with Frank Abagnale, author of Catch Me If You Can, and one of the world's
link |
00:01:58.080
most famous con men. Perfect podcast length and topic for a recent long distance run that I did.
link |
00:02:05.840
Again, go to Jordan Harbinger.com slash Lex to give him my love and to support this podcast.
link |
00:02:13.520
Subscribe also on Apple podcast, Spotify, and everywhere else.
link |
00:02:17.040
This show is presented by Cash App, the greatest sponsor of this podcast ever, and the number one
link |
00:02:23.280
finance app in the App Store. When you get it, use code LEX PODCAST. Cash App lets you send money
link |
00:02:29.200
to friends, buy Bitcoin, and invest in the stock market with as little as $1. Since Cash App allows
link |
00:02:35.040
you to buy Bitcoin, let me mention that cryptocurrency in the context of the history
link |
00:02:39.040
of money is fascinating. I recommend Ascent of Money as a great book on this history.
link |
00:02:44.080
Also, the audiobook is amazing. Debits and credits on Ledger started around 30,000 years ago.
link |
00:02:50.240
The US dollar created over 200 years ago, and the first decentralized cryptocurrency released just
link |
00:02:55.760
over 10 years ago. So given that history, cryptocurrency is still very much in its early
link |
00:03:00.720
days of development, but it's still aiming to and just might redefine the nature of money.
link |
00:03:06.880
So again, if you get Cash App from the App Store or Google Play, and use the code LEX PODCAST,
link |
00:03:12.640
you get $10, and Cash App will also donate $10 to FIRST, an organization that is helping to
link |
00:03:19.440
advance robotics and STEM education for young people around the world. And now, here's my
link |
00:03:25.360
conversation with David Patterson. Let's start with the big historical question. How have computers
link |
00:03:32.480
changed in the past 50 years at both the fundamental architectural level and in general, in your eyes?
link |
00:03:38.400
David Patterson Well, the biggest thing that happened was the invention of the microprocessor.
link |
00:03:42.960
So computers that used to fill up several rooms could fit inside your cell phone. And not only
link |
00:03:52.240
did they get smaller, they got a lot faster. So they're a million times faster than they were
link |
00:03:58.160
50 years ago, and they're much cheaper, and they're ubiquitous. There's 7.8 billion people
link |
00:04:06.320
on this planet. Probably half of them have cell phones right now, which is remarkable.
link |
00:04:10.960
Soterios Johnson That's probably more microprocessors than there are people.
link |
00:04:14.800
David Patterson Sure. I don't know what the ratio is,
link |
00:04:16.800
but I'm sure it's above one. Maybe it's 10 to 1 or some number like that.
link |
00:04:21.520
Soterios Johnson What is a microprocessor?
link |
00:04:23.760
David Patterson So a way to say what a microprocessor is,
link |
00:04:27.520
is to tell you what's inside a computer. So a computer forever has classically had
link |
00:04:32.240
five pieces. There's input and output, which kind of naturally, as you'd expect, is input is like
link |
00:04:38.640
speech or typing, and output is displays. There's a memory, and like the name sounds, it remembers
link |
00:04:48.880
things. So it's integrated circuits whose job is you put information in, then when you ask for it,
link |
00:04:54.480
it comes back out. That's memory. And the third part is the processor, where the microprocessor
link |
00:05:00.400
comes from. And that has two pieces as well. And that is the control, which is kind of the brain
link |
00:05:07.920
of the processor. And what's called the arithmetic unit, it's kind of the brawn of the computer. So
link |
00:05:15.440
if you think of the, as a human body, the arithmetic unit, the thing that does the
link |
00:05:19.680
number crunching is the body and the control is the brain. So those five pieces, input, output,
link |
00:05:25.280
memory, arithmetic unit, and control are, have been in computers since the very dawn. And the
link |
00:05:34.080
last two are considered the processor. So a microprocessor simply means a processor that
link |
00:05:39.440
fits on a microchip. And that was invented about, you know, 40 years ago, was the first microprocessor.
link |
00:05:46.240
It's interesting that you refer to the arithmetic unit as the, like you connected to the body and
link |
00:05:52.320
the controllers of the brain. So I guess, I never thought of it that way. It's a nice way to think
link |
00:05:57.440
of it because most of the actions the microprocessor does in terms of literally sort of computation,
link |
00:06:05.120
but the microprocessor does computation. It processes information. And most of the thing it
link |
00:06:10.160
does is basic arithmetic operations. What are the operations, by the way?
link |
00:06:16.080
It's a lot like a calculator. So there are add instructions, subtract instructions,
link |
00:06:22.720
multiply and divide. And kind of the brilliance of the invention of the computer or the processor
link |
00:06:32.960
is that it performs very trivial operations, but it just performs billions of them per second.
link |
00:06:39.120
And what we're capable of doing is writing software that can take these very trivial instructions
link |
00:06:44.880
and have them create tasks that can do things better than human beings can do today.
link |
00:06:49.440
Just looking back through your career, did you anticipate the kind of how good we would be able
link |
00:06:55.360
to get at doing these small, basic operations? How many surprises along the way where you just
link |
00:07:03.280
kind of sat back and said, wow, I didn't expect it to go this fast, this good?
link |
00:07:09.200
MG Well, the fundamental driving force is what's called Moore's law, which was named after Gordon
link |
00:07:17.280
Moore, who's a Berkeley alumnus. And he made this observation very early in what are called
link |
00:07:23.360
semiconductors. And semiconductors are these ideas, you can build these very simple switches,
link |
00:07:29.120
and you can put them on these microchips. And he made this observation over 50 years ago.
link |
00:07:34.240
He looked at a few years and said, I think what's going to happen is the number of these little
link |
00:07:38.320
switches called transistors is going to double every year for the next decade. And he said this
link |
00:07:44.960
in 1965. And in 1975, he said, well, maybe it's going to double every two years. And that what
link |
00:07:51.760
other people since named that Moore's law guided the industry. And when Gordon Moore made that
link |
00:07:58.720
prediction, he wrote a paper back in, I think, in the 70s and said, not only did this going to happen,
link |
00:08:08.720
he wrote, what would be the implications of that? And in this article from 1965,
link |
00:08:13.120
he shows ideas like computers being in cars and computers being in something that you would buy
link |
00:08:21.520
in the grocery store and stuff like that. So he kind of not only called his shot, he called the
link |
00:08:26.800
implications of it. So if you were in the computing field, and if you believed Moore's prediction,
link |
00:08:33.280
he kind of said what would be happening in the future. So it's not kind of, it's at one sense,
link |
00:08:41.360
this is what was predicted. And you could imagine it was easy to believe that Moore's law was going
link |
00:08:46.320
to continue. And so this would be the implications. On the other side, there are these kind of
link |
00:08:51.200
shocking events in your life. Like I remember driving in Marin across the Bay in San Francisco
link |
00:08:59.520
and seeing a bulletin board at a local civic center and it had a URL on it. And it was like,
link |
00:09:07.680
for the people at the time, these first URLs and that's the, you know, www select stuff with the
link |
00:09:13.760
HTTP. People thought it looked like alien writing, right? You'd see these advertisements and
link |
00:09:22.960
commercials or bulletin boards that had this alien writing on it. So for the lay people, it's like,
link |
00:09:26.560
what the hell is going on here? And for those people in the industry, it was, oh my God,
link |
00:09:32.000
this stuff is getting so popular, it's actually leaking out of our nerdy world into the real
link |
00:09:37.200
world. So that, I mean, there was events like that. I think another one was, I remember in the
link |
00:09:42.320
early days of the personal computer, when we started seeing advertisements in magazines
link |
00:09:46.800
for personal computers, like it's so popular that it's made the newspapers. So at one hand,
link |
00:09:52.480
you know, Gordon Moore predicted it and you kind of expected it to happen, but when it really hit
link |
00:09:56.720
and you saw it affecting society, it was shocking. So maybe taking a step back and looking both
link |
00:10:05.200
the engineering and philosophical perspective, what do you see as the layers of abstraction
link |
00:10:11.520
in the computer? Do you see a computer as a set of layers of abstractions?
link |
00:10:16.080
Dr. Justin Marchegiani Yeah, I think that's one of the things that computer science
link |
00:10:20.880
fundamentals is the, these things are really complicated in the way we cope with complicated
link |
00:10:26.880
software and complicated hardware is these layers of abstraction. And that simply means that we,
link |
00:10:33.840
you know, suspend disbelief and pretend that the only thing you know is that layer,
link |
00:10:39.520
and you don't know anything about the layer below it. And that's the way we can make very complicated
link |
00:10:44.240
things. And probably it started with hardware that that's the way it was done, but it's been
link |
00:10:50.720
proven extremely useful. And, you know, I would say in a modern computer today, there might be
link |
00:10:56.400
10 or 20 layers of abstraction, and they're all trying to kind of enforce this contract is all
link |
00:11:02.880
you know is this interface. There's a set of commands that you can, are allowed to use,
link |
00:11:09.840
and you stick to those commands, and we will faithfully execute that. And it's like peeling
link |
00:11:13.840
the air layers of a London, of an onion, you get down, there's a new set of layers and so forth.
link |
00:11:19.200
So for people who want to study computer science, the exciting part about it is you can
link |
00:11:27.040
keep peeling those layers. You take your first course, and you might learn to program in Python,
link |
00:11:32.000
and then you can take a follow on course, and you can get it down to a lower level language like C,
link |
00:11:37.680
and you know, you can go and then you can, if you want to, you can start getting into the hardware
link |
00:11:42.000
layers, and you keep getting down all the way to that transistor that I talked about that Gordon
link |
00:11:47.840
Moore predicted. And you can understand all those layers all the way up to the highest level
link |
00:11:53.680
application software. So it's a very kind of magnetic field. If you're interested, you can go
link |
00:12:02.320
into any depth and keep going. In particular, what's happening right now, or it's happened
link |
00:12:08.240
in software the last 20 years and recently in hardware, there's getting to be open source
link |
00:12:12.480
versions of all of these things. So what open source means is what the engineer, the programmer
link |
00:12:18.960
designs, it's not secret, the belonging to a company, it's out there on the worldwide web,
link |
00:12:26.320
so you can see it. So you can look at, for lots of pieces of software that you use, you can see
link |
00:12:33.600
exactly what the programmer does if you want to get involved. That used to stop at the hardware.
link |
00:12:39.920
Recently, there's been an effort to make open source hardware and those interfaces open,
link |
00:12:46.240
so you can see that. So instead of before you had to stop at the hardware, you can now start going
link |
00:12:51.120
layer by layer below that and see what's inside there. So it's a remarkable time that for the
link |
00:12:56.480
interested individual can really see in great depth what's really going on in the computers
link |
00:13:01.920
that power everything that we see around us. Are you thinking also when you say open source at
link |
00:13:07.680
the hardware level, is this going to the design architecture instruction set level or is it going
link |
00:13:14.560
to literally the manufacturer of the actual hardware, of the actual chips, whether that's ASIC
link |
00:13:24.960
specialized to a particular domain or the general? Yeah, so let's talk about that a little bit.
link |
00:13:30.000
So when you get down to the bottom layer of software, the way software talks to hardware
link |
00:13:38.640
is in a vocabulary. And what we call that vocabulary, we call that, the words of that
link |
00:13:45.120
vocabulary are called instructions. And the technical term for the vocabulary is instruction
link |
00:13:50.720
set. So those instructions are like we talked about earlier, that can be instructions like
link |
00:13:55.600
add, subtract and multiply, divide. There's instructions to put data into memory, which
link |
00:14:01.920
is called a store instruction and to get data back, which is called the load instructions.
link |
00:14:05.520
And those simple instructions go back to the very dawn of computing in 1950, the commercial
link |
00:14:12.800
computer had these instructions. So that's the instruction set that we're talking about.
link |
00:14:17.600
So up until, I'd say 10 years ago, these instruction sets were all proprietary. So
link |
00:14:23.440
a very popular one is owned by Intel, the one that's in the cloud and in all the PCs in the
link |
00:14:29.840
world. Intel owns that instruction set. It's referred to as the x86. There've been a sequence
link |
00:14:36.320
of ones that the first number was called 8086. And since then, there's been a lot of numbers,
link |
00:14:41.920
but they all end in 86. So there's been that kind of family of instruction sets.
link |
00:14:47.920
And that's proprietary.
link |
00:14:49.440
That's proprietary. The other one that's very popular is from ARM. That kind of powers all
link |
00:14:55.920
the cell phones in the world, all the iPads in the world, and a lot of things that are so called
link |
00:15:02.000
Internet of Things devices. ARM and that one is also proprietary. ARM will license it to people
link |
00:15:09.600
for a fee, but they own that. So the new idea that got started at Berkeley kind of unintentionally
link |
00:15:16.160
10 years ago is early in my career, we pioneered a way to do these vocabularies instruction sets
link |
00:15:25.680
that was very controversial at the time. At the time in the 1980s, conventional wisdom was these
link |
00:15:32.320
vocabularies instruction sets should have powerful instructions. So polysyllabic kind of words,
link |
00:15:38.800
you can think of that. And so instead of just add, subtract, and multiply, they would have
link |
00:15:44.560
polynomial, divide, or sort a list. And the hope was of those powerful vocabularies,
link |
00:15:51.200
that'd make it easier for software. So we thought that didn't make sense for microprocessors. There
link |
00:15:57.760
was people at Berkeley and Stanford and IBM who argued the opposite. And what we called that was
link |
00:16:03.600
a reduced instruction set computer. And the abbreviation was RISC. And typical for computer
link |
00:16:10.480
people, we use the abbreviation start pronouncing it. So risk was the thing. So we said for
link |
00:16:15.920
microprocessors, which with Gordon's Moore is changing really fast, we think it's better to have
link |
00:16:21.440
a pretty simple set of instructions, reduced set of instructions. That that would be a better way
link |
00:16:28.480
to build microprocessors since they're going to be changing so fast due to Moore's law. And then
link |
00:16:32.800
we'll just use standard software to cover the use, generate more of those simple instructions. And
link |
00:16:41.120
one of the pieces of software that's in that software stack going between these layers of
link |
00:16:45.760
abstractions is called a compiler. And it's basically translates, it's a translator between
link |
00:16:50.400
levels. We said the translator will handle that. So the technical question was, well, since there
link |
00:16:57.200
are these reduced instructions, you have to execute more of them. Yeah, that's right. But
link |
00:17:01.920
maybe you could execute them faster. Yeah, that's right. They're simpler so they could go faster,
link |
00:17:05.840
but you have to do more of them. So what's that trade off look like? And it ended up that we ended
link |
00:17:12.080
up executing maybe 50% more instructions, maybe a third more instructions, but they ran four times
link |
00:17:19.040
faster. So this risk, controversial risk ideas proved to be maybe factors of three or four
link |
00:17:26.000
better. I love that this idea was controversial and almost kind of like rebellious. So that's
link |
00:17:33.280
in the context of what was more conventional is the complex instructional set computing. So
link |
00:17:40.080
how would you pronounce that? CISC. CISC versus risk. Risk versus CISC. And believe it or not,
link |
00:17:46.400
this sounds very, who cares about this? It was violently debated at several conferences. It's
link |
00:17:54.720
like, what's the right way to go? And people thought risk was a deevolution. We're going to
link |
00:18:01.280
make software worse by making those instructions simpler. And there are fierce debates at several
link |
00:18:07.200
conferences in the 1980s. And then later in the 80s, it kind of settled to these benefits.
link |
00:18:14.400
It's not completely intuitive to me why risk has, for the most part, won.
link |
00:18:19.600
Yeah. So why did that happen? Yeah. Yeah. And maybe I can sort of say a bunch of dumb things
link |
00:18:24.240
that could lay the land for further commentary. So to me, this is kind of an interesting thing.
link |
00:18:30.640
If you look at C++ versus C, with modern compilers, you really could write faster code
link |
00:18:36.960
with C++. So relying on the compiler to reduce your complicated code into something simple and
link |
00:18:44.160
fast. So to me, comparing risk, maybe this is a dumb question, but why is it that focusing the
link |
00:18:53.360
definition of the design of the instruction set on very few simple instructions in the long run
link |
00:19:00.240
provide faster execution versus coming up with, like you said, a ton of complicated instructions
link |
00:19:09.920
that over time, you know, years, maybe decades, you come up with compilers that can reduce those
link |
00:19:16.160
into simple instructions for you. Yeah. So let's try and split that into two pieces.
link |
00:19:22.640
So if the compiler can do that for you, if the compiler can take, you know, a complicated program
link |
00:19:29.120
and produce simpler instructions, then the programmer doesn't care, right? I don't care just
link |
00:19:37.120
how fast is the computer I'm using, how much does it cost? And so what happened kind of in the
link |
00:19:43.520
software industry is right around before the 1980s, critical pieces of software were still written
link |
00:19:50.560
not in languages like C or C++, they were written in what's called assembly language, where there's
link |
00:19:57.600
this kind of humans writing exactly at the instructions at the level that a computer can
link |
00:20:04.320
understand. So they were writing add, subtract, multiply, you know, instructions. It's very tedious.
link |
00:20:11.040
But the belief was to write this lowest level of software that people use, which are called operating
link |
00:20:17.440
systems, they had to be written in assembly language because these high level languages were just too
link |
00:20:22.000
inefficient. They were too slow, or the programs would be too big. So that changed with a famous
link |
00:20:31.600
operating system called Unix, which is kind of the grandfather of all the operating systems today.
link |
00:20:37.680
So Unix demonstrated that you could write something as complicated as an operating system in a
link |
00:20:43.280
language like C. So once that was true, then that meant we could hide the instruction set from the
link |
00:20:51.760
programmer. And so that meant then it didn't really matter. The programmer didn't have to write
link |
00:20:58.480
lots of these simple instructions, that was up to the compiler. So that was part of our arguments
link |
00:21:02.960
for risk is, if you were still writing assembly language, there's maybe a better case for CISC
link |
00:21:07.440
instructions. But if the compiler can do that, it's going to be, you know, that's done once the
link |
00:21:13.840
computer translates at once. And then every time you run the program, it runs at this potentially
link |
00:21:19.280
simpler instructions. And so that was the debate, right? And people would acknowledge that the
link |
00:21:26.960
simpler instructions could lead to a faster computer. You can think of monosyllabic instructions,
link |
00:21:33.040
you could say them, you know, if you think of reading, you can probably read them faster or say
link |
00:21:36.720
them faster than long instructions. The same thing, that analogy works pretty well for hardware.
link |
00:21:42.080
And as long as you didn't have to read a lot more of those instructions, you could win. So that's
link |
00:21:46.880
kind of, that's the basic idea for risk. But it's interesting that in that discussion of Unix and C,
link |
00:21:54.160
that there's only one step of levels of abstraction from the code that's really the closest to the
link |
00:22:02.080
machine to the code that's written by human. It's, at least to me again, perhaps a dumb intuition,
link |
00:22:09.840
but it feels like there might've been more layers, sort of different kinds of humans stacked on top
link |
00:22:16.000
of each other. So what's true and not true about what you said is several of the layers of software,
link |
00:22:27.120
like, so the, if you, two layers would be, suppose we just talked about two layers,
link |
00:22:32.560
that would be the operating system, like you get from Microsoft or from Apple, like iOS,
link |
00:22:38.240
or the Windows operating system. And let's say applications that run on top of it, like Word
link |
00:22:44.560
or Excel. So both the operating system could be written in C and the application could be written
link |
00:22:52.400
in C. But you could construct those two layers and the applications absolutely do call upon the
link |
00:22:58.880
operating system. And the change was that both of them could be written in higher level languages.
link |
00:23:04.720
So it's one step of a translation, but you can still build many layers of abstraction
link |
00:23:10.160
of software on top of that. And that's how things are done today. So still today,
link |
00:23:17.520
many of the layers that you'll deal with, you may deal with debuggers, you may deal with linkers,
link |
00:23:25.600
there's libraries. Many of those today will be written in C++, say, even though that language is
link |
00:23:34.080
pretty ancient. And even the Python interpreter is probably written in C or C++. So lots of
link |
00:23:41.120
layers there are probably written in these, some old fashioned efficient languages that
link |
00:23:48.080
still take one step to produce these instructions, produce RISC instructions, but they're composed,
link |
00:23:56.240
each layer of software invokes one another through these interfaces. And you can get 10 layers of
link |
00:24:02.800
software that way. So in general, the RISC was developed here at Berkeley? It was kind of the
link |
00:24:08.720
three places that were these radicals that advocated for this against the rest of community
link |
00:24:14.480
were IBM, Berkeley, and Stanford. You're one of these radicals. And how radical did you feel?
link |
00:24:24.400
How confident did you feel? How doubtful were you that RISC might be the right approach? Because
link |
00:24:31.680
it may, you can also intuit that is kind of taking a step back into simplicity, not forward into
link |
00:24:37.440
simplicity. Yeah, no, it was easy to make, yeah, it was easy to make the argument against it. Well,
link |
00:24:44.880
this was my colleague, John Hennessy at Stanford Nine. We were both assistant professors. And
link |
00:24:50.640
for me, I just believed in the power of our ideas. I thought what we were saying made sense.
link |
00:24:57.040
Moore's law is going to move fast. The other thing that I didn't mention is one of the surprises of
link |
00:25:03.200
these complex instruction sets. You could certainly write these complex instructions
link |
00:25:08.240
if the programmer is writing them themselves. It turned out to be kind of difficult for the
link |
00:25:13.440
compiler to generate those complex instructions. Kind of ironically, you'd have to find the right
link |
00:25:18.240
circumstances that just exactly fit this complex instruction. It was actually easier for the
link |
00:25:22.880
compiler to generate these simple instructions. So not only did these complex instructions make
link |
00:25:28.720
the hardware more difficult to build, often the compiler wouldn't even use them. And so
link |
00:25:35.280
it's harder to build. The compiler doesn't use them that much. The simple instructions go better
link |
00:25:40.320
with Moore's law. The number of transistors is doubling every two years. So we're going to have,
link |
00:25:46.320
you want to reduce the time to design the microprocessor, that may be more important
link |
00:25:51.360
than these number of instructions. So I think we believed that we were right, that this was
link |
00:25:58.160
the best idea. Then the question became in these debates, well, yeah, that's a good technical idea,
link |
00:26:03.840
but in the business world, this doesn't matter. There's other things that matter. It's like
link |
00:26:08.720
arguing that if there's a standard with the railroad tracks and you've come up with a better
link |
00:26:14.640
width, but the whole world is covered in railroad tracks, so your ideas have no chance of success.
link |
00:26:20.240
Right. Commercial success. It was technically right, but commercially it'll be insignificant.
link |
00:26:25.440
Yeah, it's kind of sad that this world, the history of human civilization is full of good ideas that
link |
00:26:33.280
lost because somebody else came along first with a worse idea. And it's good that in the
link |
00:26:39.040
computing world, at least some of these have, well, you could, I mean, there's probably still
link |
00:26:43.600
CISC people that say, yeah, there still are. And what happened was, what was interesting, Intel,
link |
00:26:50.640
a bunch of the CISC companies with CISC instruction sets of vocabulary, they gave up,
link |
00:26:57.360
but not Intel. What Intel did to its credit, because Intel's vocabulary was in the personal
link |
00:27:06.320
computer. And so that was a very valuable vocabulary because the way we distribute software
link |
00:27:11.760
is in those actual instructions. It's in the instructions of that instruction set. So
link |
00:27:17.280
you don't get that source code, what the programmers wrote. You get, after it's been translated into
link |
00:27:22.480
the lowest level, that's if you were to get a floppy disk or download software, it's in the
link |
00:27:27.440
instructions of that instruction set. So the x86 instruction set was very valuable. So what Intel
link |
00:27:33.680
did cleverly and amazingly is they had their chips in hardware do a translation step.
link |
00:27:40.960
They would take these complex instructions and translate them into essentially in RISC instructions
link |
00:27:45.280
in hardware on the fly, at gigahertz clock speeds. And then any good idea that RISC people had,
link |
00:27:52.720
they could use, and they could still be compatible with this really valuable PC software base,
link |
00:28:01.200
which also had very high volumes, 100 million personal computers per year. So the CISC architecture
link |
00:28:09.040
in the business world was actually won in this PC era. So just going back to the
link |
00:28:20.480
time of designing RISC, when you design an instruction set architecture, do you think
link |
00:28:27.680
like a programmer? Do you think like a microprocessor engineer? Do you think like a
link |
00:28:33.200
artist, a philosopher? Do you think in software and hardware? I mean, is it art? Is it science?
link |
00:28:40.240
Yeah, I'd say, I think designing a good instruction set is an art. And I think you're trying to
link |
00:28:47.760
balance the simplicity and speed of execution with how well easy it will be for compilers
link |
00:28:57.600
to use it. You're trying to create an instruction set that everything in there can be used by
link |
00:29:03.120
compilers. There's not things that are missing that'll make it difficult for the program to run.
link |
00:29:10.720
They run efficiently, but you want it to be easy to build as well. So I'd say you're thinking
link |
00:29:16.160
hardware, trying to find a hardware software compromise that'll work well. And it's a matter
link |
00:29:24.320
of taste. It's kind of fun to build instruction sets. It's not that hard to build an instruction
link |
00:29:30.880
set, but to build one that catches on and people use, you have to be fortunate to be
link |
00:29:38.000
the right place in the right time or have a design that people really like. Are you using metrics?
link |
00:29:43.200
So is it quantifiable? Because you kind of have to anticipate the kind of programs that people
link |
00:29:49.200
write ahead of time. So can you use numbers? Can you use metrics? Can you quantify something ahead
link |
00:29:56.080
of time? Or is this, again, that's the art part where you're kind of anticipating? No, it's a big
link |
00:30:00.960
change. Kind of what happened, I think from Hennessy's and my perspective in the 1980s,
link |
00:30:07.040
what happened was going from kind of really, you know, taste and hunches to quantifiable. And in
link |
00:30:17.040
fact, he and I wrote a textbook at the end of the 1980s called Computer Architecture, A Quantitative
link |
00:30:22.880
Approach. I heard of that. And it's the thing, it had a pretty big impact in the field because we
link |
00:30:30.320
went from textbooks that kind of listed, so here's what this computer does, and here's the pros and
link |
00:30:36.320
cons, and here's what this computer does and pros and cons to something where there were formulas
link |
00:30:40.560
and equations where you could measure things. So specifically for instruction sets, what we do
link |
00:30:47.680
and some other fields do is we agree upon a set of programs, which we call benchmarks,
link |
00:30:53.680
and a suite of programs, and then you develop both the hardware and the compiler and you get
link |
00:31:00.960
numbers on how well your computer does given its instruction set and how well you implemented it in
link |
00:31:09.360
your microprocessor and how good your compilers are. In computer architecture, you know, using
link |
00:31:14.960
professor's terms, we grade on a curve rather than grade on an absolute scale. So when you say,
link |
00:31:20.400
you know, these programs run this fast, well, that's kind of interesting, but how do you know
link |
00:31:24.640
it's better? Well, you compare it to other computers at the same time. So the best way we
link |
00:31:29.840
know how to turn it into a kind of more science and experimental and quantitative is to compare
link |
00:31:37.680
yourself to other computers of the same era that have the same access to the same kind of technology
link |
00:31:41.920
on commonly agreed benchmark programs.
link |
00:31:44.940
So maybe to toss up two possible directions we can go. One is what are the different tradeoffs
link |
00:31:51.520
in designing architectures? We've been already talking about SISC and RISC, but maybe a little
link |
00:31:56.640
bit more detail in terms of specific features that you were thinking about. And the other side is
link |
00:32:03.680
what are the metrics that you're thinking about when looking at these tradeoffs?
link |
00:32:08.160
Yeah, let's talk about the metrics. So during these debates, we actually had kind of a hard
link |
00:32:14.160
time explaining, convincing people the ideas, and partly we didn't have a formula to explain it.
link |
00:32:20.240
And a few years into it, we hit upon a formula that helped explain what was going on. And
link |
00:32:27.600
I think if we can do this, see how it works orally to do this. So if I can do a formula
link |
00:32:34.080
orally, let's see. So fundamentally, the way you measure performance is how long does it take a
link |
00:32:40.720
program to run? A program, if you have 10 programs, and typically these benchmarks were sweet because
link |
00:32:47.360
you'd want to have 10 programs so they could represent lots of different applications. So for
link |
00:32:51.600
these 10 programs, how long does it take to run? Well now, when you're trying to explain why it
link |
00:32:56.080
took so long, you could factor how long it takes a program to run into three factors.
link |
00:33:01.120
One of the first one is how many instructions did it take to execute? So that's the what we've been
link |
00:33:06.240
talking about, you know, the instructions of Alchemy. How many did it take? All right. The
link |
00:33:11.360
next question is how long did each instruction take to run on average? So you multiply the number
link |
00:33:17.840
of instructions times how long it took to run, and that gets you time. Okay, so that's, but now let's
link |
00:33:23.520
look at this metric of how long did it take the instruction to run. Well, it turns out,
link |
00:33:28.240
the way we could build computers today is they all have a clock, and you've seen this when you,
link |
00:33:33.280
if you buy a microprocessor, it'll say 3.1 gigahertz or 2.5 gigahertz, and more gigahertz is
link |
00:33:39.760
good. Well, what that is is the speed of the clock. So 2.5 gigahertz turns out to be 4 billionths of
link |
00:33:47.600
instruction or 4 nanoseconds. So that's the clock cycle time. But there's another factor, which is
link |
00:33:54.160
what's the average number of clock cycles it takes per instruction? So it's number of instructions,
link |
00:33:59.840
average number of clock cycles, and the clock cycle time. So in these risk sis debates, they
link |
00:34:05.760
would concentrate on, but risk needs to take more instructions, and we'd argue maybe the clock cycle
link |
00:34:12.800
is faster, but what the real big difference was was the number of clock cycles per instruction.
link |
00:34:17.680
Per instruction, that's fascinating. What about the mess of, the beautiful mess of parallelism in the
link |
00:34:25.920
whole picture? Parallelism, which has to do with, say, how many instructions could execute in parallel
link |
00:34:31.280
and things like that, you could think of that as affecting the clock cycles per instruction,
link |
00:34:35.440
because it's the average clock cycles per instruction. So when you're running a program,
link |
00:34:39.280
if it took 100 billion instructions, and on average it took two clock cycles per instruction,
link |
00:34:45.840
and they were four nanoseconds, you could multiply that out and see how long it took to run.
link |
00:34:49.840
And there's all kinds of tricks to try and reduce the number of clock cycles per instruction.
link |
00:34:55.440
But it turned out that the way they would do these complex instructions is they would actually
link |
00:35:00.400
build what we would call an interpreter in a simpler, a very simple hardware interpreter.
link |
00:35:05.840
But it turned out that for the sis constructions, if you had to use one of those interpreters,
link |
00:35:10.720
it would be like 10 clock cycles per instruction, where the risk constructions could be two. So
link |
00:35:16.160
there'd be this factor of five advantage in clock cycles per instruction. We have to execute, say,
link |
00:35:21.280
25 or 50 percent more instructions, so that's where the win would come. And then you could
link |
00:35:25.440
make an argument whether the clock cycle times are the same or not. But pointing out that we
link |
00:35:30.080
could divide the benchmark results time per program into three factors, and the biggest
link |
00:35:36.000
difference between RISC and SIS was the clock cycles per, you execute a few more instructions,
link |
00:35:40.640
but the clock cycles per instruction is much less. And that was what this debate, once we
link |
00:35:46.000
made that argument, then people said, oh, okay, I get it. And so we went from, it was outrageously
link |
00:35:53.280
controversial in, you know, 1982 that maybe probably by 1984 or so, people said, oh, yeah,
link |
00:35:59.520
technically, they've got a good argument. What are the instructions in the RISC instruction set,
link |
00:36:05.680
just to get an intuition? Okay. 1995, I was asked to predict the future of what microprocessor
link |
00:36:13.600
could future. So I, and I'd seen these predictions and usually people predict something outrageous
link |
00:36:20.240
just to be entertaining, right? And so my prediction for 2020 was, you know, things are
link |
00:36:25.920
going to be pretty much, they're going to look very familiar to what they are. And they are,
link |
00:36:30.080
and if you were to read the article, you know, the things I said are pretty much true. The
link |
00:36:34.400
instructions that have been around forever are kind of the same. And that's the outrageous
link |
00:36:38.880
prediction, actually. Yeah. Given how fast computers have been going. Well, and you know,
link |
00:36:42.160
Moore's law was going to go on, we thought for 25 more years, you know, who knows, but kind of the
link |
00:36:47.840
surprising thing, in fact, you know, Hennessy and I, you know, won the ACM, AM, Turing award for
link |
00:36:55.120
both the RISC instruction set contributions and for that textbook I mentioned. But, you know,
link |
00:37:00.160
we're surprised that here we are 35, 40 years later after we did our work and the conventionalism
link |
00:37:10.400
of the best way to do instruction sets is still those RISC instruction sets that looked very
link |
00:37:15.120
similar to what we looked like, you know, we did in the 1980s. So those, surprisingly, there hasn't
link |
00:37:21.200
been some radical new idea, even though we have, you know, a million times as many transistors as
link |
00:37:26.880
we had back then. But what are the basic constructions and how do they change over the
link |
00:37:32.720
years? So we're talking about addition, subtraction, these are the specific. So the things that are in
link |
00:37:39.200
a calculator are in a computer. So any of the buttons that are in the calculator in the computer,
link |
00:37:44.640
so the, so if there's a memory function key, and like I said, those are, turns into putting
link |
00:37:50.160
something in memory is called a store, bring something back to load. Just a quick tangent.
link |
00:37:54.720
When you say memory, what does memory mean? Well, I told you there were five pieces of a computer.
link |
00:38:00.400
And if you remember in a calculator, there's a memory key. So you want to have intermediate
link |
00:38:04.720
calculation and bring it back later. So you'd hit the memory plus key M plus maybe, and it would
link |
00:38:09.680
put that into memory and then you'd hit an RM like recurrence section and then bring it back
link |
00:38:14.320
on the display. So you don't have to type it. You don't have to write it down and bring it back
link |
00:38:17.360
again. So that's exactly what memory is. You can put things into it as temporary storage and bring
link |
00:38:22.880
it back when you need it later. So that's memory and loads and stores. But the big thing, the
link |
00:38:28.160
difference between a computer and a calculator is that the computer can make decisions. And
link |
00:38:35.440
amazingly, decisions are as simple as, is this value less than zero? Or is this value bigger
link |
00:38:41.600
than that value? And those instructions, which are called conditional branch instructions,
link |
00:38:47.440
is what give computers all its power. If you were in the early days of computing before
link |
00:38:53.200
what's called the general purpose microprocessor, people would write these instructions kind of in
link |
00:38:58.560
hardware, but it couldn't make decisions. It would do the same thing over and over again.
link |
00:39:05.520
With the power of having branch instructions, it can look at things and make decisions
link |
00:39:09.680
automatically. And it can make these decisions billions of times per second. And amazingly
link |
00:39:15.200
enough, we can get, thanks to advanced machine learning, we can create programs that can do
link |
00:39:20.640
something smarter than human beings can do. But if you go down that very basic level, it's the
link |
00:39:25.600
instructions are the keys on the calculator, plus the ability to make decisions, these conditional
link |
00:39:30.960
branch instructions. And all decisions fundamentally can be reduced down to these
link |
00:39:34.960
branch instructions. Yeah. So in fact, and so going way back in the stack back to,
link |
00:39:42.240
we did four RISC projects at Berkeley in the 1980s. They did a couple at Stanford
link |
00:39:47.200
in the 1980s. In 2010, we decided we wanted to do a new instruction set learning from the mistakes
link |
00:39:54.800
of those RISC architectures in the 1980s. And that was done here at Berkeley almost exactly
link |
00:40:00.640
10 years ago. And the people who did it, I participated, but Krzysztof Sanowicz and others
link |
00:40:07.200
drove it. They called it RISC 5 to honor those RISC, the four RISC projects of the 1980s.
link |
00:40:13.840
So what does RISC 5 involve? So RISC 5 is another instruction set of vocabulary. It's learned from
link |
00:40:21.200
the mistakes of the past, but it still has, if you look at the, there's a core set of instructions
link |
00:40:25.680
that's very similar to the simplest architectures from the 1980s. And the big difference about RISC
link |
00:40:31.280
5 is it's open. So I talked early about proprietary versus open software. So this is an instruction
link |
00:40:41.920
set. So it's a vocabulary, it's not hardware, but by having an open instruction set, we can have
link |
00:40:47.920
open source implementations, open source processors that people can use. Where do you see that
link |
00:40:54.960
going? It's a really exciting possibility, but you're just like in the scientific American,
link |
00:41:00.080
if you were to predict 10, 20, 30 years from now, that kind of ability to utilize open source
link |
00:41:07.840
instruction set architectures like RISC 5, what kind of possibilities might that unlock?
link |
00:41:13.600
Yeah. And so just to make it clear, because this is confusing, the specification of RISC 5 is
link |
00:41:20.320
something that's like in a textbook, there's books about it. So that's defining an interface.
link |
00:41:27.520
There's also the way you build hardware is you write it in languages that are kind of like C,
link |
00:41:33.280
but they're specialized for hardware that gets translated into hardware. And so these
link |
00:41:39.440
implementations of this specification are the open source. So they're written in something
link |
00:41:44.960
that's called Verilog or VHDL, but it's put up on the web, just like you can see the C++ code for
link |
00:41:53.120
Linux on the web. So that's the open instruction set enables open source implementations of RISC 5.
link |
00:42:00.560
So you can literally build a processor using this instruction set.
link |
00:42:04.080
People are, people are. So what happened to us that the story was this was developed here for
link |
00:42:09.360
our use to do our research. And we made it, we licensed under the Berkeley Software Distribution
link |
00:42:15.440
License, like a lot of things get licensed here. So other academics use it, they wouldn't be afraid
link |
00:42:19.760
to use it. And then about 2014, we started getting complaints that we were using it in our research
link |
00:42:27.200
and in our courses. And we got complaints from people in industries, why did you change your
link |
00:42:32.160
instruction set between the fall and the spring semester? And well, we get complaints from
link |
00:42:37.840
industrial time. Why the hell do you care what we do with our instruction set? And then when we
link |
00:42:42.400
talked to him, we found out there was this thirst for this idea of an open instruction set
link |
00:42:46.960
architecture. And they had been looking for one. They stumbled upon ours at Berkeley, thought it
link |
00:42:51.600
was, boy, this looks great. We should use this one. And so once we realized there is this need
link |
00:42:58.400
for an open instruction set architecture, we thought that's a great idea. And then we started
link |
00:43:02.960
supporting it and tried to make it happen. So this was kind of, we accidentally stumbled into this
link |
00:43:09.600
and to this need and our timing was good. And so it's really taking off. There's,
link |
00:43:16.480
you know, universities are good at starting things, but they're not good at sustaining things. So like
link |
00:43:20.800
Linux has a Linux foundation, there's a RISC 5 foundation that we started. There's an annual
link |
00:43:26.640
conferences. And the first one was done, I think, January of 2015. And the one that was just last
link |
00:43:32.720
December in it, you know, it had 50 people at it. And this one last December had, I don't know,
link |
00:43:38.880
1700 people were at it and the companies excited all over the world. So if predicting into the
link |
00:43:44.880
future, you know, if we were doing 25 years, I would predict that RISC 5 will be, you know,
link |
00:43:51.040
possibly the most popular instruction set architecture out there, because it's a pretty
link |
00:43:57.120
good instruction set architecture and it's open and free. And there's no reason lots of people
link |
00:44:03.440
shouldn't use it. And there's benefits just like Linux is so popular today compared to 20 years
link |
00:44:10.000
ago. And, you know, the fact that you can get access to it for free, you can modify it, you can
link |
00:44:17.360
improve it for all those same arguments. And so people collaborate to make it a better system
link |
00:44:22.480
for everybody to use. And that works in software. And I expect the same thing will happen in
link |
00:44:26.640
hardware. So if you look at ARM, Intel, MIPS, if you look at just the lay of the land,
link |
00:44:34.080
and what do you think, just for me, because I'm not familiar how difficult this kind of transition
link |
00:44:42.000
would, how much challenges this kind of transition would entail, do you see,
link |
00:44:50.400
let me ask my dumb question in another way.
link |
00:44:52.240
No, that's, I know where you're headed. Well, there's a bunch, I think the thing you point out,
link |
00:44:57.280
there's these very popular proprietary instruction sets, the x86.
link |
00:45:02.400
And so how do we move to RISC 5 potentially in sort of in the span of 5, 10, 20 years,
link |
00:45:09.040
a kind of unification, given that the devices, the kind of way we use devices,
link |
00:45:15.360
IoT, mobile devices, and the cloud keeps changing?
link |
00:45:20.080
Well, part of it, a big piece of it is the software stack. And right now, looking forward,
link |
00:45:27.920
there seem to be three important markets. There's the cloud. And the cloud is simply
link |
00:45:34.720
companies like Alibaba and Amazon and Google, Microsoft, having these giant data centers with
link |
00:45:42.720
tens of thousands of servers in maybe a hundred of these data centers all over the world.
link |
00:45:48.800
And that's what the cloud is. So the computer that dominates the cloud is the x86 instruction set.
link |
00:45:54.560
So the instruction sets used in the cloud are the x86, almost 100% of that today is x86.
link |
00:46:03.040
The other big thing are cell phones and laptops. Those are the big things today.
link |
00:46:08.640
I mean, the PC is also dominated by the x86 instruction set, but those sales are dwindling.
link |
00:46:14.480
You know, there's maybe 200 million PCs a year, and there's one and a half billion phones a year.
link |
00:46:21.600
There's numbers like that. So for the phones, that's dominated by ARM.
link |
00:46:26.800
And now, and a reason that I talked about the software stacks, and the third category is
link |
00:46:33.920
Internet of Things, which is basically embedded devices, things in your cars and your microwaves
link |
00:46:38.160
everywhere. So what's different about those three categories is for the cloud, the software that
link |
00:46:45.360
runs in the cloud is determined by these companies, Alibaba, Amazon, Google, Microsoft. So they
link |
00:46:51.600
control that software stack. For the cell phones, there's both for Android and Apple, the software
link |
00:46:58.320
they supply, but both of them have marketplaces where anybody in the world can build software.
link |
00:47:03.760
And that software is translated or, you know, compiled down and shipped in the vocabulary of ARM.
link |
00:47:11.680
So that's what's referred to as binary compatible because the actual, it's the instructions are
link |
00:47:18.560
turned into numbers, binary numbers, and shipped around the world.
link |
00:47:21.760
And sorry, just a quick interruption. So ARM, what is ARM? ARM is an instruction set, like a risk based...
link |
00:47:29.120
Yeah, it's a risk based instruction set. It's a proprietary one. ARM stands for Advanced Risk
link |
00:47:36.400
Machine. ARM is the name where the company is. So it's a proprietary risk architecture.
link |
00:47:41.040
So, and it's been around for a while and it's, you know, the, surely the most popular instruction set
link |
00:47:50.000
in the world right now. They, every year, billions of chips are using the ARM design in this post PC
link |
00:47:56.800
era. Was it one of the early risk adopters of the risk idea? Yeah. The first ARM goes back,
link |
00:48:03.120
I don't know, 86 or so. So Berkeley instead did their work in the early 80s. The ARM guys needed
link |
00:48:09.840
an instruction set and they read our papers and it heavily influenced them. So getting back to my
link |
00:48:17.360
story, what about Internet of Things? Well, software is not shipped in Internet of Things. It's the
link |
00:48:22.960
embedded device people control that software stack. So the opportunities for risk five,
link |
00:48:29.680
everybody thinks, is in the Internet of Things embedded things because there's no dominant
link |
00:48:34.640
player like there is in the cloud or the smartphones. And, you know, it's, it's,
link |
00:48:41.920
doesn't have a lot of licenses associated with, and you can enhance the instruction set if you want.
link |
00:48:46.720
And it's, and people have looked at instruction sets and think it's a very good instruction set.
link |
00:48:52.800
So it appears to be very popular there. It's possible that in the cloud people,
link |
00:48:59.840
those companies control their software stacks. So it's possible that they would decide to use
link |
00:49:05.920
risk five if we're talking about 10 and 20 years in the future. The one that would be harder would
link |
00:49:10.880
be the cell phones. Since people ship software in the ARM instruction set that you'd think be
link |
00:49:16.160
the more difficult one. But if risk five really catches on and, you know, you could,
link |
00:49:20.720
in a period of a decade, you can imagine that's changing over too. Do you have a sense why risk
link |
00:49:25.920
five or ARM has dominated? You mentioned these three categories. Why has, why did ARM dominate,
link |
00:49:31.200
why does it dominate the mobile device space? And maybe my naive intuition is that there are some
link |
00:49:38.560
aspects of power efficiency that are important that somehow come along with risk. Well, part of it is
link |
00:49:44.000
for these old CIS construction sets, like in the x86, it was more expensive to these for, you know,
link |
00:49:55.920
they're older, so they have disadvantages in them because they were designed 40 years ago. But also
link |
00:50:01.760
they have to translate in hardware from CIS constructions to risk constructions on the fly.
link |
00:50:06.720
And that costs both silicon area that the chips are bigger to be able to do that.
link |
00:50:12.240
And it uses more power. So ARM has, which has, you know, followed this risk philosophy is
link |
00:50:18.240
seen to be much more energy efficient. And in today's computer world, both in the cloud
link |
00:50:23.760
and the cell phone and, you know, things, it isn't, the limiting resource isn't the number of
link |
00:50:29.920
transistors you can fit in the chip. It's what, how much power can you dissipate for your
link |
00:50:34.560
application? So by having a reduced instruction set, that's possible to have a simpler hardware,
link |
00:50:42.080
which is more energy efficient. And energy efficiency is incredibly important in the cloud.
link |
00:50:46.480
When you have tens of thousands of computers in a data center, you want to have the most energy
link |
00:50:51.040
efficient ones there as well. And of course, for embedded things running off of batteries,
link |
00:50:54.880
you want those to be energy efficient and the cell phones too. So I think it's believed that
link |
00:51:00.400
there's a energy disadvantage of using these more complex instruction set architectures.
link |
00:51:08.400
So the other aspect of this is if we look at Apple, Qualcomm, Samsung, Huawei, all use the
link |
00:51:14.880
ARM architecture, and yet the performance of the systems varies. I mean, I don't know
link |
00:51:20.320
whose opinion you take on, but you know, Apple for some reason seems to perform better in terms of
link |
00:51:26.000
these implementation, these architectures. So where's the magic and show the picture.
link |
00:51:30.480
How's that happen? Yeah. So what ARM pioneered was a new business model. As they said, well,
link |
00:51:35.120
here's our proprietary instruction set, and we'll give you two ways to do it.
link |
00:51:41.040
We'll give you one of these implementations written in things like C called Verilog,
link |
00:51:46.800
and you can just use ours. Well, you have to pay money for that. Not only you pay,
link |
00:51:51.840
we'll give you their, you know, we'll license you to do that, or you could design your own. And so
link |
00:51:57.360
we're talking about numbers like tens of millions of dollars to have the right to design your own,
link |
00:52:02.400
since they, it's the instruction set belongs to them. So Apple got one of those, the right to
link |
00:52:08.960
build their own. Most of the other people who build like Android phones just get one of the designs
link |
00:52:15.440
from ARM to do it themselves. So Apple developed a really good microprocessor design team. They,
link |
00:52:24.800
you know, acquired a very good team that had, was building other microprocessors and brought them
link |
00:52:30.640
into the company to build their designs. So the instruction sets are the same, the specifications
link |
00:52:35.760
are the same, but their hardware design is much more efficient than I think everybody else's.
link |
00:52:40.800
And that's given Apple an advantage in the marketplace in that the iPhones tend to be the
link |
00:52:49.520
faster than most everybody else's phones that are there. It'd be nice to be able to jump around and
link |
00:52:55.680
kind of explore different little sides of this, but let me ask one sort of romanticized question.
link |
00:53:01.280
What to you is the most beautiful aspect or idea of RISC instruction set?
link |
00:53:07.120
Most beautiful aspect or idea of RISC instruction set or instruction sets or this work that you've
link |
00:53:13.920
done? You know, I'm, you know, I was always attracted to the idea of, you know, small is
link |
00:53:20.400
beautiful, right? Is that the temptation in engineering, it's kind of easy to make things
link |
00:53:26.640
more complicated. It's harder to come up with a, it's more difficult, surprisingly, to come up with
link |
00:53:32.160
a simple, elegant solution. And I think that there's a bunch of small features of RISC in general
link |
00:53:39.120
that, you know, where you can see this examples of keeping it simpler makes it more elegant.
link |
00:53:45.520
Specifically in RISC 5, which, you know, I was kind of the mentor in the program, but it was
link |
00:53:50.160
really driven by Krzysztof Sanović and two grad students, Andrew Waterman and Yen Tsip Li, is they
link |
00:53:56.480
hit upon this idea of having a subset of instructions, a nice, simple subset instructions,
link |
00:54:05.200
like 40ish instructions that all software, the software staff RISC 5 can run just on those 40
link |
00:54:12.880
instructions. And then they provide optional features that could accelerate the performance
link |
00:54:20.080
instructions that if you needed them could be very helpful, but you don't need to have them.
link |
00:54:24.160
And that's a new, really a new idea. So RISC 5 has right now maybe five optional subsets that
link |
00:54:31.840
you can pull in, but the software runs without them. If you just want to build the, just the core
link |
00:54:37.360
40 instructions, that's fine. You can do that. So this is fantastic educationally is you can
link |
00:54:43.760
explain computers. You only have to explain 40 instructions and not thousands of them. Also,
link |
00:54:48.960
if you invent some wild and crazy new technology like, you know, biological computing, you'd like
link |
00:54:56.000
a nice, simple instruction set and you can, RISC 5, if you implement those core instructions, you
link |
00:55:02.000
can run, you know, really interesting programs on top of that. So this idea of a core set of
link |
00:55:07.360
instructions that the software stack runs on and then optional features that if you turn them on,
link |
00:55:13.280
the compilers were used, but you don't have to, I think is a powerful idea. What's happened in
link |
00:55:18.720
the past for the proprietary instruction sets is when they add new instructions, it becomes
link |
00:55:25.680
required piece. And so that all microprocessors in the future have to use those instructions. So
link |
00:55:33.520
it's kind of like, for a lot of people as they get older, they gain weight, right? That weight and
link |
00:55:39.840
age are correlated. And so you can see these instruction sets getting bigger and bigger as
link |
00:55:44.320
they get older. So RISC 5, you know, lets you be as slim as you as a teenager. And you only have to
link |
00:55:50.640
add these extra features if you're really going to use them rather than you have no choice. You have
link |
00:55:55.760
to keep growing with the instruction set. I don't know if the analogy holds up, but that's a beautiful
link |
00:56:00.320
notion that there's, it's almost like a nudge towards here's the simple core. That's the
link |
00:56:06.560
essential. Yeah. And I think the surprising thing is still if we brought back, you know,
link |
00:56:12.000
the pioneers from the 1950s and showed them the instruction set architectures, they'd understand
link |
00:56:16.480
it. They'd say, wow, that doesn't look that different. Well, you know, I'm surprised. And
link |
00:56:21.920
it's, there's, it may be something, you know, to talk about philosophical things. I mean, there may
link |
00:56:26.400
be something powerful about those, you know, 40 or 50 instructions that all you need is these
link |
00:56:35.840
commands like these instructions that we talked about. And that is sufficient to build, to bring
link |
00:56:42.160
up on, you know, artificial intelligence. And so it's a remarkable, surprising to me that as
link |
00:56:50.640
complicated as it is to build these things, you know, microprocessors where the line widths are
link |
00:56:58.800
are narrower than the wavelength of light, you know, is this amazing technologies at some
link |
00:57:05.200
fundamental level. The commands that software executes are really pretty straightforward and
link |
00:57:10.160
haven't changed that much in decades. What a surprising outcome. So underlying all computation,
link |
00:57:18.080
all Turing machines, all artificial intelligence systems, perhaps might be a very simple instruction
link |
00:57:23.760
set like a RISC5 or it's. Yeah. I mean, that's kind of what I said. I was interested to see,
link |
00:57:30.800
I had another more senior faculty colleague and he had written something in Scientific American
link |
00:57:36.480
and, you know, his 25 years in the future and his turned out about when I was a young professor and
link |
00:57:43.040
he said, yep, I checked it. And so I was interested to see how that was going to turn out for me. And
link |
00:57:48.400
it's pretty held up pretty well, but yeah, so there's, there's probably, there's some, you know,
link |
00:57:54.080
there's, there must be something fundamental about those instructions that we're capable of
link |
00:58:01.040
creating, you know, intelligence from pretty primitive operations and just doing them really
link |
00:58:07.920
fast. You kind of mentioned a different, maybe radical computational medium like biological,
link |
00:58:14.560
and there's other ideas. So there's a lot of spaces in ASIC, domain specific, and then there
link |
00:58:20.320
could be quantum computers. And so we can think of all of those different mediums and types of
link |
00:58:25.440
computation. What's the connection between swapping out different hardware systems and the
link |
00:58:33.120
instruction set? Do you see those as disjoint or are they fundamentally coupled? Yeah. So what's,
link |
00:58:37.920
so kind of, if we go back to the history, you know, when Moore's Law is in full effect and
link |
00:58:45.440
you're getting twice as many transistors every couple of years, you know, kind of the challenge
link |
00:58:51.760
for computer designers is how can we take advantage of that? How can we turn those transistors into
link |
00:58:56.800
better computers faster typically? And so there was an era, I guess in the 80s and 90s where
link |
00:59:04.400
computers were doubling performance every 18 months. And if you weren't around then,
link |
00:59:11.520
what would happen is you had your computer and your friend's computer, which was like a year,
link |
00:59:18.480
a year and a half newer, and it was much faster than your computer. And he or she could get their
link |
00:59:23.760
work done much faster than your computer because it was newer. So people took their computers,
link |
00:59:27.680
perfectly good computers, and threw them away to buy a newer computer because the computer
link |
00:59:33.920
one or two years later was so much faster. So that's what the world was like in the 80s and
link |
00:59:39.040
90s. Well, with the slowing down of Moore's Law, that's no longer true, right? Now with, you know,
link |
00:59:46.560
not desk side computers with the laptops, I only get a new desk laptop when it breaks,
link |
00:59:51.440
right? Oh damn, the disk broke or this display broke, I gotta buy a new computer. But before
link |
00:59:56.480
you would throw them away because it just, they were just so sluggish compared to the latest
link |
01:00:01.520
computers. So that's, you know, that's a huge change of what's gone on. So, but since this
link |
01:00:11.840
lasted for decades, kind of programmers and maybe all of society is used to computers getting faster
link |
01:00:18.720
regularly. We now believe, those of us who are in computer design, it's called computer
link |
01:00:24.640
architecture, that the path forward is instead is to add accelerators that only work well for
link |
01:00:33.680
certain applications. So since Moore's Law is slowing down, we don't think general purpose
link |
01:00:41.600
computers are going to get a lot faster. So the Intel processors of the world are not going to,
link |
01:00:46.560
haven't been getting a lot faster. They've been barely improving, like a few percent a year.
link |
01:00:51.680
It used to be doubling every 18 months and now it's doubling every 20 years. So it was just
link |
01:00:56.640
shocking. So to be able to deliver on what Moore's Law used to do, we think what's going to happen,
link |
01:01:02.480
what is happening right now is people adding accelerators to their microprocessors that only
link |
01:01:09.280
work well for some domains. And by sheer coincidence, at the same time that this is happening,
link |
01:01:17.120
has been this revolution in artificial intelligence called machine learning. So with,
link |
01:01:23.840
as I'm sure your other guests have said, you know, AI had these two competing schools of thought is
link |
01:01:31.040
that we could figure out artificial intelligence by just writing the rules top down, or that was
link |
01:01:36.480
wrong. You had to look at data and infer what the rules are, the machine learning, and what's
link |
01:01:41.600
happened in the last decade or eight years as machine learning has won. And it turns out that
link |
01:01:48.560
machine learning, the hardware you build for machine learning is pretty much multiply. The
link |
01:01:55.440
matrix multiply is a key feature for the way machine learning is done. So that's a godsend
link |
01:02:03.040
for computer designers. We know how to make matrix multiply run really fast. So general purpose
link |
01:02:08.640
microprocessors are slowing down. We're adding accelerators for machine learning that fundamentally
link |
01:02:13.360
are doing matrix multiplies much more efficiently than general purpose computers have done.
link |
01:02:17.920
So we have to come up with a new way to accelerate things. The danger of only accelerating one
link |
01:02:23.120
application is how important is that application. Turns out machine learning gets used for all
link |
01:02:28.640
kinds of things. So serendipitously, we found something to accelerate that's widely applicable.
link |
01:02:36.320
And we don't even, we're in the middle of this revolution of machine learning. We're not sure
link |
01:02:40.400
what the limits of machine learning are. So this has been a kind of a godsend. If you're going to
link |
01:02:46.000
be able to excel, deliver on improved performance, as long as people are moving their programs to be
link |
01:02:54.080
embracing more machine learning, we know how to give them more performance even as Moore's law
link |
01:02:58.880
is slowing down. And counterintuitively, the machine learning mechanism you can say is domain
link |
01:03:06.800
specific, but because it's leveraging data, it's actually could be very broad in terms of
link |
01:03:15.360
in terms of the domains it could be applied in. Yeah, that's exactly right. Sort of, it's almost
link |
01:03:21.040
sort of people sometimes talk about the idea of software 2.0. We're almost taking another step
link |
01:03:27.520
up in the abstraction layer in designing machine learning systems, because now you're programming
link |
01:03:34.080
in the space of data, in the space of hyperparameters, it's changing fundamentally
link |
01:03:38.480
the nature of programming. And so the specialized devices that accelerate the performance, especially
link |
01:03:45.120
neural network based machine learning systems might become the new general. Yeah. So the thing
link |
01:03:52.400
that's interesting point out these are not coral, these are not tied together. The enthusiasm about
link |
01:03:59.680
machine learning about creating programs driven from data that we should figure out the answers
link |
01:04:05.040
from data rather than kind of top down, which classically the way most programming is done
link |
01:04:10.160
and the way artificial intelligence used to be done. That's a movement that's going on at the
link |
01:04:14.640
same time. Coincidentally, and the first word machine learning is machines, right? So that's
link |
01:04:21.440
going to increase the demand for computing, because instead of programmers being smart, writing those
link |
01:04:27.360
those things down, we're going to instead use computers to examine a lot of data to kind of
link |
01:04:31.760
create the programs. That's the idea. And remarkably, this gets used for all kinds of
link |
01:04:38.560
things very successfully. The image recognition, the language translation, the game playing,
link |
01:04:43.200
and you know, it gets into pieces of the software stack like databases and stuff like that. We're
link |
01:04:50.320
not quite sure how general purpose is, but that's going on independent of this hardware stuff.
link |
01:04:54.880
What's happening on the hardware side is Moore's law is slowing down right when we need a lot more
link |
01:04:59.040
cycles. It's failing us, it's failing us right when we need it because there's going to be a
link |
01:05:03.840
greater increase in computing. And then this idea that we're going to do so called domain
link |
01:05:09.680
specific. Here's a domain that your greatest fear is you'll make this one thing work and that'll
link |
01:05:16.800
help, you know, five percent of the people in the world. Well, this looks like it's a very
link |
01:05:22.160
general purpose thing. So the timing is fortuitous that if we can perhaps, if we can keep building
link |
01:05:28.640
hardware that will accelerate machine learning, the neural networks, that'll beat the timing will
link |
01:05:36.080
be right. That neural network revolution will transform your software, the so called software
link |
01:05:42.160
2.0. And the software of the future will be very different from the software of the past. And just
link |
01:05:47.680
as our microprocessors, even though we're still going to have that same basic RISC instructions
link |
01:05:53.200
to run a big pieces of the software stack like user interfaces and stuff like that,
link |
01:05:58.080
we can accelerate the kind of the small piece that's computationally intensive. It's not lots
link |
01:06:02.880
of lines of code, but it takes a lot of cycles to run that code that that's going to be the
link |
01:06:08.160
accelerator piece. And so that's what makes this from a computer designers perspective a really
link |
01:06:14.800
interesting decade. What Hennessy and I talked about in the title of our Turing Warrant speech
link |
01:06:20.320
is a new golden age. We see this as a very exciting decade, much like when we were assistant
link |
01:06:28.160
professors and the RISC stuff was going on. That was a very exciting time was where we were changing
link |
01:06:32.720
what was going on. We see this happening again. Tremendous opportunities of people because we're
link |
01:06:39.280
fundamentally changing how software is built and how we're running it. So which layer of the
link |
01:06:43.760
abstraction do you think most of the acceleration might be happening? If you look in the next 10
link |
01:06:49.360
years, Google is working on a lot of exciting stuff with the TPU. Sort of there's a closer to
link |
01:06:54.880
the hardware that could be optimizations around the closer to the instruction set.
link |
01:07:00.640
There could be optimization at the compiler level. It could be even at the higher level software
link |
01:07:05.040
stack. Yeah, it's got to be, I mean, if you think about the old RISC Sys debate, it was both,
link |
01:07:11.840
it was software hardware. It was the compilers improving as well as the architecture improving.
link |
01:07:18.080
And that's likely to be the way things are now. With machine learning, they're using
link |
01:07:24.240
domain specific languages. The languages like TensorFlow and PyTorch are very popular with
link |
01:07:30.960
the machine learning people. Those are the raising the level of abstraction. It's easier
link |
01:07:35.280
for people to write machine learning in these domain specific languages like PyTorch and
link |
01:07:41.920
TensorFlow. So where the most optimization might be happening. Yeah. And so there'll be both the
link |
01:07:47.760
compiler piece and the hardware piece underneath it. So as you kind of the fatal flaw for hardware
link |
01:07:53.680
people is to create really great hardware, but not have brought along the compilers. And what we're
link |
01:07:59.360
seeing right now in the marketplace because of this enthusiasm around hardware for machine
link |
01:08:04.560
learning is getting, you know, probably billions of dollars invested in startup companies. We're
link |
01:08:10.400
seeing startup companies go belly up because they focus on the hardware, but didn't bring the
link |
01:08:15.920
software stack along. We talked about benchmarks earlier. So I participated in machine learning
link |
01:08:23.440
didn't really have a set of benchmarks. I think just two years ago, they didn't have a set of
link |
01:08:27.520
benchmarks. And we've created something called ML Perf, which is machine learning benchmark suite.
link |
01:08:33.280
And pretty much the companies who didn't invest in the software stack couldn't run ML Perf very
link |
01:08:39.840
well. And the ones who did invest in software stack did. And we're seeing, you know, like kind
link |
01:08:45.040
of in computer architecture, this is what happens. You have these arguments about risk versus this.
link |
01:08:48.800
People spend billions of dollars in the marketplace to see who wins. It's not a perfect comparison,
link |
01:08:54.720
but it kind of sorts things out. And we're seeing companies go out of business and then companies
link |
01:08:59.680
like there's a company in Israel called Habana. They came up with machine learning accelerators.
link |
01:09:08.160
They had good ML Perf scores. Intel had acquired a company earlier called Nirvana a couple of years
link |
01:09:14.560
ago. They didn't reveal their ML Perf scores, which was suspicious. But a month ago, Intel
link |
01:09:21.120
announced that they're canceling the Nirvana product line and they've bought Habana for $2
link |
01:09:25.760
billion. And Intel's going to be shipping Habana chips, which have hardware and software and run
link |
01:09:32.560
the ML Perf programs pretty well. And that's going to be their product line in the future.
link |
01:09:36.800
Brilliant. So maybe just to linger briefly on ML Perf. I love metrics. I love standards that
link |
01:09:42.560
everyone can gather around. What are some interesting aspects of that portfolio of metrics?
link |
01:09:48.800
Well, one of the interesting metrics is what we thought. I was involved in the start.
link |
01:09:57.440
Peter Mattson is leading the effort from Google. Google got it off the ground,
link |
01:10:00.880
but we had to reach out to competitors and say, there's no benchmarks here. We think this is
link |
01:10:07.360
bad for the field. It'll be much better if we look at examples like in the risk days,
link |
01:10:11.120
there was an effort to create a... For the people in the risk community got together,
link |
01:10:16.400
competitors got together building risk microprocessors to agree on a set of
link |
01:10:19.520
benchmarks that were called spec. And that was good for the industry. It's rather before
link |
01:10:24.720
the different risk architectures were arguing, well, you can believe my performance others,
link |
01:10:28.160
but those other guys are liars. And that didn't do any good. So we agreed on a set of benchmarks
link |
01:10:34.400
and then we could figure out who was faster between the various risk architectures. But
link |
01:10:37.920
it was a little bit faster, but that grew the market rather than people were afraid to buy
link |
01:10:42.800
anything. So we argued the same thing would happen with MLPerf. Companies like Nvidia were maybe
link |
01:10:48.880
worried that it was some kind of trap, but eventually we all got together to create a
link |
01:10:53.120
set of benchmarks and do the right thing. And we agree on the results. And so we can see whether
link |
01:11:00.320
TPUs or GPUs or CPUs are really faster and how much the faster. And I think from an engineer's
link |
01:11:06.560
perspective, as long as the results are fair, you can live with it. Okay, you kind of tip your hat
link |
01:11:12.800
to your colleagues at another institution, boy, they did a better job than us. What you hate is
link |
01:11:18.240
if it's false, right? They're making claims and it's just marketing bullshit and that's affecting
link |
01:11:23.600
sales. So from an engineer's perspective, as long as it's a fair comparison and we don't come in
link |
01:11:28.640
first place, that's too bad, but it's fair. So we wanted to create that environment for MLPerf.
link |
01:11:33.600
And so now there's 10 companies, I mean, 10 universities and 50 companies involved. So pretty
link |
01:11:40.880
much MLPerf is the way you measure machine learning performance. And it didn't exist even
link |
01:11:50.640
two years ago. One of the cool things that I enjoy about the internet has a few downsides, but one of
link |
01:11:56.720
the nice things is people can see through BS a little better with the presence of these kinds
link |
01:12:02.080
of metrics. So it's really nice companies like Google and Facebook and Twitter. Now, it's the
link |
01:12:08.080
cool thing to do is to put your engineers forward and to actually show off how well you do on these
link |
01:12:13.280
metrics. There's less of a desire to do marketing, less so. In my sort of naive viewpoint.
link |
01:12:22.560
I was trying to understand what's changed from the 80s in this era. I think because of things
link |
01:12:29.280
like social networking, Twitter and stuff like that, if you put up bullshit stuff that's just
link |
01:12:38.080
purposely misleading, you can get a violent reaction in social media pointing out the flaws
link |
01:12:45.920
in your arguments. And so from a marketing perspective, you have to be careful today that
link |
01:12:51.840
you didn't have to be careful that there'll be people who put out the flaw. You can get the
link |
01:12:57.120
word out about the flaws in what you're saying much more easily today than in the past. It used
link |
01:13:02.960
to be easier to get away with it. And the other thing that's been happening in terms of showing
link |
01:13:08.000
off engineers is just in the software side, people have largely embraced open source software.
link |
01:13:16.800
20 years ago, it was a dirty word at Microsoft. And today Microsoft is one of the big proponents
link |
01:13:22.000
of open source software. That's the standard way most software gets built, which really shows off
link |
01:13:28.160
your engineers because you can see if you look at the source code, you can see who are making the
link |
01:13:34.320
commits, who's making the improvements, who are the engineers at all these companies who are
link |
01:13:41.440
really great programmers and engineers and making really solid contributions,
link |
01:13:47.120
which enhances their reputations and the reputation of the companies.
link |
01:13:50.080
LR But that's, of course, not everywhere. Like in the space that I work more in is autonomous
link |
01:13:56.320
vehicles. And there's still the machinery of hype and marketing is still very strong there. And
link |
01:14:02.080
there's less willingness to be open in this kind of open source way and sort of benchmark. So
link |
01:14:07.600
MLPerf represents the machine learning world is much better being open source about holding
link |
01:14:12.480
itself to standards of different, the amount of incredible benchmarks in terms of the different
link |
01:14:18.240
computer vision, natural language processing tasks is incredible.
link |
01:14:23.120
LR Historically, it wasn't always that way.
link |
01:14:26.800
I had a graduate student working with me, David Martin. So in computer, in some fields,
link |
01:14:32.480
benchmarking has been around forever. So computer architecture, databases, maybe operating systems,
link |
01:14:40.560
benchmarks are the way you measure progress. But he was working with me and then started working
link |
01:14:47.440
with Jitendra Malik. And Jitendra Malik in computer vision space, I guess you've interviewed
link |
01:14:53.040
Jitendra. And David Martin told me, they don't have benchmarks. Everybody has their own vision
link |
01:14:59.360
algorithm and the way, here's my image, look at how well I do. And everybody had their own image.
link |
01:15:04.960
So David Martin, back when he did his dissertation, figured out a way to do benchmarks. He had a bunch
link |
01:15:10.640
of graduate students identify images and then ran benchmarks to see which algorithms run well. And
link |
01:15:17.200
that was, as far as I know, kind of the first time people did benchmarks in computer vision, which
link |
01:15:24.480
was predated all the things that eventually led to ImageNet and stuff like that. But then the vision
link |
01:15:29.600
community got religion. And then once we got as far as ImageNet, then that let the guys in Toronto
link |
01:15:38.720
be able to win the ImageNet competition. And then that changed the whole world.
link |
01:15:42.560
It's a scary step actually, because when you enter the world of benchmarks, you actually have to be
link |
01:15:47.840
good to participate as opposed to... Yeah, you can just, you just believe you're the best in the
link |
01:15:54.160
world. I think the people, I think they weren't purposely misleading. I think if you don't have
link |
01:16:01.280
benchmarks, I mean, how do you know? Your intuition is kind of like the way we did just
link |
01:16:06.320
do computer architecture. Your intuition is that this is the right instruction set to do this job.
link |
01:16:11.040
I believe in my experience, my hunch is that's true. We had to get to make things more quantitative
link |
01:16:18.160
to make progress. And so I just don't know how, you know, in fields that don't have benchmarks,
link |
01:16:23.840
I don't understand how they figure out how they're making progress.
link |
01:16:28.400
We're kind of in the vacuum tube days of quantum computing. What are your thoughts in this wholly
link |
01:16:34.480
different kind of space of architectures? You know, I actually, you know, quantum computing
link |
01:16:41.120
is, idea has been around for a while and I actually thought, well, I sure hope I retire
link |
01:16:46.240
before I have to start teaching this. I'd say because I talk about, give these talks about the
link |
01:16:53.520
slowing of Moore's law and, you know, when we need to change by doing domain specific accelerators,
link |
01:17:01.040
common questions say, what about quantum computing? The reason that comes up,
link |
01:17:04.480
it's in the news all the time. So I think to keep in, the third thing to keep in mind is
link |
01:17:08.880
quantum computing is not right around the corner. There've been two national reports,
link |
01:17:14.080
one by the National Academy of Engineering and other by the Computing Consortium, where they
link |
01:17:18.800
did a frank assessment of quantum computing. And both of those reports said, you know,
link |
01:17:25.440
as far as we can tell, before you get error corrected quantum computing, it's a decade away.
link |
01:17:31.200
So I think of it like nuclear fusion, right? There've been people who've been excited about
link |
01:17:35.680
nuclear fusion a long time. If we ever get nuclear fusion, it's going to be fantastic
link |
01:17:39.760
for the world. I'm glad people are working on it, but, you know, it's not right around the corner.
link |
01:17:45.120
Those two reports to me say probably it'll be 2030 before quantum computing is something
link |
01:17:52.640
that could happen. And when it does happen, you know, this is going to be big science stuff. This
link |
01:17:58.000
is, you know, micro Kelvin, almost absolute zero things that if they vibrate, if truck goes by,
link |
01:18:04.880
it won't work, right? So this will be in data center stuff. We're not going to have a quantum
link |
01:18:09.200
cell phone. And it's probably a 2030 kind of thing. So I'm happy that our people are working on it,
link |
01:18:16.080
but just, you know, it's hard with all the news about it, not to think that it's right around the
link |
01:18:21.040
corner. And that's why we need to do something as Moore's Law is slowing down to provide the
link |
01:18:27.040
computing, keep computing getting better for this next decade. And, you know, we shouldn't
link |
01:18:32.560
be betting on quantum computing or expecting quantum computing to deliver in the next few
link |
01:18:39.680
years. It's probably further off. You know, I'd be happy to be wrong. It'd be great if quantum
link |
01:18:44.480
computing is going to commercially viable, but it will be a set of applications. It's not a general
link |
01:18:49.600
purpose computation. So it's going to do some amazing things, but there'll be a lot of things
link |
01:18:54.640
that probably, you know, the old fashioned computers are going to keep doing better for
link |
01:18:59.360
quite a while. And there'll be a teenager 50 years from now watching this video saying,
link |
01:19:04.240
look how silly David Patterson was saying. No, I just said, I said 2030. I didn't say,
link |
01:19:09.920
I didn't say never. We're not going to have quantum cell phones. So he's going to be watching it.
link |
01:19:14.560
Well, I mean, I think this is such a, you know, given that we've had Moore's Law, I just, I feel
link |
01:19:21.920
comfortable trying to do projects that are thinking about the next decade. I admire people who are
link |
01:19:27.360
trying to do things that are 30 years out, but it's such a fast moving field. I just don't know
link |
01:19:32.880
how to, I'm not good enough to figure out what's the problem is going to be in 30 years. You know,
link |
01:19:38.800
10 years is hard enough for me. So maybe if it's possible to untangle your intuition a little bit,
link |
01:19:44.160
I spoke with Jim Keller. I don't know if you're familiar with Jim. And he is trying to sort of
link |
01:19:50.320
be a little bit rebellious and to try to think that he quotes me as being wrong. Yeah. So this,
link |
01:19:57.200
this is what you're doing for the record. Jim talks about that. He has an intuition that Moore's
link |
01:20:04.400
Law is not in fact, in fact dead yet. And then it may continue for some time to come.
link |
01:20:10.720
What are your thoughts about Jim's ideas in this space? Yeah, this is just, this is just marketing.
link |
01:20:16.080
So what Gordon Moore said is a quantitative prediction. We can check the facts, right? Which
link |
01:20:22.720
is doubling the number of transistors every two years. So we can look back at Intel for the last
link |
01:20:29.200
five years and ask him, let's look at DRAM chips six years ago. So that would be three, two year
link |
01:20:38.320
periods. So then our DRAM chips have eight times as many transistors as they did six years ago.
link |
01:20:44.160
We can look up Intel microprocessors six years ago. If Moore's Law is continuing, it should have
link |
01:20:50.320
eight times as many transistors as six years ago. The answer in both those cases is no.
link |
01:20:57.760
The problem has been because Moore's Law was kind of genuinely embraced by the semiconductor
link |
01:21:05.440
industry as they would make investments in similar equipment to make Moore's Law come true.
link |
01:21:10.480
Semiconductor improving and Moore's Law in many people's minds are the same thing. So when I say,
link |
01:21:17.520
and I'm factually correct, that Moore's Law is no longer holds, we are not doubling transistors
link |
01:21:24.080
every year's years. The downside for a company like Intel is people think that means it's stopped,
link |
01:21:31.840
that technology has no longer improved. And so Jim is trying to,
link |
01:21:36.160
counteract the impression that semiconductors are frozen in 2019 are never going to get better.
link |
01:21:46.240
So I never said that. All I said was Moore's Law is no more. And I'm strictly looking at the number
link |
01:21:53.120
of transistors. That's what Moore's Law is. There's the, I don't know, there's been this aura
link |
01:22:01.440
associated with Moore's Law that they've enjoyed for 50 years about, look at the field we're in,
link |
01:22:07.520
we're doubling transistors every two years. What an amazing field, which is an amazing thing that
link |
01:22:12.160
they were able to pull off. But even as Gordon Moore said, you know, no exponential can last
link |
01:22:16.000
forever. It lasted for 50 years, which is amazing. And this is a huge impact on the industry because
link |
01:22:22.080
of these changes that we've been talking about. So he claims, and I'm not going to go into the
link |
01:22:28.000
that we've been talking about. So he claims, because he's trying to act on it, he claims,
link |
01:22:33.280
you know, Patterson says Moore's Law is no more and look at all, look at it, it's still going.
link |
01:22:38.560
And TSMC, they say it's no longer, but there's quantitative evidence that Moore's Law is not
link |
01:22:44.800
continuing. So what I say now to try and, okay, I understand the perception problem when I say
link |
01:22:51.520
Moore's Law has stopped. Okay. So now I say Moore's Law is slowing down. And I think Jim, which is
link |
01:22:58.640
another way of, if he's, if it's predicting every two years and I say it's slowing down, then that's
link |
01:23:03.760
another way of saying it doesn't hold anymore. And, and I think Jim wouldn't disagree that it's
link |
01:23:09.520
slowing down because that sounds like it's, things are still getting better and just not as fast,
link |
01:23:14.560
which is another way of saying Moore's Law isn't working anymore.
link |
01:23:18.000
TG. It's still good for marketing. But what's your, you're not,
link |
01:23:22.720
you don't like expanding the definition of Moore's Law, sort of naturally.
link |
01:23:27.520
CM. Well, as an educator, you know, is this like modern politics? Does everybody get their own facts?
link |
01:23:34.880
Or do we have, you know, Moore's Law was a crisp, you know, it was Carver Mead looked at his
link |
01:23:41.840
Moore's Conversations drawing on a log log scale, a straight line. And that's what the definition of
link |
01:23:47.680
Moore's Law is. There's this other, what Intel did for a while, interestingly, before Jim joined
link |
01:23:54.720
them, they said, oh, no, Moore's Law isn't the number of doubling, isn't really doubling
link |
01:23:58.400
transistors every two years. Moore's Law is the cost of the individual transistor going down,
link |
01:24:04.400
cutting in half every two years. Now, that's not what he said, but they reinterpreted it
link |
01:24:10.080
because they believed that the cost of transistors was continuing to drop,
link |
01:24:15.520
even if they couldn't get twice as many chips. Many people in industry have told me that's not
link |
01:24:20.560
true anymore, that basically in more recent technologies, they got more complicated,
link |
01:24:26.000
the actual cost of transistor went up. So even the, a corollary might not be true,
link |
01:24:32.400
but certainly, you know, Moore's Law, that was the beauty of Moore's Law. It was a very simple,
link |
01:24:38.400
it's like E equals MC squared, right? It was like, wow, what an amazing prediction. It's so easy
link |
01:24:44.000
to understand, the implications are amazing, and that's why it was so famous as a prediction.
link |
01:24:50.000
And this reinterpretation of what it meant and changing is, you know, is revisionist history.
link |
01:24:56.160
And I'd be happy, and they're not claiming there's a new Moore's Law. They're not saying,
link |
01:25:04.160
by the way, instead of every two years, it's every three years. I don't think they want to
link |
01:25:10.480
say that. I think what's going to happen is new technology generations, each one is going to get
link |
01:25:14.400
a little bit slower. So it is slowing down, the improvements won't be as great, and that's why we
link |
01:25:21.840
need to do new things. Yeah, I don't like that the idea of Moore's Law is tied up with marketing.
link |
01:25:28.240
It would be nice if... Whether it's marketing or it's, well, it could be affecting business,
link |
01:25:34.560
but it could also be affecting the imagination of engineers. If Intel employees actually believe
link |
01:25:40.720
that we're frozen in 2019, well, that would be bad for Intel. Not just Intel, but everybody.
link |
01:25:49.040
Moore's Law is inspiring to everybody. But what's happening right now, talking to people
link |
01:25:57.200
who have working in national offices and stuff like that, a lot of the computer science community
link |
01:26:02.800
is unaware that this is going on, that we are in an era that's going to need radical change at lower
link |
01:26:09.280
levels that could affect the whole software stack. If you're using cloud stuff and the
link |
01:26:18.960
servers that you get next year are basically only a little bit faster than the servers you got this
link |
01:26:23.040
year, you need to know that, and we need to start innovating to start delivering on it. If you're
link |
01:26:30.240
counting on your software going to have a lot more features, assuming the computers are going to get
link |
01:26:34.400
faster, that's not true. So are you going to have to start making your software stack more efficient?
link |
01:26:38.640
Are you going to have to start learning about machine learning? So it's a warning or call
link |
01:26:45.440
for arms that the world is changing right now. And a lot of computer science PhDs are unaware
link |
01:26:51.040
of that. So a way to try and get their attention is to say that Moore's Law is slowing down and
link |
01:26:56.800
that's going to affect your assumptions. And we're trying to get the word out. And when companies
link |
01:27:02.160
like TSMC and Intel say, oh, no, no, no, Moore's Law is fine, then people think, oh, hey, I don't
link |
01:27:08.080
have to change my behavior. I'll just get the next servers. And if they start doing measurements,
link |
01:27:13.600
they'll realize what's going on. It'd be nice to have some transparency on metrics for the lay
link |
01:27:18.800
person to be able to know if computers are getting faster and not to forget Moore's Law.
link |
01:27:24.720
Yeah. There are a bunch of, most people kind of use clock rate as a measure of performance.
link |
01:27:31.920
It's not a perfect one, but if you've noticed clock rates are more or less the same as they were
link |
01:27:37.200
five years ago, computers are a little better than they are. They haven't made zero progress,
link |
01:27:42.960
but they've made small progress. So there's some indications out there. And then our behavior,
link |
01:27:47.200
right? Nobody buys the next laptop because it's so much faster than the laptop from the past.
link |
01:27:52.800
For cell phones, I think, I don't know why people buy new cell phones, you know, because
link |
01:28:00.480
the new ones announced. The cameras are better, but that's kind of domain specific, right? They're
link |
01:28:04.560
putting special purpose hardware to make the processing of images go much better. So that's
link |
01:28:10.560
the way they're doing it. They're not particularly, it's not that the ARM processor in there is twice
link |
01:28:15.840
as fast as much as they've added accelerators to help the experience of the phone. Can we talk a
link |
01:28:22.800
little bit about one other exciting space, arguably the same level of impact as your work with RISC
link |
01:28:30.720
is RAID. In 1988, you coauthored a paper, A Case for Redundant Arrays of Inexpensive Disks, hence
link |
01:28:41.920
RAID RAID. So that's where you introduced the idea of RAID. Incredible that that little,
link |
01:28:49.840
I mean little, that paper kind of had this ripple effect and had a really a revolutionary effect.
link |
01:28:55.760
So first, what is RAID? What is RAID? So this is work I did with my colleague Randy Katz and
link |
01:29:01.920
a star graduate student, Garth Gibson. So we had just done the fourth generation RISC project
link |
01:29:08.160
and Randy Katz, which had an early Apple Macintosh computer. At this time, everything was done with
link |
01:29:17.280
floppy disks, which are old technologies that could store things that didn't have much capacity
link |
01:29:26.160
and you had to get any work done, you're always sticking your little floppy disk in and out because
link |
01:29:31.360
they didn't have much capacity. But they started building what are called hard disk drives, which
link |
01:29:36.400
is magnetic material that can remember information storage for the Mac. And Randy asked the question
link |
01:29:44.320
when he saw this disk next to his Mac, gee, these are brand new small things. Before that,
link |
01:29:51.760
for the big computers, the disk would be the size of washing machines. And here's something
link |
01:29:57.520
the size of a, kind of the size of a book or so. He says, I wonder what we could do with that? Well,
link |
01:30:02.720
Randy was involved in the fourth generation RISC project here at Berkeley in the 80s. So we figured
link |
01:30:11.200
out a way how to make the computation part, the processor part go a lot faster, but what about
link |
01:30:15.680
the storage part? Can we do something to make it faster? So we hit upon the idea of taking a lot of
link |
01:30:22.960
these disks developed for personal computers and Macintoshes and putting many of them together
link |
01:30:27.600
instead of one of these washing machine size things. And so we wrote the first draft of the
link |
01:30:32.640
paper and we'd have 40 of these little PC disks instead of one of these washing machine size
link |
01:30:38.640
things. And they would be much cheaper because they're made for PCs and they could actually kind
link |
01:30:42.960
of be faster because there was 40 of them rather than one of them. And so we wrote a paper like
link |
01:30:47.360
that and sent it to one of our former Berkeley students at IBM. And he said, well, this is all
link |
01:30:51.520
great and good, but what about the reliability of these things? Now you have 40 of these things
link |
01:30:56.960
and 40 of these devices, each of which are kind of PC quality. So they're not as good as these
link |
01:31:03.120
IBM washing machines. IBM dominated the storage businesses. So the reliability is going to be
link |
01:31:10.160
awful. And so when we calculated it out, instead of it breaking on average once a year, it would
link |
01:31:16.240
break every two weeks. So we thought about the idea and said, well, we got to address the
link |
01:31:22.480
reliability. So we did it originally performance, but we had to do reliability. So the name
link |
01:31:27.120
redundant array of inexpensive disks is array of these disks inexpensive like for PCs, but we have
link |
01:31:33.440
extra copies. So if one breaks, we won't lose all the information. We'll have enough redundancy that
link |
01:31:40.400
we could let some break and we can still preserve the information. So the name is an array of
link |
01:31:44.560
inexpensive disks. This is a collection of these PCs and the R part of the name was the redundancy
link |
01:31:51.200
so they'd be reliable. And it turns out if you put a modest number of extra disks in one of
link |
01:31:55.760
these arrays, it could actually not only be as faster and cheaper than one of these washing
link |
01:32:00.720
machine disks, it could be actually more reliable because you could have a couple of breaks even
link |
01:32:05.360
with these cheap disks. Whereas one failure with the washing machine thing would knock it out.
link |
01:32:10.480
Did you have a sense just like with risk that in the 30 years that followed,
link |
01:32:17.360
RAID would take over as a mechanism for storage? I think I'm naturally an optimist,
link |
01:32:27.280
but I thought our ideas were right. I thought kind of like Moore's law, it seemed to me,
link |
01:32:33.840
if you looked at the history of the disk drives, they went from washing machine size things and
link |
01:32:38.000
they were getting smaller and smaller and the volumes were with the smaller disk drives because
link |
01:32:43.360
that's where the PCs were. So we thought that was a technological trend that the volume of disk
link |
01:32:51.120
drives was going to be getting smaller and smaller devices, which were true. They were the size of,
link |
01:32:56.480
I don't know, eight inches diameter, then five inches, then three inches in diameters.
link |
01:33:01.440
And so that it made sense to figure out how to deal things with an array of disks. So I think
link |
01:33:06.640
it was one of those things where logically, we think the technological forces were on our side,
link |
01:33:13.440
that it made sense. So we expected it to catch on, but there was that same kind of business question.
link |
01:33:19.920
IBM was the big pusher of these disk drives in the real world where the technical advantage
link |
01:33:25.840
get turned into a business advantage or not. It proved to be true. And so we thought we were
link |
01:33:32.560
sound technically and it was unclear whether the business side, but we kind of, as academics,
link |
01:33:38.320
we believe that technology should win and it did. And if you look at those 30 years,
link |
01:33:44.720
just from your perspective, are there interesting developments in the space of storage
link |
01:33:48.800
that have happened in that time? Yeah. The big thing that happened, well, a couple of things
link |
01:33:53.520
that happened, what we did had a modest amount of storage. So as redundancy, as people built bigger
link |
01:34:00.720
and bigger storage systems, they've added more redundancy so they could add more failures. And
link |
01:34:05.840
the biggest thing that happened in storage is for decades, it was based on things physically spinning
link |
01:34:14.240
called hard disk drives where you used to turn on your computer and it would make a noise.
link |
01:34:18.400
What that noise was, was the disk drives spinning and they were rotating at like 60 revolutions per
link |
01:34:25.200
second. And it's like, if you remember the vinyl records, if you've ever seen those,
link |
01:34:31.680
that's what it looked like. And there was like a needle like on a vinyl record that was reading it.
link |
01:34:36.160
So the big drive change is switching that over to a semiconductor technology called flash.
link |
01:34:41.440
So within the last, I'd say about decade is increasing fraction of all the computers in the
link |
01:34:47.200
world are using semiconductor for storage, the flash drive, instead of being magnetic,
link |
01:34:54.880
they're optical, well, they're a semiconductor writing of information very densely.
link |
01:35:04.080
And that's been a huge difference. So all the cell phones in the world use flash.
link |
01:35:08.000
Most of the laptops use flash. All the embedded devices use flash instead of storage. Still in
link |
01:35:13.520
the cloud, magnetic disks are more economical than flash, but they use both in the cloud.
link |
01:35:20.160
So it's been a huge change in the storage industry, the switching from primarily disk
link |
01:35:26.880
to being primarily semiconductor. For the individual disk, but still the RAID mechanism
link |
01:35:31.040
applies to those different kinds of disks. Yes. The people will still use RAID ideas
link |
01:35:35.920
because it's kind of what's different, kind of interesting kind of psychologically,
link |
01:35:41.120
if you think about it. People have always worried about the reliability of computing since the
link |
01:35:46.160
earliest days. So kind of, but if we're talking about computation, if your computer makes a
link |
01:35:52.240
mistake and the computer says, the computer has ways to check and say, Oh, we screwed up.
link |
01:35:59.120
We made a mistake. What happens is that program that was running, you have to redo it,
link |
01:36:04.160
which is a hassle for storage. If you've sent important information away and it loses that
link |
01:36:12.320
information, you go nuts. This is the worst. Oh my God. So if you have a laptop and you're not
link |
01:36:18.240
backing it up on the cloud or something like this, and your disk drive breaks, which it can do,
link |
01:36:24.880
you'll lose all that information and you just go crazy. So the importance of reliability
link |
01:36:29.760
for storage is tremendously higher than the importance of reliability for computation
link |
01:36:34.160
because of the consequences of it. So yes, so RAID ideas are still very popular, even with
link |
01:36:39.440
the switch of the technology. Although flash drives are more reliable, if you're not doing
link |
01:36:45.200
anything like backing it up to get some redundancy so they handle it, you're taking great risks.
link |
01:36:53.680
You said that for you and possibly for many others, teaching and research don't
link |
01:36:58.800
conflict with each other as one might suspect. And in fact, they kind of complement each other. So
link |
01:37:03.840
maybe a question I have is how has teaching helped you in your research or just in your
link |
01:37:10.480
entirety as a person who both teaches and does research and just thinks and creates new ideas
link |
01:37:17.040
in this world? Yes, I think what happens is when you're a college student, you know there's this
link |
01:37:22.880
kind of tenure system in doing research. So kind of this model that is popular in America, I think
link |
01:37:30.400
America really made it happen, is we can attract these really great faculty to research universities
link |
01:37:36.000
because they get to do research as well as teach. And that, especially in fast moving fields,
link |
01:37:40.640
this means people are up to date and they're teaching those kinds of things. But when you run
link |
01:37:44.800
into a really bad professor, a really bad teacher, I think the students think, well, this guy must be
link |
01:37:50.480
a great researcher because why else could he be here? So after 40 years at Berkeley, we had a
link |
01:37:57.280
retirement party and I got a chance to reflect and I looked back at some things. That is not my
link |
01:38:02.400
experience. I saw a photograph of five of us in the department who won the Distinguished Teaching
link |
01:38:09.600
Award from campus, a very high honor. I've got one of those, one of the highest honors. So there are
link |
01:38:14.480
five of us on that picture. There's Manuel Blum, Richard Karp, me, Randy Kass, and John Osterhaupt,
link |
01:38:23.360
contemporaries of mine. I mentioned Randy already. All of us are in the National Academy of
link |
01:38:27.920
Engineering. We've all run the Distinguished Teaching Award. Blum, Karp, and I all have
link |
01:38:34.160
Turing Awards. The highest award in computing. So that's the opposite. What's happened is they're
link |
01:38:45.120
highly correlated. So the other way to think of it, if you're very successful people or maybe
link |
01:38:51.280
successful at everything they do, it's not an either or. But it's an interesting question
link |
01:38:56.160
whether specifically, that's probably true, but specifically for teaching, if there's something
link |
01:39:00.880
in teaching that, it's the Richard Feynman idea, is there something about teaching that actually
link |
01:39:06.720
makes your research, makes you think deeper and more outside the box and more insightful?
link |
01:39:12.640
Absolutely. I was going to bring up Feynman. I mean, he criticized the Institute of Advanced
link |
01:39:16.400
Studies. So the Institute of Advanced Studies was this thing that was created near Princeton
link |
01:39:21.760
where Einstein and all these smart people went. And when he was invited, he thought it was a
link |
01:39:26.240
terrible idea. This is a university. It was supposed to be heaven, right? A university
link |
01:39:31.040
without any teaching. But he thought it was a mistake. It's getting up in the classroom and
link |
01:39:35.600
having to explain things to students and having them ask questions like, well, why is that true,
link |
01:39:40.640
makes you stop and think. So he thought, and I agree, I think that interaction between a great
link |
01:39:47.600
research university and having students with bright young minds asking hard questions the
link |
01:39:52.400
whole time is synergistic. And a university without teaching wouldn't be as vital and
link |
01:40:00.880
exciting a place. And I think it helps stimulate the research. Another romanticized question,
link |
01:40:07.920
but what's your favorite concept or idea to teach? What inspires you or you see inspire the students?
link |
01:40:15.680
Is there something that pops to mind or puts the fear of God in them? I don't know,
link |
01:40:19.440
whichever is most effective. I mean, in general, I think people are surprised.
link |
01:40:25.200
I've seen a lot of people who don't think they like teaching come give guest lectures or teach
link |
01:40:31.200
a course and get hooked on seeing the lights turn on, right? You can explain something to
link |
01:40:37.200
people that they don't understand. And suddenly they get something that's important and difficult.
link |
01:40:44.240
And just seeing the lights turn on is a real satisfaction there. I don't think there's any
link |
01:40:51.920
specific example of that. It's just the general joy of seeing them understand.
link |
01:40:58.320
SL. I have to talk about this because I've wrestled. I do martial arts. Of course, I love wrestling. I'm a huge, I'm Russian. So I've talked to Dan Gable on the podcast.
link |
01:41:11.520
So you wrestled at UCLA among many other things you've done in your life, competitively in sports
link |
01:41:20.640
and science and so on. You've wrestled. Maybe, again, continue with the romanticized questions,
link |
01:41:26.800
but what have you learned about life and maybe even science from wrestling or from?
link |
01:41:32.080
CB. Yeah, in fact, I wrestled at UCLA, but also at El Camino Community College. And just right now,
link |
01:41:39.520
we were in the state of California, we were state champions at El Camino. And in fact, I was talking
link |
01:41:44.400
to my mom and I got into UCLA, but I decided to go to the community college, which is, it's much
link |
01:41:52.000
harder to go to UCLA than the community college. And I asked, why did I make that decision? Because I
link |
01:41:56.400
thought it was because of my girlfriend. She said, well, it was the girlfriend and you thought the
link |
01:41:59.920
wrestling team was really good. And we were right. We had a great wrestling team. We actually
link |
01:42:06.000
wrestled against UCLA at a tournament and we beat UCLA as a community college, which just freshmen
link |
01:42:12.320
and sophomores. And part of the reason I brought this up is I'm going to go, they've invited me back
link |
01:42:17.440
at El Camino to give a lecture next month. And so, my friend who was on the wrestling team that
link |
01:42:27.440
we're still together, we're right now reaching out to other members of the wrestling team if we can
link |
01:42:31.680
get together for a reunion. But in terms of me, it was a huge difference. The age cut off, it was
link |
01:42:40.480
December 1st. And so, I was almost always the youngest person in my class and I matured later
link |
01:42:47.520
on, our family matured later. So, I was almost always the smallest guy. So, I took kind of
link |
01:42:54.560
nerdy courses, but I was wrestling. So, wrestling was huge for my self confidence in high school.
link |
01:43:02.480
And then, I kind of got bigger at El Camino and in college. And so, I had this kind of physical
link |
01:43:08.560
self confidence and it's translated into research self confidence. And also kind of, I've had this
link |
01:43:18.800
feeling even today in my 70s, if something going on in the streets that is bad physically, I'm not
link |
01:43:27.280
going to ignore it. I'm going to stand up and try and straighten that out.
link |
01:43:31.200
And that kind of confidence just carries through the entirety of your life.
link |
01:43:34.320
Yeah. And the same things happens intellectually. If there's something going on where people are
link |
01:43:39.040
saying something that's not true, I feel it's my job to stand up just like I would in the street.
link |
01:43:44.240
If there's something going on, somebody attacking some woman or something, I'm not standing by and
link |
01:43:49.120
letting that get away. So, I feel it's my job to stand up. So, it's kind of ironically translates.
link |
01:43:54.720
The other things that turned out for both, I had really great college and high school coaches and
link |
01:44:00.560
they believed, even though wrestling is an individual sport, that we would be more successful
link |
01:44:05.280
as a team if we bonded together, do things that we would support each other rather than everybody,
link |
01:44:10.880
you know, in wrestling it's a one on one and you could be everybody's on their own, but he felt if
link |
01:44:15.200
we bonded as a team, we'd succeed. So, I kind of picked up those skills of how to form successful
link |
01:44:21.200
teams and how to, from wrestling. And so, I think one of, most people would say one of my strengths
link |
01:44:27.280
is I can create teams of faculty, large teams of faculty grad students, pull all together for a
link |
01:44:33.200
common goal and often be successful at it. But I got both of those things from wrestling. Also,
link |
01:44:41.360
I think I heard this line about if people are in kind of collision, sports with physical contact
link |
01:44:49.040
like wrestling or football and stuff like that, people are a little bit more assertive or something.
link |
01:44:54.800
And so, I think that also comes through as, you know, and I didn't shy away from the
link |
01:45:02.160
racist debates, you know, I enjoyed taking on the arguments and stuff like that. So,
link |
01:45:08.800
I'm really glad I did wrestling. I think it was really good for my self image and I learned a lot
link |
01:45:13.520
from it. So, I think that's, you know, sports done well, you know, there's really lots of positives
link |
01:45:19.440
you can take about it, of leadership, you know, how to form teams and how to be successful.
link |
01:45:26.880
So, we've talked about metrics a lot. There's a really cool, in terms of bench press and
link |
01:45:30.880
weightlifting, pound years metric that you've developed that we don't have time to talk about,
link |
01:45:34.640
but it's a really cool one that people should look into. It's rethinking the way we think about
link |
01:45:39.040
metrics and weightlifting. But let me talk about metrics more broadly, since that appeals to you
link |
01:45:43.600
in all forms. Let's look at the most ridiculous, the biggest question of the meaning of life.
link |
01:45:50.480
If you were to try to put metrics on a life well lived, what would those metrics be?
link |
01:45:56.800
Yeah, a friend of mine, Randy Katz, said this. He said, you know, when it's time to sign off,
link |
01:46:06.000
the measure isn't the number of zeros in your bank account, it's the number of inches
link |
01:46:09.920
in the obituary in the New York Times, was he said it. I think, you know, having,
link |
01:46:17.040
and you know, this is a cliche, is that people don't die wishing they'd spent more time in the
link |
01:46:21.840
office, right? As I reflect upon my career, there have been, you know, a half a dozen, a dozen things
link |
01:46:29.360
say I've been proud of. A lot of them aren't papers or scientific results. Certainly, my family,
link |
01:46:35.440
my wife, we've been married more than 50 years, kids and grandkids, that's really precious.
link |
01:46:42.880
Education things I've done, I'm very proud of, you know, books and courses. I did some help
link |
01:46:50.240
with underrepresented groups that was effective. So it was interesting to see what were the things
link |
01:46:55.200
I reflected. You know, I had hundreds of papers, but some of them were the papers, like the risk
link |
01:47:00.960
rate stuff that I'm proud of, but a lot of them were not those things. So people who are, just
link |
01:47:06.480
spend their lives, you know, going after the dollars or going after all the papers in the
link |
01:47:11.040
world, you know, that's probably not the things that are afterwards you're going to care about.
link |
01:47:15.760
When I was, just when I got the offer from Berkeley before I showed up, I read a book where
link |
01:47:22.320
they interviewed a lot of people in all works of life. And what I got out of that book was the
link |
01:47:27.200
people who felt good about what they did was the people who affected people, as opposed to things
link |
01:47:31.520
that were more transitory. So I came into this job assuming that it wasn't going to be the papers,
link |
01:47:36.320
it was going to be relationships with the people over time that I would value, and that was a
link |
01:47:42.000
correct assessment, right? It's the people you work with, the people you can influence, the people
link |
01:47:47.120
you can help, it's the things that you feel good about towards the end of your career. It's not
link |
01:47:51.920
the stuff that's more transitory.
link |
01:47:53.200
Trey Lockerbie I don't think there's a better way to end it than talking about your family,
link |
01:47:58.480
the over 50 years of being married to your childhood sweetheart.
link |
01:48:02.320
Richard Averbeck What I think I can add is,
link |
01:48:05.040
when you tell people you've been married 50 years, they want to know why.
link |
01:48:07.280
Trey Lockerbie How? Why?
link |
01:48:08.800
Richard Averbeck Yeah, I can tell you the nine
link |
01:48:10.400
magic words that you need to say to your partner to keep a good relationship. And the nine magic
link |
01:48:16.560
words are, I was wrong. You were right. I love you. Okay. And you got to say all nine. You can't
link |
01:48:22.960
say, I was wrong. You were right. You're a jerk. You know, you can't say that. So yeah, freely
link |
01:48:28.160
acknowledging that you made a mistake, the other person was right, and that you love them really
link |
01:48:34.640
gets over a lot of bumps in the road. So that's what I pass along.
link |
01:48:37.760
Trey Lockerbie Beautifully put. David,
link |
01:48:39.840
it's a huge honor. Thank you so much for the book you've written, for the research you've done,
link |
01:48:43.840
for changing the world. Thank you for talking today.
link |
01:48:45.760
Richard Averbeck Thanks for the interview.
link |
01:48:46.880
Trey Lockerbie Thanks for listening to this
link |
01:48:48.880
conversation with David Patterson. And thank you to our sponsors, The Jordan Harbinger Show, and
link |
01:48:55.440
Cash App. Please consider supporting this podcast by going to JordanHarbinger.com slash Lex and
link |
01:49:02.320
downloading Cash App and using code LexPodcast. Click the links, buy the stuff. It's the best way
link |
01:49:08.640
to support this podcast and the journey I'm on. If you enjoy this thing, subscribe on YouTube,
link |
01:49:14.800
review it with five stars in a podcast, support it on Patreon, or connect with me on Twitter at
link |
01:49:19.680
Lex Friedman, spelled without the E, try to figure out how to do that. It's just F R I D M A N.
link |
01:49:27.280
And now let me leave you with some words from Henry David Thoreau.
link |
01:49:32.240
Our life is faded away by detail. Simplify, simplify. Thank you for listening and hope to
link |
01:49:40.560
see you next time.