Earlier quoted context omitted.
You might want to pick a more realistic goal! An FPGA capable of accelerating LLMs is going to cost at least tens of thousands, probably hundreds.
Depends heavily on what system it is supposed to provide acceleration for. If it is a MCU based on a simple ARM Cortex M0, M0+, M3 or RISC-V RV3I, then you could use an iCE40 or similar FPGA to provide a big acceleration by just using the DSPs and the big SPRAM. Basically add the custom compute operations and space that doesn't exist in the MCU, operations that would take several, many instructions to do in SW. Also,…
Tiny GPU: A minimal GPU implementation in Verilog
21–30 of 79 posts
Re: Tiny GPU: A minimal GPU implementation in Verilog
#22Earlier quoted context omitted.
Depends heavily on what system it is supposed to provide acceleration for. If it is a MCU based on a simple ARM Cortex M0, M0+, M3 or RISC-V RV3I, then you could use an iCE40 or similar FPGA to provide a big acceleration by just using the DSPs and the big SPRAM. Basically add the custom compute operations and space that doesn't exist in the MCU, operations that would take several, many instructions to do in SW. Also,…
Or use one of the combined CPU+FPGA chips like the AMD/Xilinx Zynq, there are plenty of low cost dev boards for them.
Re: Tiny GPU: A minimal GPU implementation in Verilog
#23Earlier quoted context omitted.
I think the establishing term is AIA, AI Accelerator.
That would ignore applications like crypto mining, which I'm guessing is still a biggie. What is it exactly that sets these units apart from CPUs? Something to do with the parallel nature of the hardware?
Also they tend to lack interrupt mechanisms and virtualization, at least at the programmer API level (usually NVIDIA systems have these but managed by the proprietary top level scheduler).
Re: Tiny GPU: A minimal GPU implementation in Verilog
#24Re: Tiny GPU: A minimal GPU implementation in Verilog
#25Here's another: https://github.com/jbush001/NyuziProcessor
Re: Tiny GPU: A minimal GPU implementation in Verilog
#26Yet another "GPU" providing no graphics functionality. IMO theses should be called something else.
Re: Tiny GPU: A minimal GPU implementation in Verilog
#27Yet another "GPU" providing no graphics functionality. IMO theses should be called something else.
The first question is why is there a divide between CPUs and GPUs in the first place. Yes, the gap is closing and both categories are adding features of one another but there still is a significant divide. IMO it has to do with Amdahl's law [0]. In that sense CPUs should be called Latency-Optimizing-Processors (LOPs) and GPUs should be called Throughput-Optimizing-Processors (TOPs). More specifically [1] we could als…
But as you observe, we are stuck in a local optimum where GPUs are optimized for throughput and CPUs for latency sensitive work.
Re: Tiny GPU: A minimal GPU implementation in Verilog
#28Yet another "GPU" providing no graphics functionality. IMO theses should be called something else.
Tensors are just n-dimensional arrays
Then you can run software (firmware) on top of the TPU to make it behave like a GPU.
Re: Tiny GPU: A minimal GPU implementation in Verilog
#29Re: Tiny GPU: A minimal GPU implementation in Verilog
#30> In real GPUs, individual threads can branch to different PCs, causing branch divergence where a group of threads threads initially being processed together has to split out into separate execution.
Whoops. Maybe this person should try programming for a GPU before attempting to build one out of silicon.
Not to mention the whole SIMD that... isn't.
(This is the same person who stapled together other people's circuits to blink an LED and claimed to have built a CPU)