Bryce

Okay, but buddy, but what trained Chat GPT?

Conor

Uh that the compute that trains NVIDIA GPUs.

Bryce

Yeah, but that that doesn't affect the answers. I'm telling you, that that large language model, it almost certainly knows how it was trained. Do you know the address? I I can't get the address right now because Connor and I are in the middle of recording.

Conor

Welcome to ADSP the podcast, episode 166, recorded on January 24th, 2024. My name is Connor, and today I quiz my co-host Bryce about what the top 20 GPU SDK's libraries and tools are.

Bryce

Oh, I have some bad news. My my little thing that my microphones go in. Look at this. Come on, Rode. What's this quality control? This is starting to fall apart.

Conor

It's not acceptable.

Bryce

Yeah. Oh, I wanna speak of quality control. Speaking of quality control. This is potentially relevant content for the episode. So you know about how that that door, the door plug fell like off off of that uh that Alaska Airlines flight like a couple weeks ago.

Conor

Oh yeah, yeah, I I heard about that.

Bryce

Yeah. So they um uh there were some reports out now that um indicate uh what the root of the problem was. And the root of the problem seems to be that the the four bolts that like were supposed to hold the door in place were just not installed at all. And um and I've been reading because I'm very uh tuned into the aviation world, I've been reading some some things about this. And and the the process failure that led to uh to this issue is actually kind of interesting. Um so so they they thought that there was something defective with the door plug, uh, because there were a lot of issues from the people who provided the door plug. And so because like when they were doing their QA on the on the plane before they shipped it out of the factory, they um they they noted that, hey, we gotta investigate this door plug. We think the door plug's a problem. So they made a note on the record to go check the door plug, and then they went and checked the door plug. And there's a note on the record that said, all right, we've we've taken the door out and we've investigated it, and now we're deciding whether or not we're going to uh uh like replace the door or not. And then the note says, and if we do replace the door with a new one, if we we get rid of this one and put in a new one, we will put a note in the system for the door to be rechecked, to do QA on the on the new door again. And see, that's where the mistake was, because they had already taken the door off of the plane. And so because they'd taken the door off of the plane, they needed to redo the QA anyways, regardless of whether they replaced the door. They needed to check that the door was properly reinstalled. But they didn't end up replacing the door. And because they didn't end up replacing the door, they didn't mark that the door needed to be rechecked by QA. And because of that, the door wasn't rechecked by QA, and the plane shipped out of the factory without any bolts to hold the door in place. And uh, you know, uh my partner being a process engineer, I have now some interest in the field of uh uh process and quality control and what leads to the root cause of failures. And I just thought that this was quite interesting.

Conor

You know, I'd say that our listeners don't find it interesting, but you know, we've le we've recently learned that I don't have my finger on the pulse of what our listeners do and do not find interesting. Well, yeah, hopefully my planes that I get on don't have a door taken off and then put back on. If it gets taken off, let's hope it gets replaced.

Bryce

Well, I mean, I no, I I I think there's some there's some deep lesson to learn here. Um like, you know, uh, you know, if you if you fix some problem, or if you decide that it wasn't a problem at all, like if you fix some problem in your code, you need to do something to test that the fix is good, and and you also need to add some sort of regression test to make sure that you don't run into the problem again. I I could imagine ways in which there is a lesson from this that could be learned uh by the software industry.

Conor

Yeah, don't work on planes. Alright, here's my episode topic for the day. We were recently chatting, was it a week ago? Was it pre or post a recording? I can't remember, about the landscape of SDKs, libraries, languages that are used to target GPUs. Specifically in our case, we care about NVIDIA GPUs. And I I showed you some diagram that listed off a few of these things, and I think it was just today, I decided to ask ChatGPT to be specific, ChatGPT 4, which I signed up for in the last couple weeks, for a specific task, which it was not able to complete successfully, but now I've paid for it for a month, so we may or may not keep it. And the question that I asked was so now we're gonna do a little family feud, this little quiz time. But I think if you can get five out of the top 20 answers that ChatGPT gave, I'll be impressed. Um and and don't worry. I think you're gonna do well. But uh, you know, time on hang on.

Bryce

I just need to wait long enough to log into ChatGPT.

Conor

