Hacker News new | ask | show | jobs
by fayalalebrun 893 days ago
With FPGA, unlike with GPUs, you can achieve significant speedup of algorithms where parallelization is very difficult. This is thanks to a technique called pipelining, where you can perform several steps of a sequential computation at the same time.

An example of this is video decoding/encoding, which is commonly implemented by dedicated hardware.

2 comments

Aside from hardware prototyping, this seems to be the primary benefit of FPGAs. Much like if you assembled a system from glue logic, all of the operations in the pipeline and across the entire subsystem can happen simultaneously and often asynchronously with the only limitations being on clocked devices like flipflops and gated latches... and obviously whatever propagation delays the logic gates have (along with any protection from race conditions)

Admittedly, I haven't had the opportunity to play with FPGAs very often in my professional career, but the limited experience I've had with them showed me you need an entirely different mindset when programming in a hardware description language. With assembly everything is global, and similarly with FPGAs almost everything is asynchronous and parallel.

Deep feed forward NNs in inference mode seem to fit that definition ... any caveats?