问题标签 [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.
c++ - 带有 Boost 的 Cuda
我目前正在编写一个 CUDA 应用程序,并希望使用boost::program_options库来获取所需的参数和用户输入。
我遇到的问题是 NVCC 无法处理编译 boost 文件any.hpp
并给出错误,例如
我在网上搜索,发现这是因为 NVCC无法处理 boost 代码中使用的某些结构,但 NVCC 应该将主机代码的编译委托给 C++ 编译器。就我而言,我使用的是 Visual Studio 2010,因此主机代码应传递给cl
.
由于 NVCC 似乎很困惑,我什至在 boost 内容周围编写了一个简单的包装器,并将其粘贴在一个单独的.cpp
(而不是 . .cu
)文件中,但我仍然遇到构建错误。奇怪的是,错误是在编译 mymain.cu
而不是时引发的,wrapper.cpp
但仍然是由 boost 引起的,即使main.cu
不包含任何 boost code。
有人知道这个问题的解决方案甚至解决方法吗?
templates - 使用 nvcc 在 CUDA 中编译模板函数时出错
我有以下 CUDA 代码:
编译时出现以下错误:
编程指南的第 D.1.4 节(4.0,我正在使用的工具包的版本)建议模板应该可以工作,但我无法得到它们。
任何人都可以建议更改此代码以使其编译(不删除模板!)?
cuda - 使用 CUDA 显示 GPU 优于 CPU 的最简单示例
我正在寻找可以为 CPU(使用 g++)和 GPU(使用 nvcc)编写的最简洁的代码量,GPU 的性能始终优于 CPU。任何类型的算法都是可以接受的。
澄清一下:我实际上是在寻找两个短代码块,一个用于 CPU(在 g++ 中使用 C++),另一个用于 GPU(在 nvcc 中使用 C++),GPU 的性能优于该代码块。最好以秒或毫秒为单位。可能的最短代码对。
cuda - NVCC编译器的PTX和CUBIN有什么区别?
我安装了 CUDA 4.0,以及具有 Compute Capability 2.0 的设备(GTX 460 卡)。
“cubin”和“ptx”文件有什么区别?
我认为 cubin 是 gpu 的本机代码,因此这是特定于微架构的,而 ptx 是通过 JIT 编译在 Fermi 设备(例如 Geforce GTX 460)上运行的中间语言。当我编译.cu
源文件时,我可以在 ptx 或 cubin 目标之间进行选择。如果我想要 cubin 文件,我选择code=sm_20
. 但是如果我想要一个 ptx 文件,我会使用code=compute_20
.
这是对的吗?
linker - nvcc:结合外部和常量
我想将我的 CUDA 代码组织成单独的目标文件,以便在编译结束时链接,就像在 C++ 中一样。为此,我希望能够__constant__
在头文件中声明一个指向内存的外部指针,并将定义放在 .cu 文件之一中,也遵循 C++ 的模式。但似乎当我这样做时,nvcc 忽略了“外部”——它将每个声明都作为定义。有没有解决的办法?
为了更具体地了解代码和错误,我在头文件中有这个:
紧随其后的是 .cu 文件:
这在编译时给出了这个错误:
我目前的解决方案是使用 Makefile 魔法将我所有的 .cu 文件组合在一起,实际上拥有一个大的翻译单元,但有一些文件组织的外观。但这已经明显减慢了编译速度,因为对我的任何一个类的更改都意味着重新编译所有类;我预计会增加更多的课程。
编辑:我看到我__constant__
在文本和__device__
示例中输入了;这个问题适用于两者。
c++ - nvcc/cuda 3.1 - ghtr-default.h 泛滥“声明为静态”但未定义警告
使用 nvcc(使用 cuda 3.1)编译项目时,我从 gthr-default.h 收到大量警告:
我已经到处挖了,似乎找不到抑制这种噪音的方法,除了移除-Wall,我真的不想这样做。这对任何人来说都很熟悉吗?
我的 CXXFLAGS 是:
我也尝试将 $(CUDA_INCLUDE_DIR) 添加到 -Xcompiler 选项中,但无济于事。我不想从设置中删除墙...还有其他选项吗?
makefile - 在makefile错误中编译cuda文件
我制作了一个makefile来编译我的文件:
但我遇到了这个问题:
app.cpp:26:26:错误:cuda_runtime.h:没有这样的文件或目录 app.cpp:27:18:错误:cuda.h:没有这样的文件或目录
这就是我将它们包含在 app.cpp 中的方式:
为什么会出现这个问题?
我在谷歌上搜索,他们说 app.cpp 必须始终是 app.cu,是真的吗?
提前致谢。
cuda - 无法用 nvcc 编译
我已经在 debian 上安装了 CUDA,我已经成功地在 C 文件夹中使用 cuda 文件夹运行了 make 文件。但是当我尝试使用 nvcc 运行像 matMult.cu 这样的单个文件时,我收到以下错误错误:matrixMult.cu:没有这样的文件或目录错误:cutil_inline:没有这样的文件或目录
n 它也在抱怨其他头文件...请帮帮我
c++ - 为什么 nvcc 无法使用 boost::spirit 编译 CUDA 文件?
我正在尝试将 CUDA 集成到使用 boost::spirit 的现有应用程序中。
隔离问题后,我发现以下代码无法与 nvcc 一起编译:
main.cu
:
编译时nvcc -o cudaTest main.cu
会出现很多错误,可以在这里看到。
但是,如果我将文件名更改为main.cpp
,并使用 再次编译nvcc
,它就可以工作。这里发生了什么,我该如何解决?
c++ - 编写一个 CUDA 内核来替换一个等效的纯 CPU 函数
我有一些.cpp
文件实现了平滑粒子流体动力学,这是一种用于模拟流体流动的粒子方法。
这些粒子技术中最耗时的组件之一是在模拟的每个时间步为每个粒子找到最近邻(K-最近邻或范围搜索)。
现在我只想使用 GPU 和 CUDA 加速邻居搜索例程,替换我当前基于 CPU 的邻居搜索例程。只有邻居搜索将在 GPU 上运行,而其余的模拟在 CPU 上进行。
我的问题是,我应该如何编译整个代码?更具体地说,假设我在一个文件中编写了邻居搜索内核函数nsearch.cu
。
那么我应该将所有以前 .cpp
的文件重命名为.cu
文件并使用重新编译整个集合(连同 nsearch.cu)nvcc
吗?至少对于简单的示例,nvcc无法编译带有扩展名的 CUDA 代码,.cpp
即nvcc foo.cu
编译但nvcc hello.cpp
不能编译。
简而言之,这个 CUDA 插件的结构应该是什么,我应该如何编译它?
我正在为我的工作使用Ubuntu Linux 10.10、CUDA 4.0、NVIDIA GTX 570(计算能力 2.0)和gcc编译器