是否可以为 CUDA/OpenCL 单元测试目的模拟 GPU?
Is it possible to emulate a GPU for CUDA/OpenCL unit testing purposes?
我想开发一个算法库,该算法可以在 CPU 或 GPU 上 运行。 GPU可以是Nvidia(那么算法会用CUDA)也可以不是(那么算法会用OpenCL)。
我想在此项目中模拟 GPU,因为可能:
我会用不同的电脑来开发软件,有些没有GPU。
软件最终会在有无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 仿真。
我想开发一个算法库,该算法可以在 CPU 或 GPU 上 运行。 GPU可以是Nvidia(那么算法会用CUDA)也可以不是(那么算法会用OpenCL)。
我想在此项目中模拟 GPU,因为可能:
我会用不同的电脑来开发软件,有些没有GPU。
软件最终会在有无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 仿真。