David Patterson: Computer Architecture and Data Storage | Lex Fridman Podcast #104
david patterson artificial intelligence agi ai ai podcast artificial intelligence podcast lex fridman lex podcast lex mit lex ai lex jre mit ai
David Patterson is a Turing award winner and professor of computer science at Berkeley. He is known for pioneering contributions to RISC processor architecture used by 99% of new chips today and for co-creating RAID storage. The impact that these two lines of research and development have had on our world is immeasurable. He is also one of the great educators of computer science in the world. His book with John Hennessy "Computer Architecture: A Quantitative Approach" is how I first learned about and was humbled by the inner workings of machines at the lowest level.

Support this podcast by signing up with these sponsors:
- Jordan Harbinger Show: https://jordanharbinger.com/lex/
- Cash App - use code "LexPodcast" and download:
- Cash App (App Store): https://apple.co/2sPrUHe
- Cash App (Google Play): https://bit.ly/2MlvP5w

PODCAST INFO:
Podcast website:
https://lexfridman.com/podcast
Apple Podcasts:
https://apple.co/2lwqZIr
Spotify:
https://spoti.fi/2nEwCF8
RSS:
https://lexfridman.com/feed/podcast/
Full episodes playlist:
https://www.youtube.com/playlist?list=PLrAXtmErZgOdP_8GztsuKi9nrraNbKKp4
Clips playlist:
https://www.youtube.com/playlist?list=PLrAXtmErZgOeciFP3CBCIEElOJeitOr41

OUTLINE:
0:00 - Introduction
3:28 - How have computers changed?
4:22 - What's inside a computer?
10:02 - Layers of abstraction
13:05 - RISC vs CISC computer architectures
28:18 - Designing a good instruction set is an art
31:46 - Measures of performance
36:02 - RISC instruction set
39:39 - RISC-V open standard instruction set architecture
51:12 - Why do ARM implementations vary?
52:57 - Simple is beautiful in instruction set design
58:09 - How machine learning changed computers
1:08:18 - Machine learning benchmarks
1:16:30 - Quantum computing
1:19:41 - Moore's law
1:28:22 - RAID data storage
1:36:53 - Teaching
1:40:59 - Wrestling
1:45:26 - Meaning of life

