我有两台计算机,一台是Raden R9 290x,另一台是Raden R7 250。以下讨论仅关注AMD显卡。在两台机器上安装相同的驱动程序。我写了OpenCL内核,将其编译成二进制文件并使用clCreateProgramWithBinary。但我遇到了以下挑战:
这两个设备的编译二进制文件有所不同:R7二进制文件的重量约为500KB,R9的颜色为1.5MB。
在编译它的设备上使用二进制文件时没有问题,一切都会立即发生。但是如果我尝试在R9运行R7的二进制文件,那么clBuildProgram执行了很长时间(~1分钟),而相反(从R9加载到R7的二进制文件)clBuildProgram - 导致访问冲突。
我需要获得将在所有AMD显卡上运行的二进制文件,支持OpenCL。如何编译它可以在所有设备上正常工作的OpenCL内核?