8 ms·
FPGAs for numerical mathematics using CLaSH
- mortenlarsen 11y agoPresentation slides: https://raw.githubusercontent.com/Gladdy/numerical-fpga-thesis/master/talk/talk.pdf https://raw.githubusercontent.com/Gladdy/numerical-fpga-thes...
- leni536 11y agoReally nice. As a physicist FPGAs looks really tempting to speed up calculations, it has to compete with GPUs and the toolsets around them though. CLaSH really looks promising, I don't thing that too many physicist would touch VHDL or Verilog.
- mafuyu 11y agoI don't know how practical that is; FPGAs are very efficient, but they won't come close to the raw computational power of a GPU. Many moons ago, the dream was to have a configurable FPGA in every computer, but GPUs ended up winning out due to games, among other reasons. 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/ http://www.adapteva.com/ [1]: http://www.theamphour.com/254-an-interview-with-andreas-olofsson-adatevas-ampliative-abacus/ http://www.theamphour.com/254-an-interview-with-andreas-olof...
- scott_wilson46 11y agoI think this is a common misconception in the debate about GPU's vs FPGAs. If you take a top of the range GPU you get 2.7 Teraflops of performance (according to the GTP Titan review I just looked at: http://www.techspot.com/review/977-nvidia-geforce-gtx-titan-x/ http://www.techspot.com/review/977-nvidia-geforce-gtx-titan-...). Comparing this to a top of the range Stratix 10 FPGA, you get 3.2 Teraflops (https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/pt/stratix-10-product-table.pdf https://www.altera.com/content/dam/altera-www/global/en_US/p...) so there is really not much in it.
- scott_wilson46 11y agoIn fact some of the Stratix 10 FPGAs have over 9 Teraflops...
- sklogic 11y agoWell, the top of the range FPGAs are priced two orders of magnitude above the top of the range GPUs, so in terms of Tflop/$ GPUs will win in many cases.
- ObviousScience 11y agoGiven that most projects, the power costs are much higher than the upfront equipment costs and that the dominating factor on computational density and interconnect speeds is our thermal budget, I'd think it's really a question of Tflop/watt.
- tlb 11y agoThe cost of each watt of grid power for 2 years is about $1. A high-end GPU costs $3000 and burns 200W, so power costs $200 over 2 years, or 6% of the total cost. I can't think of any high-performance computing semiconductors costing less than $1 / watt. What systems can you point to where the power cost over the time-to-obsolescence exceeds capital cost? Besides Bitcoin mining.
- ObviousScience 11y agoYou're correct, I had receive wrong information and never really thought it through in regards to high end systems. 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. (:
- sklogic 11y agoComputational power is not always the most important thing. And GPUs computational power is severely limited to a very specific class of problems. 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.
- TheLoneWolfling 11y agoDon't forget that FPGAs are good at different things than 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.
- gh02t 11y agoSo on a tangent, does anybody have a nice article on numerical methods with Haskell? I've used Haskell for other things, but I've never endeavored to try doing any sort of heavy number crunching because it seemed a bit weird. 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.
- carterschonwald 11y agoI've been slowly working on a nice library in that space for the past few years. It's not quite there yet, but I'll be spending a bit of time this Summer getting it into shape
- gh02t 11y agoCool. I feel like it's an area that's kind of under-served (or that I'm ignorant of). Haskell has a much more mathy flavor than a lot of the more traditional scientific languages and it seems to me like it should be really great for implementing algorithms based on their mathematical description, but I haven't really figured out the details yet. I've used Haskell in other projects, but this application eludes me.