问题标签 [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.
gcc - nvcc for linux 使用的默认主机编译器
我在带有 GTX 570(计算能力 2.0)的 Ubuntu 10.10 上使用 CUDA 4.0,并带有 GCC 编译器套件。据我了解,在编译过程中,CUDA编译器驱动程序nvcc将.cu
文件拆分为主机代码和设备代码,并调用主机编译器编译主机代码和分别编译设备代码。最后,它将生成的主机目标代码和设备 PTX 代码合并为一个可执行文件。
对于 Linux 系统,用于编译主机代码的默认编译器是什么?是GCC 套件的 C 编译器 ( gcc
) 还是 C++ 编译器 ( )?g++
linux - CUDA 链接器错误:未定义对 main 的引用
我正在尝试在 Linux 中编译 CUDA 程序,但出现以下链接器错误:
这是我的 Makefile:
该main
函数位于 main.cu 文件中,但由于某种原因链接器没有看到它。谁能告诉我我做错了什么?
谢谢!
c++ - 编译错误 nvcc 和 BOOST 库
nvcc 抛出
has_constraints.hpp 中已经有一些可疑代码:
问题:这是 nvcc boost 不兼容还是我的代码有问题?
cuda - CUDA 和 nvcc:使用预处理器在 float 或 double 之间进行选择
问题:
有一个 .h,如果为 c/c++ 或计算能力 >= 1.3 的 cuda 编译,我想将 real 定义为 double。如果为计算能力 < 1.3 的 cuda 编译,则将 real 定义为 float。
几个小时后,我来到了这个(这不起作用)
当我编译时(注意 -arch 标志)
我明白了
我知道文件会被 nvcc 编译两次。第一个没问题(定义了CUDACC并且CUDA_ARCH >= 130)但是第二次会发生什么? CUDA_DEFINED但CUDA_ARCH未定义或值 < 130?为什么 ?
谢谢你的时间。
visual-studio-2010 - 如何设置 nvcc 以使用 Windows SDK 7.1 中的 Visual C++ Express 2010 x64?
我正在使用 Windows SDK 7.1 扩展的 Visual C++ Express 2010 构建 64 位应用程序(以添加 64 位编译器)。当我在 32 位模式下使用 nvcc 时,它运行良好。当我在 64 位模式下使用它时,我收到此错误:
我该怎么做才能向 nvcc 提供正确的文件?
linker - 链接到使用 cuda nvcc 创建的目标文件时出现问题
我正在尝试链接到 NVCC 生成的目标文件。这里有一个非常简单的“库”:
以及使用“库”的文件:
请注意,我通过直接在文件中声明函数来规避在这个简单设置中对包含文件的需求。这是我尝试构建的命令:
为什么这不适用于 NVCC?第二个命令产生大量:
我在不同的机器上尝试了不同的 CUDA 安装(4.0)。同样奇怪的编译器/链接器输出。
我还尝试使用extern "C"
而不是 C++ 名称修饰。相同的行为。此外,C 名称修饰在实际应用中不是一个选项。
macos - nvcc 未知选项 -no_pie
在我的 mac(Snow Leopard) 上更新 CUDA 后,nvidia 的 nvcc 编译器表现得很奇怪,编译时:
我收到以下编译错误,我不知道如何解决这个问题。
有谁知道问题可能是什么?
c - Cuda混合C项目链接
我在 C 语言中有一个大型项目,我正在尝试在其中集成一些 Cuda 内核。我正在用“gcc -c main.c”编译我的 c 文件,用“nvcc -c cuda_GMRES.cu”编译我的 .cu 文件,然后我尝试用 nvcc 链接这两个目标文件:“nvcc -o main.cu”。 o cuda_GMRES.o”并收到以下错误:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crt1.o:在函数
_start':
(.text+0x20): undefined reference to
main'collect2:ld返回1退出状态
这是我第一次尝试将 cuda 与 C 文件结合起来,我可能做错了什么。有人可以帮助我吗?我在一个带有 Rocks OS 的 GPU 集群上。
我的 main.c 文件:
我的 cuda_wrapper.h 文件:
我的 cuda_GMRES.cu 文件包含内核调用函数:
我的包含内核的 cuda_dot.cu 文件:
cuda - 使用 CUDA 模块构建 GPL C 程序
我正在尝试修改用 C 编写的 GPL 程序。我的目标是用 CUDA 实现替换一种方法,这意味着我需要使用 nvcc 而不是 gcc 进行编译。我需要帮助构建项目 - 不实施它(你不需要知道任何关于 CUDA C 的帮助,我不认为)。
这是我第一次尝试更改涉及 .configure 和 Makefile 的中等复杂度的 C 项目。老实说,这是我很长时间以来第一次在 C 中做任何事情,包括任何涉及 gcc 或 g++ 的事情,所以我很迷茫。
我对学习配置和 Makefile 不是很感兴趣——这更像是一个实验。在花时间创建正确的构建脚本之前,我想看看项目实施是否顺利。(不是不愿意学习必要的,只是想给出一个范围的想法)。
话虽如此,我有什么选择来构建这个项目?我有无数的问题...
我尝试在 AC_PROG_CC 之后将“CC=nvcc”添加到 configure.in 文件中。这似乎有效 - 运行 configure 和 make 的输出显示 nvcc 作为编译器。但是 make 无法使用 CUDA 内核编译源文件,无法识别 CUDA 特定的语法。我不知道为什么,希望这会奏效。
是否可以使用 nvcc 编译源文件,然后在主程序的 make 过程中的链接步骤中包含它?如果是这样,怎么做?(这个问题可能没有意义——我对此真的很生疏)
这样做的正确方法是什么?
有没有一种快速而肮脏的方法可以用于测试目的?
每个人都使用一些秘密工具来设置和理解这些配置和 Makefile 吗?这比我习惯的 Apache Ant 脚本还要糟糕(是的,我不在我的领域)
cuda - 如何编译 CUDA 代码然后将其链接到 C++ 项目?
我正在寻求有关 CUDA 项目的帮助。我的目标是拥有一个可以在本机 g++ 编译器中编译但使用 CUDA 代码的项目。我知道我必须在 nvcc 编译器中编译我的 CUDA 代码,但据我了解,我可以以某种方式将 CUDA 代码编译成 cubin 文件或 ptx 文件。
以下是我的问题:
- 如何使用 nvcc 编译成 cubin 文件或 ptx 文件?我不需要 -c 什么的吗?
- 我要使用哪种文件类型?
- 正确编译和链接项目的 g++ 命令是什么?
假设如下:
- 我有一个名为“main.cpp”的文件,其中包含一个主要功能并包含 cuda.h。
- 我有另一个名为“cudaFunc.cu”的文件,其中包含 CUDA 代码。例如,假设我想添加两个存在于 main.cpp 中的整数数组。