Fgpa + Julia?

I was pretty excited when I saw this tweet by
Keno https://twitter.com/KenoFischer/status/1154865907472183296?s=19 which is showing Julia on Fgpa.

And I also see papers like this where FGPA are used to do data work eg sorting

I have had this idea for a while “why only use GPU for data? Like what RpaidsAI is doing. Why not design a Data Processing Unit (DPU) from scratch for doing sorting and merging etc?”

Suppose such hardware exists looks like Julia can handle it right? Cos Julia works with FGPAs now and will for some Asic hardware in the future.

I have 0 knowledge about hardware compilers etc. I am just a pure mathematician. So keen to hear what people know about on this topic. I think I would at some point try to implement a FGPA data sorting hardware for fun though.


Julia and FPGAs is actually something I have been looking into a lot recently, since I focus a lot on hardware implementation of algorithms. While the results given by Keno in that tweet are nice, there is one major thing that makes it not as useful in the main stream: he had to define his own language to express the connections for building the FPGA logic, so essentially you are programming in a higher level HDL inside Julia.

I do have an idea I want to work on for how to actually map from the Julia language into FPGA logic, but it is not a trivial task to allow arbitrary (or even a subset of) Julia code to be synthesizable on FPGAs. Ideally I would like to allow mostly arbitrary Julia functions (probably just the simple arithmetic ones at first) to be easily remaped into logic, that way you can test your algorithm in Julia and then transition to hardware easier.

It took the GPU computing group a few years to get to where they are now though, so I would say it will probably take about that long (or possibly longer) before the FPGA support gets mature enough for what you are proposing.