Don't be honest, be honest, Bryce. I can see I can see the light changing on your face. I know you're navigating to different websites. Do not I want to see your hands above your head for the for the next five minutes. You can rest them on your head if you want. So the question I asked was Hey, hang on, I gotta get back to seeing your beautiful face. Yeah, I want hands above your head for the for the next five minutes while we play this little game. And a listener, you can play along as well. And uh and then after we're done this little top, you know, trying to get five out of 20, I'm curious to see how many Okay, Google, open Chat GPT. This question comes in two parts because my first question, ChatGPT 4, went going on ad nauseum and detail, and I was like, I had to correct it. Anyway, so and I'll give you the beginning of Chat GPT's answer, uh, which is before the list starts. So, what are the main SDKs, libraries, and ways developers utilize GPUs? Then it started spitting out a bunch of garbage, and I said, Stop, stop, stop. And I said, Don't give me a description, just list me 20. And then ChatGPT responded, sure, here is a list of 20 SDKs, libraries, and tools for GPU programming. And I will, and then it goes one through 20. So the the question is, how many can Bryce get? And I will give you a hint. The first one is extremely obvious. It might be so obvious that you might not guess it, uh, but it's like it's like the most obvious one when you ask how do you target a GPU?

Bryce

I'm gonna go with um OpenGL.

Conor

All right, so CUDA. Actually, wait, wait, wait. Let me get let me get a little notepad out. So your first answer was OpenGL. That is number five answer on the board. So you're one for one. Yeah. What was your second one? CUDA. CUDA is the number one answer on the board. So you're two for two. Vulcan. Vulcan is the number three answer on the board. You're three for three. You're crushing. So you you're definitely Did I say Open CL? Open CL is number two on the board. Four for four. Not a single miss yet.

Bryce

Oh, so I wait, can you just I've gotten number one, number two, number three.

Conor

And number five.

Bryce

But and number five. Uh which one was number five?

Conor

Uh so the order was CUDA, open CL, Vulcan, and then we skip number four and then open GL.

Bryce

Gosh. I I don't know what could be number four. Um well, see, so so the the way that you program GPUs on on uh this is not my answer, but I'm gonna explain why I'm not gonna give it as an answer. Um I'm not gonna say metal, in the which is the the API for programming GPUs on Apple's platform. The reason I'm not gonna say it is because metal is newer. Um, and so I think it's gonna appear like later on the list. Um oh, uh uh wait, hang on. Direct X.

Conor

Number four is Direct X. Crushing it. So not a single miss yet, folks. And I was gonna say, we'll go till you get like three or five misses. Uh, but at this rate, you know, uh you're gonna run out of things to guess uh because you're you're crushing it so much. Yeah. And I think I'm gonna be generous. Uh Metal is number 18 on the list, and that's because uh Chat GPT 4, I think it got updated to like 2023 June, and it also has access. I see you typing, buddy. I see you typing.

Bryce

No, no, it's it's Ramona's calling it. Hang on, pause. And you know, the thing about that Hands above your head.

Conor

Hands above your head.

Bryce

The thing about that, the thing about that is that she knew that I was recording.

Conor

Uh you'd think that as time goes on, like the professional quality of this would like just steadily increase, but it seems it seems like the opposite.

Bryce

That one was not my fault. I I can't ignore uh a phone call from the girlfriend because it could be something urgent. Um and I would assume that if she was making a phone, if she was calling me on the phone while she knew I was recording the podcast, that it was something like, oh, I get hit by a bus or something like that. Not oh, I can't find the pet go order that I'm supposed to pick up.

Conor

All right, so to recap, Bryce has got his hands above his head now. He's gone five for five, technically six for six, because we're giving him metal, which is number 18 on the list. And not as not a single miss yet. And we've still got four 14 to guess.

Bryce

Well, I'm gonna say thrust.

Conor

Thrust is not on the list. Your first miss. That is the parallel algorithms library that we have talked about from time to time on this podcast.

Bryce

Um, how about HLSL?

Conor

HLSL. That is not on the list.

Bryce

Yeah, that's the that's like uh it's the high-level shader language. Um I for think it's like a part of opening. Hands above your head.

Conor

Hands above your head.

Bryce

Hang on, I'm looking at no, it it's like a DirectX thing. Um let's see.

Conor

