This article is pretty good but, looking at comments so far, nobody seems to have made the obvious/predictable point that it's terribly Nvidia specific. That would be understandable perhaps a few years ago. But the era where there was no reasonable alternative is over. Sycl is a good language which performs well across multiple hardware vendors. Sapphire rapids is very good hardware. AMD's MI300 looks amazing. Nvidia…
At this point the massive investment in software is what drives this, hardware differences may no longer be dominant but the only way to unseat NV at this point is drop in replacements and/or drop in replacement libraries. And that's getting there. Which is good because GPUs are too expensive and have too little memory, some competition might help move things along rather than to give NV more time to milk their preci…
What every developer should know about GPU computing
121–130 of 186 posts
Re: What every developer should know about GPU computing
#122Not every developer. I'm not trying to be snarky. I think there's an unhelpful compunction to want to know everything about everything among STEM types like programmers (of which I am one). Specialization is fundamental to the success, not just of whole economies, but of the individuals in them. It can feel like a paintful sacrifice to admit that you'll never (have time to) learn, say, the entire Python language spec…
At this point, I think the running shtick / inside joke of "Every Developer Should Know ..." headlines is that of course every developer doesn't need to know the contents of the article that follows.
The first being number base systems.
Re: What every developer should know about GPU computing
#123First off, this is obviously false. If you can serve 9req/s and you're getting 10req/s the size of the queue depth is growing at a rate of 1req/s. It's not stationary.
Second, what's the connection between this and gpus? What's the queue? What's the queue depth? What are the requests?
Seems to me that the article focuses more on being smart than actually learning.
Re: What every developer should know about GPU computing
#124Re: What every developer should know about GPU computing
#125Earlier quoted context omitted.
At this point the massive investment in software is what drives this, hardware differences may no longer be dominant but the only way to unseat NV at this point is drop in replacements and/or drop in replacement libraries. And that's getting there. Which is good because GPUs are too expensive and have too little memory, some competition might help move things along rather than to give NV more time to milk their preci…
I really wish the ML researchers would have stayed with Vulkan or OpenCL instead of standardising on CUDA. Everyone must have known how it would end.
Re: What every developer should know about GPU computing
#126> We can understand this with the help of Little’s law from queuing theory. It states that the average number of requests in the system (Qd for queue depth) is equal to the average arrival rate of requests (throughput T) multiplied by the average amount of time to serve a request (latency L). First off, this is obviously false. If you can serve 9req/s and you're getting 10req/s the size of the queue depth is growing…
Re: What every developer should know about GPU computing
#127> We can understand this with the help of Little’s law from queuing theory. It states that the average number of requests in the system (Qd for queue depth) is equal to the average arrival rate of requests (throughput T) multiplied by the average amount of time to serve a request (latency L). First off, this is obviously false. If you can serve 9req/s and you're getting 10req/s the size of the queue depth is growing…
I haven’t formally studied any queuing theory, but I think:
1. The rule assumes you have enough processing power to service the average load (otherwise it fails catastrophically like you mentioned)
2. The rule is trying to model the fluctuations in the pending load (which might determine wait time or whatever else).
Re: What every developer should know about GPU computing
#128Earlier quoted context omitted.
I don't understand why every other submission on the internet has to have at least one "stopped reading at X" comment relating to it. It adds absolutely nothing.
It provides feedback to the author, and it also has generated quite a significant discussion here about the topic. It could have been worded more constructively sure, but given that the entire point of this website is to have discussions about the material posted, I think it’s added quite a bit.
Re: What every developer should know about GPU computing
#129>Most programmers have an intimate understanding of CPUs maybe this article is brilliant, but when the first line is something so blatantly untrue it really makes it hard to take the rest seriously
I learned basic facts about CPU architectures at university, know in a very basic way the landscape of things and occasionaly stumble upon updates to my limited knowledge... but by no means would I say that, rather like "a basic understanding of how CPUs work / are designed / are to be used" (?)
If I were proficient in assembler, maybe I'd claim to have an "intimate understanding" of how to use CPUs at a low level (still sounds a bit braggy)
It still is not the same though as being an expert in CPU/GPU design.
So yeah I agree.
Article is interesting though, esp. the diagram!
Re: What every developer should know about GPU computing
#130Earlier quoted context omitted.
At this point the massive investment in software is what drives this, hardware differences may no longer be dominant but the only way to unseat NV at this point is drop in replacements and/or drop in replacement libraries. And that's getting there. Which is good because GPUs are too expensive and have too little memory, some competition might help move things along rather than to give NV more time to milk their preci…
I really wish the ML researchers would have stayed with Vulkan or OpenCL instead of standardising on CUDA. Everyone must have known how it would end.