With all the fuss about GPUs, FPGAs seem to be less fashionable. I vaguely remember when they were going to be "the future" - that now seems to what GPU/CPU fusion will give us instead.
But I know nothing about FPGAs. Why don't we currently have CPUs that are reprogrammable (ie in laptops and destops)? Why don't we have (popular) FPGA based accelerators like we have graphics cards? Why aren't FPGAs used in graphics cards so that they can be customized for each game?
Some of my work involves numerical computing, working with GPUs/OpenCL/CUDA - yet I've never really considered FPGAs. Can they be configured to do matrix maths? Is the problem that they have limited storage?
FPGAs are general purpose logic gates that you can reprogram on the fly to do whatever you want them to do. I suppose you could configure them to do matrix maths, but they are not going to rival a dedicated GPU. Most hardware that utilizes a FPGA does so to simplify circut design, allow for circut redesign after a board has been built, and to cut down the number of external logic parts needed.
A CPU / GPU also has many orders of magnitude more logic gates than an FPGA has.
i think I understand that, but I don't understand why it won't rival a dedicated GPU. A GPU is very much restricted to be SIMD, while it seems to me that you could program an FPGA in response to the data - either many SIMD processors or a a few SIMD plus some logic that combines results, or ...
You would need to do on the fly reprogramming which is slow. The game designer would have to be intimately familiar w the fpga architecture and the game software complexity would increase ridiculously. Fpga density cannot rival dedicated gpu gate density for dedicated rasterizing, etc. I doubt performance would improve at all. Game computations are dominated by what gpus are built for.
I should also note that an FPGA will not perform as well as a custom ASIC (such as a GPU) in terms of speed, power, or price (in significantly large quantities). An FPGA can be a very good options for moderate to low volume applications. You are correct with your description of a potential FPGA application. I would say it could rival or exceed the performance of the GPU solution.
But I know nothing about FPGAs. Why don't we currently have CPUs that are reprogrammable (ie in laptops and destops)? Why don't we have (popular) FPGA based accelerators like we have graphics cards? Why aren't FPGAs used in graphics cards so that they can be customized for each game?
Some of my work involves numerical computing, working with GPUs/OpenCL/CUDA - yet I've never really considered FPGAs. Can they be configured to do matrix maths? Is the problem that they have limited storage?