首页 文章

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

提问于
浏览
4

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

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

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

  • 该软件最终将在具有GPU或不具有GPU的服务器中执行,并且必须执行并传递单元测试 .

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

在以下链接中:

GPU Emulator for CUDA programming without the hardware

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

1 回答

  • 4

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

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

    但是,您可以使用特殊软件模拟执行,例如用于NVIDIA GPU的NVEmulate和用于AMD的OpenCL Emulator-Debugger .

    一个相关的问题:GPU Emulator for CUDA programming without the hardware,其中接受的答案推荐gpuocelot用于CUDA仿真 .

相关问题