是否可以模拟GPU以进行CUDA / OpenCL单元测试?

时间:2016-11-07 09:31:50

标签: unit-testing cuda opencl gpu emulation

我想开发一个可以在CPU或GPU上运行的算法库。 GPU可以是Nvidia(然后算法将使用CUDA)或不(那么算法将使用OpenCL)。

我想在这个项目中模拟GPU,因为可能:

  • 我将使用不同的计算机来开发软件,其中一些没有GPU。

  • 该软件最终将在可以拥有GPU的服务器中执行,并且必须执行并通过单元测试。

有没有办法模拟GPU进行单元测试?

在以下链接中:

GPU Emulator for CUDA programming without the hardware

他们展示了一个解决方案,但仅针对CUDA,而不是针对OpenCL,他们建议的软件“GPUOcelot”不再被主动维护。

1 个答案:

答案 0 :(得分:4)

这取决于你在仿真上的意思。您无法模拟GPU的速度。

GPU在架构上与CPU非常不同,有很多工作线程(1000s,10000s,......),这就是我们使用它的原因。即使并行化代码,CPU也只能有几个线程。他们也有不同的指令集。

然而,您可以使用特殊软件模拟执行,例如NVIDIA GPU为NVEmulate,AMD为OpenCL Emulator-Debugger

相关问题:GPU Emulator for CUDA programming without the hardware,其中接受的答案建议使用gpuocelot进行CUDA仿真。