求大牛帮忙。
在device端调用传入的指针数组,程序虽然编译通过,但是结果却没有。
希望有人能帮我解决一下,
LZ您好:
1:如果您需要使用二维数组,建议使用如下帖中2#给出的,带有维度信息的指针来实现。
http://cudazone.nvidia.cn/forum/forum.php?mod=viewthread&tid=6566
以及还有一些讨论的帖子,您可能需要翻一翻。
还可以参考:
http://cudazone.nvidia.cn/forum/forum.php?mod=viewthread&tid=6439
http://cudazone.nvidia.cn/forum/forum.php?mod=viewthread&tid=6248
以及贴图上个例子好了,一些老帖不好找到
[attach]3107[/attach]
2:如果您需要使用的是二维数组,那么不推荐您用指针数组手工维护,建议使用1:的方法。
3:程序编译通过,但无结果,这个需要您仔细调试,无法直接给出建议。
大致如上,祝您编码顺利~
添加了更多的参考帖子链接并上传了示例图片。
先谢谢版主这么快的回复,我慢慢吸收一下。
看到你的贴图,你是如何在device端用printf函数的?我是在linux下,调试不太方便,所以想在device端能输出便于差错,跟你加入的头文件有关嘛?
LZ您好,是fermi开始支持在kernel里面printf的(需要stdio.h头文件),具体可以看programming guide,注意编译的时候需要指定硬件架构的计算能力在2.0或者更高才可以。
祝您好运!
哦 看来我的不行了,不过二维数组的问题已经解决了,谢谢
这是我GPU的参数,您说的指数我应该是到2.1了吧,为什么还是不能在device端用printf呢,头文件我也加了。[attach]3116[/attach]
嗯嗯,恭喜LZ搞定问题。
以及如果有机会的话,建议升级新卡,fermi和kepler的很多新特性还是十分给力的。
祝您编码顺利~
LZ您好,您的卡是fermi核心的GTX 460 ,计算能力版本为2.1,是很不错的卡。
您的编译参数可能设置的不对,是按照1.x来编译生成代码的,此时编译会报错。
请您检查一下。
祝您好运!
我是在linux下编程的 那参数我应该怎么设置呢,如果不麻烦可以给我一个详细的步骤嘛?
添加-arch=sm_xx(看你卡型号)
LZ您好,大致是NVCC的参数里面arch什么的,你看下NVCC的手册即可。
我是用WIN +VS的,可以在项目的属性里面设置。
以及请熟悉linux的网友补充。
祝您好运~
补充一下10#,因为LZ前面给出了显卡信息,显卡为GTX 460,所以可以用sm_21.
修正笔误一处,祝LZ好运~
是在编译的时候加这个嘛
谢谢 我是刚刚接触CUDA做毕设,所以没有手册,,,是在编译时直接加选项 -arch sm_21嘛
您的环境是?用的IDE是?
手册是随CUDA Toolkit自带的,您可以找一下。
祝您好运~
linux ubuntu10.10 没有用IDE软件 直接nvcc的
万分感谢
不客气的,其他在线文档,可在本论坛资料下载区找到~
祝您晚安~