I really enjoyed this conversation with Chris. We could've easily talked for many more hours. Compiling code down across levels of abstraction is one of the most fundamental and fascinating aspects of what computers do, and he is one of the top experts in the world in this process, its rigorous science and it's messy beautiful art. Here's the high-level outline: 0:00 - Introduction 1:30 - First program, BASIC, Pascal, C 4:20 - Compilers, LLVM, CLang 37:30 - Apple - LLVM, Objective-C, Swift 45:30 - Google - Swift, Swift for TensorFlow, compilers, Colab 57:32 - TPU & TensorFlow, hardware/software co-design 1:00:30 - MLIR (Multi-Level Intermediate Representation) framework 1:02:40 - Open sourcing of TensorFlow 1:05:10 - Tesla - transition from HW1 to HW2 1:07:24 - Elon Musk and time at Tesla 1:08:45 - Working hard 1:10:40 - Dragons
@@aidenstill7179 Type "lex fridman deep learning" in the RU-vid search field and it will pull up his series of MIT lectures on the topic, in which you will find much useful information and many pointers to further information. You might also like to visit ai.google/tools/ and www.tensorflow.org
There's a guy called Dr Michael Levin who works at Tufts, who did a talk on bioelectric computation outside the nervous system, he touched on a few things that might relate to AI. I'd love to hear an interview with him, his facebook talk was one of the most interesting I've seen on youtube... this one was also fascinating by the way. *ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-RjD1aLm4Thg.html
I wish I had a professor like Chris Lattner in all my CS courses. If Chris finds some time in the future he really should open an online course in Compilers or Language design.
01:29 first program basic, pascal, turbopascal...02:28 C/C++ 02:48 straight to the machine 03:02 C 04:45 what is even a compiler used for ? 06:57 C parser, front-end, clang 07:06 middle part, the optimizer 07:09 a late part, hardware specific 07:17 LLVM trying to standarsize these middle and last parts 15:57 C++ is a very complicated programming language, 1400 pages in the specs 16:53 gcc 17:20 clang, push forward on better user interface, compile time better, want to make new tools available 18:04 C++ and the front-end piece is complicated, syntax trees 18:46 AST, control flow graph
Chris Lattner has a gift for taking complex concepts and **compiling** them down to something non-geeks like me can understand. 😊 Another great interview, Lex.
Indeed. The ability to explain complex concepts clearly and in a beautiful way is often a sign of the depth and breadth of one's understanding and experience.
A great talk on compilers by Chris. Thanks Lex for bringing this talk accessible to all. Would be interested to know if someone can define a learning path for LLVM compilers from a beginner level to advanced.
I enjoy how thorough chris is when defining the concepts he brings up. He is clearly someone who cares to have a deep understanding of the things he knows.
Lex, thanks for all the hard work needed to deliver podcasts of top-notch quality. You have helped see a glimmer into the minds of these amazing researchers and engineers. Your questions are very enjoyable, not diluted showing the level of research you have undertaken before the interview. In the Goodfellow podcast, I learnt abstract view of how some new areas like differential privacy is evolving, or challenges are currently, which I wouldn't have with the rate of current research paper publications. Maybe you can continue this series (or create a new one) into exploring various areas machine learning ? For someone who lacks direct access to good mentors in ml, podcasts like yours are heaven sent.
Lex, thank you so much for starting this podcast. These are real amazing people and their inner lives are not well documented in the collective human archive.
Just amazing. Thank you so much for all these amazing interviews Lex! As a computer engineer and tech enthusiast, they really help me understand how these cutting-edge technologies were developed by these amazing people.
Great convo. I wish Chris divulged more on how Tesla is approaching ML and what are the specific benefits of the vertically integrated hardware/software stack for self driving ;)
I have done some Objective C and Swift programming and it's. nice to hear the history behind it. Now doing some C++ for microcontrollers and boy do I miss some Swift features like memory handling!
so this is the guy responsible for me landing a £85k job, honestly, learning the swift language was such a breeze having come over from C#, i was blown away with how easily understandable the syntax and compilation are , code is so bloody easy to write, no need to import separate libraries for string handling or input/output functionalities, the ternary conditional operator evaluates true/false expressions with quick returns on value, not sure if python has mutable collections but with swift even when you assign an array, a set or dictionary to a constant the collection is still mutable! one of its best features is ease in readability where a compound case can also be written over multiple lines, lets not even get into how you can define anything from a simple utility function with a single unnamed parameter to a complex function with expressive parameter names and different parameter functions. i do not see myself ever straying away from this language
Hi Chris and Lex, Got my ALU accelerated for a 64 bit unit from 164 ns down to 5 ns. Continuing to develop on FPGAs not easy on Macs. Thinking of unloading my antiques.
Lex, can you get a conversation done with Jeff Dean? I think that would be wonderful. His background with neural nets back in the '90s which he parked for the here and now automation at Google, followed by his work in the past few years to pick the ML gauntlet and run at breakneck speed, make it available at scale etc. would be wonderful to learn from.
I wish I could comprehend what these great minds are talking about... I have no knowledge of programming, I just watch this channel because I want to keep up wit AI and Lex is the best person to follow for that. Thanks for the very informative content.
GCC is still default on a lot of linux distros in part due to the kernel being developed with GCC, there are efforts to compile with clang but last time I checked the kernel has some very GCC specific bits in it.
16:14 syntax: how letters are arranged, symantics : how it behaves (C++ being complicated language) 21:15 neural network graph 24:15 trying to optimise across time 24:23 the RISC era ... 25:39 resources: running time, memory use, code size in embedded space 27:10 JAVA brought together good things like JIT compilation, garbage collection, portable code, memory safety, dynamic dispatch execution model
Computer design is so damn complicated and fascinating.. I'm a (intermediate-level) Python programmer sitting on top of god knows how many abstraction layers, and very grateful for it, but I love hearing about the depth from time to time :P
Noob question.. been listening to the podcast in order and this one I'm finding particularly difficult since I'm new to the information/ what they are talking about. Anyone know of other references and info I might find to better understand the topic and then come back to this talk?
also, android os platform code can no longer be compiled by gcc: clang allowed c++ programers to have fun and write templates with embedding level that gcc refuses to compile.
I think most people that have had the chance to code something then improve on it to reach the same outcome but in a more efficient and simple way understand the love of an elegant solution to solve a complex problem
What's compiler? compiler is a translator to do the job translate human language or high level computer language to language of computer can understand and run.
@@hadiwall oh crap! Yeah! To this day I'm surprised by the breadth of Terry's work on Temple OS, regardless of how much he mentally regressed, the man was a once-in-life-time kinda genius
great question from interviewer -- 'What makes prog. language complicated?'. As soon as the most errors in most languages made because of syntax, missunderstanding mechanics of language behavior or particular commands/libraries -- but not in pure logic -- what makes them complex? People. Thats why it's simplier to solve problem in Assembly, rather than C++. How we get there? Because solving logic problems is about of abstracting logic actions, not data itself, like sum(x,y), sqrt(x) etc.. -- we don't have one method for summing cars and another for summing donkeys, and result of sum is irrelevant to enviroment, if 2 + 4 = 9 after the rain because of moist -- this function should be purified.
1:37 umh, i recognise him. ain't he same as the person behind the company promoting RISC-V. It was named smth like Start V if i recall correct. I saw his interview regarding same with Lex himself.
I made a note of the some points, not all, as a gist which you can see here so that it's easier to remember and look back on the details: gist.github.com/Rubix982/cbca0ddcc197bf0d32c9dfd9854c21c5 . Hope it helps.
10:30 > _"in some cases, google effectively owns clang now, bcz it cares so much about C++ & the evolution"_ ... and now google is working on Carbon language as a modern day successor to CPP
I learned objective c like in 2 weeks , is not really that hard, Apple made that language to make it more accessible to web developers or people coming from Python, I don’t like Swift’s syntax but it was a smart move to do that
Answer to Lex's question about the complication of C++ I would say it's templates, remove templates from the language and it would be drastically simpler.