|
|
|
|
|
by kbeckmann
3873 days ago
|
|
How come? I guess it would be quite fun if you could write your algorithm with well-defined input/output in a high level language and generate HDL out of it. Let's say you just want to crunch numbers. Today you can use CUDA for that task, but what if you just use a subset of the CUDA features, maybe the compiler might use the gates in the FPGA more efficiently compared with the already defined GPU. |
|
The compilation from the imperative world to digital logic is typically pretty opaque. What ends up happening is that the compiler ends up generating shitty hardware, and either you do or don't have a mental model of the hardware you actually want. If you have the mental model, you end up jiggling the C/CUDA compiler into generating the logic you want in lieu of just being able to tell it up front. If you don't have a mental model, making decent hardware is going to suck, and you're probably better off learning an HDL anyway.
A high level functional approach that still recognizes that you're writing hardware is a nice abstraction.