标签: c gpgpu
有没有人有为CPU和GPU维护单个代码库的经验? 我想创建一个应用程序,在可能的情况下将使用GPU进行一些持久的计算,但如果目标机器上没有兼容的GPU,它将只使用常规CPU版本。如果我可以使用条件编译指令编写一部分代码来编写CPU版本和GPU版本,那将非常有用。当然会有一些CPU和GPU不同的部分,但我想将算法的本质保留在一个地方。它可能吗?
答案 0 :(得分:1)
OpenCL是一种基于C语言。存在可在GPU(来自NVidia和AMD)和CPU(来自Intel和AMD)上运行的OpenCL平台。
虽然可以在GPU和CPU上执行相同的OpenCL代码,但它确实需要针对目标设备进行优化。需要为不同的GPU和CPU编写不同的代码以获得最佳性能。但是,CPU OpenCL平台可以作为GPU优化代码的低性能回退。
如果您乐于编写根据目标设备(CPU或GPU)执行的条件指令,那么这可以帮助在多个设备上执行OpenCL代码。