OpenCL内核编译时间

OpenCL内核编译时间,opencl,fpga,hpc,Opencl,Fpga,Hpc,我是新来的。我试图编译一些OpenCl程序,但我注意到编译“Hello_World”程序也需要很长时间(几个小时)。所以我想知道为什么在FPGA上编译OpenCL内核需要很长时间(几个小时)?此外,当我们在FPGA上编译/执行OpenCl时,FPGA是否重新编程?将顺序代码转换为硬件是困难的,在某些情况下,编译器会尝试多种版本的东西,以找到硬件的最佳组合。这与为CPU和GPU编译不同,因此工作流是完全不同的(您在构建时编译内核,而不是在运行时)。最终的结果往往是硬件比更通用的计算设备(如CPU和

我是新来的。我试图编译一些OpenCl程序,但我注意到编译“Hello_World”程序也需要很长时间(几个小时)。所以我想知道为什么在FPGA上编译OpenCL内核需要很长时间(几个小时)?此外,当我们在FPGA上编译/执行OpenCl时,FPGA是否重新编程?

将顺序代码转换为硬件是困难的,在某些情况下,编译器会尝试多种版本的东西,以找到硬件的最佳组合。这与为CPU和GPU编译不同,因此工作流是完全不同的(您在构建时编译内核,而不是在运行时)。最终的结果往往是硬件比更通用的计算设备(如CPU和GPU)更快和/或使用更少的能量。有一些优秀的“OpenCL on Altera”视频解释了编译的工作原理,但总结是:编译到一个抽象机器,对于每个指令/步骤,删除该步骤不需要的抽象机器硬件,然后将所有剩余硬件合并到芯片上编程的硬件中。数据通过硬件“流动”,而不是像在CPU/GPU上那样存在于内存和寄存器中