我试图使用FPGA / GPU加速我的任何软件。我很难在这两者中做出选择。哪些区域适合FPGA以及哪些区域适合GPU(如图像处理适用于GPU)。此外,了解可以加速超过20倍的区域也是一件好事。我对GPU更感兴趣,因为与FPGA相比,它们便宜且编程更容易
答案 0 :(得分:0)
FPGA与GPU的主要区别在于,实际上今天GPGPU就像CPU一样。它可以轻松处理指针,函数和所有编程都很容易,因为CUDA / OpenCL可以使用一些C / C ++(例如OpenCL使用C99 +一些特殊函数)。
FPGA更加面向硬件。你可以定义门和整个逻辑,然后更快,并且有并行性,但它是通过不同的方式实现的。
FPGA在串行操作方面要好得多,因为它具有恒定的数据流(流加密,视频解码......)以及重编程不是随意的。您可以在框中关闭FPGA,只需连接输入,输出电缆和电源即可完成其工作。
GPGPU总是通过PCI Express连接并且发送程序很常见(游戏使用着色器组(GPU程序),它们正在快速切换),因此它更像是批处理设备。今天,GPGPU拥有大量的RAM和内核/多处理器,所以它真的更像CPU而不是FPGA。
有一个(可能更多,但我不记得更多)的事情,FPGA会更快。我不知道有什么需要(除了(de)加密),但它是不同的位操作的巨大ammounts。 GPU专门用于处理浮点数和整数(32位浮点和整数值),但是当你不得不做一些二进制魔法时它们很慢。只需使用FPGA架构,这个二进制魔术可以在一个标记中以并行方式完成。
在GPU中,你必须划分每个二进制操作(AND,OR,XOR,...),研究它们必须完成的顺序。
Tl,博士:如果您对FPGA没有特殊需求,请选择GPGPU。