首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调试java(jcuda)程序调用的内核

如何调试java(jcuda)程序调用的内核
EN

Stack Overflow用户
提问于 2015-04-17 14:56:18
回答 1查看 400关注 0票数 0

有任何方法来调试java (jcuda)调用的cuda函数吗?

我的程序启动这个异常:

代码语言:javascript
复制
Exception in thread "main" jcuda.CudaException:CUDA_ERROR_ILLEGAL_ADDRESS
at jcuda.driver.JCudaDriver.checkResult(JCudaDriver.java:288)
at jcuda.driver.JCudaDriver.cuCtxSynchronize(JCudaDriver.java:1852)
at CalculateurGPU.updateAndCompute(rGPUcalculator.java:129)
at Test.main(Test.java:90)

我有一个非常长的cuda代码,我无法在其中找到任何信息来帮助我找到错误所在。

另一个问题:当我点击"JCudaDriver.java:288“时,我无法访问它,上面写着”没有找到源“。我如何将这些资源附加到我的项目中?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-15 19:41:30

调试我的JCuda可执行代码的最好方法是到处放置printf语句。很明显,在你做完之后删除它们,但是你必须从某个地方开始。

在调用内核代码的.java代码中添加以下内容。

JCudaDriver.cuCtxSetLimit(CUlimit.CU_LIMIT_PRINTF_FIFO_SIZE,4096);

然后在CUDA内核中使用printf("");语句来确定问题所在。如果我猜是因为你访问了一段你不应该访问的内存。

我还建议用if(gtid == 0){ printf (“hello\n”)包装printf;}否则,每个线程都会尝试执行printf。

来源:http://forum.byte-welt.net/byte-welt-projekte-projects/swogl-jcuda-jocl/jcuda/3255-gpu-printf-compute-capility-2-0-a.html

编辑:

我想补充的是,在JCuda网站上添加了一个调试部分。它建议使用一个叫做“CUDA”的工具来帮助调试你的CUDA应用程序。

http://www.jcuda.org/debugging/Debugging.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29702698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档