OpenCL-相同的代码,在Apple+;Win XP上的Xcode不正确+;MSVS2008+;英伟达CUDA 5
我在配备Nvidia GTX580的MacPro上运行相同的OpenCL代码,运行以下任一操作:OpenCL-相同的代码,在Apple+;Win XP上的Xcode不正确+;MSVS2008+;英伟达CUDA 5,opencl,nvidia,Opencl,Nvidia,我在配备Nvidia GTX580的MacPro上运行相同的OpenCL代码,运行以下任一操作: 带Xcode 4.6的OS X 10.8.2 WindowsXP 32位采用Visual C++ 2008企业和NVIDIA CUDA工具包5 但是我在WinXP中得到了错误的结果 要定义使用的工作项数量,我指定工作组大小(192)、工作组数量(256)并设置用作工作组大小x工作组(192 x 256=49152)的工作项的全局数量 当我在苹果平台上运行时,我的所有结果都是正确的,但是当我在W
- 带Xcode 4.6的OS X 10.8.2 WindowsXP 32位采用Visual C++ 2008企业和NVIDIA CUDA工具包5
是否有任何原因,如在英伟达图书馆的32位寻址限制或积极优化?在苹果OpenCL库中< /P> < P>,对于数字数据类型,全局只读存储器被初始化为0,在Windows Nvidia库中,全局写内存没有初始化。
因此,当全局内存中的计数器递增时,起始值未定义。当怀疑这是一个快速而愚蠢的初始化循环被放在内核的开头时,这当然会导致稍后执行的工作组将先前执行的结果归零,从而观察到结果的减少与每个计算单元上执行的内核数量成比例。GPGPU技术并不完全是一种稳定性模型。如果你真的找不到问题,那么假设一个OpenCL运行时错误也不会太牵强,你尝试过不同的运行时版本吗?我还没有尝试过其他运行时,我会尝试使用CUDA 4驱动程序。我在win XP 32位上尝试过CUDA 4.1工具包,在windows 7 64位上尝试过CUDA 5工具包,我也遇到了同样的问题。