You want to hint? Think about uh libraries. Because remember, ChatGPT responded, sure. Here is a list of 20 SDKs, libraries, and tools. And a couple of these were actually on the diagram that I showed you, if you recall. The diagram?

Bryce

When did you show me a diagram?

Conor

A week ago, I ended up showing you the stuff I was working on, and then mentioned that uh was having a conversation, and my question was, you know, what's the most PyTorch? PyTorch is number 12 on the list. We're s we're what is that? So now seven for nine. If PyTorch is on the list, that means that Numba? What? Numba? Numba is a great guess. I was surprised to not see Numba on this list. Uh, but numba is not on this list.

Bryce

If Py well, uh are you suggesting that torch is on the list because PyTorch is on the list?

Conor

That is not what I was suggesting.

Bryce

Okay.

Conor

Then continue with your There is a massive competitor that used to be more popular than PyTorch.

Bryce

Oh, TensorFlow?

Conor

That is correct. Number 11 on the list.

Bryce

Sorry to everyone I know who works on TensorFlow. So I still haven't gotten six, seven, eight.

Conor

You haven't gotten six through ten. At this point, you've got the top five, number 11, TensorFlow, number 12 PyTorch, and number 18 metal, which is a grand total of eight. You've had three misses, so we'll give you two more misses. And definitely, oh, here's another hint. So number eight, number nine, number seventeen are all uh by NVIDIA.

Bryce

Are all by NVIDIA.

Conor

And actually number 20 as well, although they don't have the name of NVIDIA in the title of it. Number And actually number number nine doesn't as well. So but anyways, number nine, number ten, uh, number seventeen, and number twenty.

Bryce

Is one of them something that you've worked on?

Conor

One of them is something that I've worked on, yes.

Bryce

Rapids?

Conor

Rapids comes in at number 20. And it actually, it's interesting. It says rapid that's surprising. Yeah, it says rapid AI, and then in parentheses, formerly known as Rapids, a suite of libraries for data science on GPUs. I checked. I don't think it's rapid AI. I'm pretty sure it's called the the URL is rapids.ai, and at least the marketing stuff on the main landing page still says rapids. So uh rapids, which is the GPU accelerated version of the popular Python library pandas. So now we've got nine. We're nine for twelve.

Bryce

Who else do we have that programs GPUs?

Conor

Yeah, so number eight, number nine, and number seventeen are all NVIDIA made.

Bryce

I know two of them are Are they compute or graphics?

Conor

One of them is compute, two of them is compute, and I think the third one is leans more towards graphics. Yeah.

Bryce

Oh god, what's the name of the what's the name of the RTX thingy? The library. But I don't think it could be that one. What's the name of the RTX library?

Conor

I don't know. And I don't think it's one of these three, so.

Bryce

DLSS?

Conor

It is not DLSS. And that's not the RTX thing, is it? That's the uh super sampling thing that like upscales your 1080p to 4k.

Bryce

Yeah.

Conor

One wrong guess left.

Bryce

Wait, hang on. Okay, okay, I'm gonna take another look. Is Unreal Engine on there?

Conor

Unreal is not on there. So in total, you got this pretty good, man. I thought you'd get roughly five, because that's what I thought I would get. Just because some of these are are off in the weeds. Uh, but you got nine correct, five incorrect guesses, but numba, thrust, I think, are fantastic guesses. I actually don't know much about HLSL, but here, let's go through. So, to recap what Bryce got, number one, CUDA, number two, open CL, number three, Vulcan, number four, direct X, number five, OpenGL, number 11, TensorFlow, number 12, PyTorch, number 18, Apple Metal, and number 20, Rapids. We'll go through now the ones that you missed. And this is gonna be entertaining. Yeah. Number six was WebGo. I definitely wouldn't have gotten that. Uh yeah. Just because it's not top of mind.

Bryce

I swear, I swear to God, if Cubs on this list, I'm gonna be picked up.

Conor

Cub is not on the list. Cub's the you know, sibling library to to thrust. Yeah. Number seven from our competitor. Can you guess based on that? AMD. Uh Sickle? Nope. Hip? Nope. I actually only learned about this. One API? Like uh a few months ago. One API is number 19, but that's by Intel, not AMD.

Bryce

CUDA's number one and one API is number 19. That's the world I want to live in. Sorry to all of our missed listeners who work on Intel, but uh number seven though is AMD's.

