gpt4 book ai didi

c - 从 cuda 内核打印

转载 作者:太空狗 更新时间:2023-10-29 16:52:00 25 4
gpt4 key购买 nike

我正在编写一个 cuda 程序并尝试使用 printf 函数在 cuda 内核中打印一些内容。但是当我编译程序时出现错误

error : calling a host function("printf") from a __device__/__global__ function("agent_movement_top") is not allowed


error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2008 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin" -I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\C\common\inc" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" -G --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "Debug\test.cu.obj" "C:\Users\umdutta\Desktop\SANKHA_ALL_MATERIALS\PROGRAMMING_FOLDER\ABM_MODELLING_2D_3D\TRY_NUM_2\test_proj_test\test_proj\test_proj\test.cu"" exited with code 2.

我正在使用计算能力大于 2.0 的 GTX 560 ti 卡,当我搜索了一些关于从 cuda 内核打印的信息时,我还看到我需要将编译器从 sm_10 更改为 sm_2.0 以获取卡的全部优势。还有一些建议让 cuPrintf 达到目的。我有点困惑我应该做什么以及在我的控制台屏幕上获取打印输出的最简单和最快捷的方法。如果我需要将 nvcc 编译器从 1.0 更改为 2.0,我应该怎么做?还有一件事我想提一下,我正在使用 windows 7.0 并在 visual studio 2010 中编程。感谢您的所有帮助。

最佳答案

要在计算能力 >= 2.0 的设备上启用普通 printf(),重要的是至少为 CC 2.0 的 CC 进行编译并禁用默认设置,其中包括 CC 1.0 的构建.

右击项目中的.cu文件,选择Properties,选择Configuration Properties | CUDA C/C++ | 设备。单击 Code Generation 行,单击三角形,选择 Edit。在 Code Generation 对话框中,取消选中 Inherit from parent or project defaults,在顶部窗口中键入 compute_20,sm_20,单击 OK。

关于c - 从 cuda 内核打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14106615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com