Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行openCL的cuda包装器_Cuda_Opencl_Wrapper - Fatal编程技术网

执行openCL的cuda包装器

执行openCL的cuda包装器,cuda,opencl,wrapper,Cuda,Opencl,Wrapper,我参与了一个项目,在那里我必须做gpu编程,我的一个限制是在nvidia设备上做它(因此在CUDA中)。 但我还没有使用配备nvidia gpu的设备 因此,我想知道是否有任何包装,存在,可以让我写一个CUDA代码,但作为openCL代码执行,使其在amd的gpu上工作 ps:gpuocelot可以很好地适应,如果我不必在windows系统上做的话。你可以看看。根据其网站: Ocelot目前允许CUDA程序在NVIDIA GPU、AMD GPU和x86 CPU上全速执行,无需重新编译 “CUDA

我参与了一个项目,在那里我必须做gpu编程,我的一个限制是在nvidia设备上做它(因此在CUDA中)。 但我还没有使用配备nvidia gpu的设备


因此,我想知道是否有任何包装,存在,可以让我写一个CUDA代码,但作为openCL代码执行,使其在amd的gpu上工作

ps:gpuocelot可以很好地适应,如果我不必在windows系统上做的话。

你可以看看。根据其网站:

Ocelot目前允许CUDA程序在NVIDIA GPU、AMD GPU和x86 CPU上全速执行,无需重新编译

“CUDA”约束是实际约束吗?因为NVIDIA硬件上的GPU编程不一定意味着CUDA。您还有其他可能的解决方案,例如:

  • 您已经提到过,使用起来非常复杂和麻烦,但这会打开很多可能的后端
  • 这让你可以
  • 使用PGI编译器,该编译器允许(AFAIK)以目标为目标

如果是我并且代码允许,我会尝试使用推力进行开发。但这取决于你。

我知道问题很清楚,答案也很清楚。但是,如果您正在启动一个新项目,那么直接在OpenCL中执行并支持所有平台而不进行仿真,这不是更符合逻辑吗?如果您使用关于设备特性的本地CL信息数据来设计算法,您可能会获得更好的速度。在AWS云上租一个“我的限制之一是在nvidia设备上(因此在CUDA中)这样做”是一个错误的假设——nvidia设备支持OpenCL 1.2!“所以我想知道是否有任何包装器可以让我编写CUDA代码,但作为openCL代码执行,以使其在amd gpu上工作?”amd(和hipify脚本)可能很感兴趣。我看过gpuocelot,但它似乎只适用于linux。windows环境还有其他选项吗?在当前的NVIDIA产品上使用OpenCL可能会导致CUDA对应实现的性能不佳。NVIDIA当然在努力推动CUDA的性能,而OpenCL的支持已经落后多年。