calling a __host__ function("_wassert") from a __global__ function is not allowed错误

今天在调试代码的时候碰到一个错误:calling a __host__ function("_wassert") from a __global__ function is not allowed

经过查找后,发现问题出在VS2010默认的设置和本机不符。这个错误之前也处理过,现在把解决办法搬过来就好。

发现问题出在默认的设置里,计算能力是1.0,SM也是1.0,而这与本机的配置是不匹配的,修改方法只需:

      右键解决方案属性-》配置属性-》CUDA C/C++-》Device-》Code Generation,加入compute_20,sm_20,并且把下面的“从父级或项目属性默认设置继承”的勾选去掉,如下图所示。


calling a __host__ function("_wassert") from a __global__ function is not allowed错误_第1张图片


PS.这里的compute_20,sm_20是根据你自己机器显卡的计算能力来决定的,比如你的是2.0那就相应改成2.0,3.0,3.5依次类推。运算能力的查看可以参考我前面的帖子里介绍的”deviceQuery“http://blog.csdn.net/suda072605/article/details/20079099



你可能感兴趣的:(CUDA,vs,调试)