I'm brand new to FPGAs and I've been working through a few online courses the past 3-weeks. I picked up an old Altera Cyclone III board and have been learning Verilog and VHDL using this board. My plan is to upgrade to a more recent board here shortly, but I'm wondering if there a dev boards that are PCI based for desktop systems... vs only being available for servers.
I'm trying to figure out if a software developer like myself can take advantage of FPGAs for acceleration. Similar to what people do with GPU acceleration, but with an FPGA. To do that, I suspect I would need an PCI based FPGA board, which I do find. But only the FPGA loading is done over PCI. I need to be able to talk to the FPGA from code. I have seen a couple of examples with Xilinx and C++ where they go in and change the C++ code from using the standard library to using Xilinx custom acceleration library for common things like printf, and gain 30x acceleration. That is pretty fascinating. But I cannot find a card or board that supports this. It seems it's only available on $30K servers with $5K FPGA boards. Is there something available for the desktop?
Is this sort of thing only available through server cards, cloud services, etc. Does anything exist where I could use an FPGA board to accelerate my data access, complicated algorithms, AI algorithms, compilation, etc. but on a local machine? I do some compiler development and having an FPGA to hand off some of the work sounds really interesting. I was thinking about a FPGA base parser for example... assuming I could build something like that on an FPGA.
It doesn't look like anything exists like this, but I suspect with the tremendous volume of options out there, I might just be missing something. If there are cards available where you can use an FPGA card and interact with it through C# or C++ on a desktop machine, that is what I think I need. It could be a standalone/external card, but I suspect the interface between the PC and card would be slower than the acceleration advantage, but I don't really know. Maybe I need to take a look at just using a GPUs?
MESA has some FPGA PCI cards that are similar. But you cannot interface them from the PC side, only upload your bit stream to the FPGA. If there are cards where you can interface with software, that is what I think I need. I see that Xilinx is doing this sort of thing.
Just looking for some suggestions... or to know if this is not possible.