问题标签 [nvcc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1879 浏览

c++ - 无法编译 CUDA C 源代码。提供简单版

这就是问题所在...对于学校项目,我需要使用 CUDA C 编写并行应用程序。即使是最简单的示例也无法编译。我正在使用 Windows7 和 MS Visual Studio。代码取自书中:CUDA by example。通用 GPU 计算简介。

以下是错误:

我是否需要将 nvcc.exe 设置为默认编译器而不是 cl.exe?如果是这样,该怎么做?任何帮助深表感谢!

0 投票
1 回答
670 浏览

cuda - 在内联 PTX 中设置 32 位地址大小

我正在将作为单独文件编写的 PTX 转换为内联 PTX。在单独的 PTX 文件中,我将 ISA 和目标定义如下:

在编译器生成的 PTX 文件中,内联 PTX 后,编译器指定了 ISA 和 target,如下所示:

.address_size 64对我来说是有问题的,因为这意味着我必须将我在内联 PTX 中执行的指针算法从 32 位更新为 64 位。

鉴于 32 位可以寻址 4GB,比我的卡更多的内存,是否可以让编译器指定 32 位地址大小,这样我就不必更新指针算法?

考虑到新的统一寻址系统,sm_20 是否支持 32 位地址?

0 投票
1 回答
615 浏览

cuda - 在 Parallel Nsight 中调试内联 PTX

在 Parallel Nsight 中单步执行内联 PTX 时是否可以查看 PTX 寄存器?

我可以在内联 PTX 上设置断点并单步执行,但将鼠标悬停在 PTX 寄存器上不会显示它们的值。我可以打开 SASS 并将鼠标悬停在这些寄存器上确实会显示它们的值,但是很难跟踪 PTX 寄存器和 SASS 寄存器之间的关系。

0 投票
1 回答
487 浏览

cuda - CUDA 编译器如何知道扭曲的发散行为?

CUDA Programming Guide (v4.1)在 Sec 5.4.2 中描述了关于谓词指令的内容:

仅当分支条件控制的指令数小于或等于某个阈值时,编译器才将分支指令替换为谓词指令:如果编译器确定该条件可能产生许多发散扭曲,则此阈值为 7,否则是4。

  1. 一个条件如何产生许多不同的扭曲?给定条件只能将经线分成两部分。许多在这里是什么意思?
  2. 即使上述内容是有道理的,编译器如何知道扭曲的运行时发散行为?
0 投票
1 回答
1227 浏览

c++ - 当我有表面声明时,如何为 sm_1X 和 sm_2X 编译 CUDA 程序

我正在编写一个使用表面(重新采样并写入纹理)以获得性能提升的库:

目标平台 GPU 具有计算能力 2.0,我可以使用以下代码编译我的代码:

它工作得很好。

问题是当我尝试在我的笔记本电脑上开发和调试库时,它有一个具有计算能力 1.1 的 NVIDIA ION GPU(我还希望我的库向后兼容)。我知道这个架构不支持表面,所以我在我的设备代码中使用了 nvcc 宏来为这个旧架构定义一个备用代码路径:

问题是当我这样做时:

我收到此错误:

当我查看 PTX 文件时,可以看到表面声明:

如果我尝试在源代码中的表面声明周围放置一个类似的宏:

我收到一条错误消息,指出在将 cuda 表面绑定到数组的主机代码调用中未定义表面变量。我也应该在绑定函数周围添加宏吗?

我不确定这是否可能,或者如果我在某个地方搞砸了,请帮忙。

0 投票
2 回答
12810 浏览

ubuntu - CUDA 2.1“错误:未知类型名称‘size_t’”

系统:Ubuntu 11.10 x86_64 CUDA:v 2.1

在尝试制作像 matrixMul 这样的示例程序时,我遇到了大量错误,其中大部分是“未知类型名称‘size_t’”。我确保将 /usr/local/cuda/bin 放在我的 PATH 中,并将 /usr/local/cuda/lib 放在 /etc/ld.so.conf.d 的 .conf 中。

任何想法为什么我会收到这些错误?

谢谢!

0 投票
1 回答
4153 浏览

c - 包含 GPU 库的路径问题

我正在尝试使用 MAGMA (http://icl.cs.utk.edu/magma/) 在 GPU 上执行一些矩阵运算。我能够成功调用 CUDA 内核,这没有问题。但是当我尝试使用 magmablas_sgemm 函数时,我遇到了错误。

这是我正在使用的编译命令:

这是部分 printenv 输出:

可以清楚地看到,岩浆库包含在 LD_LIBRARY_PATH 中,但是,我收到了这个错误:

任何帮助/指针将不胜感激!谢谢!

PS:如果相关,nvcc 用于主机代码的底层 C 编译器是 gcc。
PPS:我检查了路径“/util/magma/1.1/lib”,它确实包含 libmagma.a 和 libmagmablas.a

更新:哇..我讨厌这个..但这让它工作了

nvcc -o msd msd.cu -I../../include -I/util/magma/1.1 -L/util/cuda/4.0.17/cuda/lib64 -L/util/magma/1.1/lib -lcublas -lm -lmagma -lmagmablas -Xcompiler -I../../include -I/util/magma/1.1 "-O3"

所以我所做的只是明确地包含库路径。但我认为 LD_LIBRARY_PATH 会处理这样的事情。知道为什么那不起作用吗?

0 投票
1 回答
3188 浏览

python - 皮库达;nvcc 致命:找不到 Visual Studio 配置文件“(空)”

在安装 Visual C++ Express 2010 和各种 Nvidia 驱动程序、SDK 等之后,我正在尝试运行pycuda 入门教程。我得到了

没有错误。但是 IPython 中的这个调用会产生

在此之后,我安装了 MS Windows SDK 而不影响此错误,尽管我现在似乎能够在 Visual C++ Express 2010 中选择 x64 程序。那么,我需要修复什么?(我使用了预编译的 pycuda 文件。)

0 投票
1 回答
1387 浏览

cuda - 如何将 cuPrintf 与 .cpp 文件中具有 main() 的 cuda 项目一起使用?

所以我正在尝试加速一些碰撞检测代码,这些代码使用 SDL 将一些碰撞球绘制到 Mac OS X 中的表面/窗口。我可以进行碰撞并以顺序方式绘制东西已经很好了。我希望能够使用 cuPrintf 调试 cuda 版本,但由于我的 main() 不在 .cu 文件中,我无法让它工作。所以无法初始化cuPrintf,也无法打印缓冲区。如果我创建几个外部“C”函数并将它们构建到 .cpp 文件中,我什么也得不到。如果我尝试将包装函数与我的 cuda 代码的其余部分一起放在 .cu 文件中,我会收到“错误:不支持使用外部函数......”。我在较小的项目中使用过它,所有内容都在一个大的 .cu 文件中,效果很好。但是我可以'

其他人有过这个问题吗?

0 投票
1 回答
4761 浏览

windows - cuda nvcc 交叉编译器

我想在 mac 上编译 CUDA 代码,但让它在 Windows 上可执行。

有没有办法设置 nvcc CUDA 交叉编译器?

问题是由于旅行,我的桌面窗口将有一段时间无法访问,但是我不想浪费时间等待我回来编译代码。如果我必须等待,那么调试代码并确保它编译正确等等都是浪费时间。不过,我的 mac 没有配备支持 cuda 的硬件。