这也可以吗

在一个.cu文件里的__device__函数里,居然可以直接调用string.h里的memset函数,还有memcpy和memcmp。
我之前都以为不能直接调用的呀?
到底能不能呢

device端代码中可以使用memset(),具体用法和注意事项请参阅programming guide。

另外需要计算能力2.0或更高的GPU.

看到文档了,可以调用memset和memcpy。
但是不应该是string.h里的memset和memcpy呀,为什么我的IDE会把这两个函数定位到string.h里面去呢?
还有.cu文件开头的include<stdio.h>这个头文件和CPU端的stdio.h是一样的吗?

楼主您好,的确和您的host端的C库无关的。

VS的IDE自动定位错误,请您原谅它。

感谢来访。

[

如果和c库无关,是谁实现的?

请不要断章取义。

我只是说和"host端的C库“无关。

这个是CUDA C提供的。感谢来访。

是指memset和memcpy这两个函数由cuda C 的库实现吗?
那在核函数中不能调用C库的东西吗?

test_c_lib.cu(10): error: calling a host function(“printf”) from a global function(“VecAdd”) is not allowed
不知道怎么提交图片,原来确实不能调用。

楼主您需要编译时指定至少compute_20,sm_20的计算能力的,
而不是CUDA不能用printf.

建议以后少下“定义式语句”,例如CUDA不能"******"之类的。

哈哈,你认错人了,上面的不是楼主,我才是呢

好好看官方文档吧

化***为动力!