Conor

What's their version of CUDA, do you know? Rock'em? Yeah, Rock'em.

Bryce

Okay, but it's it's called Hip now. But I I fun fact, I was actually at the launch event for Rock'em. Wait, Rock'em is called Hip? Since when? The hip would be the more proper thing to call it. Rock'em's like the name for the like overarching tweet. Back, but when I worked at Berkeley Lab, um, I think his name was Greg. He was like the product manager for um uh Rock'em, and I got invited to go down to Santa Clara. This is when I lived in Berkeley, he invited me to come down to Santa Clara for their launch of Rock'em. And uh he was really into uh like rock music. And I I don't recall if he played a guitar there, but there was some like rock, like there was definitely like a rock music theme to the launch event. But yeah, I was there at the launch event for Rock'em. And there that was where?

Conor

What city?

Bryce

That was it was in San It was in San Jose, I think.

Conor

Okay.

Bryce

Yeah.

Conor

Interesting.

Bryce

So wait, okay, so what is uh just to just to pause on this, you know, uh NVIDIA has you know, HIP is I think Rockham is the name for the overall software stack, but HIP is specifically their like CUDA-like clone.

Conor

I see, I see. Yeah, so the Wikipedia says Rocam is an AMD software stack for GPU programming, and it spans several different domains, blah, blah, blah. But then it says it offers several programming models and then proceeds to list three or four of them, which is hip.

Bryce

Yeah, yeah, yeah. I I'm sorry, I was confused early. Hip is one, but like I think when Rokam launched, um, it was supposed to be like their like CUDA, like CUDA for their platform, and I think later the the hip branding got introduced.

Conor

Oh, interesting.

Bryce

So I think that that's why that's why I thought that that Rakham had been renamed to hip, because I think originally what Rockham was was supposed to be like their CUDA, but I I could be I could be wrong about that. Anyways, but yeah, Rocam is like the overall like like um uh plat like in the same sense that like like CUDA is like the overall platform, but like CUDA C ⁇ is one way to program that. Like Rockham is the overall platform, and uh Hip is their CUDA C ⁇ equivalent.

Conor

Gotcha.

Bryce

Anyways, give me the rest of the list.

Conor

Alright, so that was number seven, number eight, and number nine are both from NVIDIA. It starts with coup and ends in three letters. Under under underpins both PyTorch and TensorFlow.

Bryce

Coup DNN?

Conor

Coup DNN is correct, yes. I was I expected you to get that one as well. Number nine, a little bit more esoteric, but we've been getting emails I think every week, and it's been called Insert Tuesday. Have you have you been reading your NVIDIA emails closely enough? And that being said, we get literally like thousands of emails, and that's even after like filtering them.

Bryce

Yeah. Tensor RT. Yeah, and video Oh, Tensor RT. Although actually Yes, I forgot about that. I forgot about Tensor RT. Yeah, that's not true.

Conor

Now that I'm actually thinking about this though, uh is it is it Tensor RT Tuesdays? Now that I think about it, I don't think it's Tensor RT Tuesdays. No, it is Tensor RT Tuesdays. Hopefully this isn't like proprietary stuff. It's alright to mention that. In public, right? The name of a NVIDIA internal email.

Bryce

I mean, I think I think this whole podcast episode is sketchy because we're uh we're talking about uh competitors SDKs, and I'm making uh and I I seem to recall earlier I made a crude joke at Intel's expense. Uh but you know what?

Conor

Hey.

Bryce

It is what it is.

Conor

This is uh not the opinions of NVIDIA, it's the opinions of us, and this is just what ChatGPT lists. We didn't put them number seven.

Bryce

But buddy, okay, but buddy, but what trained Chat GPT?

Conor

Uh that the compute that trains NVIDIA GPUs.

Bryce

Yeah, but that that doesn't affect the answers. I'm telling you, that that large language model, it almost certainly knows how it was trained, right?

Conor

I don't think so.

Bryce

I'm sure that in the uh the input data, there's a lot of information that says lar that the that that open AI uses NVIDIA GPUs. And so of course you're asking you ask that's basically asking her like how were you born?

Conor

It is funny actually because number 13 on the list is open AI GPT.

Bryce

Oh, that's interesting. That's interesting.

