诡异的事情总在我身上发生。。。。。cudaMemcpyToSymbol相关

原来程序中一句如下

cudaMemcpyToSymbol(n_order, &n, sizeof(int)) ;
/// 其中__constant__ int n_order;
///其中 n 为 int型

n_order 可以绑定到常数内存,计算的结果是对的

按照书写规范应该是 cudaMemcpyToSymbol(“n_order”, &n, sizeof(int)) ; 即要带" "

诡异地方在于:
(1) 原来的写法 在2台电脑上均未报错 (cuda4.0), 难道强制转换类型了吗???
(2) 我更改成为 cudaMemcpyToSymbol(“n_order”, &n, sizeof(int)) ; 这种写法 却让原有程序 计算结果不对!

熬夜找bug~ 请版大指教! 谢谢~~

-------------------写于飘雪之夜

请立刻升级到最新版本,并立刻停止使用带有""的版本。

理由不能解释(因为手册也不解释)。

然后当您使用最新toolkit编译后,请报告问题是否消失。

现在的最新规范写法是,不要带引号,切记!

(这么冷的飘雪天,快点吃点火锅吧!)

LZ您好,您吧引号去掉应该就好了,正如横扫斑竹建议的那样。

具体官方建议信息,请查阅 CUDA Toolkit reference maunal 5.0里面的说明,引号方式容易引发问题,已经不推荐使用。

资料区有NV在线版文档的地址,您可以简单查看一下。

祝您火速搞定代码,在雪夜尽早进入温暖的梦乡。

谢谢 寒雪夜 晚上给予 温暖的回复!

我将按照您的建议去掉所有 引号, 即按照 cudaMemcpyToSymbol(n_order, &n, sizeof(int)) ; 这个形式。

有个身不由己的事情就是 没法升级5.0 主要原因项目原因实在折腾不起版本的,不然之前早就换5.0的了!
再次感谢版上雪中送炭!!!

那我以后4.0 版本还是去掉引号吧!

寒雪夜第二天 就变成 ice雪夜了!

谢谢ice版大!

昨夜睡得很安稳 因为有你们!!!

善哉,能为您解答问题是我和其他版主的责任和荣幸!

欢迎您常来CUDAZONE转转。

祝您代码无忧,夜夜安稳入眠~