Designing better semiconductor chips: NP hard problems and forever chemicals
Like any major endeavour, designing and fabricating semiconductor chips requires compromise. As well as trade-offs between cost and performance, designers also consider carbon emissions and other environmental impacts.
In this episode of the Physics World Weekly podcast, Margaret Harris reports from the Heidelberg Laureate Forum where she spoke to two researchers who are focused on some of these design challenges.
Up first is Mariam Elgamal, who’s doing a PhD at Harvard University on the development of environmentally sustainable computing systems. She explains why sustainability goes well beyond energy efficiency and must consider the manufacturing process and the chemicals used therein.
Harris also chats with Andrew Gunter, who is doing a PhD at the University of British Columbia on circuit design for computer chips. He talks about the maths-related problems that must be solved in order to translate a desired functionality into a chip that can be fabricated.
Available Results
Generated results are saved to the knowledge database for reuse and search.
Extract Knowledge
Pick what you want extracted first. Model, scope, and chapter options appear after a template is selected.
Transcript
1 00:00:07,919 --> 00:00:10,719 Hello, and welcome to the Physics World weekly 2 00:00:10,719 --> 00:00:12,740 podcast. I'm Hamish Johnston. 3 00:00:13,294 --> 00:00:15,695 In this episode, I'm joined by my colleague 4 00:00:15,695 --> 00:00:16,835 Margaret Harris, 5 00:00:17,135 --> 00:00:19,934 who's recorded a series of interviews for the 6 00:00:19,934 --> 00:00:20,434 podcast 7 00:00:20,734 --> 00:00:22,435 at this year's Heidelberg 8 00:00:22,894 --> 00:00:24,114 Laureate Forum. 9 00:00:24,574 --> 00:00:26,675 We're going to hear two of those conversations 10 00:00:27,054 --> 00:00:27,554 shortly, 11 00:00:27,969 --> 00:00:30,869 which both focus on the challenges of designing 12 00:00:31,089 --> 00:00:31,910 and developing 13 00:00:32,450 --> 00:00:33,509 computer chips. 14 00:00:34,049 --> 00:00:36,229 Hi, Margaret. Welcome to the podcast. 15 00:00:36,770 --> 00:00:37,590 Hi, Hamish. 16 00:00:38,289 --> 00:00:40,530 Margaret, before we hear those interviews, can you 17 00:00:40,530 --> 00:00:42,869 tell us a little bit about the Heidelberg 18 00:00:43,090 --> 00:00:44,075 Laureate Forum? 19 00:00:44,935 --> 00:00:47,094 Yeah. So the Heidelberg Laureate Forum is a 20 00:00:47,094 --> 00:00:49,435 scientific meeting that's held every year in Heidelberg, 21 00:00:49,575 --> 00:00:52,375 Germany, hence the name. And its aim is 22 00:00:52,375 --> 00:00:55,354 to foster connections between notable figures in computer 23 00:00:55,414 --> 00:00:56,554 science and mathematics, 24 00:00:57,469 --> 00:00:59,630 and then with early career researchers from around 25 00:00:59,630 --> 00:01:00,289 the world. 26 00:01:00,750 --> 00:01:03,229 It's modeled on the Lindau Nobel Laureate meeting, 27 00:01:03,229 --> 00:01:05,390 which does something similar for the Nobel Prize 28 00:01:05,390 --> 00:01:07,810 granting fields of medicine, physics, and chemistry, 29 00:01:08,269 --> 00:01:10,750 but there's no Nobel Prize for computer science 30 00:01:10,750 --> 00:01:13,185 or for mathematics. So instead, the laureates who 31 00:01:13,185 --> 00:01:16,064 come to Heidelberg have won major awards such 32 00:01:16,064 --> 00:01:18,224 as the Abel Prize and the Fields Medal 33 00:01:18,224 --> 00:01:18,804 in Mathematics 34 00:01:19,424 --> 00:01:22,144 or the ACM AM Turing Award for computer 35 00:01:22,144 --> 00:01:22,644 science. 36 00:01:23,504 --> 00:01:25,024 I I have to say, Margaret, I'm a 37 00:01:25,024 --> 00:01:27,379 bit ignorant of of both mathematics 38 00:01:27,840 --> 00:01:31,539 and computer science as sort of academic fields. 39 00:01:31,920 --> 00:01:34,159 Is is there a lot of crossover between 40 00:01:34,159 --> 00:01:35,759 those two? I mean I mean, I would 41 00:01:35,759 --> 00:01:38,974 have assumed so, but, I could be wrong. 42 00:01:38,974 --> 00:01:40,655 Yeah. I mean, you know, obviously, these are 43 00:01:40,655 --> 00:01:42,814 two fields that are very closely related to 44 00:01:42,814 --> 00:01:43,775 physics, and, 45 00:01:44,174 --> 00:01:46,194 so I would say that there is simultaneously 46 00:01:47,375 --> 00:01:49,534 less and more overlap between the two and 47 00:01:49,534 --> 00:01:51,155 with physics than you might think. 48 00:01:52,010 --> 00:01:54,010 So several of the computer scientists I spoke 49 00:01:54,010 --> 00:01:56,010 to during the format, which I attended back 50 00:01:56,010 --> 00:01:56,750 in September, 51 00:01:57,290 --> 00:01:59,129 they said that that being there and talking 52 00:01:59,129 --> 00:01:59,790 to mathematicians 53 00:02:00,250 --> 00:02:01,770 had actually convinced them that they need to 54 00:02:01,770 --> 00:02:02,750 learn more math 55 00:02:03,049 --> 00:02:05,290 before they can make a useful contribution to 56 00:02:05,290 --> 00:02:05,790 future 57 00:02:06,484 --> 00:02:07,844 discussions. And I would sort of back that 58 00:02:07,844 --> 00:02:08,965 up. You know, I spoke to a couple 59 00:02:08,965 --> 00:02:11,284 of pure mathematicians there who told me what 60 00:02:11,284 --> 00:02:12,645 they're working on, and I was like, I 61 00:02:12,645 --> 00:02:14,985 understand one word and three of those things. 62 00:02:15,284 --> 00:02:17,145 So, you know, you can't have 63 00:02:17,444 --> 00:02:18,724 much of a discussion if you don't have 64 00:02:18,724 --> 00:02:20,645 a common vocabulary. So I think there is 65 00:02:20,645 --> 00:02:21,509 some work there. And 66 00:02:22,229 --> 00:02:22,949 And I'm sure, you know, there are mathematicians 67 00:02:22,949 --> 00:02:24,870 who felt the same way about computer scientists. 68 00:02:24,870 --> 00:02:26,069 You know, it's not as if it's a 69 00:02:26,069 --> 00:02:27,289 one way street there. 70 00:02:27,829 --> 00:02:29,189 But that said, a lot of talks at 71 00:02:29,189 --> 00:02:31,509 this year's forum focused on machine learning and 72 00:02:31,509 --> 00:02:32,409 artificial intelligence 73 00:02:32,709 --> 00:02:33,530 or AI, 74 00:02:34,165 --> 00:02:36,645 which is having major impacts on so many 75 00:02:36,645 --> 00:02:38,805 areas of science, including physics as well as 76 00:02:38,805 --> 00:02:41,925 mathematics and computer science. And there's definitely some 77 00:02:41,925 --> 00:02:43,145 common ground there. 78 00:02:43,444 --> 00:02:44,885 And then, of course, there's a whole branch 79 00:02:44,885 --> 00:02:48,449 of mathematics specifically dedicated to computer science. You 80 00:02:48,610 --> 00:02:49,729 know, if you think back to the middle 81 00:02:49,729 --> 00:02:52,610 of the twentieth century when computer science was 82 00:02:52,610 --> 00:02:53,509 getting its start, 83 00:02:54,050 --> 00:02:56,129 you had work by scientists like John von 84 00:02:56,129 --> 00:02:58,229 Neumann and, of course, Alan Turing himself, 85 00:02:58,530 --> 00:03:00,209 you know, really laying the foundations of the 86 00:03:00,209 --> 00:03:01,989 field. So it's definitely a lot of crossover 87 00:03:02,050 --> 00:03:03,830 even if it's not complete overlap. 88 00:03:04,465 --> 00:03:06,245 So you you mentioned the Lindau 89 00:03:06,544 --> 00:03:07,044 meetings. 90 00:03:07,504 --> 00:03:10,064 I I went to one many years ago, 91 00:03:10,064 --> 00:03:12,385 and and I thought it was fantastic. And 92 00:03:12,385 --> 00:03:14,544 it was fantastic because of the people who 93 00:03:14,544 --> 00:03:16,724 were there. You had Nobel laureates, 94 00:03:17,185 --> 00:03:19,490 on one hand, and then you had lots 95 00:03:19,490 --> 00:03:22,710 of, well, students and early career people there 96 00:03:22,770 --> 00:03:25,170 sort of mixing and chatting. And, you know, 97 00:03:25,170 --> 00:03:26,849 I thought it was a really it was 98 00:03:26,849 --> 00:03:27,830 a really dynamic 99 00:03:28,129 --> 00:03:28,629 event. 100 00:03:29,170 --> 00:03:31,170 So so who is in in Heidelberg? Is 101 00:03:31,170 --> 00:03:32,930 it the the sort of same idea of 102 00:03:33,615 --> 00:03:35,615 Yeah. Very much so. So the laureates of 103 00:03:35,615 --> 00:03:38,254 this year's forum included, Vint Cerf, who's known 104 00:03:38,254 --> 00:03:40,094 as the father of the Internet, with his 105 00:03:40,094 --> 00:03:42,655 role in developing the TCP ISP system used 106 00:03:42,655 --> 00:03:43,395 in email. 107 00:03:44,094 --> 00:03:45,854 I wrote a blog post for Physics World 108 00:03:45,854 --> 00:03:48,700 about Cerf's talk at the forum on the 109 00:03:49,000 --> 00:03:51,240 on the longevity of digital information, and you 110 00:03:51,240 --> 00:03:52,939 can read it on the Physics World website. 111 00:03:53,879 --> 00:03:55,659 Other people I met there were the cryptographers, 112 00:03:55,879 --> 00:03:58,439 Whitfield Diffie and Martin Hellman, who pioneered the 113 00:03:58,439 --> 00:04:01,305 public key cryptography method that's used to keep 114 00:04:01,444 --> 00:04:03,844 all your data secure online, especially actually, there 115 00:04:03,924 --> 00:04:05,685 there's also the RSA algorithm, which is a 116 00:04:05,685 --> 00:04:07,525 big part of it. But Whitfield, Diffie, and 117 00:04:07,525 --> 00:04:08,884 Martin Hellman were the ones who were at 118 00:04:08,884 --> 00:04:09,944 this particular conference. 119 00:04:10,724 --> 00:04:12,164 And then as you said, there's the early 120 00:04:12,164 --> 00:04:15,050 career researchers. And at the Heidelberg Laureate Forum, 121 00:04:15,050 --> 00:04:17,129 they were a hugely diverse bunch. You know, 122 00:04:17,129 --> 00:04:19,290 they came from all over the world and 123 00:04:19,290 --> 00:04:21,310 ranging from undergraduate students to postdocs. 124 00:04:22,250 --> 00:04:24,009 They have to apply to attend, and it 125 00:04:24,009 --> 00:04:26,750 must be a pretty rigorous application process because 126 00:04:27,375 --> 00:04:29,774 everyone I met was just great fun to 127 00:04:29,774 --> 00:04:32,435 talk to. They're really impressive in their enthusiasm 128 00:04:32,654 --> 00:04:34,974 for the research and actually very good explain 129 00:04:35,055 --> 00:04:37,375 at explaining it, even to a physicist like 130 00:04:37,375 --> 00:04:39,134 me who doesn't come from a really strong 131 00:04:39,134 --> 00:04:41,074 computational or mathematical background. 132 00:04:41,910 --> 00:04:44,889 And Margaret, we've got two, of your conversations, 133 00:04:45,670 --> 00:04:47,529 queued up and ready to go, 134 00:04:48,389 --> 00:04:49,610 later in the podcast. 135 00:04:49,990 --> 00:04:51,769 Who who did you speak to? 136 00:04:52,230 --> 00:04:54,470 So my goal at the Heidelberg Laureate Forum 137 00:04:54,470 --> 00:04:56,224 was to find out more about the aspects 138 00:04:56,224 --> 00:04:58,704 of computer science and mathematics that relate most 139 00:04:58,704 --> 00:05:00,404 closely to physics or, 140 00:05:00,865 --> 00:05:02,224 to put it in a slightly different way, 141 00:05:02,224 --> 00:05:03,745 the ones that are of most interest to 142 00:05:03,745 --> 00:05:04,245 physicists. 143 00:05:04,784 --> 00:05:06,224 And with that in mind, I spoke to 144 00:05:06,224 --> 00:05:09,425 two PhD students whose research focuses in different 145 00:05:09,425 --> 00:05:09,925 ways 146 00:05:10,579 --> 00:05:12,339 on kind of the nitty gritty factors that 147 00:05:12,339 --> 00:05:14,680 go in designing and developing computer chips. 148 00:05:15,220 --> 00:05:17,939 And these computer chips obviously play hugely important 149 00:05:17,939 --> 00:05:20,740 roles in many aspects of physicists' lives, whether 150 00:05:20,740 --> 00:05:22,500 that's making your own chips as part of 151 00:05:22,500 --> 00:05:25,375 a scientific prototyping process or even just, you 152 00:05:25,375 --> 00:05:27,154 know, owning consumer electronics. 153 00:05:27,694 --> 00:05:29,475 It goes the whole gamut there. 154 00:05:30,415 --> 00:05:31,855 And so who who are we going to 155 00:05:31,855 --> 00:05:32,834 hear from first? 156 00:05:33,375 --> 00:05:35,055 Okay. So first up, we'll be hearing from 157 00:05:35,055 --> 00:05:37,855 Maryam Elgamal, who's doing a PhD at Harvard 158 00:05:37,855 --> 00:05:39,154 University in The US. 159 00:05:39,569 --> 00:05:42,149 She's working on the design of environmentally sustainable 160 00:05:42,210 --> 00:05:43,189 computing systems, 161 00:05:43,649 --> 00:05:45,569 and I began by asking her what got 162 00:05:45,569 --> 00:05:47,029 her interested in this field. 163 00:05:55,384 --> 00:05:57,004 First, thank you for having me. 164 00:05:57,464 --> 00:05:58,985 I think what really got me into the 165 00:05:58,985 --> 00:06:01,485 field, I was I came into my PhD 166 00:06:01,785 --> 00:06:03,544 not really knowing what I wanted to work 167 00:06:03,544 --> 00:06:05,384 on. I just knew that I really liked 168 00:06:05,384 --> 00:06:05,884 computing, 169 00:06:06,264 --> 00:06:08,264 and I was just exploring different kind of 170 00:06:08,264 --> 00:06:11,089 projects. And I was lucky, I guess, because 171 00:06:11,089 --> 00:06:13,250 my advisers were just, like, giving me all 172 00:06:13,250 --> 00:06:15,009 of these different kind of projects that are 173 00:06:15,009 --> 00:06:17,329 available. And one of them really stuck out 174 00:06:17,329 --> 00:06:19,729 to me, which was the looking at, like, 175 00:06:19,729 --> 00:06:22,529 environmentally sustainable computing systems and and the the 176 00:06:22,529 --> 00:06:24,310 environmental impact. And I 177 00:06:24,714 --> 00:06:27,375 have always had an interest in environmental sustainability, 178 00:06:28,235 --> 00:06:30,095 even, like, prior to my undergraduate 179 00:06:30,555 --> 00:06:31,055 degree. 180 00:06:31,435 --> 00:06:33,834 And it was just this one project stuck 181 00:06:33,834 --> 00:06:35,194 out to me, and I started working on 182 00:06:35,194 --> 00:06:36,175 it with a senior 183 00:06:36,714 --> 00:06:38,714 student at the time. I was currently a 184 00:06:38,714 --> 00:06:39,214 professor, 185 00:06:40,020 --> 00:06:40,759 at Cornell, 186 00:06:41,220 --> 00:06:41,960 Udut Gupta. 187 00:06:42,660 --> 00:06:44,180 And so I started working with him and 188 00:06:44,180 --> 00:06:46,360 I really enjoyed that project and then just 189 00:06:46,660 --> 00:06:48,500 decided to continue in that area for the 190 00:06:48,500 --> 00:06:50,100 rest of my PhD. And now I'm in 191 00:06:50,100 --> 00:06:52,899 my fifth year still working on designing computing 192 00:06:52,899 --> 00:06:54,600 systems for environmental sustainability. 193 00:06:55,134 --> 00:06:57,134 I think what's really also exciting about this 194 00:06:57,134 --> 00:07:00,334 area is how it's an emerging research area. 195 00:07:00,334 --> 00:07:02,895 So it's pretty new compared to other areas 196 00:07:02,895 --> 00:07:05,154 in like hardware design or computer architecture. 197 00:07:05,615 --> 00:07:07,615 And so that also gets me really excited 198 00:07:07,615 --> 00:07:09,600 to just like, there's so much potential, so 199 00:07:09,839 --> 00:07:10,959 many things that we can do and so 200 00:07:10,959 --> 00:07:12,420 many things that we need to explore. 201 00:07:12,800 --> 00:07:16,000 What does sustainability mean for computing systems? What 202 00:07:16,000 --> 00:07:17,520 are the main things you need to consider 203 00:07:17,520 --> 00:07:20,420 when you're evaluating how sustainable a computer system 204 00:07:20,480 --> 00:07:20,980 is? 205 00:07:21,600 --> 00:07:23,060 So when it comes to 206 00:07:23,495 --> 00:07:26,134 sustainability for computing, there are multiple aspects for 207 00:07:26,134 --> 00:07:26,634 it. 208 00:07:27,334 --> 00:07:27,834 Traditionally, 209 00:07:28,214 --> 00:07:29,914 when we design computing systems, 210 00:07:30,774 --> 00:07:32,935 it has always been like the primary metrics 211 00:07:32,935 --> 00:07:34,694 that we would look at are like power, 212 00:07:34,694 --> 00:07:35,914 performance area. 213 00:07:36,329 --> 00:07:37,930 And, like, in the past two decades, there 214 00:07:37,930 --> 00:07:39,069 has been so much 215 00:07:39,449 --> 00:07:40,669 work and so much 216 00:07:40,970 --> 00:07:42,970 progress when it comes to the energy efficiency 217 00:07:42,970 --> 00:07:44,810 of computing systems. So how can we design 218 00:07:44,810 --> 00:07:46,110 computing systems that 219 00:07:46,410 --> 00:07:48,410 deliver the most work or the highest performance 220 00:07:48,410 --> 00:07:50,569 with the minimal energy possible? So there has 221 00:07:50,569 --> 00:07:52,029 been a lot of work in the area. 222 00:07:52,144 --> 00:07:53,985 But when it comes to the actual, like, 223 00:07:53,985 --> 00:07:56,785 sustainability of a computing system, it's not only 224 00:07:56,785 --> 00:07:58,004 about energy efficiency. 225 00:07:58,384 --> 00:08:00,225 It's also about, like, looking at the total 226 00:08:00,225 --> 00:08:02,064 carbon of the computing system. And what that 227 00:08:02,064 --> 00:08:04,705 means is that we're looking at the carbon 228 00:08:04,705 --> 00:08:07,019 footprint due to the use. So you can 229 00:08:07,019 --> 00:08:08,939 think that energy efficiency is a subset of 230 00:08:08,939 --> 00:08:10,779 that, but also we want to look at 231 00:08:10,779 --> 00:08:12,779 the carbon footprint due to the manufacturing of 232 00:08:12,779 --> 00:08:14,939 the system itself. And what we're finding is 233 00:08:14,939 --> 00:08:17,279 that the carbon footprint of computing systems 234 00:08:17,740 --> 00:08:20,220 from a manufacturing perspective can actually be a 235 00:08:20,220 --> 00:08:21,919 huge portion of the carbon footprint. 236 00:08:22,404 --> 00:08:23,925 It up it depends on the domain. So 237 00:08:23,925 --> 00:08:25,285 if you're looking at a data center, it 238 00:08:25,285 --> 00:08:27,544 could look like 50% of the carbon footprint 239 00:08:27,604 --> 00:08:31,125 is due to, like, the operational carbon, so 240 00:08:31,125 --> 00:08:34,289 use. And the other 50%, around 50% is 241 00:08:34,370 --> 00:08:36,629 going to be due to the actual manufacturing 242 00:08:36,690 --> 00:08:38,769 and the infrastructure of the data center. When 243 00:08:38,769 --> 00:08:41,169 you're looking at something like mobile devices or, 244 00:08:41,169 --> 00:08:44,129 like, more broad like, more broadly speaking, consumer 245 00:08:44,129 --> 00:08:47,350 devices, that would more look like 75% 246 00:08:47,735 --> 00:08:48,475 being manufacturing. 247 00:08:49,254 --> 00:08:52,294 And so that's something that hardware designers and 248 00:08:52,294 --> 00:08:55,574 computer engineers haven't typically looked at. And we're 249 00:08:55,574 --> 00:08:58,235 really trying to see how we can consider 250 00:08:58,454 --> 00:09:01,009 this total carbon and trade that off with 251 00:09:01,009 --> 00:09:03,409 all of these other conventional metrics of power, 252 00:09:03,409 --> 00:09:04,549 performance, area, 253 00:09:04,929 --> 00:09:07,429 and costs that have been traditionally done. So, 254 00:09:07,970 --> 00:09:09,830 this is how we're looking at the sustainability. 255 00:09:09,970 --> 00:09:12,529 And there are other aspects of sustainability beyond 256 00:09:12,529 --> 00:09:14,690 carbon footprint that some people had that we're 257 00:09:14,690 --> 00:09:16,664 starting to explore. And some people have also 258 00:09:16,985 --> 00:09:19,704 explored in other places, which is, like, water 259 00:09:19,704 --> 00:09:22,504 consumption, whether that's in the fabrication or, like, 260 00:09:22,504 --> 00:09:24,264 if you're using that for, like, cooling a 261 00:09:24,264 --> 00:09:26,985 data center. Another thing that I'm also looking 262 00:09:26,985 --> 00:09:29,644 at is, like, the forever chemicals, 263 00:09:30,480 --> 00:09:31,539 more like colloquially 264 00:09:32,159 --> 00:09:34,320 would be called forever chemicals, but it's also 265 00:09:34,320 --> 00:09:36,419 called PFAS, which is the pro and polyfluorocal 266 00:09:36,720 --> 00:09:37,220 substances. 267 00:09:38,399 --> 00:09:40,320 So the problem with these chemicals is that 268 00:09:40,320 --> 00:09:41,139 they're synthetic 269 00:09:41,519 --> 00:09:42,019 and 270 00:09:42,559 --> 00:09:44,445 that makes them very bioaccumulative. 271 00:09:45,544 --> 00:09:47,945 Sometimes toxic, sometimes not. And it's a very 272 00:09:47,945 --> 00:09:49,164 broad class of chemicals. 273 00:09:49,625 --> 00:09:51,804 And they're very much widely used in semiconductor 274 00:09:52,024 --> 00:09:54,745 manufacturing. They're pretty much almost in every like, 275 00:09:54,745 --> 00:09:57,779 used for every single integrated circuit manufacturing and 276 00:09:57,779 --> 00:09:58,839 fabrication process. 277 00:09:59,299 --> 00:10:00,899 Not in every single process, but it is 278 00:10:00,899 --> 00:10:03,559 used to make the actual integrated circuit. 279 00:10:03,940 --> 00:10:05,940 And so we're looking at how we can 280 00:10:05,940 --> 00:10:08,339 quantify that, which turns out to be even 281 00:10:08,339 --> 00:10:10,199 harder than cover for carbon footprint. 282 00:10:10,535 --> 00:10:12,295 And then also how we can start, like, 283 00:10:12,295 --> 00:10:14,695 looking at techniques to start optimizing that and 284 00:10:14,695 --> 00:10:15,674 reducing it. 285 00:10:15,975 --> 00:10:17,355 So that's like sustainability 286 00:10:17,735 --> 00:10:19,894 from a high level perspective when it comes 287 00:10:19,894 --> 00:10:20,554 to computing. 288 00:10:21,335 --> 00:10:23,915 You talk about making computing systems more sustainable. 289 00:10:24,295 --> 00:10:26,154 What would that actually look like in practice? 290 00:10:26,549 --> 00:10:28,789 What are some things that manufacturers or people 291 00:10:28,789 --> 00:10:31,350 who run data centers, even consumers who have 292 00:10:31,350 --> 00:10:33,190 phones, what are some of the things we 293 00:10:33,190 --> 00:10:35,370 could do to make that more sustainable? 294 00:10:36,389 --> 00:10:38,570 So I like to think about sustainability 295 00:10:39,029 --> 00:10:39,750 from two 296 00:10:40,504 --> 00:10:42,345 I like to classify it in two separate 297 00:10:42,345 --> 00:10:42,845 ways. 298 00:10:43,225 --> 00:10:45,464 One is the quantification aspect and one is 299 00:10:45,464 --> 00:10:47,644 the optimization aspect. So 300 00:10:47,945 --> 00:10:49,625 first tip for us to be able to 301 00:10:49,625 --> 00:10:51,625 know how much we need to reduce or 302 00:10:51,625 --> 00:10:53,544 optimize something, we need to measure it and 303 00:10:53,544 --> 00:10:55,559 we need to quantify it. So a lot 304 00:10:55,559 --> 00:10:57,480 of work has been happening in the past 305 00:10:57,480 --> 00:10:59,879 few years on, like, how can we quantify 306 00:10:59,879 --> 00:11:01,820 the carbon footprint of computing systems? 307 00:11:02,120 --> 00:11:03,720 So talking about what is like, what is 308 00:11:03,800 --> 00:11:05,639 how much is like going to manufacturing? How 309 00:11:05,639 --> 00:11:06,940 much is going to operational? 310 00:11:07,240 --> 00:11:09,240 And then the next part is, okay, how 311 00:11:09,240 --> 00:11:10,620 can we also optimize 312 00:11:11,215 --> 00:11:13,774 these systems? So maybe, like, should we be 313 00:11:13,774 --> 00:11:14,514 using, like, 314 00:11:14,894 --> 00:11:16,894 GPUs or should we be using CPUs in 315 00:11:16,894 --> 00:11:18,335 a data center and, like, in a more 316 00:11:18,335 --> 00:11:20,414 nuanced kind of context and depending obviously on 317 00:11:20,414 --> 00:11:22,254 the applications that you're running in your data 318 00:11:22,254 --> 00:11:22,754 center? 319 00:11:23,269 --> 00:11:26,070 Something, for example, for, like, PFAS, it could 320 00:11:26,070 --> 00:11:28,570 be more, can we reduce the number of 321 00:11:29,110 --> 00:11:31,210 metal layers that you're using to manufacture 322 00:11:31,669 --> 00:11:33,529 an integrated circuit? So 323 00:11:33,910 --> 00:11:36,054 that's, like, just for context, it's like you 324 00:11:36,295 --> 00:11:37,654 when you make a chip, you have your 325 00:11:37,654 --> 00:11:40,134 transistors, and then you start manufacturing, like, mental 326 00:11:40,134 --> 00:11:41,995 layers where you start doing the routing, 327 00:11:42,695 --> 00:11:44,855 to connect these transistors together so that you 328 00:11:44,855 --> 00:11:48,315 can your chip can actually work. And so, 329 00:11:48,375 --> 00:11:51,389 typically, like, these PFAS are included almost in 330 00:11:51,389 --> 00:11:53,470 every single step to do, like, the what 331 00:11:53,470 --> 00:11:54,450 is called the photolithography. 332 00:11:54,909 --> 00:11:57,389 So the patterning of the actual, like, routing 333 00:11:57,389 --> 00:12:00,589 in the circuit on the, chip. And so 334 00:12:00,589 --> 00:12:02,350 if we can reduce this number of metal 335 00:12:02,350 --> 00:12:04,269 layers, maybe that's one thing that we can 336 00:12:04,269 --> 00:12:07,184 also reduce the forever chemicals or PFAS with 337 00:12:07,184 --> 00:12:08,485 that are used in manufacturing. 338 00:12:09,264 --> 00:12:12,004 Fabrication facilities have started looking into 339 00:12:12,625 --> 00:12:15,264 how they can reduce, like, recycle maybe some 340 00:12:15,264 --> 00:12:17,345 of the water that they're using. Some have 341 00:12:17,345 --> 00:12:19,184 looked into recycling some of the metals that 342 00:12:19,184 --> 00:12:19,679 they 343 00:12:20,000 --> 00:12:22,820 use. So for example, I think, Taiwan Semiconductor 344 00:12:23,039 --> 00:12:23,539 Manufacturing, 345 00:12:24,320 --> 00:12:24,820 TSMC, 346 00:12:25,440 --> 00:12:28,639 they have worked in on basically recycling the 347 00:12:28,639 --> 00:12:30,899 copper that they're using in the manufacturing 348 00:12:31,440 --> 00:12:34,565 and then taking it, recycling it, not necessarily 349 00:12:34,705 --> 00:12:37,985 into electronic grade copper, which is a challenge 350 00:12:37,985 --> 00:12:41,125 because the materials that you typically use for 351 00:12:41,745 --> 00:12:44,144 electronics or semiconductor manufacturing need to be very 352 00:12:44,144 --> 00:12:44,884 high purity. 353 00:12:45,330 --> 00:12:47,410 But instead of having to recycle it back 354 00:12:47,410 --> 00:12:49,170 into the same fab like, to use it 355 00:12:49,170 --> 00:12:51,090 in the same fabrication facility, you can recycle 356 00:12:51,090 --> 00:12:52,850 it and then give it to some other 357 00:12:52,850 --> 00:12:54,450 industry that may not need that kind of 358 00:12:54,450 --> 00:12:57,269 higher purity copper that you may need. 359 00:12:57,730 --> 00:13:00,394 It can also be utilized elsewhere and still 360 00:13:00,695 --> 00:13:02,634 benefit the whole sustainable sustainability 361 00:13:02,935 --> 00:13:05,975 aspect. Making copper wires or copper roofs or 362 00:13:05,975 --> 00:13:08,535 something like that. Exactly. Yeah. And so these 363 00:13:08,535 --> 00:13:09,355 kind of things. 364 00:13:11,415 --> 00:13:13,370 I guess any change is going to involve 365 00:13:13,370 --> 00:13:15,370 some level of cost in terms of going 366 00:13:15,370 --> 00:13:17,230 from old technologies to new ones. 367 00:13:17,610 --> 00:13:20,809 And traditionally in engineering, you can basically there's 368 00:13:20,809 --> 00:13:23,470 this three way trade off between being cheap, 369 00:13:23,769 --> 00:13:26,009 being fast, and being high quality, you know, 370 00:13:26,009 --> 00:13:27,629 and you get to pick only two. 371 00:13:28,375 --> 00:13:30,134 Are those kinds of trade offs also going 372 00:13:30,134 --> 00:13:30,954 on in the sustainability 373 00:13:31,334 --> 00:13:34,534 sector? Like, is sustainability maybe one of those 374 00:13:34,534 --> 00:13:35,894 criteria that you have to pick just a 375 00:13:35,894 --> 00:13:38,294 limited number of them? It really depends on 376 00:13:38,294 --> 00:13:40,394 the domain and really depends on the application. 377 00:13:41,009 --> 00:13:43,730 There are cases when you find computing systems 378 00:13:43,730 --> 00:13:45,269 that like, the 379 00:13:45,649 --> 00:13:48,529 energy efficient and the highest performing system could 380 00:13:48,529 --> 00:13:50,309 also be the carbon efficient system. 381 00:13:51,009 --> 00:13:53,250 But in other cases, you may find that, 382 00:13:53,250 --> 00:13:54,309 oh, it's actually 383 00:13:54,690 --> 00:13:56,975 the opposite. So it's like, pick which one 384 00:13:56,975 --> 00:13:58,894 you want. And so this whole trade off 385 00:13:58,894 --> 00:14:00,815 space is something that is very exciting to 386 00:14:00,815 --> 00:14:02,654 me in in in my research area, which 387 00:14:02,654 --> 00:14:04,815 is how can we trade this off? And 388 00:14:04,815 --> 00:14:06,975 that really depends on what your target is 389 00:14:06,975 --> 00:14:07,714 as a designer. 390 00:14:08,654 --> 00:14:10,980 So for example, if you if as if 391 00:14:10,980 --> 00:14:13,860 you're designing something that, say, you just need 392 00:14:13,860 --> 00:14:15,879 to meet a specific performance criteria, 393 00:14:16,419 --> 00:14:18,259 once you meet that performance, you probably just 394 00:14:18,259 --> 00:14:20,179 want to lower the carbon footprint. But if 395 00:14:20,179 --> 00:14:22,259 you're trying to design a system that you 396 00:14:22,259 --> 00:14:24,019 want to make sure that you reach the 397 00:14:24,019 --> 00:14:25,879 highest speed and performance possible, 398 00:14:26,445 --> 00:14:26,945 then 399 00:14:27,404 --> 00:14:27,904 probably 400 00:14:28,365 --> 00:14:30,045 you want to figure out a trade off 401 00:14:30,045 --> 00:14:31,825 that would still give you a good performance, 402 00:14:32,045 --> 00:14:33,965 but is not too bad when it comes 403 00:14:33,965 --> 00:14:34,945 to sustainability. 404 00:14:35,565 --> 00:14:37,884 So that trade off definitely makes it I 405 00:14:37,884 --> 00:14:39,804 think it's an extra dimension that we need 406 00:14:39,804 --> 00:14:41,450 to account for now when it comes to 407 00:14:41,450 --> 00:14:44,169 a sustainable design compared to just, like, energy 408 00:14:44,169 --> 00:14:46,409 efficient design or high performing design as it 409 00:14:46,409 --> 00:14:47,789 traditionally is. So 410 00:14:48,250 --> 00:14:50,089 In your research so far, what would you 411 00:14:50,089 --> 00:14:52,329 say has been something that's really surprised you? 412 00:14:52,329 --> 00:14:54,190 Something you didn't expect to find? 413 00:14:54,934 --> 00:14:57,115 Something you didn't expect to find. I 414 00:14:57,975 --> 00:15:00,475 was very surprised to see how 415 00:15:01,014 --> 00:15:04,714 the PFAS used in semiconductor manufacturing are actually 416 00:15:05,254 --> 00:15:06,235 they're pretty essential 417 00:15:06,909 --> 00:15:09,950 in many ways. And, the most surprising part 418 00:15:09,950 --> 00:15:11,870 to me was most of the PFAS used 419 00:15:11,870 --> 00:15:13,330 in semiconductor manufacturing 420 00:15:14,029 --> 00:15:16,750 do not actually stay on chip. They mostly 421 00:15:16,750 --> 00:15:17,570 go to wastewater, 422 00:15:18,029 --> 00:15:20,269 but it's something that you absolutely need to 423 00:15:20,269 --> 00:15:23,044 make that integrated circuit, and yet it's not 424 00:15:23,044 --> 00:15:24,264 on the actual chip. 425 00:15:24,644 --> 00:15:27,044 This whole PFAS thing makes it makes me 426 00:15:27,044 --> 00:15:28,105 realize that 427 00:15:28,804 --> 00:15:29,945 some of the sustainability 428 00:15:30,325 --> 00:15:32,325 things that we really need to think about 429 00:15:32,325 --> 00:15:34,169 in computing is not just 430 00:15:35,209 --> 00:15:36,029 what actually 431 00:15:36,809 --> 00:15:38,829 remains in the end product of computing, 432 00:15:39,289 --> 00:15:41,690 but the process itself, if we start looking 433 00:15:41,690 --> 00:15:42,970 into it, we might find that there are 434 00:15:42,970 --> 00:15:44,809 so many things that we that there are 435 00:15:44,809 --> 00:15:46,970 so many opportunities that we can do to 436 00:15:46,970 --> 00:15:49,470 improve the sustainability of computing in general. 437 00:15:50,294 --> 00:15:52,054 What's the next stage for this project? What 438 00:15:52,054 --> 00:15:53,414 are you working on now? What do you 439 00:15:53,414 --> 00:15:55,674 hope to achieve before you finish your PhD? 440 00:15:56,375 --> 00:15:58,534 So one of the things that really excite 441 00:15:58,534 --> 00:16:00,934 me and interest me in the sustainability space 442 00:16:00,934 --> 00:16:03,735 right now is thinking about what are better 443 00:16:03,735 --> 00:16:06,709 optimization techniques that we can do to actually 444 00:16:07,649 --> 00:16:09,350 help designers start 445 00:16:09,889 --> 00:16:11,029 doing actual 446 00:16:11,409 --> 00:16:12,949 sustainability aware design. 447 00:16:13,329 --> 00:16:15,089 And one of the main challenges in the 448 00:16:15,089 --> 00:16:17,649 sustainability area is that there's so much uncertainty 449 00:16:17,649 --> 00:16:20,004 in the data. And this uncertainty comes from 450 00:16:20,004 --> 00:16:22,004 so many, like, different shapes and forms. One 451 00:16:22,004 --> 00:16:24,085 of them is, like, one, there's lack of 452 00:16:24,085 --> 00:16:26,004 data. And two, there's just a lot of 453 00:16:26,004 --> 00:16:28,185 variability in the data that you have. Because 454 00:16:28,325 --> 00:16:30,644 as you can imagine, the semiconductor supply chain 455 00:16:30,644 --> 00:16:33,889 is so vast, and it's just so across 456 00:16:33,889 --> 00:16:36,289 so many countries, across so many grids, there's 457 00:16:36,289 --> 00:16:38,529 just so much happening in there that there's 458 00:16:38,529 --> 00:16:40,450 so much variability in it. And so I'm 459 00:16:40,450 --> 00:16:42,950 looking at optimization techniques that 460 00:16:43,554 --> 00:16:46,274 would still, despite all of this uncertainty, would 461 00:16:46,274 --> 00:16:48,514 still enable the designer to figure out what 462 00:16:48,514 --> 00:16:50,855 is the optimal design and what is, like, 463 00:16:50,915 --> 00:16:52,514 this is the design that you should be 464 00:16:52,514 --> 00:16:55,409 thinking about to have a more sustainable computing 465 00:16:55,409 --> 00:16:57,569 system, but also meet all of your other 466 00:16:57,569 --> 00:17:00,370 power performance area criteria that you need and 467 00:17:00,370 --> 00:17:01,809 what kind of trade offs that they can 468 00:17:01,809 --> 00:17:03,970 make. So that's that's the most exciting part 469 00:17:03,970 --> 00:17:05,829 for me right now in my project. 470 00:17:06,130 --> 00:17:07,650 Well, I look forward to hearing how that 471 00:17:07,650 --> 00:17:08,869 pans out in the future. 472 00:17:09,315 --> 00:17:11,315 Mariam Elgamel, thank you so much for appearing 473 00:17:11,315 --> 00:17:13,014 on the podcast. Thank you. 474 00:17:20,755 --> 00:17:23,075 Well, that was a really interesting discussion, Margaret. 475 00:17:23,075 --> 00:17:24,830 I mean, one thing that sort of struck 476 00:17:24,830 --> 00:17:25,970 me almost immediately 477 00:17:26,269 --> 00:17:26,769 is 478 00:17:27,309 --> 00:17:29,470 the, you know, the I I suppose the 479 00:17:29,470 --> 00:17:32,109 sort of pure economics of this. I mean, 480 00:17:32,109 --> 00:17:33,490 I can see if you 481 00:17:34,349 --> 00:17:35,950 you want to make a better chip, a 482 00:17:35,950 --> 00:17:36,930 chip that's more 483 00:17:37,294 --> 00:17:37,794 deficient, 484 00:17:38,095 --> 00:17:38,994 energy efficient, 485 00:17:39,454 --> 00:17:40,275 lower cost, 486 00:17:41,054 --> 00:17:42,575 you know, so I can see why you 487 00:17:42,654 --> 00:17:44,755 why a designer would want to do that. 488 00:17:44,894 --> 00:17:46,815 I can also understand why you'd want to 489 00:17:46,815 --> 00:17:47,315 eliminate, 490 00:17:48,654 --> 00:17:50,674 other sort of energy costs 491 00:17:51,109 --> 00:17:51,590 from, 492 00:17:51,910 --> 00:17:53,130 you know, from the process. 493 00:17:53,590 --> 00:17:54,090 But 494 00:17:54,549 --> 00:17:55,049 what, 495 00:17:56,070 --> 00:17:59,350 what are their economics that are driving things 496 00:17:59,350 --> 00:18:00,250 on the environmental 497 00:18:00,630 --> 00:18:02,809 side? I mean, particularly now, 498 00:18:03,350 --> 00:18:05,670 you know, when the the the tide almost 499 00:18:05,670 --> 00:18:08,384 seems to be going in a different direction, 500 00:18:08,605 --> 00:18:09,105 unfortunately, 501 00:18:09,884 --> 00:18:12,924 for making, well, just about anything greener. Did, 502 00:18:15,644 --> 00:18:17,484 was there any sort of talk about that 503 00:18:17,484 --> 00:18:19,825 at the conference, or did Maryam have any 504 00:18:20,045 --> 00:18:21,904 further insights into that? 505 00:18:22,330 --> 00:18:24,170 Yeah. Maryam, I didn't really get into that, 506 00:18:24,170 --> 00:18:25,529 but, you know, there was a little bit 507 00:18:25,529 --> 00:18:26,650 of a a talk or a lot of 508 00:18:26,650 --> 00:18:28,970 think people, sort of interested in in the 509 00:18:28,970 --> 00:18:31,850 environmental effects of AI, which you know are 510 00:18:31,850 --> 00:18:33,610 are quite severe in terms of how much 511 00:18:33,610 --> 00:18:36,430 energy is being used to create and run, 512 00:18:36,765 --> 00:18:39,484 the large language models that underlie things like 513 00:18:39,484 --> 00:18:42,464 chat GBT, Copilot, and various other AI systems. 514 00:18:43,404 --> 00:18:45,164 I think one of the the factors in 515 00:18:45,164 --> 00:18:48,305 terms of of computer chip design specifically and 516 00:18:48,649 --> 00:18:50,569 some of the chemicals that she talked about, 517 00:18:50,569 --> 00:18:51,230 you know, 518 00:18:51,609 --> 00:18:53,690 they are quite expensive and using less of 519 00:18:53,690 --> 00:18:55,849 them would be, you know, good, like, economically 520 00:18:55,849 --> 00:18:56,349 speaking 521 00:18:56,730 --> 00:18:58,730 as well as environmentally. And then I suppose 522 00:18:58,730 --> 00:19:00,349 if you want another economic perspective, 523 00:19:00,970 --> 00:19:03,904 if you end up dumping these chemicals into 524 00:19:03,904 --> 00:19:05,984 waterways, you can, in principle, get fined for 525 00:19:05,984 --> 00:19:07,424 that depending on where you are in the 526 00:19:07,424 --> 00:19:09,365 in in the world and how the local 527 00:19:09,904 --> 00:19:10,404 enforcement 528 00:19:10,865 --> 00:19:13,345 regime works. So I think that there are 529 00:19:13,345 --> 00:19:14,805 some some sort of cold 530 00:19:15,184 --> 00:19:16,085 cold hearted 531 00:19:16,464 --> 00:19:17,525 economic factors 532 00:19:18,200 --> 00:19:20,680 going towards making things greener, not just sort 533 00:19:20,680 --> 00:19:22,200 of, oh, well, it would be better for 534 00:19:22,200 --> 00:19:24,119 the environment. But, I mean, I'm not trying 535 00:19:24,119 --> 00:19:25,720 to sort of diminish the it would be 536 00:19:25,720 --> 00:19:28,119 better for the environment arguments because that's obviously 537 00:19:28,119 --> 00:19:29,640 important. We all live on this planet. We've 538 00:19:29,640 --> 00:19:31,000 all got to keep living on this planet. 539 00:19:31,000 --> 00:19:33,684 There's not really another option, is there? No. 540 00:19:33,684 --> 00:19:35,444 That that that's right. Yeah. And I suppose 541 00:19:35,444 --> 00:19:37,444 if, you know, if your factory is working 542 00:19:37,444 --> 00:19:38,424 to very high, 543 00:19:39,284 --> 00:19:42,085 environmental and health and safety standards, then if 544 00:19:42,085 --> 00:19:44,345 you can eliminate as many dangerous, 545 00:19:45,210 --> 00:19:48,509 nasty chemicals and materials from that process, 546 00:19:48,890 --> 00:19:50,650 you can you can save a lot of 547 00:19:50,650 --> 00:19:53,289 money, can't you? And, you know, sort of, 548 00:19:54,329 --> 00:19:56,569 make your employees happier because they don't have 549 00:19:56,569 --> 00:19:59,375 to work with these, you know, particularly nasty 550 00:19:59,375 --> 00:20:01,375 materials. So Yeah. Yeah. You you have health 551 00:20:01,375 --> 00:20:03,214 effects also for the people working with it. 552 00:20:03,214 --> 00:20:04,974 That's true. And I think it's a little 553 00:20:04,974 --> 00:20:06,595 bit like, other sort 554 00:20:07,134 --> 00:20:09,875 of economic, environmental configurations. I mean, 555 00:20:10,200 --> 00:20:11,500 not flying to conferences 556 00:20:12,119 --> 00:20:14,140 as much as we used to, perhaps, 557 00:20:14,679 --> 00:20:16,599 is good for the environment, but it's also 558 00:20:16,599 --> 00:20:17,659 good for organizations' 559 00:20:18,039 --> 00:20:20,359 bottom line. You know, not sending researchers around 560 00:20:20,359 --> 00:20:22,214 the world quite as much is, you know, 561 00:20:22,214 --> 00:20:24,214 beneficial for that, which I guess is is 562 00:20:24,214 --> 00:20:25,894 one problem with the things like the Heidelberg 563 00:20:25,894 --> 00:20:27,575 Laurier form, because people do come from all 564 00:20:27,575 --> 00:20:29,734 over the world. But I met some people 565 00:20:29,734 --> 00:20:31,414 there who said, you know, we the reason 566 00:20:31,414 --> 00:20:33,974 we're here, particularly some of the there's a 567 00:20:33,974 --> 00:20:35,815 group of alumni who can kind of come 568 00:20:35,815 --> 00:20:36,634 to the conference, 569 00:20:37,095 --> 00:20:37,595 occasionally. 570 00:20:38,289 --> 00:20:40,630 And they said, well, we have a collaboration 571 00:20:40,769 --> 00:20:42,369 going, and we're we're having it at the 572 00:20:42,369 --> 00:20:44,450 Heidelberg Laureate Forum because it saves us sort 573 00:20:44,450 --> 00:20:46,849 of travelling around various different places. So it 574 00:20:46,849 --> 00:20:48,609 saves us in that respect. So I think 575 00:20:48,609 --> 00:20:50,950 there are these sort of kind of parallel 576 00:20:51,009 --> 00:20:52,630 concerns that can feed into, 577 00:20:53,255 --> 00:20:55,835 things becoming greener in a slightly indirect way. 578 00:20:56,134 --> 00:20:57,914 Yeah. And I I suppose, you know, 579 00:20:58,295 --> 00:21:00,934 solar panels are a classic example of something 580 00:21:00,934 --> 00:21:01,434 where, 581 00:21:01,975 --> 00:21:03,894 yeah, I suppose they were brought in to 582 00:21:03,894 --> 00:21:06,875 reduce carbon emissions, but it turns out that, 583 00:21:07,420 --> 00:21:08,880 you know, you can produce electricity 584 00:21:09,259 --> 00:21:10,779 really cheaply with them. Yeah. 585 00:21:11,339 --> 00:21:13,599 You know, much cheaper than with fossil fuels. 586 00:21:14,059 --> 00:21:15,980 And so who's the, the second person that 587 00:21:15,980 --> 00:21:17,820 we're gonna hear from, Margaret? I have a 588 00:21:17,820 --> 00:21:20,460 funny feeling it's a fellow Canadian. We love 589 00:21:20,460 --> 00:21:22,934 to have Canadians on the podcast. Actually, Mariam's 590 00:21:22,934 --> 00:21:25,095 Canadian as well. Although although she's doing her 591 00:21:25,095 --> 00:21:27,575 PhD at Harvard, she is Canadian. So yeah. 592 00:21:27,575 --> 00:21:29,734 That's interesting because I was listening to her, 593 00:21:29,734 --> 00:21:30,554 and I thought 594 00:21:30,934 --> 00:21:33,174 she she sounds like she's from Montreal. Do 595 00:21:33,174 --> 00:21:34,990 you know if she's from Montreal? I don't 596 00:21:34,990 --> 00:21:36,509 think so. No. I think I think she's 597 00:21:36,509 --> 00:21:38,829 more more more Toronto, probably from near your 598 00:21:38,829 --> 00:21:41,230 area. But, she's she's sort of lived between 599 00:21:41,230 --> 00:21:43,069 Canada and Egypt and The US, so it's, 600 00:21:43,069 --> 00:21:44,289 you know Wow. 601 00:21:44,589 --> 00:21:47,309 So both Canadians. Both Canadians. Yeah. Yeah. Well, 602 00:21:47,309 --> 00:21:48,990 well done, Margaret. I should say that I 603 00:21:48,990 --> 00:21:50,204 had nothing to do with, 604 00:21:50,765 --> 00:21:53,085 with this. That's great. Well, let let let's 605 00:21:53,085 --> 00:21:55,024 move on to, to the next Canadian. 606 00:21:55,325 --> 00:21:57,484 What what's his name? So he's Andrew Gunter. 607 00:21:57,484 --> 00:21:59,644 He's finishing his PhD at the University of 608 00:21:59,644 --> 00:22:02,125 British Columbia in Canada, and he works in 609 00:22:02,125 --> 00:22:04,065 designing circuits for computer chips. 610 00:22:04,390 --> 00:22:06,230 And I asked him to start by explaining 611 00:22:06,230 --> 00:22:09,130 what that design process usually looks like. 612 00:22:18,549 --> 00:22:19,609 Designing chips 613 00:22:20,035 --> 00:22:22,855 and creating chips, let's say, has three aspects. 614 00:22:23,154 --> 00:22:25,714 First, there's the design entry, where you determine 615 00:22:25,714 --> 00:22:26,454 the functionality 616 00:22:26,994 --> 00:22:28,914 of the chip that you want. But you 617 00:22:28,914 --> 00:22:30,434 don't know anything about how it's going to 618 00:22:30,434 --> 00:22:31,095 be implemented. 619 00:22:31,809 --> 00:22:33,170 You don't know what it's going to look 620 00:22:33,170 --> 00:22:35,330 like, how well it's going to perform. You 621 00:22:35,330 --> 00:22:37,269 just know the functions. That's step one. 622 00:22:38,130 --> 00:22:39,109 Step two 623 00:22:39,410 --> 00:22:42,609 is converting that functional description of the chip 624 00:22:42,609 --> 00:22:43,990 to a physical description. 625 00:22:44,664 --> 00:22:47,464 That physical description now, it tells you where 626 00:22:47,464 --> 00:22:50,204 the components go, where the wires are laid, 627 00:22:50,265 --> 00:22:51,644 how it's going to be manufactured. 628 00:22:52,505 --> 00:22:53,944 Once you have that, then you go to 629 00:22:53,944 --> 00:22:54,444 fabrication. 630 00:22:55,545 --> 00:22:56,045 You 631 00:22:56,505 --> 00:22:59,325 ship your design off to TSMC in Taiwan. 632 00:22:59,710 --> 00:23:01,549 They do a whole bunch of very complicated 633 00:23:01,549 --> 00:23:04,430 things, and the output is a physical chip. 634 00:23:04,430 --> 00:23:06,509 And you would have this regardless of whether 635 00:23:06,509 --> 00:23:08,269 you're ordering a couple of chips for a 636 00:23:08,269 --> 00:23:09,650 very specialist application 637 00:23:10,430 --> 00:23:12,750 all the way through mass manufacturing. Is that 638 00:23:12,750 --> 00:23:13,970 right? Yeah. So 639 00:23:14,315 --> 00:23:15,835 for what we'd say the high end tech 640 00:23:15,835 --> 00:23:17,855 nodes are, those are very expensive. 641 00:23:18,795 --> 00:23:21,035 You really only want to use high end 642 00:23:21,035 --> 00:23:22,815 technology if it's mass market 643 00:23:23,595 --> 00:23:25,694 production. If there's a lower volume, 644 00:23:26,154 --> 00:23:29,295 you might use an older technology, cheaper and 645 00:23:29,619 --> 00:23:30,119 more 646 00:23:30,579 --> 00:23:32,519 reliable. A big issue with chip fabrication 647 00:23:32,899 --> 00:23:35,480 is errors in the fabrication process. 648 00:23:35,940 --> 00:23:37,880 The newer and more complex the processes, 649 00:23:38,259 --> 00:23:40,179 the more errors you have, the lower your 650 00:23:40,179 --> 00:23:41,799 yield rate is. So maybe 651 00:23:42,419 --> 00:23:44,339 you try to manufacture, let's just say, a 652 00:23:44,339 --> 00:23:47,184 100 chips on a new technology node, maybe 653 00:23:47,184 --> 00:23:49,365 you only get 80 out of the 100. 654 00:23:49,664 --> 00:23:50,804 That drives up cost. 655 00:23:51,585 --> 00:23:53,525 If you have really low, 656 00:23:53,904 --> 00:23:55,904 let's say, volume requirements for how many chips 657 00:23:55,904 --> 00:23:58,085 you need, you might look at field programmable 658 00:23:58,224 --> 00:24:00,630 gateways, a form of reconfigurable chip, which is 659 00:24:00,630 --> 00:24:01,769 actually my expertise. 660 00:24:02,630 --> 00:24:04,069 And we can talk about that more if 661 00:24:04,069 --> 00:24:05,609 you want, but that's the spectrum. 662 00:24:05,990 --> 00:24:08,089 Okay. So tell me what a field programmable 663 00:24:08,230 --> 00:24:09,289 gate array is. 664 00:24:09,669 --> 00:24:10,169 Yes. 665 00:24:10,470 --> 00:24:10,970 So 666 00:24:11,515 --> 00:24:13,595 as opposed to what we call an ASIC, 667 00:24:13,595 --> 00:24:16,015 an application specific integrated circuit, 668 00:24:16,954 --> 00:24:19,054 where so for the ASIC, you 669 00:24:19,515 --> 00:24:21,035 determine the design that you want and you 670 00:24:21,035 --> 00:24:22,575 go off and you manufacture it. 671 00:24:23,434 --> 00:24:26,335 An FPGA, a Field Programmable Gate Array, 672 00:24:26,700 --> 00:24:28,799 is a chip with fixed resources 673 00:24:29,500 --> 00:24:31,279 which has already been manufactured, 674 00:24:31,819 --> 00:24:33,440 and after the manufacturing 675 00:24:33,740 --> 00:24:35,679 process, you then determine 676 00:24:36,539 --> 00:24:38,859 the design that you want to implement in 677 00:24:38,859 --> 00:24:39,599 the FPGA. 678 00:24:40,174 --> 00:24:42,654 So let me clarify what that means. Let's 679 00:24:42,654 --> 00:24:44,034 say you're creating a CPU. 680 00:24:44,734 --> 00:24:47,454 Right? You could design the CPU and manufacture 681 00:24:47,454 --> 00:24:48,815 it, and that will cost a bunch of 682 00:24:48,815 --> 00:24:49,315 money. 683 00:24:49,934 --> 00:24:52,755 Or you design the CPU and you implement 684 00:24:52,815 --> 00:24:54,595 the design on an FPGA. 685 00:24:55,099 --> 00:24:56,559 And now this FPGA 686 00:24:57,580 --> 00:24:59,119 implements the functionality 687 00:24:59,580 --> 00:25:01,440 of the CPU that you specified. 688 00:25:02,140 --> 00:25:04,299 So the FPGA has a fixed set of 689 00:25:04,299 --> 00:25:04,799 resources. 690 00:25:05,500 --> 00:25:07,359 If the CPU you've designed 691 00:25:07,785 --> 00:25:08,525 only requires 692 00:25:09,144 --> 00:25:11,884 less than those resources, you can't implement it. 693 00:25:11,945 --> 00:25:13,785 If it requires more, either you get a 694 00:25:13,785 --> 00:25:15,884 bigger FPGA or you go to an ASIC. 695 00:25:16,585 --> 00:25:18,105 That sounds a little bit like it's a 696 00:25:18,105 --> 00:25:20,025 breadboard type of stage. If you're thinking about 697 00:25:20,025 --> 00:25:22,125 traditional physically wiring circuits, 698 00:25:22,549 --> 00:25:24,150 you put something on the breadboard, then you 699 00:25:24,150 --> 00:25:25,669 see if it works, and then only then 700 00:25:25,669 --> 00:25:27,269 do you go off and solder the real 701 00:25:27,269 --> 00:25:27,769 thing. 702 00:25:28,470 --> 00:25:30,950 Exactly. So a breadboard would be useful for 703 00:25:30,950 --> 00:25:33,190 a lot of analog circuitry or very simple 704 00:25:33,190 --> 00:25:33,690 circuits. 705 00:25:34,150 --> 00:25:36,950 Once you get to complicated digital circuitry and 706 00:25:36,950 --> 00:25:38,169 you want to do prototyping, 707 00:25:38,524 --> 00:25:39,825 then you go to an FPGA. 708 00:25:40,204 --> 00:25:42,605 In fact, and I'm not an industry person, 709 00:25:42,605 --> 00:25:44,065 but from what I've been told, 710 00:25:44,605 --> 00:25:46,684 one of the big revenue drivers for the 711 00:25:46,684 --> 00:25:49,184 FPGA industry is prototyping 712 00:25:49,484 --> 00:25:49,984 ASICs. 713 00:25:50,845 --> 00:25:52,944 So they do get used in that production 714 00:25:53,005 --> 00:25:55,730 loop as well. What specific problem with this 715 00:25:55,730 --> 00:25:57,409 process have you been trying to solve in 716 00:25:57,409 --> 00:25:58,150 your PhD? 717 00:25:58,529 --> 00:26:01,569 Yeah. So maybe multiple problems, but I will 718 00:26:01,569 --> 00:26:02,069 give 719 00:26:02,529 --> 00:26:04,710 the let's say, kind of the big picture 720 00:26:04,769 --> 00:26:05,269 problem. 721 00:26:05,809 --> 00:26:07,569 So I told you step one, step two, 722 00:26:07,569 --> 00:26:08,710 and step three previously. 723 00:26:09,184 --> 00:26:10,644 Step one is design entry. 724 00:26:11,105 --> 00:26:14,085 Step two is the conversion from a functional 725 00:26:14,224 --> 00:26:16,384 to a physical design, and we refer to 726 00:26:16,384 --> 00:26:19,424 that as electronic design automation, and step three 727 00:26:19,424 --> 00:26:20,325 is the fabrication. 728 00:26:21,105 --> 00:26:23,444 So my research deals with step two primarily, 729 00:26:24,000 --> 00:26:27,039 electronic design automation. We have the functional design. 730 00:26:27,039 --> 00:26:28,980 We want to produce a physical design. 731 00:26:29,680 --> 00:26:31,519 Now the way that we do this is 732 00:26:31,519 --> 00:26:33,839 in several stages and we'll say that at 733 00:26:33,839 --> 00:26:36,400 each stage, we have usually an NP hard 734 00:26:36,400 --> 00:26:38,480 problem to solve and we use a heuristic 735 00:26:38,480 --> 00:26:39,734 algorithm to solve it. 736 00:26:40,214 --> 00:26:41,194 So stage 737 00:26:41,654 --> 00:26:43,974 one within this, then stage two, stage three, 738 00:26:43,974 --> 00:26:45,595 it's a sequential process. 739 00:26:46,454 --> 00:26:47,755 At each stage, 740 00:26:48,454 --> 00:26:49,595 things can go wrong. 741 00:26:49,894 --> 00:26:51,434 We're using heuristic algorithms. 742 00:26:52,069 --> 00:26:52,569 So 743 00:26:52,950 --> 00:26:55,529 they can fail to produce a viable solution. 744 00:26:56,390 --> 00:26:57,529 If they succeed, 745 00:26:58,069 --> 00:26:59,369 they can take an unexpectedly 746 00:26:59,750 --> 00:27:00,490 long time 747 00:27:00,789 --> 00:27:02,410 to succeed and produce a solution, 748 00:27:02,869 --> 00:27:04,630 and the solution may be of a low 749 00:27:04,630 --> 00:27:05,130 quality. 750 00:27:05,775 --> 00:27:08,595 So my research deals with predicting in advance 751 00:27:09,055 --> 00:27:10,434 before you run the algorithms 752 00:27:11,134 --> 00:27:12,894 if any of those three things will become 753 00:27:12,894 --> 00:27:13,555 an issue. 754 00:27:14,095 --> 00:27:14,595 So 755 00:27:15,535 --> 00:27:16,755 prior to this research, 756 00:27:17,295 --> 00:27:20,355 that electronic design automation process, it's very uncertain, 757 00:27:20,849 --> 00:27:22,289 and I like to say that my research 758 00:27:22,289 --> 00:27:25,029 is adding certainty to electronic design automation. 759 00:27:25,650 --> 00:27:27,730 That sounds like the equivalent of if you're 760 00:27:27,730 --> 00:27:29,490 having a software update, you might want to 761 00:27:29,490 --> 00:27:31,589 know that the software update is gonna take, 762 00:27:31,650 --> 00:27:33,410 I don't know, three hours and forty five 763 00:27:33,410 --> 00:27:35,554 minutes to run that thing over time as 764 00:27:35,554 --> 00:27:37,654 opposed to taking, you know, two minutes. 765 00:27:38,035 --> 00:27:39,954 Yeah. So I normally don't market this way, 766 00:27:39,954 --> 00:27:41,714 but when I talk to others in the 767 00:27:41,714 --> 00:27:44,914 domain, they say, oh, you're creating a progress 768 00:27:44,914 --> 00:27:47,315 bar for electronic design automation. And I go, 769 00:27:47,315 --> 00:27:48,595 yeah. You know what? You can think of 770 00:27:48,595 --> 00:27:50,275 it that way. There's a little bit more, 771 00:27:50,275 --> 00:27:52,369 but you could create a progress bar with 772 00:27:52,369 --> 00:27:55,089 this. Whereas today, there's nothing. You just kind 773 00:27:55,089 --> 00:27:56,369 of sit there and you wait and you 774 00:27:56,369 --> 00:27:58,369 see what happens. I want to get a 775 00:27:58,369 --> 00:28:00,210 little bit into the mathematics of this. You 776 00:28:00,210 --> 00:28:03,029 mentioned something as being an NP hard process. 777 00:28:03,650 --> 00:28:04,549 Yeah. So 778 00:28:05,484 --> 00:28:07,804 without going into the technical details of what 779 00:28:07,804 --> 00:28:10,785 NP hardness is, I think the important intuition 780 00:28:11,565 --> 00:28:14,065 is that we're looking at optimization problems, 781 00:28:14,845 --> 00:28:15,345 and 782 00:28:16,044 --> 00:28:19,565 there are many, many different possible solutions to 783 00:28:19,565 --> 00:28:21,500 this. So we would typically speak to the 784 00:28:21,500 --> 00:28:22,799 complexity of the problem, 785 00:28:23,339 --> 00:28:23,839 and 786 00:28:24,220 --> 00:28:26,400 the problems that we're dealing with have combinatorial 787 00:28:26,859 --> 00:28:27,359 complexity, 788 00:28:28,059 --> 00:28:28,559 where 789 00:28:28,940 --> 00:28:29,839 for every 790 00:28:30,380 --> 00:28:32,480 element of the output solution, 791 00:28:33,045 --> 00:28:35,365 you can choose from, let's say, a set 792 00:28:35,365 --> 00:28:36,025 of possibilities. 793 00:28:37,125 --> 00:28:38,184 And for each 794 00:28:38,725 --> 00:28:39,225 possibility 795 00:28:39,684 --> 00:28:41,465 for a given element of the solution, 796 00:28:42,325 --> 00:28:44,664 any combination of those is 797 00:28:45,380 --> 00:28:47,380 viable in the output space. So we say 798 00:28:47,380 --> 00:28:48,120 it's combinatorially 799 00:28:48,500 --> 00:28:51,080 hard, and those combinatorially hard problems 800 00:28:51,620 --> 00:28:54,019 are they fall into the complexity class of 801 00:28:54,019 --> 00:28:55,799 NP hardness in computer science. 802 00:28:56,580 --> 00:28:58,279 So very, very hard stuff. 803 00:28:59,275 --> 00:29:01,115 And what was the outcome of your process? 804 00:29:01,115 --> 00:29:03,615 What stage is this business project at currently? 805 00:29:03,994 --> 00:29:06,075 Yeah. So I'm toward the end of my 806 00:29:06,075 --> 00:29:06,575 PhD. 807 00:29:06,875 --> 00:29:09,355 Many years have gone into it, and I've 808 00:29:09,355 --> 00:29:10,954 completed a lot, but there's a lot more 809 00:29:10,954 --> 00:29:13,259 to go. So what I've done so far 810 00:29:13,400 --> 00:29:15,019 is I've looked at the 811 00:29:15,320 --> 00:29:15,820 hardest 812 00:29:16,279 --> 00:29:16,779 problem 813 00:29:17,160 --> 00:29:19,799 within electronic design automation, which is a routing 814 00:29:19,799 --> 00:29:20,299 problem. 815 00:29:21,000 --> 00:29:21,500 Now 816 00:29:22,200 --> 00:29:25,080 routing is hard, not just because of the 817 00:29:25,080 --> 00:29:27,194 complexity of the task, but the scale at 818 00:29:27,194 --> 00:29:28,255 which we do it. 819 00:29:28,875 --> 00:29:29,375 So 820 00:29:30,154 --> 00:29:33,275 for routing, we typically think of the chip 821 00:29:33,275 --> 00:29:35,115 as a graph. And when I say graph, 822 00:29:35,115 --> 00:29:37,755 I mean in the computer science domain where 823 00:29:37,755 --> 00:29:39,054 the graph has nodes 824 00:29:39,434 --> 00:29:40,734 and nodes have edges. 825 00:29:41,359 --> 00:29:42,580 The nodes represent 826 00:29:43,119 --> 00:29:45,840 wiring resources in the chip and the edges 827 00:29:45,840 --> 00:29:46,900 represent the connectivity 828 00:29:47,440 --> 00:29:49,539 between the wires in the chip. 829 00:29:50,240 --> 00:29:51,539 Now, the routing problem 830 00:29:52,240 --> 00:29:53,460 involves connecting, 831 00:29:54,825 --> 00:29:55,325 communicating 832 00:29:55,785 --> 00:29:58,105 components in the design. So if I have 833 00:29:58,105 --> 00:30:00,585 component a in the chip and component b 834 00:30:00,585 --> 00:30:02,904 and my functional design says these two things 835 00:30:02,904 --> 00:30:04,585 need to talk to each other, we need 836 00:30:04,585 --> 00:30:06,904 to lay a wire that communicate that connects 837 00:30:06,904 --> 00:30:07,884 the two of them. 838 00:30:08,265 --> 00:30:09,980 Now, that's really simple. 839 00:30:10,519 --> 00:30:12,839 However, it's not usually just component a and 840 00:30:12,839 --> 00:30:14,460 b. There's not normally two. 841 00:30:14,839 --> 00:30:17,500 The typical order of magnitude in my work 842 00:30:17,640 --> 00:30:18,460 is about 843 00:30:19,799 --> 00:30:21,079 10,000,000 844 00:30:21,079 --> 00:30:21,579 components, 845 00:30:23,054 --> 00:30:25,315 and the typical number of wires 846 00:30:25,934 --> 00:30:27,154 is about a billion. 847 00:30:28,014 --> 00:30:31,794 And so this graph then has about 10,000,000 848 00:30:31,855 --> 00:30:33,875 nodes and a billion edges. 849 00:30:34,734 --> 00:30:37,054 And so we have to use algorithms to 850 00:30:37,054 --> 00:30:37,554 solve 851 00:30:38,089 --> 00:30:39,549 this NP hard problem 852 00:30:40,410 --> 00:30:42,830 on a billion scale chip. 853 00:30:43,930 --> 00:30:46,490 And so my research is predicting whether the 854 00:30:46,490 --> 00:30:49,630 algorithms can do that for a specific problem, 855 00:30:49,930 --> 00:30:51,914 predict how long it's going to take, and 856 00:30:51,914 --> 00:30:53,695 predict the quality of the final solution. 857 00:30:54,315 --> 00:30:56,315 But if your process said, actually, this is 858 00:30:56,315 --> 00:30:58,075 going to either take a very long time 859 00:30:58,075 --> 00:30:59,515 or it might take a long time, might 860 00:30:59,515 --> 00:31:01,515 take a short time, but the solution it's 861 00:31:01,515 --> 00:31:02,795 going to come up with is not gonna 862 00:31:02,795 --> 00:31:03,695 be very good, 863 00:31:04,315 --> 00:31:05,375 what happens then? 864 00:31:06,075 --> 00:31:08,730 Yep. So a few different things can happen. 865 00:31:09,349 --> 00:31:11,670 It depends on exactly how your design flow 866 00:31:11,670 --> 00:31:14,089 looks, but I'll give you two examples. 867 00:31:15,029 --> 00:31:15,849 One example 868 00:31:16,630 --> 00:31:18,309 that is a state of the art for 869 00:31:18,309 --> 00:31:19,625 many people is 870 00:31:20,805 --> 00:31:21,305 they 871 00:31:22,325 --> 00:31:22,825 perform 872 00:31:23,125 --> 00:31:25,605 what we call the placement task, which happens 873 00:31:25,605 --> 00:31:26,505 before routing, 874 00:31:27,285 --> 00:31:28,825 with multiple different instances. 875 00:31:29,125 --> 00:31:31,125 So what this means is that in placement, 876 00:31:31,125 --> 00:31:32,565 we have components of the chip, and we 877 00:31:32,565 --> 00:31:34,259 need to figure out where they go. We 878 00:31:34,259 --> 00:31:36,119 have to place them at fixed locations. 879 00:31:36,980 --> 00:31:40,200 We use pseudo random algorithms for this, which 880 00:31:40,580 --> 00:31:43,320 give different outputs based on a different random 881 00:31:43,700 --> 00:31:46,065 number generator seed. So So let's say we'll 882 00:31:46,065 --> 00:31:48,304 do 10 different placements with 10 different random 883 00:31:48,304 --> 00:31:48,804 seeds. 884 00:31:49,184 --> 00:31:51,125 And then now we have 10 different inputs 885 00:31:51,184 --> 00:31:52,325 to the routing problem. 886 00:31:53,025 --> 00:31:55,825 We will then run 10 different instances of 887 00:31:55,825 --> 00:31:56,804 the routing problem, 888 00:31:57,345 --> 00:32:00,325 and we can use my research to predict 889 00:32:00,470 --> 00:32:03,450 which of those is most likely to succeed, 890 00:32:03,910 --> 00:32:05,910 take a short amount of time, and then 891 00:32:05,910 --> 00:32:07,529 give you a good result at the end. 892 00:32:07,670 --> 00:32:09,349 And so you would kill nine of the 893 00:32:09,349 --> 00:32:11,910 instances and keep just one. So that's one 894 00:32:11,910 --> 00:32:14,045 way it could be used. Another way that 895 00:32:14,045 --> 00:32:14,944 it could be used 896 00:32:15,644 --> 00:32:17,184 in tandem with that actually 897 00:32:17,644 --> 00:32:19,265 is you have a routing problem 898 00:32:19,805 --> 00:32:20,704 and you predict 899 00:32:21,085 --> 00:32:22,684 it's not going to work out or it's 900 00:32:22,765 --> 00:32:24,765 there's a low probability that is going to 901 00:32:24,765 --> 00:32:26,625 work out and give a successful solution. 902 00:32:27,130 --> 00:32:27,630 You 903 00:32:28,169 --> 00:32:30,589 can kill the routing run early, 904 00:32:31,289 --> 00:32:33,289 go to an earlier stage of the design 905 00:32:33,289 --> 00:32:33,789 process, 906 00:32:34,250 --> 00:32:36,829 make some tweaks based on your engineering expertise 907 00:32:37,289 --> 00:32:39,950 that you believe are going to improve the 908 00:32:40,434 --> 00:32:43,555 likelihood that the chip will be routable, as 909 00:32:43,555 --> 00:32:44,695 we like to say it. 910 00:32:45,075 --> 00:32:46,674 You've worked out that you can't get from 911 00:32:46,674 --> 00:32:48,434 point a to point b by subway, and 912 00:32:48,434 --> 00:32:49,715 you've got to work out how to do 913 00:32:49,715 --> 00:32:50,775 it on foot instead. 914 00:32:51,154 --> 00:32:53,970 Exactly. Right? During this project, was there anything 915 00:32:53,970 --> 00:32:55,570 that you thought would be hard that turned 916 00:32:55,570 --> 00:32:56,549 out to be easy 917 00:32:56,930 --> 00:32:59,490 or vice versa? Anything you thought that would 918 00:32:59,490 --> 00:33:01,330 be easy turned out to be really, really 919 00:33:01,330 --> 00:33:01,830 difficult? 920 00:33:02,369 --> 00:33:04,210 I can't say anything that I thought was 921 00:33:04,210 --> 00:33:05,650 going to be hard turned out to be 922 00:33:05,650 --> 00:33:07,045 easy, but but I can say that there 923 00:33:07,045 --> 00:33:08,244 are things which I thought was going to 924 00:33:08,244 --> 00:33:09,945 be easy that turned out to be hard. 925 00:33:10,484 --> 00:33:13,144 I'll give you one example of that. So 926 00:33:14,164 --> 00:33:16,404 something which I've personally tried to look at, 927 00:33:16,404 --> 00:33:18,744 which prior research hasn't really, is 928 00:33:19,125 --> 00:33:20,184 the the probabilities 929 00:33:20,644 --> 00:33:21,945 of what's going to happen. 930 00:33:22,289 --> 00:33:22,789 So 931 00:33:23,090 --> 00:33:25,190 I apply machine learning to do these predictions. 932 00:33:26,130 --> 00:33:28,049 There's been prior work on using machine learning 933 00:33:28,049 --> 00:33:30,710 for similar aspects of electronic design automation 934 00:33:31,330 --> 00:33:34,789 and they typically predict the expected outcome. 935 00:33:35,250 --> 00:33:36,230 So for example, 936 00:33:37,414 --> 00:33:38,795 we could say that 937 00:33:39,255 --> 00:33:41,174 we expect that the chip is going to 938 00:33:41,174 --> 00:33:44,375 come out with an operating frequency of 500 939 00:33:44,375 --> 00:33:44,875 megahertz. 940 00:33:45,734 --> 00:33:46,234 Sure. 941 00:33:47,255 --> 00:33:49,494 You can take a more nuanced view to 942 00:33:49,494 --> 00:33:50,795 this. You could say 943 00:33:51,734 --> 00:33:55,170 our average expected result is 500 megahertz, 944 00:33:55,549 --> 00:33:57,230 but within a 5% 945 00:33:57,230 --> 00:33:58,509 to 95% 946 00:33:58,509 --> 00:33:59,650 confidence interval, 947 00:34:00,029 --> 00:34:02,049 we expect it to be be between 948 00:34:02,750 --> 00:34:05,089 400 megahertz and 600 megahertz. 949 00:34:06,109 --> 00:34:08,655 As it turns out, this is very useful 950 00:34:08,655 --> 00:34:09,954 to do, but it's not 951 00:34:10,335 --> 00:34:10,835 straightforward 952 00:34:11,295 --> 00:34:13,795 to do that. Why is that so useful? 953 00:34:14,255 --> 00:34:14,755 So 954 00:34:15,375 --> 00:34:17,474 it ends up being useful because 955 00:34:17,855 --> 00:34:18,994 we often have, 956 00:34:19,860 --> 00:34:20,360 let's 957 00:34:20,820 --> 00:34:21,320 say, 958 00:34:22,980 --> 00:34:24,680 some room for tolerance 959 00:34:25,140 --> 00:34:26,200 in these things. 960 00:34:26,740 --> 00:34:28,820 Right? So it it's nice to know that 961 00:34:28,820 --> 00:34:30,920 we expect a 500 megahertz chip, 962 00:34:31,220 --> 00:34:34,755 but maybe we don't actually need that. Maybe 963 00:34:34,755 --> 00:34:35,635 450 964 00:34:35,635 --> 00:34:36,934 megahertz would be enough. 965 00:34:38,034 --> 00:34:38,534 So 966 00:34:39,074 --> 00:34:41,155 only knowing that we expect 500 is nice. 967 00:34:41,155 --> 00:34:42,755 That kind of tells us most likely we'll 968 00:34:42,755 --> 00:34:44,934 get what we want. But what if 969 00:34:45,315 --> 00:34:47,355 there's a a significant probability of it going 970 00:34:47,355 --> 00:34:48,835 to be below 450 971 00:34:48,835 --> 00:34:49,335 megahertz? 972 00:34:49,719 --> 00:34:52,760 Then that single prediction of just 500 doesn't 973 00:34:52,760 --> 00:34:54,539 give you any information about that. 974 00:34:55,160 --> 00:34:55,660 Now 975 00:34:56,199 --> 00:34:57,660 if you don't have that information, 976 00:34:58,599 --> 00:34:59,820 how do you make a decision? 977 00:35:00,119 --> 00:35:01,559 How do you know whether this is going 978 00:35:01,559 --> 00:35:02,460 to be good enough? 979 00:35:02,835 --> 00:35:04,275 You don't, and so you have to guess, 980 00:35:04,275 --> 00:35:06,675 and that's what people have done. People have 981 00:35:06,675 --> 00:35:08,375 guessed in the face of uncertainty. 982 00:35:08,914 --> 00:35:11,394 But now I'm giving you a probabilistic view 983 00:35:11,394 --> 00:35:12,855 of this. I can tell you 984 00:35:13,234 --> 00:35:14,054 the probability 985 00:35:14,675 --> 00:35:16,934 based on prior data that we've collected 986 00:35:18,219 --> 00:35:20,780 indicates that there's an x percent chance that 987 00:35:20,780 --> 00:35:22,940 the frequency of the chip will be greater 988 00:35:22,940 --> 00:35:25,739 than your minimum threshold of 450 989 00:35:25,739 --> 00:35:26,239 megahertz. 990 00:35:26,860 --> 00:35:29,260 Are there any implications of these results beyond 991 00:35:29,260 --> 00:35:30,940 chip design? I mean, I can imagine that 992 00:35:30,940 --> 00:35:32,719 other industries will also have routing 993 00:35:33,974 --> 00:35:35,974 problems and will also be using the algorithms 994 00:35:35,974 --> 00:35:37,894 to try to solve them. Yes. So I 995 00:35:37,894 --> 00:35:38,554 think this 996 00:35:39,094 --> 00:35:39,674 is an 997 00:35:40,135 --> 00:35:40,635 early 998 00:35:41,414 --> 00:35:45,599 but fertile area for research. So thinking thinking 999 00:35:45,599 --> 00:35:47,920 more fundamentally about what my research is doing, 1000 00:35:47,920 --> 00:35:48,900 yes, we're predicting 1001 00:35:49,440 --> 00:35:50,820 outcomes in chip design, 1002 00:35:51,360 --> 00:35:53,780 but we're really predicting the outcomes of algorithms. 1003 00:35:54,320 --> 00:35:57,135 Algorithms get used beyond the chip design world. 1004 00:35:57,375 --> 00:35:58,815 They get used in more places than I 1005 00:35:58,815 --> 00:36:00,114 could ever imagine counting. 1006 00:36:00,655 --> 00:36:01,394 And so 1007 00:36:02,175 --> 00:36:04,815 researching the outcomes of algorithms has a more 1008 00:36:04,815 --> 00:36:05,875 global implication, 1009 00:36:06,255 --> 00:36:07,775 an implication that I think a lot of 1010 00:36:07,775 --> 00:36:09,235 other researchers and practitioners 1011 00:36:09,775 --> 00:36:11,074 should pay attention to 1012 00:36:11,460 --> 00:36:11,960 because 1013 00:36:12,340 --> 00:36:14,199 it it gives us new applications 1014 00:36:14,500 --> 00:36:16,500 for this research, but I think it also 1015 00:36:16,500 --> 00:36:18,519 drives new research areas. So 1016 00:36:19,219 --> 00:36:21,059 one of the hot topics in machine learning 1017 00:36:21,059 --> 00:36:22,840 these days is foundation models. 1018 00:36:23,775 --> 00:36:24,275 Now 1019 00:36:25,534 --> 00:36:26,914 I'm telling you that 1020 00:36:27,295 --> 00:36:29,534 there are many different algorithms that we could 1021 00:36:29,534 --> 00:36:30,514 apply this to. 1022 00:36:30,974 --> 00:36:31,954 Here's an idea. 1023 00:36:32,414 --> 00:36:34,275 What if we collected data 1024 00:36:34,815 --> 00:36:35,315 from 1025 00:36:35,614 --> 00:36:36,835 several different algorithms 1026 00:36:37,329 --> 00:36:40,449 to train one foundation model, which is used 1027 00:36:40,449 --> 00:36:43,670 to predict the outcomes of many different algorithms, 1028 00:36:44,210 --> 00:36:45,730 and then we fine tune this as we 1029 00:36:45,730 --> 00:36:46,230 want. 1030 00:36:46,530 --> 00:36:48,369 This is a paradigm that we've seen successful 1031 00:36:48,369 --> 00:36:50,769 in other areas of machine learning, but not 1032 00:36:50,769 --> 00:36:52,389 really in the algorithms world. 1033 00:36:52,704 --> 00:36:55,025 And something that's really key to note here 1034 00:36:55,025 --> 00:36:57,424 is that we can collect high quality data 1035 00:36:57,424 --> 00:37:00,644 from algorithms. It's really easy to extract information 1036 00:37:01,184 --> 00:37:04,085 because we're not dealing with physical processes with 1037 00:37:04,385 --> 00:37:06,704 noisy sensor data that you might have in, 1038 00:37:06,704 --> 00:37:08,579 say, the physics world. We're in the world 1039 00:37:08,579 --> 00:37:10,760 of software. And in the world of software, 1040 00:37:10,900 --> 00:37:13,220 we can collect near perfect information to train 1041 00:37:13,220 --> 00:37:15,480 our models. That does sound exciting. 1042 00:37:16,420 --> 00:37:18,739 Okay. Final question. What are you planning to 1043 00:37:18,739 --> 00:37:19,400 do next? 1044 00:37:19,700 --> 00:37:21,160 That's a good question. So 1045 00:37:22,464 --> 00:37:24,304 I do everything that I said in my 1046 00:37:24,304 --> 00:37:25,925 academic life, in my PhD. 1047 00:37:26,385 --> 00:37:28,224 I also have an industry life on the 1048 00:37:28,224 --> 00:37:30,385 side. So I work at part time at 1049 00:37:30,385 --> 00:37:33,284 a startup called Singulos Research in Vancouver, Canada, 1050 00:37:33,905 --> 00:37:36,065 where we do nothing related to anything I 1051 00:37:36,065 --> 00:37:38,199 just said. We are looking at 1052 00:37:38,819 --> 00:37:39,719 mixed reality 1053 00:37:40,019 --> 00:37:43,639 experiences using computer vision for real time applications 1054 00:37:43,859 --> 00:37:44,920 on mobile devices. 1055 00:37:45,859 --> 00:37:46,359 And 1056 00:37:46,659 --> 00:37:47,159 I'm 1057 00:37:47,539 --> 00:37:49,400 hoping that things go well with the start 1058 00:37:49,460 --> 00:37:51,139 up, and if they do, I'm planning to 1059 00:37:51,139 --> 00:37:53,984 continue research there. Maybe I'll go between that 1060 00:37:53,984 --> 00:37:56,224 and the chip design world. I have several 1061 00:37:56,224 --> 00:37:56,724 interests. 1062 00:37:57,105 --> 00:37:58,724 So it's up in there at the moment. 1063 00:37:59,105 --> 00:38:00,085 Well, good luck. 1064 00:38:00,385 --> 00:38:01,664 Thank you very much for appearing on the 1065 00:38:01,664 --> 00:38:03,184 podcast. It's been good to talk to you. 1066 00:38:03,184 --> 00:38:04,724 Thank you. It's been lovely, Margaret. 1067 00:38:12,800 --> 00:38:15,860 That was Andrew Gunther speaking to Margaret Harris 1068 00:38:16,000 --> 00:38:20,099 at the Heidelberg Laureate Forum in Heidelberg, Germany. 1069 00:38:20,894 --> 00:38:23,954 Thanks to Andrew and our other guest, Mariam 1070 00:38:24,094 --> 00:38:24,594 Elgemel, 1071 00:38:25,135 --> 00:38:28,195 for enlightening us about what goes into designing 1072 00:38:28,335 --> 00:38:29,315 computer chips, 1073 00:38:29,695 --> 00:38:32,255 the chips that we all use just about 1074 00:38:32,255 --> 00:38:34,355 every hour of every day. 1075 00:38:35,070 --> 00:38:37,329 And, Margaret, thanks for coming on the podcast. 1076 00:38:37,469 --> 00:38:39,230 And, can can you give us a little 1077 00:38:39,230 --> 00:38:41,630 preview of some other interviews that you've got 1078 00:38:41,630 --> 00:38:43,469 from Heidelberg that are coming up? I think 1079 00:38:43,469 --> 00:38:45,550 we've got two more, don't we? Yeah. I 1080 00:38:45,550 --> 00:38:47,965 spoke to two laureates at the Huddlberg Laureate 1081 00:38:47,965 --> 00:38:49,804 Forum who both have a background in physics 1082 00:38:49,804 --> 00:38:51,965 before they went into computer science, which is 1083 00:38:51,965 --> 00:38:53,644 where they've made their names and and won 1084 00:38:53,644 --> 00:38:54,304 their prizes. 1085 00:38:55,005 --> 00:38:57,885 Patrick Hanrahan is now best known for, 1086 00:38:58,684 --> 00:39:01,425 his work on at Pixar on computer animation. 1087 00:39:02,059 --> 00:39:05,260 And Amanda Randalls is working on computational sort 1088 00:39:05,260 --> 00:39:06,639 of health health science, 1089 00:39:07,099 --> 00:39:09,500 in the engineering department at Duke University. We 1090 00:39:09,500 --> 00:39:10,320 actually overlapped 1091 00:39:10,940 --> 00:39:12,780 there as physics students, so it was nice 1092 00:39:12,780 --> 00:39:14,219 to talk to her for that reason as 1093 00:39:14,219 --> 00:39:15,954 well. And so, yeah, they'll be coming up 1094 00:39:15,954 --> 00:39:17,635 on the podcast over the next couple of 1095 00:39:17,635 --> 00:39:19,394 months. We don't want to have all computer 1096 00:39:19,394 --> 00:39:21,394 science all the time, but, back to our 1097 00:39:21,394 --> 00:39:23,875 regular scheduled physics next week, I think. That's 1098 00:39:23,875 --> 00:39:26,195 right. Well, I look forward to, to, to 1099 00:39:26,195 --> 00:39:28,614 getting those, interviews onto the podcast. 1100 00:39:29,170 --> 00:39:31,889 Thanks, Margaret, for, coming on the podcast and 1101 00:39:31,889 --> 00:39:33,190 for doing those interviews, 1102 00:39:33,650 --> 00:39:36,050 and a special thanks to our producer, Fred 1103 00:39:36,050 --> 00:39:36,550 Isles. 1104 00:39:36,929 --> 00:39:39,349 We'll be back again next week. Bye.