谁能告诉我用于将__constant复制到设备并返回到主机的OpenCl版本的cudaMemcpyToSymbol?
或通常的clenquewritebuffer(...)会做这件事吗?
在论坛中找不到太多帮助。实际上,几行演示就足够了。
另外,我是否应该期待opencl中使用常量缓存进行与CUDA相同的优化?
谢谢
发布于 2012-09-07 07:22:27
我见过人们使用cudaMemcpyToSymbol()在内核中设置常量,编译器可以在优化代码时利用这些常量。如果要在openCL中设置内存缓冲区来将这些常量传递给内核,那么编译器就不能使用它们来优化代码。
相反,我找到的解决方案是将cudaMemcpyToSymbol()替换为定义编译器符号的字符串的打印。编译器可以采用-D FOO=bar形式的定义,以便将符号FOO设置为值bar。
https://stackoverflow.com/questions/10413051
复制相似问题