CONNECT:
- Subscribe to this YouTube channel
- Twitter: https://twitter.com/lexfridman
- LinkedIn: https://www.linkedin.com/in/lexfridman
- Facebook: https://www.facebook.com/LexFridmanPage
- Instagram: https://www.instagram.com/lexfridman
- Medium: https://medium.com/@lexfridman
- Support on Patreon: https://www.patreon.com/lexfridman
 The following is a conversation with David Patterson, Turing Award winner and professor of computer science at Berkeley. He's known for pioneering contributions to risk processor architecture used by 99% of new chips today and for co-creating RAID storage. The impact that these two lines of research and development have had in our world is immeasurable. He's also one of the great educators of computer science in the world. His book with John Hennessy is how I first learned about and was humbled by the inner workings of machines at the lowest level. Quick summary of the ads. Two sponsors, the Jordan Harbinger Show and Cash App. Please consider supporting the podcast by going to JordanHarbinger.com slash Lex and downloading Cash App and using code LexPodcast. Click on the links, buy the stuff. It's the best way to support this podcast and in general the journey I'm on in my research and startup. This is the Artificial Intelligence Podcast. If you enjoy it, subscribe on YouTube, review it, the five stars on Apple Podcast, support it on Patreon or connect with me on Twitter at Lex Friedman spelled without the E, just F-R-I-D-M-A-N. As usual, I'll do a few minutes of ads now and never any ads in the middle that can break the flow of the conversation. This episode is supported by the Jordan Harbinger Show. Go to JordanHarbinger.com slash Lex. It's how he knows I sent you. On that page there's links to subscribe to it on Apple Podcast, Spotify and everywhere else. I've been binging on this podcast. It's amazing. Jordan is a great human being. He gets the best out of his guests, dives deep, calls them out when it's needed and makes the whole thing fun to listen to. He's interviewed Kobe Bryant, Mark Cuban, Yelda Gras Tyson, Garry Kasparov and many more. I recently listened to his conversation with Frank Abagnale, author of Catch Me If You Can and one of the world's most famous conmen. Perfect podcast length and topic for a recent long distance run that I did. Again, go to JordanHarbinger.com slash Lex to give him my love and to support this podcast. Subscribe also on Apple Podcast, Spotify and everywhere else. This show is presented by Cash App, the greatest sponsor of this podcast ever and the number one finance app in the App Store. When you get it, use code LexPodcast. Cash App lets you send money to friends, buy bitcoin and invest in the stock market with as little as one dollar. Since Cash App allows you to buy bitcoin, let me mention that cryptocurrency in the context of the history of money is fascinating. I recommend A Scent of Money as a great book on this history. Also, the audiobook is amazing. Debits and credits on ledgers started around 30,000 years ago. The US dollar created over 200 years ago and the first decentralized cryptocurrency released just over 10 years ago. So given that history, cryptocurrency is still very much in its early days of development, but it's still aiming to and just might redefine the nature of money. So again, if you get Cash App from the App Store, Google Play and use the code LexPodcast, you get $10 and Cash App will also donate $10 to FIRST, an organization that is helping to advance robotics system education for young people around the world. And now, here's my conversation with David Patterson. Let's start with the big historical question. How have computers changed in the past 50 years at both the fundamental architectural level and in general, in your eyes? Well, the biggest thing that happened was the invention of the microprocessor. So computers that used to fill up several rooms could fit inside your cell phone. And not only did they get smaller, they got a lot faster. So they're a million times faster than they were 50 years ago and they're much cheaper and they're ubiquitous. There's 7.8 billion people on this planet. Probably half of them have cell phones right now, just remarkable. There's probably more microprocessors than there are people. Sure, I don't know what the ratio is, but I'm sure it's above one. Maybe it's 10 to 1 or some number like that. What is a microprocessor? So a way to say what a microprocessor is, is to tell you what's inside a computer. So a computer forever has classically had five pieces. There's input and output, which kind of naturally, as you'd expect, is input is like speech or typing and output is displays. There's a memory and like the name sounds, it remembers things. So it's integrated circuits whose job is you put information in them. When you ask for it, it comes back out. That's memory. And the third part is the processor, where the team microprocessor comes from. And that has two pieces as well, and that is the control, which is kind of the brain of the processor and what's called the arithmetic unit. It's kind of the brawn of the computer. So if you think of the as a human body, the arithmetic unit, the thing that does the number crunching is the is the body and the control is the brain. So those five pieces, input, output, memory, arithmetic unit and control have been computers since the very dawn. And the last two are considered the processor. So a microprocessor simply means a processor that fits on a microchip. And that was invented about, you know, 40 years ago, was the first microprocessor. It's interesting that you refer to the arithmetic unit as the like you connected to the body and the controllers of the brain. So I guess I never thought of it that way. It's a nice way to think of it because most of the actions the microprocessor does in terms of literally sort of computation. But the microprocessor does computation. It processes information. And most of the thing it does is basic arithmetic operations. What are the operations, by the way? It's a lot like a calculator. You know, so there are add instructions, subtract instructions, multiply and divide, and kind of the brilliance of the invention of the of the computer or the processor is that it performs very trivial operations, but it just performs billions of them per second. And what we're capable of doing is writing software that can take these very trivial instructions and have them create tasks that can do things better than human beings can do today. Just looking back through your career, did you anticipate the kind of how good we would be able to get at doing these small basic operations? How many surprises along the way where you just kind of sat back and said, wow, I didn't expect it to go this fast, this good. Well, the fundamental driving force is what's called Moore's law, which was named after Gordon Moore, who's a Berkeley alumnus, and he made this observation very early in what are called semiconductors, and semiconductors are these ideas you can build these very simple switches and you can put them on these microchips. And he made this observation over 50 years ago. He looked at a few years and said, I think what's going to happen is the number of these little switches called transistors is going to double every year for the next decade. And he said this in 1965, and in 1975 he said, well, maybe it's going to double every two years. And that, what other people since named that Moore's law, guided the industry. And when Gordon Moore made that prediction, he wrote a paper back in, I think, in the in the 70s and said, not only is this going to happen, he wrote, what would be the implications of that? And in this article from 1965, he shows ideas like computers being in cars and computers being in something that you would buy in the grocery store and stuff like that. So he kind of not only called his shot, he called the implications of it. So if you were in the computing field and if you believed Moore's prediction, he kind of said what would be happening in the future. So it's not kind of, it's at one sense this is what was predicted and you could imagine it was easy to believe that Moore's law was going to continue and so this would be the implications. On the other side, there are these kind of shocking events in your life. Like I remember driving in Marin across the bay in San Francisco and seeing a bulletin board at a local civic center and it had a URL on it. And it was like for all for the people at the time, these first URLs and that's the, you know, WWW select stuff with the HGP. People thought it looked like alien writing, right? You'd see these advertisements and commercials or bulletin boards that had this alien writing on it. So for the lay people, it's like what the hell is going on here? And for those people in industry, it's oh my god, this stuff is getting so popular it's actually leaking out of our nerdy world into the real world. So that, I mean there was events like that. I think another one was, I remember with the early days of the personal computer when we started seeing advertisements in magazines for personal computers. Like it's so popular that it made the newspapers. So at one hand, you know, Gordon Moore predicted it and you kind of expected it to happen, but when it really hit and you saw it affecting society, it was shocking. So maybe taking a step back and looking both the engineering and philosophical perspective, what do you see as the layers of abstraction in the computer? Do you see a computer as a set of layers of abstractions? Yeah, I think that's one of the things that computer science fundamentals is these things are really complicated in the way we cope with complicated software and complicated hardware is these layers of abstraction. And that simply means that we, you know, suspend disbelief and pretend that the only thing you know is that layer and you don't know anything about the layer below it. And that's the way we can make very complicated things. And probably it started with hardware, that's the way it was done, but it's been proven extremely useful. And you know, I would say in a modern computer today there might be 10 or 20 layers of abstraction and they're all trying to kind of enforce this contract is all you know is this interface. There's a set of commands that you can are allowed to use and you stick to those commands and we will faithfully execute that. And it's like peeling the layers of a onion and you get down there's a new set of layers and so forth. So for people who want to study computer science, the exciting part about it is you can keep peeling those layers. You take your first course and you might learn to program in Python and then you can take a follow-on course and you can get it down to a lower level language like C and you know you can go and then you can if you want to you can start getting into the hardware layers and you keep getting down all the way to that transistor that I talked about that Gordon Moore predicted and you can understand all those layers all the way up to the highest level application software. So it's it's a very kind of magnetic field. If you're interested you can go into any depth and keep going. In particular what's happening right now or what's happened in software the last 20 years recently in hardware there's getting to be open source versions of all of these things. So what open source means is what the engineer the programmer designs it's not secret the belonging to a company it's out there on the world wide web so you can see it. So you can look at for lots of pieces of software that you use you can see exactly what the programmer does if you want to get involved. That used to stop at the hardware recently there's been an effort to make open source hardware and those interfaces open so you can see that. So instead of before you had to stop at the hardware you can now start going layer by layer below that and see what's inside there. So it's it's a remarkable time that for the interested individual can really see in great depth what's really going on in the computers that power everything that we see around us. Are you thinking also when you say open source at the hardware level is this going to the design architecture instruction set level or is it going to literally the the you know the manufacture of the of the actual hardware of the actual chips whether that's ASICS specialized a particular domain or the general. Yeah so let's talk about that a little bit. So when you get down to the bottom layer of software the way software talks to hardware is in a vocabulary and what we call that vocabulary we call that the words of that vocabulary called instructions and the technical term for the vocabulary is instruction set. So those instructions are likely we talked about earlier there can be instructions like add, subtract, and multiply, divide. There's instructions to put data into memory which is called a store instruction and to get data back which is called the load instructions and those simple instructions go back to the very dawn of computing and you know in 1950 the commercial computer had these instructions. So that's the instruction set that we're talking about. So up until I'd say 10 years ago these instruction sets were all proprietary so a very popular one is owned by Intel the one that's in the cloud and in all the pcs in the world. Intel owns that instruction set it's referred to as the x86. There have been a sequence of ones that the first number was called 8086 and since then there's been a lot of numbers but they all end in 86. So there's been that kind of family of instruction sets. And that's proprietary. And that's proprietary. The other one that's very popular is from ARM that kind of powers all the cell phones in the world, all the iPads in the world, and a lot of things that are so-called internet of things devices. ARM and that one is also proprietary. ARM will license it to people for a fee but they own that. So the new idea that got started at Berkeley kind of unintentionally 10 years ago is in early in my career we pioneered a way to do these vocabulary instruction sets that was very controversial at the time. At the time in the 1980s conventional wisdom was these vocabulary instruction sets should have you know powerful instructions so polysyllabic kind of words you can think of that. And so that instead of just add, subtract, and multiply they would have polynomial divide or sort a list. And the hope was of those powerful vocabularies that make it easier for software. So we thought that didn't make sense for microprocessors. There was people at Berkeley and Stanford and IBM who argued the opposite. And we called that was a reduced instruction set computer. And the abbreviation was RISC and typical for computer people we use the abbreviations start pronouncing it so RISC was the thing. So we said for microprocessors which with Gordon's more is changing really fast we think it's better to have a pretty simple set of instructions, reduced set of instructions. That that would be a better way to build microprocessors since they're going to be changing so fast due to Moore's law. And then we'll just use standard software to cover the use generate more of those simple instructions. And one of the pieces of software that's in that software stack going between these layers of abstractions is called a compiler and it's basically translates. It's a translator between levels. We said the translator will handle that. So the technical question was well since there are these reduced instructions you have to execute more of them. Yeah that's right. But maybe you can execute them faster. Yeah that's right. They're simpler so they can go faster but you have to do more of them. So what's what's that trade-off look like? And it ended up that we ended up executing maybe 50% more instructions, maybe a third more instructions, but they ran four times faster. So so this risk, controversial risk ideas proved to be maybe factors of three or four better. I love that this idea was controversial and almost kind of like rebellious. So that's in the context of what was more conventional is the complex instructional side computing. So how would you pronounce that? CISC. CISC versus risk. And believe it or not this sounds very very you know who cares about this right? It was it was violently debated at several conferences. It's like what's the right way to go? And people thought risk was you know was a de-evolution. We're going to make software worse by making those instructions simpler and there are fierce debates at several conferences in the 1980s and then later in the 80s it kind of settled to these benefits. It's not completely intuitive to me why risk has for the most part won. Yeah so why did that happen? Yeah yeah and maybe I can sort of say a bunch of dumb things that could lay the land for for further commentary. So to me this is a this is kind of interesting thing if you look at C++ versus C. With modern compilers you really could write faster code with C++. So relying on the compiler to reduce your complicated code into something simple and fast. So to me comparing risk maybe this is a dumb question but why is it that focusing the definition the design of the instruction set on very few simple instructions in the long run provide faster execution versus coming up with like you said a ton of complicated instructions then over time you know years maybe decades you come up with compilers that can reduce those into simple instructions for you. Yeah so let's try and split that into two pieces. So if the compiler can do that for you if the compiler can take you know a complicated program and produce simpler instructions then the programmer doesn't care right programmer. I don't care just how fast is the computer I'm using how much does it cost. And so what happened kind of in the software industry is right around before the 1980s critical pieces of software were still written not in languages like C or C++. They were written in what's called assembly language where there's this kind of humans writing exactly at the instructions at the level that a computer can understand so they were writing add subtract multiply you know instructions. It's very tedious but the belief was to write this lowest level of software that that people use which are called operating systems they had to be written in assembly language because these high level languages were just too inefficient. They were too slow or the the programs would be too big. So that changed with a famous operating system called Unix which is kind of the the grandfather of all the operating systems today. So Unix demonstrated that you could write something as complicated as an operating system in a language like C. So once that was true then that meant we could hide the instruction set from the programmer and so that meant then it didn't really matter the programmer didn't have to write lots of these simple instructions that was up to the compiler. So that was part of our arguments for RISC is if you were still writing assembly language there's maybe a better case for CISC instructions but if the compiler can do that it's going to be you know that's done once the computer translates it once and then every time you run the program it runs at this this potentially simpler instructions. And so that that was the debate right is because and people would acknowledge that the simpler instructions could lead to a faster computer you can think of monosyllabic instructions you could say them you know if you think of reading you can probably read them faster or say them faster than long instructions the same thing that analogy works pretty well for hardware. And as long as you didn't have to read a lot more of those instructions you could win. So that's that's kind of that's the basic idea for RISC. But it's interesting that the in that discussion of Unix and C that there's only one step of levels of abstraction from the code that's really the closest to the machine to the code that's written by human. It's at least to me again perhaps a dumb intuition but it feels like there might have been more layers sort of different kinds of humans stacked on top of each other. So what's true and not true about what you said is several of the layers of software like so the if you two layers would be suppose we just talk about two layers that would be the operating system like you get from from Microsoft or from Apple like iOS or the Windows operating system and let's say applications that run on top of it like Word or Excel. So both the operating system could be written in C and the application could be written in C. But you could construct those two layers and the applications absolutely do call upon the operating system and the change was that both of them could be written in higher level languages. So it's one step of a translation but you can still build many layers of abstraction of software on top of that and that's how how things are done today. So still today many of the layers that you'll you'll deal with you may deal with debuggers you may deal with linkers there's libraries many of those today will be written in C++ say even though that language is pretty ancient and even the Python interpreter is probably written in C or C++. So lots of layers there are probably written in these some old-fashioned efficient languages that still take one step to produce these instructions produce risk instructions but they're composed each layer of software invokes one another through these interfaces and you can get 10 layers of software that way. So in general the RISC was developed here at Berkeley? It was kind of the three places that were these radicals that advocated for this against the rest of the community were IBM Berkeley and Stanford. You're one of these radicals and how radical did you feel how confident did you feel how doubtful were you that RISC might be the right approach because it may you can also intuit that is kind of taking a step back into simplicity not forward into simplicity. Yeah no it was easy to make yeah it was easy to make the argument against it well this was my colleague John Hennessy at Stanford and I we were both assistant professors and for me I just believed in the power of our ideas. I thought what we were saying made sense Morris law is going to move fast the other thing that I didn't mention is one of the surprises of these complex instruction sets you could certainly write these complex instructions if the programmers writing them themselves. It turned out to be kind of difficult for the compiler to generate those complex instructions kind of ironically you'd have to find the right circumstances that that just exactly fit this complex instruction it was actually easier for the compiler to generate these simple instructions so not only did these complex instructions make the hardware more difficult to build often the compiler wouldn't even use them and so it's harder to build the compiler doesn't use them that much the simple instructions go better with Morris law that you know the number of transistors is doubling every every two years so we're going to have you know the you want to reduce the time to design the microprocessor that may be more important than these number of instructions. So I think we believed in the that we were right that this was the best idea then the question became in these debates well yeah that's a good technical idea but in the business world this doesn't matter there's other things that matter it's like arguing that if there's a standard width of railroad tracks and you've come up with a better width but the whole world is covered in railroad tracks so you'll your ideas have no chance of success commercial success it was technically right but commercially it'll be insignificant. Yeah it's it's kind of sad that this world the history of human civilization is full of good ideas that lost because somebody else came along first with a worse idea and it's good that in the computing world at least some of these have well you could i mean there's probably still cisc people that say uh yeah there still are well and what happened was what was interesting uh intel a bunch of the cisp uh companies with cisc instructions sets of vocabulary they gave up uh but not intel what intel did to its credit uh because intel's vocabulary was um in the in the personal computer and so that was a very valuable vocabulary because the way we distribute software is in those actual instructions it's in the instructions of that instruction set so uh they that you don't get that source code what the programmers wrote you get after it's been translated into the lowest level that's if you were to get a floppy disk or download software it's in the instructions of that instruction set so the x86 instruction set was very valuable so what intel did cleverly and amazingly is they had their chips in hardware do a translation step they would take these complex instructions and translate them into essentially in risk instructions in hardware on the fly you know at at uh gigahertz clock speeds and then any good idea that risk people had they could use and they could still be compatible with this uh with this um really valuable pc software software base and which also had very high volumes you know 100 million personal computers per year so the cisc architecture in the business world was actually one in in this pc era so just going back to the the time of designing risk when you design an instruction set architecture do you think like a programmer do you think like a microprocessor engineer do you think like a artist a philosopher do you think in software and hardware i mean is it art is it science yeah i'd say i think designing a good instruction set is an art and i think you're trying to uh balance um the the simplicity and speed of execution with how well easy it will be for compilers to use it right you're trying to create an instruction set that everything in there can be used by compilers there's not things that are missing uh that'll make it difficult for the program to run uh they run efficiently but you want it to be easy to build as well so it's that kind of so you're thinking i'd say you're thinking hardware trying to find a hard spur software compromise that'll work well and and it's uh you know it's you know it's a matter of taste right it's it's kind of fun to build instruction sets it's not that hard to build an instruction set but to build one that catches on and people use you know you have to be you know fortunate to be the right place in the right time or have a design that people really like are you using metrics so is it uh quantifiable because you kind of have to anticipate the kind of programs that people write yeah ahead of time so is that can you use numbers can you use metrics can you quantify something ahead of time or is this again that's the art part where you're kind of no it's a big a big change kind of what happened i think from hennessey's and my perspective in the 1980s what happened was going from kind of really uh you know taste and hunches to quantifiable and in fact he and i wrote a textbook at the end of the 1980s called computer architecture a quantitative approach i heard of that and and it's it's the thing it had a pretty big big impact in the field because we went from textbooks that kind of listed so here's what this computer does and here's the pros and cons and here's what this computer does and pros and cons to something where there were formulas and equations where you could measure things so specifically for instruction sets what we do and some other fields do is we agree upon a set of programs which we call benchmarks and a suite of programs and then you develop both the hardware and the compiler and you get numbers on how well your uh your computer does given its instruction set and how well you implemented it in your microprocessor and how good your compilers are and in computer architecture we you know using professors terms we grade on a curve rather than grade on absolute scale so when you say you know this these programs run this fast well that's kind of interesting but how do you know it's better well you compare it to other computers of the same time so the best way we know how to make turn it into a kind of more science and experimental and quantitative is to compare yourself to other computers of the same era that have the same access the same kind of technology on commonly agreed benchmark programs so maybe to toss up two possible directions we can go one is what are the different trade-offs in designing architectures we've been already talking about syscon risk but maybe a little bit more detail in terms of specific features that you were thinking about and the other side is what are the metrics that you're thinking about when looking at these trade-offs yeah well let's talk about the metrics so during these debates we actually had kind of a hard time explaining convincing people the ideas and partly we didn't have a formula to explain it and a few years into it we hit upon a formula that helped explain what was going on and um i think if we can do this see how it works orally to do this so uh the is if i can do a formula orally let's see so the uh so fundamentally uh the way you measure performance is how long does it take a program to run program if you have 10 programs and typically these benchmarks were sweet because you'd want to have 10 programs so they could represent lots of different applications so for these 10 programs how long they take to run well now when you're trying to explain why it took so long you could factor how long it takes a program to run into three factors uh one of the first one is how many instructions did it take to execute so that's the that's the what we've been talking about you know the instructions of alchemy how many did it take all right the next question is how long did each instruction take to run on average so you multiply the number of instructions times how long it took to run and that's your time okay so that's but now let's look at this metric of how long did it take the instructions to run well it turns out the way we could build computers today is they all have a clock and you've seen this when you if you buy a microprocessor it'll say 3.1 gigahertz or 2.5 gigahertz and more gigahertz is good well what that is is the speed of the clock so 2.5 gigahertz turns out to be four billionths of instruction or four nanoseconds so that's the clock cycle time but there's another factor which is what's the average number of clock cycles that takes per instruction so it's number of instructions average number of clock cycles and the clock cycle time so in these risk-sys debates we would they would concentrate on but risk needs to take more instructions and we'd argue what maybe the clock cycle is faster but what the real big difference was was the number of clock cycles per instruction per instruction that's fascinating what about the mess of the beautiful mess of parallelism in the whole picture parallelism which has to do with say how many instructions could execute in parallel and things like that you could think of that as affecting the clock cycles per instruction because it's the average clock cycles per instruction so when you're running a program if it if it took a hundred billion instructions and on average it took two clock cycles per instruction and they were four nanoseconds you could multiply that out and see how long it took to run and there's all kinds of tricks to try and reduce the number of clock cycles per instruction but it turned out that the way they would do these complex instructions is they would actually build what we would call an interpreter in a simpler a very simple hardware interpreter but it turned out that for the sys constructions if you had to use one of those interpreters it would be like 10 clock cycles per instruction where the risk instructions could be two so there'd be this factor of five advantage in clock cycles per instruction we have to execute say 25 or 50 percent more instructions so that's where the win would come and then you could make an argument whether the clock cycle times are the same or not but pointing out that we could divide the benchmark results time per program into three factors and the biggest difference in risk insists was the clock cycles per you execute a few more instructions but the clock cycles per instruction is much less and that was what this debate once we made that argument then people say oh okay i i get it and so we went from uh it was outrageously controversial in you know 1982 that maybe probably by 1984 so people said oh yeah technically they've got a good argument what are the instructions in the risk instruction set just to get an intuition okay 1995 i was asked to sign in to predict the future of what microprocessor future so i and that and i'd seen these predictions and usually people predict something outrageous just to be entertaining right and so my prediction for 2020 was you know things are going to be pretty much they're going to look very familiar to what they are and they are and if you were to read the article you know the things i said are pretty much true the instructions that that have been around forever are kind of the same and that's the outrageous prediction actually yeah given how fast computers have been growing well and you know morse law was going to go on we thought for 25 more years uh you know who knows but kind of the surprising thing in fact you know hennessey and i you know won the the acm am touring award for both the risk construction set contributions and for that textbook i mentioned but you know we're surprised that here we are 35 40 years later after we did our work and the the conventionalism of the best way to do instruction sets is still those risk instruction sets that looked very similar to what we looked like you know we did in the 1980s so those uh surprisingly there hasn't been some radical new idea even though we have you know a million times as many transistors as we had uh back then but what are the basic instructions and how do they change over the years so i was talking about addition subtract these are the okay the specific so the the so the things that are in a calculator you are in a computer so any of the buttons that are in the calculator in the computer so the the button so if you there's a memory function key and like i said those are turns into putting something in memories called a store bring something back to load just a quick tangent when you say memory what does memory mean uh well i told you there were five pieces of a computer and if if you remember in a calculator there's a memory key so you want to have intermediate calculation and bring it back later so you'd hit the memory plus key m plus maybe and it would put that into memory and then you'd hit an rm like recurrent instruction and it'd bring it back into the display so you don't have to type it you don't have to write it down bring it back again so that's exactly what memory is that you can put things into it as temporary storage and bring it back when you need it later so that's memory and loads and stores but the big thing the difference between a computer and a calculator is that the computer can make decisions and and amazingly decisions are as simple as is this value less than zero or is this value bigger than that value so there's uh and those instructions which are called conditional branch instructions is what give computers all its power if you were in the early days of computing before what's called the general purpose microprocessor people would write these instructions kind of in hardware and but it couldn't make decisions it would just it would do the same thing over and over again with the power of having branch instructions it can look at things and make decisions automatically and it can make these decisions you know billions of times per second and amazingly enough we can get you know thanks to advanced machine learning we can we can create programs that can do some things smarter than human beings can do but if you go down that very basic level it's the instructions are the keys on the calculator plus the ability to make decisions these conditional branch instructions and all decisions fundamentally can be reduced down to these branch instructions yeah so in in fact and so you know going way back in the stack back to you know we did four RISC projects at Berkeley in the 1980s they did a couple at Stanford in the 1980s in 2010 we decided we wanted to do a new instruction set learning from the mistakes of those RISC architectures in 1980s and that was done here at Berkeley almost exactly 10 years ago and the the people who did it I participated but other Kristo Sanovic and others drove it they called it RISC-5 to honor those RISC uh the four RISC projects of the 1980s so what does RISC-5 involve so RISC-5 is another instruction set vocabulary it's uh learned from the mistakes of the past but it still has if you look at the there's a core set of instructions it's very similar to the simplest architectures from the 1980s and the big difference about RISC-5 is it's open so I talked early about proprietary versus uh open and um kind of soft software so this is an instruction set so it's a vocabulary it's not it's not hardware but by having an open instruction set we can have open source implementations open source processors that people can use where do you see that going it's a really exciting possibilities but you're just thinking the scientific american if you were to predict 10 20 30 years from now that kind of ability to utilize open source instruction set architectures like RISC-5 what kind of possibilities might that unlock yeah and so just to make it clear because this is confusing uh the specification of RISC-5 is something that's like in a textbook there's books about it so that's what that's kind of defining an interface uh there's also the way you build hardware is you write it in languages they're kind of like C but they're specialized for hardware that gets translated into hardware and so these implementations of this specification are what are the open source so they're written in something that's called varilog or vhdl but it's put up on the web just like you can see the c++ code for linux on the web so that's the open instruction set enables open source implementations of RISC-5 so you can literally build a processor using this instruction set people are people are so what happened to us that the story was this was developed here for our use to do our research and we made it we licensed under the berkeley software distribution license like a lot of things get licensed here so other academics use it they wouldn't be afraid to use it and then about 2014 we started getting complaints that we were using it in our research in our courses and we got complaints from people in industry is why did you change your instruction set between the fall and the spring semester and well we get complaints from nutritional time why the hell do you care what we do with our instruction set and then when we talked to them we found out there was this thirst for this idea of an open instruction set architecture and they had been looking for one they stumbled upon ours at berkeley thought it was boy this looks great we should use this one and so once we realized there is this need for an open instruction set architecture we thought that's a great idea and then we started supporting it and tried to make it happen so this was kind of we accidentally stumbled into this and to this need and our timing was good and so it's really taking off there's a you know universities are good at starting things but they're not good at sustaining things so like linux has a linux foundation there's a risk five foundation that we started there's there's an annual conferences and the first one was done i think january of 2015 and the one that was just last december in it you know it had 50 people at it and the this one last december had i don't know 1700 people were at it and the companies excited all over the world so if predicting into the future you know if we were doing 25 years i would predict that risk five will be you know possibly the most popular instruction set architecture out there because it's a pretty good instruction set architecture and it's open and free and there's no reason lots of people shouldn't use it and there's benefits just like linux is so popular today compared to 20 years ago i and you know the fact that you can get access to it for free you can modify it you can improve it for all those same arguments and so people collaborate to make it a better system for everybody to use and that works in software and i expect the same thing will happen in hardware so if you look at arm intel mips if you look at just the lay of the land and what do you think just for me because i'm not familiar how difficult this kind of transition would uh how much challenges this kind of transition would entail do you see let me ask my dumb question in another way no that's i know where you're headed well there's a bunch i think the thing you point out there's there's these proprietor very popular proprietary instruction sets the x86 and so how do we move to risk five potentially in sort of in the span of five ten twenty years a kind of unification and given that the devices the kind of way we use devices iot mobile devices and in the cloud is keeps changing well part of it a big piece of it is um the software stack and what right now looking forward there seem to be three important markets there's the cloud and the cloud is simply uh companies like alibaba and amazon and google um microsoft having these giant data centers with tens of thousands of servers in maybe a hundred maybe a hundred of these data centers all over the world and that's what the cloud is so the computer that dominates the cloud is the x86 instruction sets so the the instructions are the instruction sets used in the cloud of the x86 almost almost 100 percent of that today is x86 the other big thing are cell phones and laptops those are the big things today i mean the pc is also dominated by the x86 instructor set but those sales are dwindling you know there's maybe 200 million pc's a year and there's i said one and a half billion phones a year there's numbers like that so for the phones that's dominated by arm and now uh and a reason that i talked about the software stacks and the third category is internet of things which is basically embedded devices things in your cars and your microwaves everywhere so what's different about those three categories is for the cloud the software that runs in the cloud is determined by these companies alibaba amazon google microsoft so they control that software stack for the cell phones there's both for android and apple the software they supply but both of them have marketplaces where anybody in the world can build software and that software is translated or you know compiled down and shipped in the vocabulary of arm so that's what's referred to as binary compatible because the actual it's the instructions are turned into numbers binary numbers and shipped around the world so and so just a quick interruption so arm what is arm is uh arm is an instruction set like a risk based yeah it's a risk-based instruction set it's a proprietary one arm stands for uh advanced risk machine arm is the name where the company is so it's a proprietary risk architecture so and it's been around um for a while and it's you know the surely the most popular instruction set in the world right now they every year billions of chips are using uh the arm design in this post pc era is it was one of the early risk adopters of the risk yeah the first arm goes back i don't know 86 or so so berkeley instead did their work in the early 80s the arm guys uh needed an instruction set and they read our papers and it heavily influenced them so getting back my story what about internet of things well software is not shipped in internet of things it's the the uh embedded device people control that software stack so uh you would the opportunities for risk five everybody thinks is in the internet of things embedded things because there's no dominant player like there is in the cloud or the smartphones and you know it's it's uh doesn't have a lot of licenses associated with and you can enhance the instruction set if you want and it's and people uh have looked at instruction sets and think it's a very good instruction set so it appears to be very popular there it's possible that um in the cloud people those companies control their software stacks so that it's possible that they would um decide to use risk five if we're talking about 10 and 20 years in the future uh the one of the be harder it would be the cell phones since people ship software in the arm instruction set that you'd think be the more difficult one but if if risk five really catches on and you know you could in a period of a decade you can imagine that's changing over too do you have a sense why risk five or arm has dominated you mentioned these three categories why has why did arm dominate why does it dominate the mobile device space and maybe the my uh naive intuition is that there are some aspects of power efficiency that are important that somehow come along with risk well part of it is um for these old sys constructions that's like in the x86 uh it it was more expensive uh to uh these for you know they're older so they have disadvantages in them because they were designed 40 years ago but also they have to translate in hardware from sys constructions to risk constructions on the fly and that costs both silicon area that the chips are bigger to be able to do that and it uses more power so arm has uh which has you know followed this risk philosophy is seem to be much more energy efficient and in today's computer world both in the cloud and the cell phone and uh you know things it isn't the limiting resource isn't the number of transitions you can fit in the chip it's what how much power can you dissipate for your application so by having a reduced instruction set you that's possible to have a simpler hardware which is more energy efficient and energy efficiency is incredibly important in the cloud when you have tens of thousands of computers in a data center you want to have the most energy efficient ones there as well and of course for embedded things running off of batteries you want those to be our energy efficient and the cell phones too so it i think it's believed that there's a energy disadvantage of using these more complex instruction set architectures so the other aspect of this is if we look at apple qualcomm samsung huawei all use the arm architecture and yet the performance of the systems varies i mean i don't know whose opinion you take on but you know apple for some reason seems to perform better in terms of these implementation these architectures so where's the magic and show the picture how's that happen yeah so what arm pioneered was a new business model as they said well here's our proprietary instruction set and we'll give you two ways to do it either we'll give you one of these implementations written in things like c called varilog and you can just use ours well you have to pay money for that not only pay we'll give you their you know we'll license you to do that or you could design your own and so we're talking about numbers like tens of millions of dollars to have the right to design your own since they it's the instruction set belongs to them so apple got one of those the right to build their own most of the other people who build like android phones just get one of the designs from arm to do it themselves so apple developed a really good microprocessor design team they you know acquired a very good team that had uh was a building other microprocessors and brought them into the company to build their designs so the instruction sets are the same the specifications are the same but their hardware design is much more efficient than i think everybody else's and that's given apple an advantage in the marketplace and that the iphones tend to be the faster than most everybody else's phones that are there it'd be nice to be able to jump around and kind of explore different little sides of this but let me ask one sort of romanticized question what to you is the most beautiful aspect or idea of risk instruction set or instruction sets or this yeah well i think uh you know i i'm you know i i was always attracted to the idea of you know small is beautiful is that uh the temptation in engineering it's kind of easy to make things more complicated it's harder to come up with a it's more difficult surprisingly to come up with a simple elegant solution and i think that there's a bunch of small features of of risk in general that you know uh where you can see this examples of keeping it simpler makes it more elegant specifically in risk five which you know i'm i was kind of the mentor in the program but it was really driven by krista sonovitch and two graduate students andrew waterman yancep lee is they hit upon this idea of having uh a subset of instructions a nice simple instruct subset instructions like 40-ish instructions that all software uh the software staff risk five can run just on those 40 instructions and then they provide optional features that could accelerate uh the performance instructions that if you needed them could be very helpful but you don't need to have them and that's that's a new really a new idea so risk five has right now maybe five optional subsets that you can pull in but the software runs without them if you just want to build the just the the core 40 instructions that's fine you can do that so this is fantastic educationally is you can explain computers you only have to explain 40 instructions and not thousands of them also if you invent some wild and crazy new technology like uh you know biological computing you'd like a nice simple instruction set and you can risk five if you implement those core instructions you can run you know really interesting programs on top of that so this idea of a core set of instructions that the software stack runs on and then optional features that if you turn them on the compilers were used but you don't have to i think is a powerful idea what's happened in the past if for the proprietary instruction sets is when they add new instructions it becomes required piece and so that all all microprocessors in the future have to use those instructions so it's kind of like for a lot of people as they get older they gain weight right that weight and age are correlated and so you can see these instruction sets get getting bigger and bigger as they get older so risk five you know lets you be as slim as you as a teenager and you only have to add these extra features if you're really going to use them rather than every you have no choice you have to keep growing with the instruction set i don't know if the analogy holds up but that's a beautiful notion uh that there's it's almost like a nudge towards here's the simple core that's the essential yeah i think the surprising thing is still if we if we brought back you know the pioneers from the 1950s and showed them the instruction set architectures they'd understand it they they said wow that doesn't look that different well you know i'm surprised and it's there's it may be something you know talk about philosophical things i mean there may be something powerful about those you know 40 or 50 instructions that all you need is these commands like these instructions that we talked about and that is sufficient to build uh to bring about you know artificial intelligence and so it's a remarkable surprising to me that is complicated as it is to build these things uh you know uh microprocessors where the line widths are narrower than the wavelength of light you know is this amazing technology is at some fundamental level the commands that software executes are really pretty straightforward and haven't changed that much in in decades uh which what a surprising outcome so underlying all computation all touring machines all artificial intelligence systems perhaps might be a very simple instruction set like like a risk five or it's yeah i mean i that's kind of what i said i was interested to see i had another more senior faculty colleague and he he had written something in scientific american and uh you know his 25 years in the future and his turned out about when i was a young professor and he said yep i checked it i was i was interested to see how that was going to turn out for me and it's pretty held up uh pretty well but yeah so there's there's probably there's some you know there's there must be something fundamental about uh those instructions that were capable of uh creating you know intelligence from pretty primitive operations and just doing them really fast you kind of mentioned a different maybe radical computational medium like biological and there's other ideas so there's a lot of spaces in asex domain specific and then there could be quantum computers and so we can think of all those different mediums and types of computation what's the connection between swapping out different hardware systems in the instruction set do you see those as disjoint or they fundamentally coupled yeah so what's so kind of if we go back to the history um uh you know when morris law is in full effect and you're getting twice as many transistors every couple of years you know kind of the challenge for computer designers is how can we take advantage of that how can we turn those transistors into better computers uh faster typically and so there was an era i guess in the 80s and 90s where computers were doubling performance every 18 months and if you weren't around then what would happen is uh you had your computer um and your friend's computer which was like a year or year and a half newer and it was much faster than your computer and you he he or she could get their work done much faster than your time because you were so people took their computers perfectly good computers and threw them away to buy a newer computer because the computer one or two years later was so much faster so that's what the world was like in the 80s and 90s well with the slowing down of morris law that's no longer true right now with you know not not desk side computers with the laptops i only get a new desk laptop when it breaks right oh damn the disk broke or this display broke i gotta buy a new computer but before you would throw them away because it just they were just so sluggish compared to the latest computers so that's you know uh that's a huge uh change of what's gone on so but since this lasted for decades kind of programmers and maybe all of society is used to computers getting faster regularly it we now now believe those of us who are in computer design it's called computer architecture that the path forward is instead is to add accelerators that only work well for certain applications so since morris law is slowing down we don't think general purpose computers are going to get a lot faster so the intel processes of the world are not going to haven't been getting a lot faster they've been barely improving like a few percent a year it used to be doubling every 18 months and now it's doubling every 20 years so it was just shocking so to be able to deliver on what morris law used to do we think what's going to happen what is happening right now is people adding accelerators to their microprocessors that only work well for some domains and by sheer coincidence at the same time that this is happening has been this revolution in artificial intelligence called machine learning so with as i'm sure your other guests have said you know ai had these two competing schools of thought is that we could figure out artificial intelligence by just writing the rules top down or that was wrong you had to look at data and infer what the rules are the machine learning and what's happened in the last decade or eight years is machine learning has won and it turns out that machine learning the hardware you build for machine learning is pretty much multiply the matrix multiply is a key feature for the way people machine learning is done so uh that's a godsend for computer designers we know how to make matrix multiply run really fast so general purpose micro processors are slowing down we're adding accelerators for machine learning that fundamentally are doing matrix multiplies much more efficiently than general purpose computers have done so we have to come up with a new way to accelerate things the danger of only accelerating one application is how important is that application turns it turns like machine learning gets used for all kinds of things so serendipitously we found something to accelerate that's widely applicable and we don't even we're in the middle of this revolution of machine learning we're not sure what the limits of machine learning are so this has been a kind of a godsend if you're going to be able to excel deliver on improved performance as long as people are moving their programs to be embracing more machine learning we know how to give them more performance even as morris law is slowing down and counter intuitively the machine learning mechanism you can say is domain specific but because it's leveraging data it's actually could be very broad in terms of in terms of the domains that could be applied in yeah that's exactly right sort of it's almost sort of people sometimes talk about the idea of software 2.0 we're almost taking another step up in the abstraction layer in designing machine learning systems because now you're programming in the space of data in the space of hyper parameters it's changing fundamentally the nature of programming and so the specialized devices that that accelerate the performance especially neural network based machine learning systems might become the new general yeah so the this the thing that's interesting point out these are not coral these are not tied together the enthusiasm about machine learning about creating programs driven from data that we should figure out the answers from data rather than kind of top down which classically the way most programming is done in the way artificial intelligence used to be done that's a movement that's going on at the same time coincidentally and and the and the first word machine learning is machines right so that's going to increase the demand for computing because instead of programmers being smart writing those those things down we're going to instead use computers to examine a lot of data to kind of create the programs that's the idea and remarkably this gets used for all kinds of things very successfully the image recognition the language translation the game playing and you know it gets into uh pieces of the software stack like databases and stuff like that we're not quite sure how general purpose is but that's going on independent of this hardware stuff what's happening on the hardware side is morris law is slowing down right when we need a lot more cycles it's failing us it's failing us right when we need it because there's going to be a greater increase a greater increase in computing and then this idea that we're going to do so-called domain specific here's a domain that your greatest fear is you'll make this one thing work and that'll help you know five percent of the people in the world well this this looks like it's a very general purpose thing so the timing is fortuitous that if we can perhaps if we can keep building hardware that will accelerate machine learning the neural networks that'll beat the timing will be right that that neural network revolution will transform software the so-called software 2.0 and the software the future will be very different from the software of the past and just as our microprocessors even though we're still going to have that same basic risk instructions to run a big pieces of the software stack like user interfaces and stuff like that we can accelerate the the kind of the small piece that's computationally intensive it's not lots of lines of code but there it takes a lot of cycles to run that code that that's going to be the accelerator piece and so this that's what makes this from a computer designer's perspective a really interesting decade what hennessey and i talked about in the title of our touring warrant speech is a new golden age we we see this as a very exciting decade much like when we were assistant professors and the risk stuff was going on that was a very exciting time was where we were changing what was going on we see this happening again tremendous opportunities of people because we're fundamentally changing how software is built and how we're running it so which layer of the abstraction do you think most of the acceleration might be happening if you look in the next 10 years sort of google is working on a lot of exciting stuff with the tpu sort of there's a closer to the hardware that could be optimizations around the uh closer to the instruction set there could be optimization at the compiler level it could be even at the higher level software stack yeah it's going to be i mean if you think about the the old wrist sys debate it was both uh it was software hardware it was the compilers improving as well as the architecture improving and that that's likely to be the way things are now with machine learning they they're using uh domain specific languages the languages like uh tensorflow and pytorch are very popular with the machine learning people that those are the raising the level of distraction it's easier for people to write machine learning in these domain specific languages like like pytorch in tensorflow so where the most optimization might yeah and so and so there'll be both the compiler piece and the hardware piece underneath it so as you kind of the fatal flaw for hardware people is to create really great hardware but not have brought along the compilers and what we're seeing right now in the marketplace because of this enthusiasm around hardware for machine learning is getting you know probably a billions of dollars invested in startup companies we're seeing startup companies go belly up because they focused on the hardware but didn't bring the software stack along uh we talked about benchmarks earlier so i participated in machine learning didn't really have a set of benchmarks i think just two years ago they didn't have a set of benchmarks and we've created something called ml perf which is machine learning benchmark suite and pretty much the companies who didn't invest in software stack couldn't run ml perf very well and the ones who did invest in software stack did and we're seeing you know like kind of in computer architecture this is what happens you have these arguments about risk versus this people spend billions of dollars in the marketplace to see who wins and it's not it's not a perfect comparison but it kind of sorts things out and we're seeing companies go out of business and then companies like uh like uh there's a company in israel called habana they came up with machine learning accelerators they had good ml perf scores uh intel had acquired a company earlier called nirvana a couple years ago they didn't reveal them of perf scores which was suspicious but a month ago intel announced that they're canceling the nirvana product line and they've bought habana for two billion dollars and intel is going to be shipping habana chips which have hardware and software and run the ml perf programs pretty well and that's going to be their product line in the future brilliant so maybe just a linker briefly ml perf i love metrics i love standards that everyone can gather around what what are some interesting aspects of that uh portfolio of metrics well one of the interesting metrics is uh you know what we thought it was you know we i was involved in the start uh you know we uh peter mattson is leading the effort from google google got it off the ground but we had to reach out to competitors and say um there's no benchmarks here this we think this is bad for the field it'll be much better if we look at examples like in the risk days there was an effort to create a for the the people in the risk community got together competitors got together were building risk microprocessors to agree on a set of benchmarks that were called spec and that was good for the industry as rather before the different risk architectures were arguing well you can believe my performance others but those other guys are liars and that didn't do any good so we agreed on a set of benchmarks and then we could figure out who was faster between the various risk architectures but it was a little bit faster but that grew the market rather than you know people were afraid to buy anything so we argued the same thing would happen with ml perf you know companies like nvidia were you know maybe worried that it was some kind of trap but eventually we all got together to create a set of benchmarks and do the right thing right and we agree on the results and so we can see whether tpus or gpus or cpus are really faster and how much the faster and i think from an engineer's perspective as long as the results are fair you're you can live with it okay you know you kind of tip your hat to your colleagues at another institution boy they did a better job than this what you what you hate is if it's it's false right they're making claims and it's just marketing bullshit and you know and that's affecting sales so you from an engineer's perspective as long as it's a fair comparison and we don't come in first place that's too bad but it's fair so we wanted to create that environment for ml perf and so now there's 10 companies i mean 10 universities and 50 companies involved so pretty much ml perf has uh is the is the way you measure machine learning uh performance uh and and it didn't exist even two years ago one of the cool things that i enjoy about the internet has a few downsides but one of the nice things is people can see through bs a little better with the presence of these kinds of metrics it's so it's really nice companies like google and facebook and twitter now it's the cool thing to do is to put your engineers forward and to actually show off how well you do on these metrics there's not sort of it well there's less of a desire to do marketing less so in my in my sort of naive no i think what i was trying to understand that you know what's changed from the 80s in this era i think uh because of things like social networking twitter and stuff like that if you if you put up you know uh bullshit stuff right that's just you know miss purposely misleading you know that you can get a violent reaction in social media pointing out the flaws in your arguments right and so from a marketing perspective you have to be careful today that you didn't have to be careful that uh there'll be people who who put out the flaw you can get the word out about the flaws in what you're saying much more easily today than in the past you used to be it used to be easier to get away with it and the other thing that's been happening in terms of showing off engineers is just in the software side people have largely embraced open source software it it was 20 years ago it was a dirty word at microsoft and today microsoft is one of the big proponents of open source software the kind of that's the standard way most software gets built which really shows off your engineers because you can see if you look at the source code you can see who are making the commits who's making the improvements who are the engineers at all these companies who are uh are you know really uh great uh programmers and engineers and making really solid contributions which enhances their reputations and the reputation of the companies oh but that's of course not everywhere like in the space that i work more in is autonomous vehicles and there's still the machinery of hype and marketing is still very strong there and there's less willingness to be open in this kind of open source way and sort of benchmarks so ml perf is represents the machine learning world is much better being open source about holding itself to standards of different the amount of incredible benchmarks in terms of the different computer vision natural linear processing uh yeah it actually you know incredible it you know historically it wasn't always that way um i had a graduate student working with me david martin so for in computer in some fields benchmarking is been around forever so uh computer architecture databases uh maybe operating systems uh benchmarks are uh the way you measure progress but uh he was working with me and then started working with jitendra malik and he's jitendra malik and computer vision space who i guess you've interviewed yes and uh david martin told me they don't have benchmarks everybody has their own vision algorithm and the way that my here's my image look at how well i do and everybody had their own image so david martin uh back when he did his dissertation uh figured out a way to do benchmarks he had a bunch of graduate students uh identify images and then ran benchmarks to see which algorithms run well and that was as far as i know kind of the first time people did benchmarks and computer vision and uh which was predated all you know the things that eventually led to image net and stuff like that but then you know the vision community got religion and then once we got as far as image net then uh that let uh the guys in toronto um be able to win the image net competition and then you know that changed the whole world it's a scary step actually because uh when you enter the world of benchmarks you actually have to be good to participate as opposed to uh yeah you can just you just believe you're the best in the world and i think the people i think they weren't purposely misleading i think if you don't have benchmarks i mean how do you know you know you could have your intuition is kind of like the way we did just do computer architecture your intuition is that this is the right instruction set to do this job i believe in my experience my hunch is that's true we had to get to make things more quantitative uh to make progress and so i just don't know how you know in fields that don't have benchmarks i don't understand how they figure out how they're making progress we're kind of in the vacuum tube days of quantum computing what are your thoughts in this wholly different kind of space of architectures uh you know i actually you know quantum computing uh is idea has been around for a while and i actually thought well i sure hope uh i retire before i have to start teaching this i'd say because i talk about give these talks about the slowing of morris law and you know when we need to change by doing domain specific accelerators uh common questions say what about quantum computing the reason that comes up it's in the news all the time so i think to keep in the third thing to keep in mind is quantum computing is not right around the corner uh there have been two national reports one by the national campus of engineering another by the computing consortium where they did a frank assessment of of quantum computing and both of those reports said you know as far as we can tell before you get error corrected quantum computing it's a decade away so i think of it like nuclear fusion right there have been people who've been excited about nuclear fusion a long time if we ever get nuclear fusion it's going to be fantastic for the world i'm glad people are working on it but you know it's not right around the corner those two reports to me say probably it'll be 2030 before quantum computing is a something that could happen and when it does happen you know this is going to be big science stuff this is uh you know micro kelvin almost absolute zero things that if they vibrate if truck goes by it won't work right so this will be in data center stuff we're not going to have a quantum cell phone and and it's probably a 2030 kind of thing so i'm happy that our people are working on it but just you know it's hard with all the news about it not to think that it's right around the corner and that's why we need to do something as morse law is slowing down to provide the computing keep computing getting better for this next decade and and you know we shouldn't be betting on quantum computing um are expecting quantum computing to deliver in the next few years it's it's probably further off you know i'd be happy to be wrong it'd be great if quantum computing is going to commercially viable but it will be a set of applications it's not a general purpose computation so it's going to do some amazing things but there'll be a lot of things that probably uh you know the the old-fashioned computers are going to keep doing better for quite a while and there will be a teenager 50 years from now watching this video saying look how silly david patterson was uh saying no i just said i said 2030 i didn't say i didn't say never we're not going to have quantum cell phones so he's going to be watching it well i i mean i i think this is such a you know given we've had morse law i just uh i feel comfortable trying to do projects that are thinking about the next decade i admire people who are trying to do things that are 30 years out but it's such a fast moving field i just don't know how to i'm not good enough to figure out what what's the problem is going to be in 30 years uh you know 10 years is hard enough for me so maybe if it's possible to untangle your intuition a little bit i spoke with jim keller i don't know if you're familiar with jim and he he is trying to sort of uh be a little bit rebellious and to try to think that he quotes me as being wrong yeah so this this is what are your the way for the for the record jim talks about that he has an intuition that more's law is not in fact in fact dead yet and that it may continue for some time to come what are your thoughts about jim's ideas in this space yeah this is just this is just marketing so what gordon moore said is a quantitative prediction we can check the facts right which is doubling the number of transistors every two years so we can look back at intel for the last five years and ask him let's look at d ram chips um six years ago so that would be three two-year periods so then our d ram chips have eight times as many transistors as they did six years ago we can look up intel microprocessors six years ago if more's law is continuing it should have eight times as many transistors as six years ago the answer in both those cases is no the problem has been because more's law was kind of genuinely embraced by the semiconductor industry is they would make investments in similar equipment to make more's law come true semiconductor improving and more's law in many people's minds are the same thing so when i say and i'm factually correct that more's law is no longer holds we are not doubling transistors every year's years the downside for a company like intel is people think that means it's stopped that technology has no longer improved and so jim is trying to uh uh re uh counteract the impression that semiconductors are frozen in 2019 are never going to get better so i never said that all i said was more's law is no more and i'm strictly looking at the number of transistors like that's what more that's what more's law is there's the uh i don't know there's been this uh aura associated with more's law that they've enjoyed for 50 years about look at the field we're in we're doubling transistors every two years what an amazing field which is an amazing thing that they were able to pull off but even as gordon more said you know no exponential can last forever it lasted for 50 years which is amazing and this is a huge impact on the industry because of these changes that we've been talking about so he claims because he's trying to act he claims you know paterson says more's law is no more and look at all look at it it's still going and uh tsmc the say it's no longer but there but there's quantitative evidence that more's law is not continuing so what i say now to try and okay i understand the the the perception problem when i say more's law has stopped okay so now i say more's law is slowing down and i think jim which is another way of if he's if it's predicting every two years and i say it's slowing down then that's another way of saying it doesn't hold anymore and and i think jim wouldn't disagree that it's slowing down because that sounds like it's things are still getting better just not as fast which is another way of saying more's law isn't working anymore it's still good for marketing but uh but what's your you're not you don't like expanding the definition of more's law sort of uh well naturally you know as an educator you know are you know is this like modern politics does everybody get their own facts or do we have you know more's law was a crisp you know a more it was carver mead looked at his ob more's conversations drawing on a log log scale a straight line and that's what the definition of more's law is there's this other what intel did for a while interestingly uh before jim joined them they said oh no more's law isn't the number of doubling isn't really doubling transistors every two years more's law is the cost of the individual transistors going down uh cutting in half uh every two years now that's not what he said but they reinterpreted it because they believed that the the cost of transistors was continuing to drop even if they couldn't get twice the main ships yes many people in industry have told me that's not true anymore that basically than the in more recent technologies that got more complicated the actual cost of transistor went up so even even the a corollary might not be true but certainly uh you know more's law that was the beauty of more's law it was a very simple it's like equals mc squared right it was like wow what an amazing prediction it's so easy to understand the implications are amazing and that's why it was so famous as a as a prediction and this this reinterpretation of what it meant and and changing is you know is revision this history and i and i'd be happy uh and and they're not claiming there's a new more's law they're not saying by the way it's instead of every two years it's every three years i don't think they i don't think they want to say that i think what's going to happen is new technology emissions h1 is getting a little bit slower so it is slowing down the improvements won't won't be as great uh and that's why we need to do new things yeah i don't like that the the idea of more's law is tied up with marketing it would be nice if whether it's marketing or it's it's um well it could be affecting business but it could also be affecting the imagination of engineers is if if intel employees actually believe that we're frozen in 2019 well that's that would be bad for intel they not just intel but everybody it's inspired more's law is inspiring yeah to everybody but what's happening right now talking to people in who have working in national offices and stuff like that a lot of the computer science community is unaware that this is going on right that we are in an era that's going to need radical change at lower levels that could affect the whole software stack this um you know if if if intel uh if you're using cloud stuff and the servers that you get next year are basically only a little bit faster than the servers you got this year you need to know that and we need to start innovating um to start delivering on it if you're counting on your software your software going to have a lot more features assuming the computers can get faster that's not true so are you going to have to start making your software stack more efficient are you going to have to start learning about machine learning so it's you know it's kind of uh it's a warning or call for arms that the world is changing right now and a lot of people a lot of computer science phds are unaware of that so a way to try and get their attention is to say that more's law is slowing down and that's going to affect your assumptions and you know we're trying to get the word out and when companies like tsmc and intel say oh no no no more's law is fine then people think okay i don't have to change my behavior i'll just get the next servers and you know if they start doing measurements they'll realize what's going on it'd be nice to have some transparency and metrics for for the lay person to be able to know if computers are getting faster and not to forget there are yeah there are there are a bunch of most people kind of use clock rate uh is a is a measure performance you know it's not a perfect one but if you've noticed clock rates are more or less the same as they were five years ago computers are a little better than they aren't they haven't made zero progress but they've made small progress so there's some indications out there and then our behavior right nobody buys the next laptop because it's so much faster than the laptop from the past for cell phones i think uh i don't know why people buy new cell phones you know because of the new ones announced the cameras are better but that's kind of domain specific right they're putting special purpose hardware to make the processing of images go much better so that's that that's the way they're doing it they're not particularly it's not that the arm process in there is twice as fast as much as they've added accelerators to help uh the experience of the phone can we talk a little bit about one other exciting space arguably the same level of impact as uh your work with risk is raid in your in 1988 you co-authored a paper a case for redundant arrays of inexpensive disks hence r-a-i-d raid so you that's where you introduce the idea of raid incredible that that little i mean little that paper kind of had this ripple effect and had a really a revolutionary effect so first what is right what is right so i this is work i did with my colleague randy cats and a star graduate student garth gibson so we had just done the fourth generation risk project and um randy cats which had an early uh apple uh macintosh computer at this time everything was done with floppy disks uh which are uh old uh technologies uh that could store things that didn't have much capacity and you had to to get any work done you're always sticking your little floppy disk in and out because they didn't have much capacity but they started building what are called hard disk drives which is magnetic material that can remember information storage for the mac and randy asked the question when he saw this uh disk uh next to his mac gee these are brand new small things before that uh for the big computers that the disk would be the size of washing machines and here's something the size of a kind of the size of a book or so this is i wonder what we could do with that well we the randy was involved in the in the fourth generation risk project here at berkeland the 80s so we figured out a way how to make the computation part the processor part go a lot faster but what about the storage part the uh can we do something to make it faster so we hit upon the idea of taking a lot of these disks developed for personal computers and macintoshes and putting many of them together instead of one of these washing machine size things and so we worked the wrote the first draft of the paper and we'd have 40 of these little pc disks instead of one of these uh washing machine size things and they would be much cheaper because they're made for pcs and they could actually kind of be faster because there was 40 of them rather than one of them and so we wrote a paper like that and sent it to one of our former berkeley students at ibm and he said well this is all great and good but what about the reliability of these things now you have 40 of these devices each of which are kind of pc quality so they're not as good as these ibm washing machines ibm dominated the the the the storage canisters so the reliability is going to be awful and so when we calculated it out instead of you know it breaking on average once a year it would break every two weeks so we thought about the idea and said well we got to address the reliability so we did it originally performance but we had to do reliability so the name redundant array of inexpensive disks is a array of these disks inexpensive like for pcs but we have extra copies so if one breaks we won't lose all the information we'll have enough redundancy that we could let some break and we can still preserve the information so the name is an array of inexpensive disks this is a collection of these pcs and the r part of the name was the redundancy so they'd be reliable and it turns out if you put a modest number of extra disks in one of these arrays it could actually not only be as faster and cheaper than one of these washing machine disks it could be actually more reliable because you could have a couple of breaks even with these cheap disks whereas one failure with the washing machine thing would knock it out did you did you have a sense just like with risk that in the 30 years that followed raid would take over as a as a mechanism for storage i i'd say i think i'm naturally an optimist but uh i thought our ideas were right i thought uh kind of like morris law it seemed to me if you looked at the history of the disk drives they went from washing machine size things and they were getting smaller and smaller and the volumes were with uh the smaller disk drives because that's where the pcs were so we thought that was a technological trend that disk drives the volume of disk drives was going to be it's small getting smaller and smaller devices which were true they were the size of a i don't know eight inches diameter then five inches then three inches diameters and so that it made sense to figure out how to deal things with an array of this so i think it was one of those things where logically we think the technological forces were on our side that it made sense so we expected it to catch on but there was that same kind of business question you know ibm was the big pusher of these disk drives uh in the real world where the technical advantage get turned into a business advantage or not uh it proved to be true it did and so you know we thought we were sound technically and it was unclear whether the business side but we kind of as academics we believed that technology should win and and it did and and if you look at those 30 years just from your perspective are there interesting developments in the space of storage that have happened in that time yeah the big thing that happened um well the couple of things that happened uh what we did had a modest amount of storage so as uh redundancy as people built bigger and bigger storage systems they've added more redundancy so they could add more failures and the biggest thing that happened in storage is for decades it was based on things physically spinning called hard disk drives where you used to turn on your computer and it would make a noise what that noise was was the disk drive spinning and they were rotating at like 60 revolutions per second and it's like uh if you remember the vinyl vinyl uh uh records if you have ever seen those that's what it looked like and there was like a needle like on a vinyl record that was reading it so the big drive change is switching that over to a semiconductor technology called flash so within the last i'd say about decade is an increasing fraction of all the computers in the world are using semiconductor for storage the flash drive instead of being magnetic uh their optical uh their their well their semiconductor writing of information uh into very densely um and that's been a huge difference so all the cell phones in the world use flash most of the laptops use flash all the embedded devices use flash instead of storage still in the cloud uh magnetic disks are more economical than flash but they use both in the cloud so it's been a huge change in the storage industry this the uh switching from primarily disk to be primarily semiconductor for the individual disk but still the raid mechanism applies to those different kinds of yes uh the people will still use rate ideas uh because it's kind of what's different you know kind of interesting kind of psychologically if you think about it um people have always worried about the reliability of computing since the earliest days so kind of but if we're talking about computation if your computer makes a mistake and uh the computer says we the computer has ways to check and say oh we screwed up we made a mistake what happens is that program that was running uh you have to redo it which is a hassle for storage if you've sent important information away and it loses that information you go nuts yeah this is the worst oh my god so if you have a laptop and you're not backing it up on the cloud or something like this and your disk drive breaks which it can do you'll lose all that information and you just go crazy right so the importance of reliability for storage is tremendously higher than the importance of reliability for computation because of the consequences of it so yes so raid ideas are are still very popular even with the switch of the technology although you know flash drives are more reliable you know if you're not doing anything like backing it up to get some redundancy so they handle it you're you're you're taking great risks you said that for you and possibly for many others teaching and research don't conflict with each other as one might suspect and in fact they kind of complement each other so maybe a question i have is how has teaching helped you in your research or just in your entirety as a person who both teaches and does research and just thinks and creates new ideas in this world yes i think um i think what happens is when you're a college student you know there's this kind of tenure system and doing research so kind of this model that uh you know is popular in america i think america really made it happen is we can attract these really great faculty to research universities because they get to do research as well as teach and that especially in fast moving fields this means people are up to date and they're teaching those kind of things so but when you run into a really bad professor a really bad teacher i think the students think well this guy must be a great researcher because why else could he be here so is i you know i i after 40 years at berkeley we had a retirement party and i got a chance to reflect and i looked back at some things that is not my experience there's a i saw a photograph of five of us in the department who won the distinguished teaching award from campus a very high honor you know what i've got one of those one of the highest honors and so there are five of us on that picture there's manuel blum uh richard carp me randy cast and john osterhaup uh contemporaries of mine i mentioned randy already all of us are in the national academy of engineering we've all run the distinguished teaching award blum carp and i are all have touring awards scoring awards right the high you know the highest award in computing so it's that's the opposite right it's what happens if you it's it's they're highly correlated so probably the other way to think of it if you're very successful people are maybe successful at everything they do it's not an either or and but it's an interesting question whether specifically that's probably true but specifically for teaching if there's something in teaching that it's the richard feinman right idea is there something about teaching that actually makes your research makes you think deeper and more outside the box and yeah absolutely absolutely i was going to bring up feinman i mean he he criticized the institute of advanced studies he uh so he says advanced studies was this thing that was created near princeton where einstein and all these smart people went and when he was invited he thought it was a terrible idea his this is a university it was supposed to be heaven right a university without any teaching but he thought it was a mistake is getting up in the classroom and having to explain things to students and having them ask questions like well why is that true makes you stop and think so he thinks he thought and i agree i think that interaction between a great research university and having students with bright young minds asking hard questions the whole time is is synergistic and uh you know a university without teaching wouldn't be as vital uh and exciting a place and i think it helps stimulate the the research another romanticized question but what's your favorite concept or idea to teach what inspires you or you see inspire the students is there something that pops to mind or or puts the fear of god in them i don't know whichever is most effective i mean in general i think people are surprised i've seen a lot of people who don't think they like teaching uh come come give guest lectures or teach a course and get hooked on seeing the lights turn on right is people you can explain something to people that they don't understand and suddenly they get something you know that's that's not that's important and difficult and just seeing the lights turn on is a you know it's a real satisfaction there i don't think there's any uh in specific example of that it's just the general joy of seeing them uh seeing them understand i have to talk about this because i've wrestled i do martial arts yeah oh yeah of course i love wrestling i'm a huge i'm russian so i oh sure i've talked to dan gable on the podcast so i dan gable's my era kind of guy so you wrestled at ucla among many other things you've done in your life uh competitively in sports and science so on you've you've wrestled maybe again continue with the romanticized questions but what have you learned about life yeah and maybe even science from wrestling or from yeah that's in fact um i wrestled at ucla but also at el camino community college and just right now we were in the state of california we were state champions at el camino and in fact i was talking to my mom and uh i got into ucla but i decided to go to the community college which is it's much harder to go to ucla than the community college and i asked why did i make the decision because i thought it was because of my girlfriend she said well it was the girlfriend and you thought the wrestling team was really good and we were right we had a great wrestling team we we actually uh wrestled against ucla at a tournament and we beat ucla as a community college which just freshmen and sophomores and the part of reason i brought this up is i'm gonna go they've invited me back at el camino to give a uh a lecture next month and so i'm we've my friend who is on the wrestling team that we're still together we're right now reaching out to other members of the wrestling team if we can get together for a reunion but in terms of me it was a huge difference i was i was both i was kind of the age cut off i was it was december 1st and so i was almost always the youngest person in my class and i matured later on you know our family matured later so i was almost always the smallest guy so you know i took you know kind of nerdy courses but i was wrestling so wrestling was huge for my uh you know self-confidence in high school and then you know i kind of got bigger at el camino and in college and so i had this uh kind of physical self-confidence and it's translated into research self-confidence uh and uh and also kind of i've had this feeling even today in my 70s you know if something if something going on in the streets that is bad physically i'm not gonna ignore it right i'm gonna stand up and try and straighten that out and that kind of confidence just carries through the entirety of your life yeah and and the same things happens intellectually if there's something going on where people are saying something that's not true i feel it's my job to stand up just like i would in the street if there's something going on somebody attacking some woman or something i'm not i'm not standing by and letting that get away so i feel it's my job to stand up so it's kind of ironically translates uh the other things that turned out for both i had really great college and uh high school coaches and they believed even though wrestling is an individual sport that we would be more successful as a team if we bonded together you do things that we would support each other rather than everybody you know in wrestling it's a one-on-one and you could be everybody's on their own but he felt if we bonded as a team we'd succeed so i kind of picked up those skills of how to form successful teams and how to from wrestling and so i think one of most people would say one of my strengths is i can create teams of faculty large teams of faculty grad students pool all together for a common goal and you know and uh often be successful at it but i got i got both of those things from wrestling also i think i heard this line about if people are in kind of you know collision you know sports with physical contact like wrestling or football and stuff like that people are a little bit more you know assertive or something and so i think uh i think that also comes through is you know in i was i didn't shy away from the risk-sys debates you know i was ha i enjoyed taking on the arguments and stuff like that so it was uh it was a i'm really glad i did wrestling i think it was really good for my self-image and i learned a lot from it so i think that's you know sports done well you know there's really uh lots of positives you can take about it of leadership um you know how to how to form teams and how how to be successful so we've talked about metrics a lot there's a really cool uh in terms of bench press and weight lifting pound years metric that you've developed that we don't have time to talk about but it's a it's a really cool one that people should look into it's rethinking the way we think about metrics and weightlifting but let me talk about metrics more broadly since that appeals to you in all forms let's look at the most ridiculous the biggest question of the meaning of life if you were to try to put metrics on a life well lived what would those metrics be yeah a friend of mine randy cat said this he said uh you know when when it's time to sign off it's it's uh the measure isn't the number of zeros in your bank account it's the number of inches in the obituary in the new york times as he said it i i think you know having uh you know this this is a cliche is that people people don't die wishing they'd spend more time in the office right uh as i reflect upon my career uh there have been you know a half a dozen a dozen things say i've been proud of a lot of them aren't papers or scientific results certainly my family my wife we've been married uh more than 50 years uh kids and grandkids that's really precious uh education things i've done i'm very proud of uh you know books and courses uh i did some help with underrepresented groups that was effective so it was interesting to see what were the things i reflected you know i had hundreds of papers but some of them were the papers like the risk and rate stuff i'm proud of but a lot of them were or were not those things so people who are just spend their lives you know going after the dollars or going after all the papers in the world you know that's probably not the things that are afterwards you're going to care about when i was uh uh just when i got the offer from berkeley but before i showed up i read a book where they interviewed a lot of people in all works of life and what i got out of that book was the people who felt good about what they did was the people who affected people as opposed to things that were more transitory so i came into this job assuming that it wasn't going to be the papers it was going to be relationships with the people over time that i would i would value and that was a correct assessment right it's it's the people you work with the people you can influence the people you can help is the things that you feel good about towards into your career it's not not the the stuff that's more transitory i don't think there's a better way to end it than uh talking about your family the the over 50 years of being married to your childhood sweetheart and what i think i could add is how do when you tell people you've been married 50 years they want to know why how why yeah i can tell you the nine magic words that you need to say to your partner to keep a good relationship and the nine magic words are i was wrong you were right i love you okay and you got to say all nine you can't say i was wrong you were right you're a jerk you know you can't say so yeah i freely acknowledging that you made a mistake the other person was right and that you love them really gets over a lot of bumps in the road so that's what i pass along beautifully put david is a huge honor thank you so much for the book you've written for the research you've done for changing the world thank you for talking today oh thanks for the interview thanks for listening to this conversation with david patterson and thank you to our sponsors the jordan harbinger show and cash app please consider supporting this podcast by going to jordan harbinger.com slash lex and downloading cash app and using code lex podcast click the links buy the stuff it's the best way to support this podcast and the journey i'm on if you enjoy this thing subscribe on youtube review it with five stars and have a podcast support on patreon or connect with me on twitter at lex friedman spelled without the e try to figure out how to do that it's just f-r-i-d-m-a-n and now let me leave you with some words from henry david theroux our life is furthered away by detail simplify simplify thank you for listening and hope to see you next time
 The following is a conversation with David Patterson,
 Turing Award winner and professor of computer science at Berkeley.
 He's known for pioneering contributions to risk processor architecture
 used by 99% of new chips today and for co-creating RAID storage.
 The impact that these two lines of research and development have had in our
 world is immeasurable. He's also one of the
 great educators of computer science in the world.
 His book with John Hennessy is how I first learned about
 and was humbled by the inner workings of machines at the lowest level.
 Quick summary of the ads. Two sponsors, the Jordan Harbinger Show
 and Cash App. Please consider supporting the podcast by going to
 JordanHarbinger.com slash Lex and downloading Cash App and using code
 LexPodcast. Click on the links, buy the stuff. It's the best way to support
 this podcast and in general the journey I'm on in my research and startup.
 This is the Artificial Intelligence Podcast. If you enjoy it,
 subscribe on YouTube, review it, the five stars on Apple Podcast,
 support it on Patreon or connect with me on Twitter
 at Lex Friedman spelled without the E, just F-R-I-D-M-A-N.
 As usual, I'll do a few minutes of ads now and never any ads in the middle that
 can break the flow of the conversation. This episode is supported by the Jordan
 Harbinger Show. Go to JordanHarbinger.com slash Lex.
 It's how he knows I sent you. On that page there's links to subscribe to it on
 Apple Podcast, Spotify and everywhere else. I've been binging on this podcast.
 It's amazing. Jordan is a great human being. He gets the best out of his guests,
 dives deep, calls them out when it's needed and makes the whole thing fun to
 listen to. He's interviewed Kobe Bryant, Mark
 Cuban, Yelda Gras Tyson, Garry Kasparov and many more.
 I recently listened to his conversation with Frank Abagnale,
 author of Catch Me If You Can and one of the world's most famous conmen.
 Perfect podcast length and topic for a recent long distance run
 that I did. Again, go to JordanHarbinger.com slash Lex
 to give him my love and to support this podcast.
 Subscribe also on Apple Podcast, Spotify and everywhere else.
 This show is presented by Cash App, the greatest sponsor of this podcast ever
 and the number one finance app in the App Store.
 When you get it, use code LexPodcast. Cash App lets you send money to friends,
 buy bitcoin and invest in the stock market with as little as one dollar.
 Since Cash App allows you to buy bitcoin, let me mention that cryptocurrency in the
 context of the history of money is fascinating.
 I recommend A Scent of Money as a great book on this history.
 Also, the audiobook is amazing. Debits and credits on ledgers started around
 30,000 years ago. The US dollar created over 200 years ago
 and the first decentralized cryptocurrency released just over 10 years ago.
 So given that history, cryptocurrency is still very much in its early days of
 development, but it's still aiming to and just might
 redefine the nature of money. So again, if you get Cash App from the App Store,
 Google Play and use the code LexPodcast, you get $10
 and Cash App will also donate $10 to FIRST, an organization that is helping to
 advance robotics system education for young people around the world.
 And now, here's my conversation with David Patterson.
 Let's start with the big historical question. How have computers changed in
 the past 50 years at both the fundamental architectural level and
 in general, in your eyes? Well, the biggest thing that happened was the
 invention of the microprocessor. So computers that used to fill up
 several rooms could fit inside your cell phone.
 And not only did they get smaller, they got a lot faster. So they're
 a million times faster than they were 50 years ago
 and they're much cheaper and they're ubiquitous.
 There's 7.8 billion people on this planet.
 Probably half of them have cell phones right now, just remarkable.
 There's probably more microprocessors than there are people.
 Sure, I don't know what the ratio is, but I'm sure it's above one.
 Maybe it's 10 to 1 or some number like that.
 What is a microprocessor? So a way to say what a microprocessor is, is to
 tell you what's inside a computer. So a computer forever has classically had
 five pieces. There's input and output, which kind of naturally,
 as you'd expect, is input is like speech or typing and output is displays.
 There's a memory and like the name sounds, it remembers things.
 So it's integrated circuits whose job is you put information in them. When you
 ask for it, it comes back out. That's memory.
 And the third part is the processor, where the team
 microprocessor comes from. And that has two pieces
 as well, and that is the control, which is kind of the brain
 of the processor and what's called the arithmetic unit. It's kind of the
 brawn of the computer. So if you think of the as a human body, the
 arithmetic unit, the thing that does the number crunching is the
 is the body and the control is the brain. So those five pieces,
 input, output, memory, arithmetic unit and control have been
 computers since the very dawn. And the last two are considered the
 processor. So a microprocessor simply means a processor that fits on a
 microchip. And that was invented about, you know,
 40 years ago, was the first microprocessor.
 It's interesting that you refer to the arithmetic unit as the
 like you connected to the body and the controllers of the brain.
 So I guess I never thought of it that way. It's a nice way to think of it
 because most of the actions the microprocessor does in terms of
 literally sort of computation. But the microprocessor does computation.
 It processes information. And most of the thing it does
 is basic arithmetic operations. What are the operations, by the way?
 It's a lot like a calculator. You know, so there are
 add instructions, subtract instructions, multiply and divide,
 and kind of the brilliance of the invention of the
 of the computer or the processor is that it performs very trivial
 operations, but it just performs billions of them
 per second. And what we're capable of doing
 is writing software that can take these very trivial instructions
 and have them create tasks that can do things better than human beings can do
 today. Just looking back through your career,
 did you anticipate the kind of how good we would be able to get
 at doing these small basic operations? How many surprises along the way
 where you just kind of sat back and said, wow, I didn't expect it to go
 this fast, this good. Well, the fundamental driving force
 is what's called Moore's law, which was named after
 Gordon Moore, who's a Berkeley alumnus, and he made this observation
 very early in what are called semiconductors, and semiconductors are
 these ideas you can build these very simple switches and you can
 put them on these microchips. And he made this observation over 50 years
 ago. He looked at a few years and said, I think what's going to happen is the
 number of these little switches called transistors
 is going to double every year for the next decade.
 And he said this in 1965, and in 1975 he said, well,
 maybe it's going to double every two years. And that, what other people
 since named that Moore's law, guided the industry.
 And when Gordon Moore made that prediction, he
 wrote a paper back in, I think, in the in the 70s
 and said, not only is this going to happen,
 he wrote, what would be the implications of that? And in this article from 1965,
 he shows ideas like computers being in cars and
 computers being in something that you would buy in the
 grocery store and stuff like that. So he kind of
 not only called his shot, he called the implications of it.
 So if you were in the computing field and if you believed
 Moore's prediction, he kind of said what would be happening in the
 future. So it's not kind of,
 it's at one sense this is what was predicted and you could imagine
 it was easy to believe that Moore's law was going to continue and so this would
 be the implications. On the other side, there are these
 kind of shocking events in your life. Like I remember
 driving in Marin across the bay in San Francisco and seeing a
 bulletin board at a local civic center and it had a URL on it.
 And it was like for all for the people at the time,
 these first URLs and that's the, you know, WWW select stuff
 with the HGP. People thought it looked like alien
 writing, right? You'd see these advertisements and
 commercials or bulletin boards that had this alien writing on it. So for the lay
 people, it's like what the hell is going on here?
 And for those people in industry, it's oh my god,
 this stuff is getting so popular it's actually leaking out of our
 nerdy world into the real world. So that, I mean there was events like that. I
 think another one was, I remember with the early days of the
 personal computer when we started seeing advertisements in magazines
 for personal computers. Like it's so popular that it made the
 newspapers. So at one hand, you know, Gordon Moore predicted it and you kind of
 expected it to happen, but when it really hit and you saw it affecting society, it
 was shocking.
 So maybe taking a step back and looking both
 the engineering and philosophical perspective, what
 do you see as the layers of abstraction in the computer? Do you see a
 computer as a set of layers of abstractions?
 Yeah, I think that's one of the things that computer science
 fundamentals is these things are really complicated
 in the way we cope with complicated software and complicated hardware is
 these layers of abstraction. And that simply means that we,
 you know, suspend disbelief and pretend that the only thing you know is that
 layer and you don't know anything about the layer below it.
 And that's the way we can make very complicated things.
 And probably it started with hardware, that's the way it was done, but it's
 been proven extremely useful. And you know, I
 would say in a modern computer today there might be 10 or 20 layers of
 abstraction and they're all trying to kind of
 enforce this contract is all you know is this interface.
 There's a set of commands that you can are allowed to use and you stick to
 those commands and we will faithfully execute that.
 And it's like peeling the layers of a onion and you get down there's a new
 set of layers and so forth. So for people who want to study computer
 science, the exciting part about it is you can
 keep peeling those layers. You take your first course and you might learn to
 program in Python and then you can take a follow-on course and you
 can get it down to a lower level language like C
 and you know you can go and then you can if you want to you can start getting
 into the hardware layers and you keep getting down all the way to
 that transistor that I talked about that
 Gordon Moore predicted and you can understand all those layers all the way
 up to the highest level application software. So it's
 it's a very kind of magnetic field. If you're interested you can go into
 any depth and keep going. In particular what's
 happening right now or what's happened in software the last 20 years recently in
 hardware there's getting to be open source versions of all of these things.
 So what open source means is what the engineer the programmer
 designs it's not secret the belonging to a company it's out
 there on the world wide web so you can see it. So you can look at
 for lots of pieces of software that you use you can see
 exactly what the programmer does if you want to get
 involved. That used to stop at the hardware
 recently there's been an effort to make open source hardware and those
 interfaces open so you can see that. So instead of
 before you had to stop at the hardware you can now start going
 layer by layer below that and see what's inside there. So it's
 it's a remarkable time that for the interested
 individual can really see in great depth what's really going on in the computers
 that power everything that we see around us. Are you
 thinking also when you say open source at the hardware
 level is this going to the design architecture instruction set
 level or is it going to literally the the you know the manufacture of the
 of the actual hardware of the actual chips whether that's ASICS
 specialized a particular domain or the general.
 Yeah so let's talk about that a little bit. So when you get
 down to the bottom layer of software the way software talks to hardware is
 in a vocabulary and what we call that vocabulary we call that
 the words of that vocabulary called instructions
 and the technical term for the vocabulary is instruction set.
 So those instructions are likely we talked about earlier there can be
 instructions like add, subtract, and multiply, divide.
 There's instructions to put data into memory
 which is called a store instruction and to get data back which is called the
 load instructions and those simple instructions go back to the
 very dawn of computing and you know in 1950 the commercial
 computer had these instructions. So that's the instruction set that we're
 talking about. So up until I'd say 10 years ago these
 instruction sets were all proprietary so a very popular one is owned by Intel
 the one that's in the cloud and in all the pcs in the world.
 Intel owns that instruction set it's referred to as the
 x86. There have been a sequence of ones that
 the first number was called 8086 and since then there's been a lot of numbers
 but they all end in 86. So there's been that
 kind of family of instruction sets. And that's proprietary.
 And that's proprietary. The other one that's very popular
 is from ARM that kind of powers all the cell phones in the world, all the
 iPads in the world, and a lot of things that are so-called
 internet of things devices. ARM and that one is also proprietary.
 ARM will license it to people for a fee but they own that.
 So the new idea that got started at Berkeley kind of unintentionally 10 years
 ago is in early in my career we pioneered
 a way to do these vocabulary instruction sets that was very controversial at the
 time. At the time in the 1980s conventional
 wisdom was these vocabulary instruction sets should have
 you know powerful instructions so polysyllabic
 kind of words you can think of that. And so that instead of just add, subtract,
 and multiply they would have polynomial divide or sort a list.
 And the hope was of those powerful vocabularies that make it easier for
 software. So we thought that didn't make sense
 for microprocessors. There was people at Berkeley and Stanford and IBM who
 argued the opposite. And we called that was a reduced
 instruction set computer. And the abbreviation
 was RISC and typical for computer people we
 use the abbreviations start pronouncing it so RISC was the thing. So we said
 for microprocessors which with Gordon's more is changing really fast
 we think it's better to have a pretty simple
 set of instructions, reduced set of instructions.
 That that would be a better way to build microprocessors since they're going to be
 changing so fast due to Moore's law. And then we'll just use standard
 software to cover the use generate more of those simple
 instructions. And one of the pieces of software
 that's in that software stack going between these layers of abstractions is
 called a compiler and it's basically translates. It's a
 translator between levels. We said the translator will handle that.
 So the technical question was well since there are these reduced
 instructions you have to execute more of them. Yeah that's right.
 But maybe you can execute them faster. Yeah that's right. They're simpler so
 they can go faster but you have to do more of them. So what's
 what's that trade-off look like? And it ended up that we ended up
 executing maybe 50% more instructions, maybe a third more
 instructions, but they ran four times faster. So
 so this risk, controversial risk ideas proved to be maybe factors of three or
 four better. I love that this idea was controversial
 and almost kind of like rebellious. So that's
 in the context of what was more conventional is the
 complex instructional side computing. So how would you pronounce that?
 CISC. CISC versus risk. And believe it or not
 this sounds very very you know who cares about this right? It was
 it was violently debated at several conferences. It's like what's the right
 way to go? And people thought risk was you know
 was a de-evolution. We're going to make software worse by making
 those instructions simpler and there are fierce debates
 at several conferences in the 1980s and then
 later in the 80s it kind of settled to these benefits.
 It's not completely intuitive to me why risk has for the most part won.
 Yeah so why did that happen? Yeah yeah and maybe I can sort of say a bunch of
 dumb things that could lay the land for for further commentary. So to me
 this is a this is kind of interesting thing if you look at C++ versus C.
 With modern compilers you really could write faster code with C++.
 So relying on the compiler to reduce your complicated code
 into something simple and fast. So to me comparing risk maybe this is a dumb
 question but why is it that focusing the definition
 the design of the instruction set on very few simple instructions
 in the long run provide faster execution
 versus coming up with like you said a ton of complicated instructions
 then over time you know years maybe decades you come up with compilers that
 can reduce those into simple instructions for you.
 Yeah so let's try and split that into two pieces.
 So if the compiler can do that for you if the compiler can take you know a
 complicated program and produce simpler instructions
 then the programmer doesn't care right programmer.
 I don't care just how fast is the computer I'm using how much does it cost.
 And so what happened kind of in the software industry
 is right around before the 1980s critical pieces of software were still
 written not in languages like C or C++. They were written in what's
 called assembly language where there's this
 kind of humans writing exactly at the instructions at the level
 that a computer can understand so they were writing
 add subtract multiply you know instructions.
 It's very tedious but the belief was to write this lowest
 level of software that that people use which are called
 operating systems they had to be written in assembly language because these high
 level languages were just too inefficient. They were too slow or the
 the programs would be too big. So that changed
 with a famous operating system called Unix which is kind of the
 the grandfather of all the operating systems today.
 So Unix demonstrated that you could write
 something as complicated as an operating system in a language like C.
 So once that was true then that meant we could hide the instruction set
 from the programmer and so that meant then it didn't really matter
 the programmer didn't have to write lots of these simple instructions that was up
 to the compiler. So that was part of our arguments for
 RISC is if you were still writing assembly language there's maybe a better
 case for CISC instructions but if the compiler can do that it's
 going to be you know that's done once the computer
 translates it once and then every time you run the program
 it runs at this this potentially simpler instructions.
 And so that that was the debate right is because
 and people would acknowledge that the simpler instructions
 could lead to a faster computer you can think of monosyllabic instructions you
 could say them you know if you think of reading
 you can probably read them faster or say them faster than long instructions the
 same thing that analogy works pretty well for
 hardware. And as long as you didn't have to read a
 lot more of those instructions you could win.
 So that's that's kind of that's the basic idea for RISC.
 But it's interesting that the in that discussion of Unix and C
 that there's only one step of levels of abstraction from
 the code that's really the closest to the machine
 to the code that's written by human. It's
 at least to me again perhaps a dumb intuition but
 it feels like there might have been more layers
 sort of different kinds of humans stacked on top of each other.
 So what's true and not true about what you said
 is several of the layers of software like so the if you
 two layers would be suppose we just talk about two layers that would be the
 operating system like you get from from Microsoft or from Apple like iOS or
 the Windows operating system and let's say applications that run on top of it
 like Word or Excel. So both the operating system
 could be written in C and the application could be written in C.
 But you could construct those two layers
 and the applications absolutely do call upon the operating system
 and the change was that both of them could be written in higher level
 languages. So it's one step of a translation but
 you can still build many layers of abstraction of software on top of
 that and that's how how things are done today. So
 still today many of the layers that you'll
 you'll deal with you may deal with debuggers you may deal with linkers
 there's libraries many of those today will be written in C++
 say even though that language is pretty ancient
 and even the Python interpreter is probably written
 in C or C++. So lots of layers there are probably written in these
 some old-fashioned efficient languages that
 still take one step to produce these instructions produce risk
 instructions but they're composed each layer of software
 invokes one another through these interfaces and you can get
 10 layers of software that way. So in general the
 RISC was developed here at Berkeley? It was kind of the three
 places that were these radicals that advocated for this against the rest of
 the community were IBM Berkeley and Stanford. You're
 one of these radicals and how radical did you feel how confident
 did you feel how doubtful were you that RISC might be the right approach
 because it may you can also intuit that is kind of taking a step
 back into simplicity not forward into simplicity.
 Yeah no it was easy to make yeah it was easy to make the argument
 against it well this was my colleague John Hennessy at
 Stanford and I we were both assistant professors
 and for me I just believed in the power of our ideas.
 I thought what we were saying made sense Morris law is going to move fast
 the other thing that I didn't mention is one of the
 surprises of these complex instruction sets
 you could certainly write these complex instructions if the programmers writing
 them themselves. It turned out to be kind of difficult
 for the compiler to generate those complex instructions kind of ironically
 you'd have to find the right circumstances that that just exactly
 fit this complex instruction it was actually easier for the compiler
 to generate these simple instructions so not only did these complex
 instructions make the hardware more difficult to build often the
 compiler wouldn't even use them and so it's harder to build the
 compiler doesn't use them that much the simple instructions go better with
 Morris law that you know the number of transistors
 is doubling every every two years so we're going to have
 you know the you want to reduce the time to design the
 microprocessor that may be more important than these number of instructions.
 So I think we believed in the that we were right that this was the
 best idea then the question became in these debates well yeah that's a
 good technical idea but in the business world this doesn't
 matter there's other things that matter it's like
 arguing that if there's a standard width of railroad tracks
 and you've come up with a better width but the whole world is covered in railroad
 tracks so you'll your ideas have no chance of success
 commercial success it was technically right but commercially it'll be
 insignificant. Yeah it's it's kind of sad that this
 world the history of human civilization is full of
 good ideas that lost because somebody else came along first
 with a worse idea and it's good that in the computing world at least
 some of these have well you could i mean there's probably still cisc people that
 say uh yeah there still are well and what
 happened was what was interesting uh intel a bunch of the cisp uh companies
 with cisc instructions sets of vocabulary they
 gave up uh but not intel what intel did to its
 credit uh because intel's vocabulary was
 um in the in the personal computer and so that was a very valuable
 vocabulary because the way we distribute
 software is in those actual instructions it's in the instructions of that
 instruction set so uh they that you don't get that source
 code what the programmers wrote you get after it's been translated into
 the lowest level that's if you were to get a floppy disk or
 download software it's in the instructions of that instruction set so
 the x86 instruction set was very valuable
 so what intel did cleverly and amazingly
 is they had their chips in hardware do a translation step they would take
 these complex instructions and translate them into essentially in risk
 instructions in hardware on the fly you know at at uh gigahertz clock speeds
 and then any good idea that risk people had they could use and they could still
 be compatible with this uh with this um really
 valuable pc software software base and which also had very high volumes you
 know 100 million personal computers per year so
 the cisc architecture in the business world was actually
 one in in this pc era
 so just going back to the the time of designing risk
 when you design an instruction set architecture do you think like a
 programmer do you think like a microprocessor
 engineer do you think like a artist a philosopher do you think in
 software and hardware i mean is it art is it science yeah i'd
 say i think designing a good instruction
 set is an art and i think you're trying to uh
 balance um the the simplicity and speed of execution
 with how well easy it will be for compilers to use it right you're trying
 to create an instruction set that everything in there can be used by
 compilers there's not things that are missing uh that'll
 make it difficult for the program to run uh they run efficiently but you want it
 to be easy to build as well so it's that kind of
 so you're thinking i'd say you're thinking hardware trying to find a hard
 spur software compromise that'll work well
 and and it's uh you know it's you know it's a matter of taste
 right it's it's kind of fun to build instruction sets
 it's not that hard to build an instruction set but to build one that
 catches on and people use you know you have to be
 you know fortunate to be the right place in the right time or
 have a design that people really like are you using metrics
 so is it uh quantifiable because you kind of have to
 anticipate the kind of programs that people write yeah
 ahead of time so is that can you use numbers can you use metrics can you
 quantify something ahead of time or is this again that's the art part where
 you're kind of no it's a big a big change kind of what
 happened i think from hennessey's and my
 perspective in the 1980s what happened was going from kind of
 really uh you know taste and hunches to
 quantifiable and in fact he and i wrote a textbook
 at the end of the 1980s called computer architecture a quantitative approach
 i heard of that and and it's it's the thing
 it had a pretty big big impact in the field because we went from
 textbooks that kind of listed so here's what this computer does and here's the
 pros and cons and here's what this computer does and pros and cons to
 something where there were formulas and equations where you could measure
 things so specifically for instruction sets
 what we do and some other fields do is we agree upon a set of programs which
 we call benchmarks and a suite of programs and then
 you develop both the hardware and the compiler and you get
 numbers on how well your uh your computer does given its
 instruction set and how well you implemented it in your
 microprocessor and how good your compilers are
 and in computer architecture we you know using
 professors terms we grade on a curve rather than grade on absolute scale so
 when you say you know this these programs run this
 fast well that's kind of interesting but how do you know it's better well you
 compare it to other computers of the same time so the
 best way we know how to make turn it into a kind of more science and
 experimental and quantitative is to compare yourself to other computers
 of the same era that have the same access the same kind of technology
 on commonly agreed benchmark programs so maybe to toss up two possible
 directions we can go one is what are the different trade-offs
 in designing architectures we've been already talking about syscon risk but
 maybe a little bit more detail in terms of specific features
 that you were thinking about and the other side is what are the
 metrics that you're thinking about when looking at these trade-offs yeah
 well let's talk about the metrics so during these debates we actually had
 kind of a hard time explaining convincing people the ideas and partly
 we didn't have a formula to explain it and a few years
 into it we hit upon a formula that helped explain what was going on and
 um i think if we can do this see how it works orally to do this so
 uh the is if i can do a formula orally let's see so the uh so fundamentally
 uh the way you measure performance is how long does it take a program to run
 program if you have 10 programs and typically these benchmarks were sweet
 because you'd want to have 10 programs so they could represent lots of
 different applications so for these 10 programs how long they take to run
 well now when you're trying to explain why it took so long
 you could factor how long it takes a program to run into three factors
 uh one of the first one is how many instructions did it take to execute
 so that's the that's the what we've been talking about you know the
 instructions of alchemy how many did it take all right
 the next question is how long did each instruction take to run
 on average so you multiply the number of instructions
 times how long it took to run and that's your time okay so that's
 but now let's look at this metric of how long did it take the
 instructions to run well it turns out the way we could build computers today
 is they all have a clock and you've seen this when you if you buy a
 microprocessor it'll say 3.1 gigahertz or 2.5 gigahertz and
 more gigahertz is good well what that is is the speed of the
 clock so 2.5 gigahertz turns out to be
 four billionths of instruction or four nanoseconds
 so that's the clock cycle time but there's another factor which is
 what's the average number of clock cycles that takes per instruction so
 it's number of instructions average number of
 clock cycles and the clock cycle time so in these risk-sys debates we would
 they would concentrate on but risk needs to take more
 instructions and we'd argue what maybe the clock cycle is faster but what the
 real big difference was was the number of clock cycles per
 instruction per instruction that's fascinating
 what about the mess of the beautiful mess of parallelism in the whole picture
 parallelism which has to do with say how many
 instructions could execute in parallel and things like that you could think of
 that as affecting the clock cycles per instruction because it's the average
 clock cycles per instruction so when you're running a program if it
 if it took a hundred billion instructions and
 on average it took two clock cycles per instruction and they were four
 nanoseconds you could multiply that out and see how long it took to run
 and there's all kinds of tricks to try and reduce the number of clock cycles
 per instruction but it turned out that the way they would do
 these complex instructions is they would actually build what we would call an
 interpreter in a simpler a very simple hardware
 interpreter but it turned out that for the sys constructions if you had to use
 one of those interpreters it would be like 10 clock cycles per instruction
 where the risk instructions could be two so there'd be this factor of five
 advantage in clock cycles per instruction we have to execute say 25 or
 50 percent more instructions so that's where the win would come and then you
 could make an argument whether the clock cycle times are the same or not but
 pointing out that we could divide the benchmark results time per program into
 three factors and the biggest difference in risk
 insists was the clock cycles per you execute a few more instructions but the
 clock cycles per instruction is much less and that was what this debate once
 we made that argument then people say oh
 okay i i get it and so we went from uh it was
 outrageously controversial in you know 1982 that maybe probably by 1984 so
 people said oh yeah technically they've got a good argument
 what are the instructions in the risk instruction set just to get an intuition
 okay 1995 i was asked to sign in to predict the future of what
 microprocessor future so i and that and i'd seen these predictions
 and usually people predict something outrageous just to be
 entertaining right and so my prediction for 2020 was
 you know things are going to be pretty much they're going to look very
 familiar to what they are and they are and if you were to read the
 article you know the things i said are pretty much
 true the instructions that that have been around forever are kind of the same
 and that's the outrageous prediction actually yeah given how fast computers
 have been growing well and you know morse law was going to go on we thought for 25
 more years uh you know who knows but kind of the
 surprising thing in fact you know hennessey and i
 you know won the the acm am touring award for
 both the risk construction set contributions and for that textbook i
 mentioned but you know we're surprised that here we are
 35 40 years later after we did our work and the the conventionalism of the best
 way to do instruction sets is still those risk instruction sets
 that looked very similar to what we looked like you know we did in the 1980s
 so those uh surprisingly there hasn't been some
 radical new idea even though we have you know a million times as many
 transistors as we had uh back then but what are the basic
 instructions and how do they change over the years so
 i was talking about addition subtract these are the okay the specific
 so the the so the things that are in a calculator you
 are in a computer so any of the buttons that are in the calculator in the
 computer so the the button so if you there's a
 memory function key and like i said those are turns into putting something in
 memories called a store bring something back to load just a
 quick tangent when you say memory what does memory mean
 uh well i told you there were five pieces of a computer and if
 if you remember in a calculator there's a memory key so you want to have
 intermediate calculation and bring it back later
 so you'd hit the memory plus key m plus maybe and it would put that into memory
 and then you'd hit an rm like recurrent instruction
 and it'd bring it back into the display so you don't have to type it you don't
 have to write it down bring it back again
 so that's exactly what memory is that you can put things into it
 as temporary storage and bring it back when you need it later
 so that's memory and loads and stores but the big thing the difference between
 a computer and a calculator is that the computer can make decisions
 and and amazingly decisions are as simple as
 is this value less than zero or is this value bigger than that value
 so there's uh and those instructions which are called
 conditional branch instructions is what give computers all its power
 if you were in the early days of computing before
 what's called the general purpose microprocessor people would
 write these instructions kind of in hardware
 and but it couldn't make decisions it would just it would do the same thing
 over and over again with the power of having branch
 instructions it can look at things and make decisions
 automatically and it can make these decisions you know billions of times per
 second and amazingly enough we can get you know
 thanks to advanced machine learning we can we can create programs
 that can do some things smarter than human beings can do but if you go down
 that very basic level it's the instructions are the keys on the
 calculator plus the ability to make decisions
 these conditional branch instructions and all decisions fundamentally can be
 reduced down to these branch instructions yeah so in in fact
 and so you know going way back in the stack back to
 you know we did four RISC projects at Berkeley in the 1980s they did a couple
 at Stanford in the 1980s in 2010 we decided we
 wanted to do a new instruction set learning from the
 mistakes of those RISC architectures in 1980s and that was done
 here at Berkeley almost exactly 10 years ago and the
 the people who did it I participated but other Kristo Sanovic and others
 drove it they called it RISC-5 to honor those RISC
 uh the four RISC projects of the 1980s so what does RISC-5 involve
 so RISC-5 is another instruction set vocabulary
 it's uh learned from the mistakes of the past but it still has
 if you look at the there's a core set of instructions it's very similar
 to the simplest architectures from the 1980s and the big difference about RISC-5
 is it's open so I talked early about proprietary versus
 uh open and um kind of soft software so this is an instruction set so
 it's a vocabulary it's not it's not hardware
 but by having an open instruction set we can have
 open source implementations open source processors that people can use
 where do you see that going it's a really exciting possibilities but
 you're just thinking the scientific american if you were to predict 10 20 30
 years from now that kind of ability to utilize open
 source instruction set architectures like RISC-5
 what kind of possibilities might that unlock yeah and so just to make it clear
 because this is confusing uh the specification of RISC-5 is something
 that's like in a textbook there's books about it so that's what
 that's kind of defining an interface uh there's also the way you build
 hardware is you write it in languages they're kind of like C
 but they're specialized for hardware that gets translated into
 hardware and so these implementations of this specification are what are the
 open source so they're written in something that's
 called varilog or vhdl but it's put up on the web just like
 you can see the c++ code for linux on the web so that's the open
 instruction set enables open source implementations of RISC-5
 so you can literally build a processor using this instruction set
 people are people are so what happened to us that the story was
 this was developed here for our use to do our research
 and we made it we licensed under the berkeley software distribution license
 like a lot of things get licensed here so other academics use it they wouldn't
 be afraid to use it and then about 2014 we started getting
 complaints that we were using it in our research in our courses
 and we got complaints from people in industry is why did you change
 your instruction set between the fall and the spring
 semester and well we get complaints from nutritional time why the hell do you
 care what we do with our instruction set and
 then when we talked to them we found out there was this thirst for this idea of
 an open instruction set architecture and they had
 been looking for one they stumbled upon ours at berkeley thought it was
 boy this looks great we should use this one and so once we realized there is
 this need for an open instruction set architecture we thought
 that's a great idea and then we started supporting it and tried to make it
 happen so this was kind of we accidentally
 stumbled into this and to this need and our timing was good
 and so it's really taking off there's a
 you know universities are good at starting things but they're not good at
 sustaining things so like linux has a linux foundation there's a
 risk five foundation that we started there's there's an
 annual conferences and the first one was done i think
 january of 2015 and the one that was just last december in it you know it had
 50 people at it and the this one last december had
 i don't know 1700 people were at it and the companies excited all over the world
 so if predicting into the future you know if we were doing 25 years i
 would predict that risk five will be you know possibly the most popular
 instruction set architecture out there because
 it's a pretty good instruction set architecture and it's open and free
 and there's no reason lots of people shouldn't use it and there's benefits
 just like linux is so popular today compared to 20
 years ago i and you know the fact that you can
 get access to it for free you can modify it you can improve it for all those same
 arguments and so people collaborate to make it a
 better system for everybody to use and that works in software and i expect
 the same thing will happen in hardware so if you look at
 arm intel mips if you look at just the lay of the land
 and what do you think just for me because i'm not familiar how
 difficult this kind of transition would uh how much challenges this kind of
 transition would entail do you see let me ask my dumb question
 in another way no that's i know where you're headed
 well there's a bunch i think the thing you point out there's there's these
 proprietor very popular proprietary instruction sets
 the x86 and so how do we move to risk five potentially
 in sort of in the span of five ten twenty years a kind of unification
 and given that the devices the kind of way we use devices
 iot mobile devices and in the cloud is keeps changing well part of it a big
 piece of it is um the software stack and what
 right now looking forward there seem to be three important markets
 there's the cloud and the cloud is simply uh
 companies like alibaba and amazon and google
 um microsoft having these giant data centers with
 tens of thousands of servers in maybe a hundred
 maybe a hundred of these data centers all over the world and that's what the
 cloud is so the computer that dominates the cloud is the x86
 instruction sets so the the instructions are the instruction sets
 used in the cloud of the x86 almost almost 100 percent of that today
 is x86 the other big thing are cell phones
 and laptops those are the big things today i mean the pc
 is also dominated by the x86 instructor set but those sales are dwindling
 you know there's maybe 200 million pc's a year and there's
 i said one and a half billion phones a year there's numbers like that
 so for the phones that's dominated by arm and now uh and a reason
 that i talked about the software stacks and the third category is internet of
 things which is basically embedded devices things in your cars and your
 microwaves everywhere so what's different about
 those three categories is for the cloud the software that runs
 in the cloud is determined by these companies
 alibaba amazon google microsoft so they control that software stack for the
 cell phones there's both for android and apple the
 software they supply but both of them have marketplaces where
 anybody in the world can build software and that software
 is translated or you know compiled down and shipped
 in the vocabulary of arm so that's what's referred to as binary compatible
 because the actual it's the instructions are turned into
 numbers binary numbers and shipped around the world so
 and so just a quick interruption so arm what is arm
 is uh arm is an instruction set like a risk based
 yeah it's a risk-based instruction set it's a proprietary one arm stands for
 uh advanced risk machine arm is the name where the company is so
 it's a proprietary risk architecture so and it's been around um for a while
 and it's you know the surely the most popular
 instruction set in the world right now they
 every year billions of chips are using uh the arm design in this post pc era is
 it was one of the early risk adopters of the risk
 yeah the first arm goes back i don't know 86 or so so
 berkeley instead did their work in the early 80s the arm guys
 uh needed an instruction set and they read our papers and it heavily influenced
 them so getting back my story what about
 internet of things well software is not shipped in internet of things it's the
 the uh embedded device people control that software stack
 so uh you would the opportunities for risk five everybody thinks
 is in the internet of things embedded things because there's no
 dominant player like there is in the cloud or the
 smartphones and you know it's it's uh doesn't have a lot of licenses
 associated with and you can enhance the instruction set if you want
 and it's and people uh have looked at instruction sets and think it's a very
 good instruction set so it appears to be very popular there
 it's possible that um in the cloud people
 those companies control their software stacks so that it's possible that they
 would um decide to use risk five if we're
 talking about 10 and 20 years in the future uh the one of the be harder
 it would be the cell phones since people ship software
 in the arm instruction set that you'd think be the more difficult one but if
 if risk five really catches on and you know you could in a period of
 a decade you can imagine that's changing over too do you have a sense why
 risk five or arm has dominated you mentioned these three categories why has
 why did arm dominate why does it dominate the mobile device space
 and maybe the my uh naive intuition is that there are some aspects of power
 efficiency that are important that somehow come along with risk
 well part of it is um for these old sys constructions that's like in the x86
 uh it it was more expensive uh to uh these for
 you know they're older so they have disadvantages in them because
 they were designed 40 years ago but also they have to translate
 in hardware from sys constructions to risk constructions on the fly and that
 costs both silicon area that the chips are bigger
 to be able to do that and it uses more power so arm has uh which has you know
 followed this risk philosophy is seem to be much more energy efficient
 and in today's computer world both in the cloud
 and the cell phone and uh you know things it isn't
 the limiting resource isn't the number of transitions you can fit in the chip
 it's what how much power can you dissipate for your application so by
 having a reduced instruction set you that's
 possible to have a simpler hardware which is more energy
 efficient and energy efficiency is incredibly important in the cloud when
 you have tens of thousands of computers in a data center you want
 to have the most energy efficient ones there as well
 and of course for embedded things running off of batteries you want those
 to be our energy efficient and the cell phones too
 so it i think it's believed that there's a energy disadvantage of using
 these more complex instruction set architectures
 so the other aspect of this is if we look at apple qualcomm samsung huawei
 all use the arm architecture and yet the performance
 of the systems varies i mean i don't know whose opinion you take on but
 you know apple for some reason seems to perform better in terms of these
 implementation these architectures so where's the magic and show the picture
 how's that happen yeah so what arm pioneered was a new business model as
 they said well here's our proprietary instruction set
 and we'll give you two ways to do it either we'll give you one of these
 implementations written in things like c called varilog and you can just use ours
 well you have to pay money for that not only pay
 we'll give you their you know we'll license you to do that
 or you could design your own and so we're talking about numbers like
 tens of millions of dollars to have the right to design your own since they
 it's the instruction set belongs to them so apple got
 one of those the right to build their own
 most of the other people who build like android phones just
 get one of the designs from arm to do it themselves so apple developed a
 really good microprocessor design team they
 you know acquired a very good team that had uh was a
 building other microprocessors and brought them into the company to build
 their designs so the instruction sets are the same the specifications are the
 same but their hardware design is much more
 efficient than i think everybody else's and that's given apple an advantage in
 the marketplace and that the iphones tend to be the faster
 than most everybody else's phones that are
 there it'd be nice to be able to jump around and
 kind of explore different little sides of this but let me ask
 one sort of romanticized question what to you is the
 most beautiful aspect or idea of risk instruction set or instruction sets or
 this yeah well i think uh you know i i'm you
 know i i was always attracted to the idea of you
 know small is beautiful is that uh the temptation in engineering
 it's kind of easy to make things more complicated
 it's harder to come up with a it's more difficult surprisingly to come up with a
 simple elegant solution and i think that there's a bunch of small features of
 of risk in general that you know uh where you can see this examples of
 keeping it simpler makes it more elegant specifically in risk five which you know
 i'm i was kind of the mentor in the program but it was really driven by
 krista sonovitch and two graduate students andrew waterman
 yancep lee is they hit upon this idea of having
 uh a subset of instructions a nice simple instruct subset instructions
 like 40-ish instructions that all software uh the
 software staff risk five can run just on those 40 instructions
 and then they provide optional features that could
 accelerate uh the performance instructions that if you
 needed them could be very helpful but you don't need to have them and that's
 that's a new really a new idea so risk five has
 right now maybe five optional subsets that you can pull in
 but the software runs without them if you just want to build the
 just the the core 40 instructions that's fine you can do that so this is
 fantastic educationally is you can explain computers you only have to
 explain 40 instructions and not thousands of them also if you
 invent some wild and crazy new technology like uh
 you know biological computing you'd like a nice
 simple instruction set and you can risk five if you implement those core
 instructions you can run you know really interesting programs on
 top of that so this idea of a core set of instructions that the
 software stack runs on and then optional features that if you
 turn them on the compilers were used but you don't have to
 i think is a powerful idea what's happened in the past
 if for the proprietary instruction sets is when
 they add new instructions it becomes required piece
 and so that all all microprocessors in the future
 have to use those instructions so it's kind of like for a lot of people as they
 get older they gain weight right that weight and age are
 correlated and so you can see these instruction
 sets get getting bigger and bigger as they get older
 so risk five you know lets you be as slim as you as a teenager and you
 only have to add these extra features if you're really going
 to use them rather than every you have no choice you have to keep growing
 with the instruction set i don't know if the analogy holds up but that's a
 beautiful notion uh that there's it's almost like a nudge
 towards here's the simple core that's the essential yeah i think the
 surprising thing is still if we if we brought back you know the
 pioneers from the 1950s and showed them the instruction set architectures they'd
 understand it they they said wow that doesn't look
 that different well you know i'm surprised and it's there's it may be
 something you know talk about philosophical things i mean there may be
 something powerful about those you know 40 or 50 instructions that all
 you need is these commands like these instructions
 that we talked about and that is sufficient to build uh to
 bring about you know artificial intelligence
 and so it's a remarkable surprising to me that is complicated
 as it is to build these things uh you know
 uh microprocessors where the line widths are
 narrower than the wavelength of light you know is
 this amazing technology is at some fundamental level
 the commands that software executes are really pretty straightforward and
 haven't changed that much in in decades uh which what a surprising
 outcome so underlying all computation all touring
 machines all artificial intelligence systems perhaps
 might be a very simple instruction set like like a risk five or it's
 yeah i mean i that's kind of what i said i was interested to see i had another
 more senior faculty colleague and he he had written something in scientific
 american and uh you know his 25 years in the future and his
 turned out about when i was a young professor and he
 said yep i checked it i was i was interested to see how that was going to
 turn out for me and it's pretty held up uh pretty
 well but yeah so there's there's probably there's some
 you know there's there must be something fundamental about
 uh those instructions that were capable of
 uh creating you know intelligence from pretty primitive
 operations and just doing them really fast
 you kind of mentioned a different maybe radical computational medium like
 biological and there's other ideas so there's a
 lot of spaces in asex domain specific and then there could be quantum
 computers and so we can think of all those different
 mediums and types of computation what's the connection between swapping
 out different hardware systems in the instruction set
 do you see those as disjoint or they fundamentally coupled yeah so what's
 so kind of if we go back to the history um uh you know when morris law is in full
 effect and you're getting twice as many transistors every couple of years
 you know kind of the challenge for computer designers is how can we take
 advantage of that how can we turn those transistors into
 better computers uh faster typically and so there was an era
 i guess in the 80s and 90s where computers were
 doubling performance every 18 months and if you weren't around then what would
 happen is uh you had your computer um and your
 friend's computer which was like a year or year and a half newer and it was
 much faster than your computer and you he he or she could get their work done
 much faster than your time because you were so people took their computers
 perfectly good computers and threw them away to buy a newer
 computer because the computer one or two years later was so much faster
 so that's what the world was like in the 80s and 90s well
 with the slowing down of morris law that's no longer true right
 now with you know not not desk side computers with the laptops
 i only get a new desk laptop when it breaks right
 oh damn the disk broke or this display broke i gotta buy a new computer but
 before you would throw them away because it just they were just so sluggish
 compared to the latest computers so that's you know uh
 that's a huge uh change of what's gone on so but since this lasted for
 decades kind of programmers and maybe all of
 society is used to computers getting faster
 regularly it we now now believe those of us who
 are in computer design it's called computer architecture that the
 path forward is instead is to add accelerators
 that only work well for certain applications
 so since morris law is slowing down we don't think general purpose computers
 are going to get a lot faster so the intel processes of the world are
 not going to haven't been getting a lot faster they've been
 barely improving like a few percent a year it used to be
 doubling every 18 months and now it's doubling every 20 years
 so it was just shocking so to be able to deliver on
 what morris law used to do we think what's going to happen
 what is happening right now is people adding
 accelerators to their microprocessors that only work well for some domains
 and by sheer coincidence at the same time that this is happening
 has been this revolution in artificial intelligence called machine learning
 so with as i'm sure your other guests have said you know ai had
 these two competing schools of thought is that we could
 figure out artificial intelligence by just writing the rules top down or
 that was wrong you had to look at data and
 infer what the rules are the machine learning and what's happened
 in the last decade or eight years is machine learning has won
 and it turns out that machine learning the
 hardware you build for machine learning is pretty much
 multiply the matrix multiply is a key feature for the way people machine
 learning is done so uh that's a godsend for computer
 designers we know how to make matrix multiply run really fast
 so general purpose micro processors are slowing down we're adding
 accelerators for machine learning that fundamentally
 are doing matrix multiplies much more efficiently than general purpose
 computers have done so we have to come up with a new way
 to accelerate things the danger of only accelerating one application is how
 important is that application turns it turns like machine learning
 gets used for all kinds of things so serendipitously
 we found something to accelerate that's widely applicable
 and we don't even we're in the middle of this revolution of machine learning
 we're not sure what the limits of machine learning are so this has been
 a kind of a godsend if you're going to be able to excel
 deliver on improved performance as long as people
 are moving their programs to be embracing more machine learning we know
 how to give them more performance even as morris law is slowing down
 and counter intuitively the machine learning mechanism you can
 say is domain specific but because it's leveraging data it's
 actually could be very broad in terms of
 in terms of the domains that could be applied in
 yeah that's exactly right sort of it's almost sort of
 people sometimes talk about the idea of software 2.0
 we're almost taking another step up in the abstraction layer
 in designing machine learning systems because now you're programming in the
 space of data in the space of hyper parameters it's
 changing fundamentally the nature of programming
 and so the specialized devices that that accelerate
 the performance especially neural network based machine learning systems
 might become the new general yeah so the this the thing that's interesting
 point out these are not coral these are not tied together
 the enthusiasm about machine learning about
 creating programs driven from data that we should figure out the answers from
 data rather than kind of top down which classically the way
 most programming is done in the way artificial intelligence used to be done
 that's a movement that's going on at the same time
 coincidentally and and the and the first word machine learning is machines
 right so that's going to increase the demand for
 computing because instead of programmers being
 smart writing those those things down we're going to instead use computers to
 examine a lot of data to kind of create the programs that's the idea
 and remarkably this gets used for all kinds of things very successfully
 the image recognition the language translation the game playing
 and you know it gets into uh pieces of the software stack like
 databases and stuff like that we're not quite sure how general purpose is but
 that's going on independent of this hardware stuff
 what's happening on the hardware side is morris law is slowing down right when we
 need a lot more cycles it's failing us it's failing us right
 when we need it because there's going to be a greater increase
 a greater increase in computing and then this idea that we're going to do so-called
 domain specific here's a domain that your greatest fear is you'll make
 this one thing work and that'll help you know five percent
 of the people in the world well this this looks like it's a very general
 purpose thing so the timing is fortuitous that if we can perhaps if we
 can keep building hardware that will accelerate machine learning
 the neural networks that'll beat the timing will be right that
 that neural network revolution will transform
 software the so-called software 2.0 and the software the future will be very
 different from the software of the past and just as our microprocessors even
 though we're still going to have that same basic risk instructions
 to run a big pieces of the software stack like user interfaces and stuff like
 that we can accelerate the the kind of the
 small piece that's computationally intensive it's not lots of lines of
 code but there it takes a lot of cycles to run that code
 that that's going to be the accelerator piece and so this that's what makes this
 from a computer designer's perspective a really interesting decade
 what hennessey and i talked about in the title of our touring warrant speech
 is a new golden age we we see this as a very exciting decade much like
 when we were assistant professors and the risk stuff was going on that was a
 very exciting time was where we were changing what was going on we see this
 happening again tremendous opportunities of people
 because we're fundamentally changing how software is built and how we're running
 it so which layer of the abstraction do you
 think most of the acceleration might be happening
 if you look in the next 10 years sort of google is working on a lot of exciting
 stuff with the tpu sort of there's a closer to the hardware that could be
 optimizations around the uh closer to the instruction set
 there could be optimization at the compiler level it could be even at the
 higher level software stack yeah it's going to be i mean if you think
 about the the old wrist sys debate it was both
 uh it was software hardware it was the compilers
 improving as well as the architecture improving and that that's
 likely to be the way things are now with machine learning they
 they're using uh domain specific languages the languages like
 uh tensorflow and pytorch are very popular with the machine learning people
 that those are the raising the level of
 distraction it's easier for people to write machine learning in these
 domain specific languages like like pytorch
 in tensorflow so where the most optimization might yeah and so
 and so there'll be both the compiler piece
 and the hardware piece underneath it so as you kind of the fatal flaw for
 hardware people is to create really great
 hardware but not have brought along the compilers
 and what we're seeing right now in the marketplace because of this
 enthusiasm around hardware for machine learning is getting you know
 probably a billions of dollars invested in startup companies
 we're seeing startup companies go belly up because they
 focused on the hardware but didn't bring the software stack along
 uh we talked about benchmarks earlier so i
 participated in machine learning didn't really have a set of benchmarks
 i think just two years ago they didn't have a set of benchmarks and we've
 created something called ml perf which is
 machine learning benchmark suite and pretty much
 the companies who didn't invest in software stack
 couldn't run ml perf very well and the ones who did invest in software stack
 did and we're seeing you know like kind of in computer architecture this is
 what happens you have these arguments about risk versus this
 people spend billions of dollars in the marketplace to see who wins and it's not
 it's not a perfect comparison but it kind of sorts things
 out and we're seeing companies go out of business and then companies
 like uh like uh there's a company in israel
 called habana they came up with machine learning
 accelerators they had good ml perf scores uh intel had acquired a company
 earlier called nirvana a couple years ago they didn't reveal them
 of perf scores which was suspicious but a month ago intel announced that
 they're canceling the nirvana product line and they've
 bought habana for two billion dollars and intel is going to be shipping habana
 chips which have hardware and software and run the ml perf programs pretty well
 and that's going to be their product line in the future
 brilliant so maybe just a linker briefly ml perf
 i love metrics i love standards that everyone can gather around
 what what are some interesting aspects of that uh
 portfolio of metrics well one of the interesting metrics is uh
 you know what we thought it was you know we
 i was involved in the start uh you know we uh peter mattson is leading the
 effort from google google got it off the ground but we had to reach out to
 competitors and say um there's no benchmarks here this we
 think this is bad for the field it'll be much better if we look at examples like
 in the risk days there was an effort to create a for the
 the people in the risk community got together competitors got together were
 building risk microprocessors to agree on a set of benchmarks
 that were called spec and that was good for the industry as
 rather before the different risk architectures were arguing well you can
 believe my performance others but those other guys are
 liars and that didn't do any good so we agreed on a set of benchmarks and then
 we could figure out who was faster between the various risk architectures
 but it was a little bit faster but that grew the market rather than you
 know people were afraid to buy anything so we argued the same thing would
 happen with ml perf you know companies like
 nvidia were you know maybe worried that it was some kind of trap but
 eventually we all got together to create a set of
 benchmarks and do the right thing right and we agree on the results and
 so we can see whether tpus or gpus or cpus are really faster and how much the
 faster and i think from an engineer's perspective
 as long as the results are fair you're you can live with it okay
 you know you kind of tip your hat to your colleagues at another institution
 boy they did a better job than this what you what you hate is if it's it's
 false right they're making claims and it's just marketing bullshit
 and you know and that's affecting sales so you from an engineer's perspective
 as long as it's a fair comparison and we don't come in first place
 that's too bad but it's fair so we wanted to create that environment
 for ml perf and so now there's 10 companies i mean 10
 universities and 50 companies involved so pretty much
 ml perf has uh is the is the way you measure machine learning uh
 performance uh and and it didn't exist even two years ago
 one of the cool things that i enjoy about the internet has a few downsides
 but one of the nice things is people can see
 through bs a little better with the presence of these kinds of
 metrics it's so it's really nice companies like google and facebook and
 twitter now it's the cool thing to do is to
 put your engineers forward and to actually show off
 how well you do on these metrics there's not sort of
 it well there's less of a desire to do marketing
 less so in my in my sort of naive no i think
 what i was trying to understand that you know what's changed from the 80s in this
 era i think uh because of things like social
 networking twitter and stuff like that if you
 if you put up you know uh bullshit stuff right that's just
 you know miss purposely misleading you know that
 you can get a violent reaction in social media
 pointing out the flaws in your arguments right and so
 from a marketing perspective you have to be careful
 today that you didn't have to be careful that uh there'll be people who
 who put out the flaw you can get the word out about the flaws in what you're
 saying much more easily today than in the past you used to be
 it used to be easier to get away with it and the other thing that's been
 happening in terms of showing off engineers is just
 in the software side people have largely embraced
 open source software it it was 20 years ago it was a dirty word at
 microsoft and today microsoft is one of the big proponents of open source
 software the kind of that's the standard way most
 software gets built which really shows off your engineers because you can see
 if you look at the source code you can see who are
 making the commits who's making the improvements who are the
 engineers at all these companies who are uh
 are you know really uh great uh programmers and engineers and making
 really solid contributions which enhances their reputations and the
 reputation of the companies oh but that's of course not everywhere
 like in the space that i work more in is autonomous vehicles and
 there's still the machinery of hype and marketing is
 still very strong there and there's less willingness to be open in this kind of
 open source way and sort of benchmarks so ml perf is represents the machine
 learning world is much better being open source about holding itself to
 standards of different the amount of incredible benchmarks in
 terms of the different computer vision natural
 linear processing uh yeah it actually you know incredible it you know
 historically it wasn't always that way um i had a graduate student
 working with me david martin so for in computer in some fields
 benchmarking is been around forever so uh computer architecture databases
 uh maybe operating systems uh benchmarks are
 uh the way you measure progress but uh he was working with me
 and then started working with jitendra malik and he's jitendra malik
 and computer vision space who i guess you've interviewed yes
 and uh david martin told me they don't have benchmarks
 everybody has their own vision algorithm and the way that my here's my image look
 at how well i do and everybody had their own image so
 david martin uh back when he did his dissertation uh
 figured out a way to do benchmarks he had a bunch of graduate students
 uh identify images and then ran benchmarks to see which algorithms run
 well and that was as far as i know kind of the
 first time people did benchmarks and computer vision
 and uh which was predated all you know the things that eventually led to image
 net and stuff like that but then you know the
 vision community got religion and then once we got as far as image net then
 uh that let uh the guys in toronto um be able to win the image net
 competition and then you know that changed the whole world it's a scary
 step actually because uh when you enter the world of benchmarks
 you actually have to be good to participate as opposed to uh
 yeah you can just you just believe you're the best in the world
 and i think the people i think they weren't purposely misleading i think
 if you don't have benchmarks i mean how do you know you know you could have
 your intuition is kind of like the way we did just do computer architecture
 your intuition is that this is the right instruction set to do this job i
 believe in my experience my hunch is that's true
 we had to get to make things more quantitative uh to make progress
 and so i just don't know how you know in fields that don't have benchmarks i
 don't understand how they figure out how they're making progress
 we're kind of in the vacuum tube days of quantum computing
 what are your thoughts in this wholly different kind of space of
 architectures uh you know i actually you know quantum
 computing uh is idea has been around for a while and i actually thought well i
 sure hope uh i retire before i have to start
 teaching this i'd say because i talk about give these
 talks about the slowing of morris law and you know when we need to change by
 doing domain specific accelerators uh common questions say what about
 quantum computing the reason that comes up it's in the news all the time so
 i think to keep in the third thing to keep in mind is quantum computing is not
 right around the corner uh there have been two national reports
 one by the national campus of engineering another by
 the computing consortium where they did a frank assessment of
 of quantum computing and both of those reports said you know as far as we can
 tell before you get error corrected quantum
 computing it's a decade away so i think of it like
 nuclear fusion right there have been people who've been excited about nuclear
 fusion a long time if we ever get nuclear fusion it's going to be fantastic
 for the world i'm glad people are working on it but you know it's not right
 around the corner those two reports to me say probably it'll be 2030 before
 quantum computing is a something that could happen and when it
 does happen you know this is going to be big science
 stuff this is uh you know micro kelvin almost absolute
 zero things that if they vibrate if truck goes by it won't
 work right so this will be in data center stuff we're not going to have a
 quantum cell phone and and it's probably a 2030 kind of
 thing so i'm happy that our people are working on it but just
 you know it's hard with all the news about it not to think that it's right
 around the corner and that's why we need to do something
 as morse law is slowing down to provide the computing
 keep computing getting better for this next decade and
 and you know we shouldn't be betting on quantum computing
 um are expecting quantum computing to deliver in the next
 few years it's it's probably further off you know i'd be happy to be wrong it'd
 be great if quantum computing is going to commercially viable
 but it will be a set of applications it's not a general purpose
 computation so it's going to do some amazing things but there'll be a lot of
 things that probably uh you know the the old-fashioned computers
 are going to keep doing better for quite a while and there will be a
 teenager 50 years from now watching this video saying look how
 silly david patterson was uh saying no i just said i said 2030
 i didn't say i didn't say never we're not going to have quantum cell phones
 so he's going to be watching it well i i mean i i think this is such a you know
 given we've had morse law i just uh i feel comfortable trying to do
 projects that are thinking about the next decade
 i admire people who are trying to do things that are 30 years out but
 it's such a fast moving field i just don't know how to
 i'm not good enough to figure out what what's the problem is going to be in 30
 years uh you know 10 years is hard enough for me
 so maybe if it's possible to untangle your intuition a little bit
 i spoke with jim keller i don't know if you're familiar with jim
 and he he is trying to sort of uh be a little bit rebellious and to try to
 think that he quotes me as being wrong yeah so this this is
 what are your the way for the for the record
 jim talks about that he has an intuition that more's law is not in fact
 in fact dead yet and that it may continue for some time to come
 what are your thoughts about jim's ideas in this space
 yeah this is just this is just marketing so what gordon moore said
 is a quantitative prediction we can check the facts right which is doubling
 the number of transistors every two years so we can look
 back at intel for the last five years and ask him
 let's look at d ram chips um six years ago so that would be
 three two-year periods so then our d ram chips have eight times as many
 transistors as they did six years ago we can look up intel microprocessors
 six years ago if more's law is continuing it should have eight times as
 many transistors as six years ago the answer in both
 those cases is no the problem has been because more's law
 was kind of genuinely embraced by the semiconductor
 industry is they would make investments in similar equipment to make
 more's law come true semiconductor improving and more's law
 in many people's minds are the same thing so when i say
 and i'm factually correct that more's law
 is no longer holds we are not doubling transistors every year's years
 the downside for a company like intel is people think
 that means it's stopped that technology has no longer improved
 and so jim is trying to uh uh re uh counteract the impression
 that semiconductors are frozen in 2019 are never going to get better so i
 never said that all i said was more's law is no more and i'm
 strictly looking at the number of transistors like that's what more
 that's what more's law is there's the uh i don't know there's been this uh
 aura associated with more's law that they've enjoyed for 50 years
 about look at the field we're in we're doubling transistors every two years what
 an amazing field which is an amazing thing that they were able to pull off but
 even as gordon more said you know no exponential can last forever
 it lasted for 50 years which is amazing and this is a huge
 impact on the industry because of these changes that we've been talking about
 so he claims because he's trying to act he claims you know
 paterson says more's law is no more and look at all
 look at it it's still going and uh tsmc the say it's no longer but there but
 there's quantitative evidence that more's law is not continuing so what i
 say now to try and okay i understand the the the
 perception problem when i say more's law has stopped
 okay so now i say more's law is slowing down and
 i think jim which is another way of if he's
 if it's predicting every two years and i say it's slowing down then
 that's another way of saying it doesn't hold anymore and and i think jim
 wouldn't disagree that it's slowing down
 because that sounds like it's things are still getting better just not as fast
 which is another way of saying more's law isn't
 working anymore it's still good for marketing but uh
 but what's your you're not you don't like expanding the definition of more's
 law sort of uh well naturally you know as an
 educator you know are you know is this like
 modern politics does everybody get their own facts
 or do we have you know more's law was a crisp
 you know a more it was carver mead looked at his
 ob more's conversations drawing on a log log scale a straight line
 and that's what the definition of more's law is there's this other
 what intel did for a while interestingly uh before jim joined them they said oh
 no more's law isn't the number of doubling
 isn't really doubling transistors every two years more's law
 is the cost of the individual transistors going down
 uh cutting in half uh every two years now that's not what he said but they
 reinterpreted it because they believed that the the cost of
 transistors was continuing to drop even if they couldn't get twice the main
 ships yes many people in industry have told me
 that's not true anymore that basically than the in more recent
 technologies that got more complicated the actual cost of transistor went up
 so even even the a corollary might not be true but certainly uh you know
 more's law that was the beauty of more's law it was a very simple
 it's like equals mc squared right it was like
 wow what an amazing prediction it's so easy to understand
 the implications are amazing and that's why it was so famous
 as a as a prediction and this this reinterpretation of what it meant
 and and changing is you know is revision this history
 and i and i'd be happy uh and and they're not claiming there's a new
 more's law they're not saying by the way it's instead of every two
 years it's every three years i don't think they i don't think they
 want to say that i think what's going to happen is new technology
 emissions h1 is getting a little bit slower
 so it is slowing down the improvements won't won't be as great uh and that's
 why we need to do new things yeah i don't like that the the idea of
 more's law is tied up with marketing it would be nice if whether it's
 marketing or it's it's um well it could be affecting business
 but it could also be affecting the imagination of engineers
 is if if intel employees actually believe that we're frozen in 2019
 well that's that would be bad for intel they not just intel but everybody it's
 inspired more's law is inspiring yeah to everybody but what's happening
 right now talking to people in who have working in
 national offices and stuff like that a lot of the computer science community is
 unaware that this is going on right that we are in
 an era that's going to need radical change at lower levels
 that could affect the whole software stack this um
 you know if if if intel uh if you're using cloud stuff and the
 servers that you get next year are basically only a little bit faster than
 the servers you got this year you need to know that and we need to
 start innovating um to start delivering on it if you're
 counting on your software your software going to have a lot more features
 assuming the computers can get faster that's not true
 so are you going to have to start making your software stack more efficient are
 you going to have to start learning about machine learning
 so it's you know it's kind of uh it's a warning or call for arms that the world
 is changing right now and a lot of people a lot of computer science
 phds are unaware of that so a way to try and get their attention is
 to say that more's law is slowing down and that's going to
 affect your assumptions and you know we're trying to get the word out and
 when companies like tsmc and intel say oh no no no more's law
 is fine then people think okay i don't have to change my behavior i'll
 just get the next servers and you know if they start doing measurements
 they'll realize what's going on it'd be nice to have some transparency
 and metrics for for the lay person to be able to know if
 computers are getting faster and not to forget there are yeah there are
 there are a bunch of most people kind of use clock rate
 uh is a is a measure performance you know it's not a perfect one
 but if you've noticed clock rates are more or less the same as they were
 five years ago computers are a little better than they aren't
 they haven't made zero progress but they've made small progress so
 there's some indications out there and then our behavior right nobody
 buys the next laptop because it's so much faster than
 the laptop from the past for cell phones i think uh i don't know why people
 buy new cell phones you know because of the new ones announced
 the cameras are better but that's kind of domain specific right they're putting
 special purpose hardware to make the processing of images go much better
 so that's that that's the way they're doing it they're not particularly
 it's not that the arm process in there is twice as fast as much as they've
 added accelerators to help uh the experience of the phone
 can we talk a little bit about one other exciting space
 arguably the same level of impact as uh your work with risk is raid
 in your in 1988 you co-authored a paper a case for redundant arrays of
 inexpensive disks hence r-a-i-d raid so you that's where you
 introduce the idea of raid incredible that that little i mean
 little that paper kind of had this ripple effect and had a really a
 revolutionary effect so first what is right what is right so i this is work i
 did with my colleague randy cats and a star graduate student garth gibson
 so we had just done the fourth generation risk project
 and um randy cats which had an early uh apple uh macintosh computer
 at this time everything was done with floppy disks uh
 which are uh old uh technologies uh that could store things that
 didn't have much capacity and you had to to get any work done
 you're always sticking your little floppy disk in and out because they
 didn't have much capacity but they started building what are
 called hard disk drives which is magnetic material that can
 remember information storage for the mac and randy asked the question when he
 saw this uh disk uh next to his mac gee these are
 brand new small things before that uh for the big computers that the disk
 would be the size of washing machines and here's something
 the size of a kind of the size of a book or so
 this is i wonder what we could do with that well we the
 randy was involved in the in the fourth generation risk project here at berkeland
 the 80s so we figured out a way how to make the
 computation part the processor part go a lot faster
 but what about the storage part the uh can we do something to make it faster so
 we hit upon the idea of taking a lot of these disks developed for personal
 computers and macintoshes and putting many of them together instead of one of
 these washing machine size things and so we worked the wrote the first draft of
 the paper and we'd have 40 of these little pc disks
 instead of one of these uh washing machine size things and they would be
 much cheaper because they're made for pcs and they could actually kind of be
 faster because there was 40 of them rather than one of them
 and so we wrote a paper like that and sent it to one of our former berkeley
 students at ibm and he said well this is all great and good but what about the
 reliability of these things now you have 40 of these devices each of
 which are kind of pc quality so they're not as good as these
 ibm washing machines ibm dominated the the the the storage canisters so the
 reliability is going to be awful and so when we calculated it out instead of
 you know it breaking on average once a year it would break every two weeks
 so we thought about the idea and said well
 we got to address the reliability so we did it originally performance but we had
 to do reliability so the name redundant array of inexpensive
 disks is a array of these disks inexpensive like for pcs
 but we have extra copies so if one breaks we won't lose all the
 information we'll have enough redundancy that we could let some break and we can
 still preserve the information so the name is
 an array of inexpensive disks this is a collection of these pcs and the r part
 of the name was the redundancy so they'd be reliable
 and it turns out if you put a modest number of extra disks
 in one of these arrays it could actually not only be as
 faster and cheaper than one of these washing machine disks it could be
 actually more reliable because you could have a couple of
 breaks even with these cheap disks whereas one failure with the washing
 machine thing would knock it out did you did you have a sense just like
 with risk that in the 30 years that followed
 raid would take over as a as a mechanism for storage
 i i'd say i think i'm naturally an optimist
 but uh i thought our ideas were right i thought uh kind of like morris law it
 seemed to me if you looked at the history of the
 disk drives they went from washing machine size things and they were getting
 smaller and smaller and the volumes were with uh the smaller
 disk drives because that's where the pcs were
 so we thought that was a technological trend that
 disk drives the volume of disk drives was going to be
 it's small getting smaller and smaller devices which were true they were the
 size of a i don't know eight inches diameter then
 five inches then three inches diameters and so that
 it made sense to figure out how to deal things with an array of this
 so i think it was one of those things where logically
 we think the technological forces were on our side
 that it made sense so we expected it to catch on
 but there was that same kind of business question you know ibm was the big pusher
 of these disk drives uh in the real world where the technical
 advantage get turned into a business advantage or not
 uh it proved to be true it did and so you know we thought
 we were sound technically and it was unclear whether the business
 side but we kind of as academics we believed that technology should win and
 and it did and and if you look at those 30 years
 just from your perspective are there interesting developments in the space of
 storage that have happened in that time yeah the
 big thing that happened um well the couple of things that happened uh
 what we did had a modest amount of storage so as uh
 redundancy as people built bigger and bigger storage systems
 they've added more redundancy so they could add more failures
 and the biggest thing that happened in storage is for decades
 it was based on things physically spinning
 called hard disk drives where you used to turn on your computer and it would
 make a noise what that noise was was the disk drive
 spinning and they were rotating at like 60 revolutions per second and it's like
 uh if you remember the vinyl vinyl uh uh records if you have ever seen
 those that's what it looked like and there was like
 a needle like on a vinyl record that was reading it so the big drive
 change is switching that over to a semiconductor technology called flash
 so within the last i'd say about decade is an increasing fraction of all the
 computers in the world are using semiconductor for storage the
 flash drive instead of being magnetic uh their optical
 uh their their well their semiconductor writing of information uh into very
 densely um and that's been a huge difference so
 all the cell phones in the world use flash most of the laptops use flash
 all the embedded devices use flash instead of storage still
 in the cloud uh magnetic disks are more economical than flash but they use
 both in the cloud so it's been a huge change in the
 storage industry this the uh switching from primarily disk to
 be primarily semiconductor for the individual disk but still the
 raid mechanism applies to those different kinds of
 yes uh the people will still use rate ideas
 uh because it's kind of what's different you know kind of
 interesting kind of psychologically if you think about it um
 people have always worried about the reliability of computing since the
 earliest days so kind of but if we're talking about computation
 if your computer makes a mistake and uh the computer says we the computer has
 ways to check and say oh we screwed up we made a mistake
 what happens is that program that was running uh you have to redo it
 which is a hassle for storage if you've sent important information
 away and it loses that information you go
 nuts yeah this is the worst oh my god so if you
 have a laptop and you're not backing it up
 on the cloud or something like this and your disk drive
 breaks which it can do you'll lose all that information and you just go crazy
 right so the importance of reliability for storage is tremendously higher than
 the importance of reliability for computation because of the consequences
 of it so yes so raid ideas are are still very
 popular even with the switch of the technology
 although you know flash drives are more reliable
 you know if you're not doing anything like backing it up to get some redundancy
 so they handle it you're you're you're taking great risks
 you said that for you and possibly for many others teaching and research don't
 conflict with each other as one might suspect and in fact they kind of
 complement each other so maybe a question i have is how has
 teaching helped you in your research or just in your
 entirety as a person who both teaches and does research and just thinks and
 creates new ideas in this world yes i think um i think what happens is
 when you're a college student you know there's this kind of tenure
 system and doing research so kind of this model that uh you know is popular
 in america i think america really made it happen is we can attract these really
 great faculty to research universities because they get to do research as well
 as teach and that especially in fast moving fields this
 means people are up to date and they're teaching those kind of things
 so but when you run into a really bad professor a really bad teacher
 i think the students think well this guy must be a great researcher
 because why else could he be here so is i you know i i after 40 years at
 berkeley we had a retirement party and i got a chance to reflect and i looked
 back at some things that is not my experience there's a
 i saw a photograph of five of us in the department who won the
 distinguished teaching award from campus a very high honor you know what i've got
 one of those one of the highest honors and so there are five of us on that
 picture there's manuel blum uh richard carp me randy cast and john
 osterhaup uh contemporaries of mine i mentioned randy already
 all of us are in the national academy of engineering we've all run the
 distinguished teaching award blum carp and i are all have touring awards
 scoring awards right the high you know the highest award in computing
 so it's that's the opposite right it's what happens if you it's it's they're
 highly correlated so probably the other way to think of it if
 you're very successful people are maybe successful at
 everything they do it's not an either or and but it's an interesting question
 whether specifically that's probably true but
 specifically for teaching if there's something in teaching that
 it's the richard feinman right idea is there something about teaching that
 actually makes your research makes you think deeper and more
 outside the box and yeah absolutely absolutely i was going to bring up
 feinman i mean he he criticized the institute of advanced studies
 he uh so he says advanced studies was this thing that was created near
 princeton where einstein and all these smart people went and when he was
 invited he thought it was a terrible idea his this is a university it was
 supposed to be heaven right a university without any teaching but he
 thought it was a mistake is getting up in the classroom and having to
 explain things to students and having them ask questions like
 well why is that true makes you stop and think so he
 thinks he thought and i agree i think that interaction between a great
 research university and having students with bright young minds asking hard
 questions the whole time is is synergistic and uh you know a
 university without teaching wouldn't be as vital uh and exciting a
 place and i think it helps stimulate the the research
 another romanticized question but what's your favorite concept or idea to teach
 what inspires you or you see inspire the students
 is there something that pops to mind or or puts the fear of god in them i don't
 know whichever is most effective i mean in general i think people are
 surprised i've seen a lot of people who don't
 think they like teaching uh come come give guest lectures or
 teach a course and get hooked on seeing the lights turn on right is people you
 can explain something to people that they don't understand
 and suddenly they get something you know that's that's not
 that's important and difficult and just seeing the lights turn on is a you know
 it's a real satisfaction there i don't think there's any uh in
 specific example of that it's just the general joy of seeing them
 uh seeing them understand i have to talk about this
 because i've wrestled i do martial arts yeah oh yeah of course i love wrestling
 i'm a huge i'm russian so i oh sure i've talked to dan gable on the podcast
 so i dan gable's my era kind of guy so you wrestled at ucla among many other
 things you've done in your life uh competitively in sports and science
 so on you've you've wrestled maybe again continue with the
 romanticized questions but what have you learned about life
 yeah and maybe even science from wrestling or from yeah that's
 in fact um i wrestled at ucla but also at el camino community college
 and just right now we were in the state of california we were state champions at
 el camino and in fact i was talking to my mom
 and uh i got into ucla but i decided to go to the community college which is
 it's much harder to go to ucla than the community college
 and i asked why did i make the decision because i thought it was because of my
 girlfriend she said well it was the girlfriend and you
 thought the wrestling team was really good
 and we were right we had a great wrestling team we we actually
 uh wrestled against ucla at a tournament and we beat ucla
 as a community college which just freshmen and sophomores
 and the part of reason i brought this up is i'm gonna go they've invited me back
 at el camino to give a uh a lecture next month
 and so i'm we've my friend who is on the wrestling team
 that we're still together we're right now reaching out to other members of the
 wrestling team if we can get together for a reunion
 but in terms of me it was a huge difference i was
 i was both i was kind of the age cut off i was
 it was december 1st and so i was almost always the youngest person in my class
 and i matured later on you know our family matured later so i was almost
 always the smallest guy so you know i took you know kind of nerdy
 courses but i was wrestling so wrestling was huge
 for my uh you know self-confidence in high school
 and then you know i kind of got bigger at el camino and in college and so
 i had this uh kind of physical self-confidence
 and it's translated into research self-confidence
 uh and uh and also kind of i've had this feeling even today
 in my 70s you know if something if something going on in the streets that
 is bad physically i'm not gonna ignore it right i'm gonna stand up
 and try and straighten that out and that kind of confidence just carries
 through the entirety of your life yeah and and the same things happens
 intellectually if there's something going on where
 people are saying something that's not true i feel it's my job
 to stand up just like i would in the street if there's something going on
 somebody attacking some woman or something i'm not i'm not standing by
 and letting that get away so i feel it's my job to stand up so it's
 kind of ironically translates uh the other things that turned out for
 both i had really great college and uh high school
 coaches and they believed even though wrestling is an individual
 sport that we would be more successful as a team if we bonded together
 you do things that we would support each other rather than everybody you know in
 wrestling it's a one-on-one and you could be everybody's on their
 own but he felt if we bonded as a team we'd succeed
 so i kind of picked up those skills of how to form
 successful teams and how to from wrestling and so i think one of
 most people would say one of my strengths is i can create
 teams of faculty large teams of faculty grad students pool all together for a
 common goal and you know and uh often be successful at it but i got
 i got both of those things from wrestling also i think
 i heard this line about if people are in kind of
 you know collision you know sports with physical contact like wrestling or
 football and stuff like that people are a little bit more
 you know assertive or something and so i think uh
 i think that also comes through is you know in i was
 i didn't shy away from the risk-sys debates you know i was
 ha i enjoyed taking on the arguments and stuff like that so it was uh
 it was a i'm really glad i did wrestling i think it was really good for my
 self-image and i learned a lot from it so i think that's you know
 sports done well you know there's really uh lots of positives you can take about
 it of leadership um you know how to how to form teams
 and how how to be successful so we've talked about metrics a lot
 there's a really cool uh in terms of bench press and weight lifting
 pound years metric that you've developed that we don't have time to talk about
 but it's a it's a really cool one that people should look into
 it's rethinking the way we think about metrics and weightlifting but let me talk
 about metrics more broadly since that appeals to you in all
 forms let's look at the most ridiculous the biggest question of the meaning of
 life if you were to try to put metrics on a
 life well lived what would those metrics be
 yeah a friend of mine randy cat said this he said
 uh you know when when it's time to sign off it's
 it's uh the measure isn't the number of zeros in your bank account it's the
 number of inches in the obituary in the new york times
 as he said it i i think you know having uh
 you know this this is a cliche is that people people don't die wishing they'd
 spend more time in the office right uh as i reflect upon my career uh
 there have been you know a half a dozen a dozen things say i've been proud of
 a lot of them aren't papers or scientific results certainly my family
 my wife we've been married uh more than 50 years
 uh kids and grandkids that's really precious
 uh education things i've done i'm very proud of
 uh you know books and courses uh i did some help with underrepresented
 groups that was effective so it was interesting to see what were the
 things i reflected you know i had hundreds of papers but some of them were
 the papers like the risk and rate stuff i'm proud of but a lot of them were
 or were not those things so people who are just
 spend their lives you know going after the dollars or going after all the
 papers in the world you know that's probably not the things that
 are afterwards you're going to care about when i was uh
 uh just when i got the offer from berkeley but before i showed up
 i read a book where they interviewed a lot of people in all works of life and
 what i got out of that book was the people who felt good about what they did
 was the people who affected people as opposed to things that were more
 transitory so i came into this job assuming that it wasn't going to be the
 papers it was going to be relationships with the people over time
 that i would i would value and that was a correct assessment right it's it's the
 people you work with the people you can influence the people you can help
 is the things that you feel good about towards into your career it's not
 not the the stuff that's more transitory i don't think there's a better way to
 end it than uh talking about your family the the over 50 years of being married
 to your childhood sweetheart and what i think i
 could add is how do when you tell people you've been married 50 years they want
 to know why how why yeah i can tell you the nine magic
 words that you need to say to your partner
 to keep a good relationship and the nine magic words are
 i was wrong you were right i love you okay and you got to say all nine you
 can't say i was wrong you were right you're a jerk you know you can't say
 so yeah i freely acknowledging that you made a mistake the other person was
 right and that you love them really gets over a
 lot of bumps in the road so that's what i pass along beautifully put
 david is a huge honor thank you so much for the book you've written for the
 research you've done for changing the world
 thank you for talking today oh thanks for the interview thanks for listening
 to this conversation with david patterson
 and thank you to our sponsors the jordan harbinger show
 and cash app please consider supporting this podcast by going to jordan
 harbinger.com slash lex and downloading cash app and using
 code lex podcast click the links buy the stuff it's the
 best way to support this podcast and the journey i'm on
 if you enjoy this thing subscribe on youtube review it with five stars and
 have a podcast support on patreon or connect with me on
 twitter at lex friedman spelled without the e try to figure out how to
 do that it's just f-r-i-d-m-a-n and now let me leave you with some words
 from henry david theroux our life is furthered away by detail simplify
 simplify thank you for listening and hope to see you next time