Conor

Which uh I don't know, I didn't to call open AI GPT like an SDK, I guess maybe, because there are SDKs attached to like uh Yeah.

Bryce

I mean I like I've used the OpenAI API, so um, yeah.

Conor

Not shocked by that one. Continuing down the list, number 10 is PyCuda, which I am actually not familiar with. Number 11, we already covered, so we'll skip to number four.

Bryce

Oh yeah, yeah, I think PyCuda is not actually a thing that we uh officially support. I think PyCuda is like the Python CUDA um interface thingy.

Conor

Okay. Number 14, Microsoft CNTK, the cognitive toolkit, never heard of it. Number 15, Theano with GPU support, which I'm surprised that's up there because from what I know, like Cafe and Theano are like pretty old technologies, but hey, probably there's a lot of stuff out there. Number 16, AMD Fire Pro. Never heard of it. Have you heard of it?

Bryce

Uh long, long time ago.

Conor

And number 17 is Nvidia FizzX, which I which I assume is a physics SDK or library.

Bryce

Yeah. But okay, so AMD Fire Pro, I don't think it was their name of like their software. I think it was just the name for their like their brand of graphics cards.

Conor

It was like for their uh it says uh in parentheses next to AMD Fire Pro that it was an STK for AMD GPUs.

Bryce

Uh maybe it was. But I think it was I'm pretty sure it was old. I'm pretty sure it was like the 2000s.

Conor

Yeah. Well, I'm I'm not surprised. I mean, Theano, let's let's let's check in on Theano. Ooh, that's not what I meant to do. Just closed all my tabs.

Bryce

Nice, Connor. Closing all your tabs.

Conor

Well, Ctrl Shift T, baby. Theano is a Python library for optimizing compiler. I'm gonna do it. It opens up your most recently closed tabs, and if you close the whole window, it'll reopen everything. So whenever your computer shift uh restarts, I mean it always asks if you want to restore, but if you uh need to and you like accidentally clicked no to that, you can just go Ctrl Shift T a bunch of times. I mean, yeah, Theano came out in 2007. So yeah, it's been a while for a row. Been a while been around for a while. Anyway, so I guess to wrap up this little I mean, first of all, you did fantastic. Definitely better than I would have done.

Bryce

You know what?

Conor

Well, it's more important is that you crushed top five, you know, right. Off the bat without even getting a single one wrong, which is pretty impressive. And I guess you know, to put a little bow on this little 30-minute episode is the question that you know Bryce and I were talking about a week ago at OffPod was you know, what is the main the main way that developers target GPUs? Like what path are they taking? Is it is the number one you know and and that includes things like PyTarch and TensorFlow, where even though, you know, potentially it's not like you're doing quote unquote GPU programming, you're just doing you know machine learning stuff that happens to at the end of the day target accelerated compute, which could be in the form of a GPU. Like, is that where most of like if you were to create a pie chart of developers that target GPU compute and for our concern, it's you know mostly like I said before, NVIDIA GPUs, what does that pie chart look like? And uh that's something that I don't really have the answer to. I don't know, I haven't seen any GTC talks or keynotes that talk about that because I think uh most investors and people they care about NVIDIA, it's not something they care about, but as like a developer um and someone that works on libraries, uh it's something that uh I've been thinking about recently. Anyways, thoughts, comments? I know I know your initial response was, yeah, I haven't heard uh, you know, I haven't heard of a slide that shows that data.

Bryce

Well, yeah, it's I feel like I feel like uh maybe this is just my corporate experience, but I feel like so often data like this that would totally help us make better decisions. I feel like there are so many software organizations that don't really know the answers to these things. And then but because you don't actually have data on how your thing is used, you just like you make decisions based on how people not even think things are used, but how people feel things are used. And I make the distinction because thinking is like a logical process, whereas feeling is an emotional process. And that's how I I think we uh we we often approach this question. You know, I I I'm I'm sure that there is some data that somebody has, but um the fact that uh that I that it's not that it's not something that like is in front of me is like a bad sign, right? Like that's something that that I should be that like every every like senior engineer at the company should have a should have a good sense of that, right? Um but it's also when you have uh a product in an SDK it's as widely used as ours, it is difficult to truly survey and understand all of your users. You know, and and also like how do you how do you assign importance? Is it by the the the the number of developers that that work on the thing? Is it by the amount of revenue that they generate? Is it by like like uh you know, is it by the the amount of code that's written by a particular domain, or is it by how often that code is run? Um I think it's very difficult to actually quantify how your software's used. You know, make maybe maybe there's like one 10-line program somewhere that's like run on like every computer in the world, and like that's how your software is most frequently used, um, versus all the like all the other like thousands of lines that are code of code that are written that use your library are barely used. It's just that one place where it's used a bunch of times.

