Is there a reason they're mixing non-blocking and blocking assignment operators in sequential always blocks here?
Tiny GPU: A minimal GPU implementation in Verilog
51–60 of 79 posts
Re: Tiny GPU: A minimal GPU implementation in Verilog
#52I did something similar many years ago in VHDL. There was a site called opencores for different open source HDL projects. I wonder if is there any good HPC level large scale distributed HDL simulator exists today? It makes sense to utilize modern GPUs for making RTL level simulations.
Was? https://opencores.org/projects?language=VHDL. Or is that not the same but similar?
Re: Tiny GPU: A minimal GPU implementation in Verilog
#53Because the GPU market is so competitive, low-level technical details for all modern architectures remain proprietary. Except for Intel, which publishes lots of technical documentation on their GPUs: https://kiwitree.net/~lina/intel-gfx-docs/prm/ You can also find the i810/815 manuals elsewhere online, but except for an odd gap between that and the 965 (i.e. missing the 855/910/915/945) for some reason, they've been…
Includes full ISA documentation of their current and past offerings, though look like they tend to be aimed at implementors rather than "high level" description for interested enthusiasts.
Re: Tiny GPU: A minimal GPU implementation in Verilog
#54Re: Tiny GPU: A minimal GPU implementation in Verilog
#55Earlier quoted context omitted.
If it processes graphics, I think it counts, even if it has no output. There's still use for GPUs even if they're not outputting anything. My place of work has around 75 workstations with mid-tier Quadros, but they only have mini-DisplayPort and my employer only springs for HDMI cables, so they're all hooked into the onboard graphics. The cards still accelerate our software, they still process graphics, they just don…
> If it processes graphics, I think it counts, even if it has no output. That's not a good definition, since a CPU or a DSP would count as a GPU. Both have been used for such purpose in the past. > There's still use for GPUs even if they're not outputting anything. The issue is not their existence, it about calling them GPUs when they have no graphics functionality.
The "G" in GPU doesn't imply that they have to render directly to a screen. In fact, professional graphics cards are commonly used for bulk rendering for animating videos.
Datacenter GPUs are mostly used for AI these days, but they can nevertheless do graphics work very well, and if they are used for generative AI or if their built-in super sampling capability is used, the distinction becomes rather blurry.
Re: Tiny GPU: A minimal GPU implementation in Verilog
#56Earlier quoted context omitted.
If it looks like a duck and it walks like a duck, why is it not a duck? If you are using a DSP to process graphics, then at least in the context of your system it has become your graphics processor. Plenty of GPUs don't have (or aren't used for their) display output. It's a GPU because of what it does: graphics processing. Not because of what connectivity it has.
But it doesn't do graphics, so it shouldn't be called GPU. That's the whole point of this thread.
Re: Tiny GPU: A minimal GPU implementation in Verilog
#57Really awesome project. I want to get into FPGAs, but honestly it's even hard to grasp where to start and the whole field feels very intimidating. My eventual goal would be to create acceleration card for LLMs (completely arbitrary), so a lot of same bits and pieces as in this project, probably except for memory offloading part to load bigger models.
1. https://learn.saylor.org/course/CS301
Re: Tiny GPU: A minimal GPU implementation in Verilog
#58Earlier quoted context omitted.
If it looks like a duck and it walks like a duck, why is it not a duck? If you are using a DSP to process graphics, then at least in the context of your system it has become your graphics processor. Plenty of GPUs don't have (or aren't used for their) display output. It's a GPU because of what it does: graphics processing. Not because of what connectivity it has.
But it doesn't do graphics, so it shouldn't be called GPU. That's the whole point of this thread.
Like someone else mentioned, laptops often have discrete graphics cards that are not wired to display hardware at all, needing to shuffle framebuffers through the onboard graphics when something needs to make its way to a screen.
Re: Tiny GPU: A minimal GPU implementation in Verilog
#59Earlier quoted context omitted.
But it doesn't do graphics, so it shouldn't be called GPU. That's the whole point of this thread.
It does do graphics. Calculating graphics is different from handling display output. You can separate the two. Like someone else mentioned, laptops often have discrete graphics cards that are not wired to display hardware at all, needing to shuffle framebuffers through the onboard graphics when something needs to make its way to a screen.
Those are GPUs even if they aren't connected to a display because they still have graphics components like ROPs, TMUs and whatnot.
Re: Tiny GPU: A minimal GPU implementation in Verilog
#60Really awesome project. I want to get into FPGAs, but honestly it's even hard to grasp where to start and the whole field feels very intimidating. My eventual goal would be to create acceleration card for LLMs (completely arbitrary), so a lot of same bits and pieces as in this project, probably except for memory offloading part to load bigger models.
I'm in the same boat. Here's my plan. 1. Read Harris, Harris → Digital Design and Computer Architecture. (2022). Elsevier. https://doi.org/10.1016/c2019-0-00213-0 2. Follow the author's RVFpga course to build an actual RISC-V CPU on an FPGA → https://www.youtube.com/watch?v=ePv3xD3ZmnY
I might add these:
- Computer Architecture, Fifth Edition: A Quantitative Approach - https://dl.acm.org/doi/book/10.5555/1999263
- Computer Organization and Design RISC-V Edition: The Hardware Software Interface - https://dl.acm.org/doi/10.5555/3153875
both by Patterson and Hennessy
Edit: And if you want to get into CPU design and can get a grip on "Advanced Computer Architecture: Parallelism, Scalability, Programmability" by Kai Hwang, then i'd recommend that too. It's super old and probably some things are made differently in newer CPUs, but it's exceptionally good to learn the fundamentals. Very well written. But I think it's hard to find a good (physical) copy.