Live data from Hacker News

Turning .NET assemblies into FPGA hardware

github.com

41–44 of 44 posts

Re: Turning .NET assemblies into FPGA hardware

#41
post #4

Earlier quoted context omitted.

Please take a look at clash[1]. You can design digital circuits using Haskell and all the fancy language features Haskell has. It doesn't have a story for interop between the software world though. I love using it! [1] https://clash-lang.org/

i've heard of it before. i'll be honest: i don't much like haskell. for example, this makes me crazy (haha): mmult mA mB = result where mBT = transpose mB dot a b = sum $ zipWith (*) a b result = map (\ar -> dot ar mBT) mA either way, this is along the right lines. however, what FPGAs can you target? any xilinx chips? it's really gonna take xilinx or altera to innovate in this space, but that is unlikely any time soo…

> it's really gonna take xilinx or altera to innovate in this space, but that is unlikely any time soon.

I think people already use Clash/Haskell to write HDL.

Re: Turning .NET assemblies into FPGA hardware

#42
post #13

I love playing with fpgas, but the compile time and size limitations are always horrendous or simply not tenable for most applications. This library narrows that down to be even worse [0]. On most of alteras chips you'd be hard pressed to fit a few of their own filter libraries, let alone your own code. Honestly I'm not sure what you would use a tool like this for. If you want asic development, you will likely need t…

The approach here is to use FPGAs as compute accelerators, much like GPGPUs, and in somewhat similar use-cases. I.e. if you have an embarrassingly parallel compute-bound algorithm then it might make sense to offload it to FPGAs to gain performance and power efficiency. Keep in mind that the target audience is not hardware engineers but .NET software developers. If you know what Altera libraries are then you're not th…

> in somewhat similar use-cases. I.e. if you have an embarrassingly parallel compute-bound algorithm then it might make sense to offload it to FPGAs to gain performance and power efficiency.

Also concurrency! GPU is SIMD; FPGA need not be.

Re: Turning .NET assemblies into FPGA hardware

#43
post #6
post #4

Earlier quoted context omitted.

i've heard of it before. i'll be honest: i don't much like haskell. for example, this makes me crazy (haha): mmult mA mB = result where mBT = transpose mB dot a b = sum $ zipWith (*) a b result = map (\ar -> dot ar mBT) mA either way, this is along the right lines. however, what FPGAs can you target? any xilinx chips? it's really gonna take xilinx or altera to innovate in this space, but that is unlikely any time soo…

Xilinx is all in on high level synthesis. Although they are focusing on C++ and python instead of functional languages.

I'm kind of surprised. I get that Haskell/ML may not be the best-known, but even an original functional language is better than spamming pragmas on for loops

Re: Turning .NET assemblies into FPGA hardware

#44
post #42

Earlier quoted context omitted.

The approach here is to use FPGAs as compute accelerators, much like GPGPUs, and in somewhat similar use-cases. I.e. if you have an embarrassingly parallel compute-bound algorithm then it might make sense to offload it to FPGAs to gain performance and power efficiency. Keep in mind that the target audience is not hardware engineers but .NET software developers. If you know what Altera libraries are then you're not th…

> in somewhat similar use-cases. I.e. if you have an embarrassingly parallel compute-bound algorithm then it might make sense to offload it to FPGAs to gain performance and power efficiency. Also concurrency! GPU is SIMD; FPGA need not be.

Yes, FPGA "threads" much like CPU threads can contain complex logic, and different from each other.
Post reply on HN