问题标签 [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.
visual-studio-2010 - VS2010 编译器和 cuda 错误:链接规范与之前的“hypot”不兼容
当我尝试在调试 64 位配置中使用 VS 2010 在 64 位 Windows 7 上构建我的项目时,我收到此错误以及其他两个错误。
错误:链接规范与 math.h 第 161 行中先前的“hypot”不兼容错误:链接规范与 math.h 第 161 行中的先前“hypotf”不兼容错误:函数“abs(long long)”已在 math_functions 中定义.h 第 534 行
我在 32 位版本中没有收到这些错误。此外,64 位版本在 VS2008 中工作。这个问题是否有适当的解决方法,还是我应该等到 nvcc 支持 VS 2010 编译器?
cuda - nvcc -Xptxas –v 编译器标志无效
我有一个 CUDA 项目。它由几个包含我的应用程序逻辑的 .cpp 文件和一个包含多个内核以及一个__host__
调用它们的函数的 .cu 文件组成。
现在我想确定我的内核使用的寄存器数量。我的正常编译器调用如下所示:
nvcc -arch compute_20 -link src/kernel.cu obj/..obj obj/..obj .. -o bin/..exe -l glew32 ..
.
不幸的是,在此调用中添加“-Xptxas –v”编译器标志没有效果。编译器仍然产生与以前相同的文本输出。编译后的 .exe 的工作方式也与以前相同,但有一个例外:我的帧率从 80fps 跃升至 1800fps。
cuda - 使用 nvcc 时,arch 和 code 选项的默认值是什么?
编译 CUDA 代码时,您必须选择要为哪种架构生成代码。nvcc
提供了两个参数来指定这个架构,基本上:
arch
指定虚拟架构,可以是compute_10
、compute_11
等。code
指定真实的架构,可以是sm_10
,sm_11
等。
所以像这样的命令:
将为具有 1.3 计算能力的设备生成“立方体”代码。如果我错了,请纠正我。我想知道这两个参数的默认值是什么?当没有为or指定值时,nvcc 使用的默认架构是什么? arch
code
cuda - 如何获取要执行的 PTX 文件
我知道如何从 a 生成.ptx
文件.cu
以及如何从 a 生成.cubin
文件.ptx.
但我不知道如何获得最终的可执行文件。
更具体地说,我有一个sample.cu
文件,它被编译为sample.ptx
. 然后我使用 nvcc 编译sample.ptx
为sample.cubin
. 但是,.cubin
如果没有主机代码,则无法直接执行此文件。如何将.cubin
文件链接到我的原始.cu
文件以生成最终的可执行文件?
c - Cuda 代码 #define 错误,应为“)”
在以下代码中,如果我将 #define N 65536 置于 #if FSIZE 之上,则会出现以下错误:
float1vsfloat2.cu(10):错误:预期为“)”
这个问题有点烦人,我真的很想知道它为什么会发生。我有一种感觉,我忽略了一些非常愚蠢的事情。顺便说一句,此代码部分位于文件的顶部。之前甚至没有#include。我将非常感谢任何可能的解释。
warnings - CUDA:控制表达式的 NVCC 警告是恒定的
nvcc.exe在我的 .cu 主机代码中warning: controlling expression is constant
为以下assert()抛出一个:
如果我在断言中包含一个字符串,为什么会生成警告?此警告是否有解决方法?我喜欢在 assert 中包含信息性字符串,它们可以很好地编译,而不会使用 Visual C++ 编译器发出任何警告。
cuda - CUDA:为 sm_20 显示错误的 lmem 统计信息?
当指定 GPU 架构时,使用该选项编译的 CUDA 内核--ptxas-options=-v
似乎显示错误的 lmem(本地内存)统计信息。sm_20
这同样为架构提供了有意义的 lmem 统计信息sm_10 / sm_11 / sm_12 / sm_13
。
有人可以澄清 sm_20 lmem 统计数据是否需要以不同的方式阅读,或者它们是完全错误的?
这是内核:
--ptxas-options=-v
并sm_20
报告:
--ptxas-options=-v
并sm_10 / sm_11 / sm_12 / sm_13
报告:
sm_20 报告一个4 bytes的 lmem ,如果您看到内核中使用了 4x1000 字节数组,这根本不可能。较旧的 GPU 架构报告正确的4000 字节lmem 统计信息。
这是用CUDA 3.2试过的。我参考了NVCC 手册(v3.2) 的打印代码生成统计部分,但它无助于解释这种异常情况。
cuda - 无法重载 make_uint4 函数
我正在尝试以make_uint4
下列方式重载:
但是当我尝试编译它时,nvcc 返回一个错误:
所有这些错误都指向这"return…"
条线。
cuda - 调用 Surface 低级 CUDA API 的奇怪错误编译代码
这个最小的例子:
像这样编译时失败:
显示以下错误消息:
我无法理解我做错了什么。我正在使用 CUDA 3.2 在 Linux Ubuntu 64 位机器上进行编译。
cuda - 在 Cuda (nvcc) 中关闭文件指针
在 gcc 中,close 函数用于关闭文件指针。但是我的 nvcc 编译器不允许这样做。我似乎找不到特定于 cuda 的调用或别名。
是否有一个特殊的 cuda 文件指针关闭?
这是我得到的错误。
error: identifier "close" is undefined
对于这个简单的代码;
FILE* fp = fopen(filename,"r");
if(fp == NULL)
{
return NULL;
}
close(fp);