Conor

I mean, I completely agree that this is an extremely hard thing to measure. I I was I just while you were chatting, I Googled you know, CUDA developer survey, because I'm pretty sure that doesn't exist, and sure enough, it does not. We have, I think, some uh byproduct surveys, like I think the fourth or third top thing was a coup DNN stakeholder survey. But I mean it's if there's a you know a C, you know, uh what do they call it? Um community survey, there's a couple of them, right? One's done by the ISO Foundation, one's done by JetBrains. I think, you know, we should try to collect some of that data.

Bryce

I mean, it's it's kind of sad that like saying I've been saying that for years. I've been trying to put together a CUDA survey for years.

Conor

Yeah, I mean, why can't we? I think we should we should commit.

Bryce

I mean, we'll you know laziness. What?

Conor

Laziness mostly. Yeah, I mean we can make it happen if we wanted to.

Bryce

Um and I think actually, like the the you know Honestly, if you if you wanted to ask me the reason why um uh why I've never like completed plans to put that through. And like I've I've written it on my to-do list like four or five times over the the six years I've been here in NVIDIA. Um it's just it's not as exciting a thing to do. It's important, but it's not as exciting or cool. And also it's it always seems like it's a lot of work. There's a lot of like privacy and concerns and whatnot, like that. So, see, if we were gonna do this, I would want to do it correctly. And the way that I would want to do it, it it this brings up something that's actually been on a recent episode, unless Connor's gotten rid of it. The JetBrains Ecos like developer ecosystem survey. You know what JetBrains did? They one, they didn't try to go and run the survey themselves. They went and like hired people who are like professional survey runners and they're like, tell us how to do this. And two, they do the survey and then they publish the results, and they not only publish the results, they don't publish all the data, but they publish the results and they publish a description of their statistical methods. Um and like they they 100% do this the correct way. So like if I was gonna do this sort of survey at Nvidia, I would not like get together a group of people to come up with a set of questions and make like a Google Drive form. Um I would want to get like a pile of money and go to some company who are professionals and doing surveys and be like, you go figure this out. Here's my requirements, you go figure this out for me.

Conor

I mean, I completely agree. And I think whatever piles of money um it costs to make that happen probably is worth it. I mean, like it's sad. You Google CUDA Developer Survey, and the one, two, three, four, five, six, seventh result is CUDA versus Rock M, the ongoing battle for GPU computing. And it's a medium article by I don't know who this is, uh doesn't actually say. Um we'll leave it. I mean, I haven't even read it, I just glanced at it. Uh, but the point is, is like we should be collecting this kind of stuff. Like, we have a GTC, you know, we have more than one of them, but like the main one happens, whatever, March, April. How hard would it be like if we contact one of these surveying companies a couple months out, say, here's our criteria, and we want to like, you know, provide this for every single person that either virtually attends or in-person attends, has the ability. Plus, we'll also like put the link on online for anyone that just wants to go and fill it out. And I think we could we would get thousands of responses. Like supposedly there are like four to five million registered CUDA developers or something like that in the world. Like, it'd be pretty easy to get, I think, several thousand, you know. Uh anyways, we'll put it on our list.

Bryce

I mean, look, and if and if it's too expensive, we can always just, you know, take take that out of your pay, right?

Conor

I mean, not my pay, take it out of your pay. Anyways, that'll wrap what it what what are we on? 80s ADSP, episode 166. Be sure to check the show notes either in your podcast app or at adspthepodcast.com for links to anything we mentioned in today's episode, as well as a link to a GitHub discussion where you can leave thoughts, comments, and questions. Thanks for listening. We hope you enjoyed and have a great day.

Bryce

Low quality, high quality. That is the tagline of our podcast.

Conor

That's not the tagline. Our tagline is chaos with sprinkles of information.