是否可以为 CUDA/OpenCL 单元测试目的模拟 GPU?

Is it possible to emulate a GPU for CUDA/OpenCL unit testing purposes?

我想开发一个算法库,该算法可以在 CPU 或 GPU 上 运行。 GPU可以是Nvidia(那么算法会用CUDA)也可以不是(那么算法会用OpenCL)。

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

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

在下面link:

GPU Emulator for CUDA programming without the hardware

他们展示了一个解决方案,但仅适用于 CUDA,不适用于 OpenCL,而且他们提出的软件 "GPUOcelot" 不再积极维护。

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

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

但是您可以使用特殊软件模拟执行,例如 NVEmulate for NVIDIA GPUs and OpenCL Emulator-Debugger for AMD。

相关问题:GPU Emulator for CUDA programming without the hardware, where the accepted answer recommends gpuocelot CUDA 仿真。