FPGAs for numerical mathematics using CLaSH
github.com
github.com
My standard test is implementing GMRES. I gave it some thought once and I couldn't come up with a non-awkward way to do it in Haskell. Mostly I get caught up on how to do the Arnoldi process as it requires lots of manipulation of submatrices. I couldn't ever seem to find a library that was nice for matrix manipulation. What do people mostly use? Also, what's the idiomatic way to do nitty-gritty matrix operations? Entrywise manipulation of a matrix doesn't seem very Haskell-ish to me, but it's not something you can really avoid in this application.
Adapteva [0] is a startup doing cool things with multi core parallel coprocessors. From their interview on The Amp Hour [1], it seems like their target niche is parallelisable loads that aren't IO constrained, such as computer vision and video processing. Chunks of a video frame don't need to talk to each other.
[0]: http://www.adapteva.com/ [1]: http://www.theamphour.com/254-an-interview-with-andreas-olof...
What systems can you point to where the power cost over the time-to-obsolescence exceeds capital cost? Besides Bitcoin mining.
Just about the only systems where it makes sense to talk about the power budget being relevant are where you're going in on base commodity systems and talking about a 3-4 year cycle time. (And maybe weird cases where we're having to meet power budgets of existing deployments.)
I was comparing situations that had already made a FLOPS/dollar decision because of constraints on other resources (cheap hardware, lots of it, TONS of storage, high sync latency), and so I guess both falls outside traditional HPC and is a secondary concern.
Thanks for the correction and have an upvote. (:
But, yes, I'm very enthusiastic about the Altera acquisition by Intel, it may drive prices down and we'll probably see FPGA-enhanced Xeons soon.
Furthermore, the verification of the designs is simplified a lot by checking directly in Haskell over generating VHDL testbenches and then running an additional simulator tool.
Lastly, I hope that with the recent acquisition of Altera by Intel, some of the other issues you mentioned (mainly floating point performance) additionally with some tooling issues will be addressed as well.
In physics it's important, for example, to implement very low latency event triggers (at least in the high energy physics), and FPGAs are a bliss here.
FPGAs are great for a wide class of the memory-throughput-bound problems as well, those that suck on GPUs badly (even on those with a proper local memory). There are dozens to hundreds of independent block RAMs on FPGAs, which allows a degree of parallelisation which is never possible with GPUs.
GPUs work well for massively parallel problems. But FPGAs work well for mostly-serial problems, and problems that have short parallel sections interlaced with serial sections.