Programming on Parallel Machines: GPU, Multicore, Clusters and More
heather.cs.ucdavis.edu
heather.cs.ucdavis.edu
A lot of interesting research can be done with FPGA+CPU in parallel computing.
Essencially taking the inner-most loop (that computed if a neuron would spike or not) and implementing it as a kernel in OpenCL.
Step 1 was showing increase from single-thread C++ to OpenCL kernel. Increase was 6-10x using a i7-2600k and running on all logical cores. Step 2 was implementing in FPGA. This means pre-shipping data to the FPGA while CPU calculated other things, and beginning computation on the FPGA, and receiving responses back on CPU. Performance was 75x compared to single-thread C++ code.
Important notes that I didn't expect: Bottleneck was memory transfer bandwidth across PCI-E. Power consumption was less on FPGA compared to CPU. Development time was significantly lessened. Altering the design is simple when going from OpenCL > FPGA, compared to Verilog > FPGA
What kind tool do you use for OpenGL to FPGA?
This is why Nvidia are working on NVLink to replace PCI-E.
Sincerely, Thank you.
If the question is ignorant, I plead guilty.
So, it wouldn't work that well :-)
Or to put it another way, I think that over the long run, such features are more important than the license because there are non-technical work arounds for the license that don't require duplicated effort.