- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在我的电脑上安装了 CUDA 工具包,但似乎有些东西坏了。 nvcc
无法编译,像这样的简单 hello-world 也无法编译:
#include <stdio.h>
int main(int argc, char** argv) {
printf("Hello, world!\n");
return 0;
}
输出是:
$ nvcc hello.cu
/usr/include/c++/4.8.0/cstdlib(178): error: identifier "__int128" is undefined
/usr/include/c++/4.8.0/cstdlib(179): error: identifier "__int128" is undefined
2 errors detected in the compilation of "/tmp/tmpxft_000011a2_00000000-6_hello.cpp1.ii".
详细输出是:
$ nvcc --verbose hello.cu
#$ _SPACE_=
#$ _CUDART_=cudart
#$ _HERE_=/opt/cuda/bin
#$ _THERE_=/opt/cuda/bin
#$ _TARGET_SIZE_=64
#$ TOP=/opt/cuda/bin/..
#$ LD_LIBRARY_PATH=/opt/cuda/bin/../lib:
#$ PATH=/opt/cuda/bin/../open64/bin:/opt/cuda/bin/../nvvm:/opt/cuda/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-studio/bin:/opt/cuda/bin:/extra/usr/bin:/opt/java/bin:/opt/java/db/bin:/opt/java/jre/bin:/usr/bin/core_perl:/usr/lib/smlnj/bin:.:.
#$ INCLUDES="-I/opt/cuda/bin/../include"
#$ LIBRARIES= "-L/opt/cuda/bin/../lib64" -lcudart
#$ CUDAFE_FLAGS=
#$ OPENCC_FLAGS=
#$ PTXAS_FLAGS=
#$ gcc -D__CUDA_ARCH__=100 -E -x c++ -DCUDA_FLOAT_MATH_FUNCTIONS -DCUDA_NO_SM_11_ATOMIC_INTRINSICS -DCUDA_NO_SM_12_ATOMIC_INTRINSICS -DCUDA_NO_SM_13_DOUBLE_INTRINSICS -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../include" -include "cuda_runtime.h" -m64 -o "/tmp/tmpxft_000011e1_00000000-6_hello.cpp1.ii" "hello.cu"
#$ cudafe --m64 --gnu_version=40800 -tused --no_remove_unneeded_entities --gen_c_file_name "/tmp/tmpxft_000011e1_00000000-3_hello.cudafe1.c" --stub_file_name "/tmp/tmpxft_000011e1_00000000-3_hello.cudafe1.stub.c" --gen_device_file_name "/tmp/tmpxft_000011e1_00000000-3_hello.cudafe1.gpu" --nv_arch "compute_10" --gen_module_id_file --module_id_file_name "/tmp/tmpxft_000011e1_00000000-2_hello.module_id" --include_file_name "tmpxft_000011e1_00000000-1_hello.fatbin.c" "/tmp/tmpxft_000011e1_00000000-6_hello.cpp1.ii"
/usr/include/c++/4.8.0/cstdlib(178): error: identifier "__int128" is undefined
/usr/include/c++/4.8.0/cstdlib(179): error: identifier "__int128" is undefined
2 errors detected in the compilation of "/tmp/tmpxft_000011e1_00000000-6_hello.cpp1.ii".
# --error 0x2 --
关于我的系统的一些信息:
操作系统是 Chakra Linux(基于 Arch 的发行版)64 位。目前我使用的是 gcc-multilib 版本:
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /chakra/lib32-testing/gcc-multilib/src/gcc-4.8-20130411/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://chakra-project.org/bugs --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --enable-gnu-unique-object --enable-linker-build-id --enable-cloog-backend=isl --disable-cloog-version-check --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --with-linker-hash-style=gnu --disable-install-libiberty --enable-multilib --disable-libssp --disable-werror --enable-checking=release
Thread model: posix
gcc version 4.8.0 20130411 (prerelease) (GCC)
有关 CUDA 工具包的信息:
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2012 NVIDIA Corporation
Built on Fri_Sep_21_17:28:58_PDT_2012
Cuda compilation tools, release 5.0, V0.2.1221
最后但同样重要的是,这是有问题的头文件:http://pastebin.com/WtUckrYv
提前谢谢你。
最佳答案
CUDA 5.0 与 gcc 4.8.0 不兼容。
为了更好地了解兼容的发行版和 gcc 版本,请参阅 release notes .
使用 cuda 可能会有更好的运气 5.5 RC ,但是您提到的特定发行版以及 gcc 版本仍未在 release notes 中列出在 linux 支持下。
最好的体验很可能是通过切换到受支持的发行版找到的。
通常,CUDA 5 中的 nvcc
会自动包含文件 /usr/local/cuda/include/host_config.h
,其中有各种宏来检查是否正确/可接受编译器版本,其中一个宏应该在您的情况下引发错误,但似乎没有:
#if defined(__GNUC__)
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 6)
#error -- unsupported GNU version! gcc 4.7 and up are not supported!
#endif /* __GNUC__> 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 6) */
#endif /* __GNUC__ */
关于cuda - nvcc 无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17251316/
我已经在我的电脑上安装了 CUDA 工具包,但似乎有些东西坏了。 nvcc 无法编译,像这样的简单 hello-world 也无法编译: #include int main(int argc, ch
我想知道,为什么 NVCC 无法为小矩阵 (N=4) 展开以下 Cholesky 分解内核。 template __device__ inline void choleskyKernel2(T* C)
我将 cuda sdk 5.0 安装到/opt 甚至编译了所有示例,但我无法执行 nvcc。这是一些控制台输出: 我正在使用 linux mint 13。 最佳答案 更新 我对 .bash_profi
我想将我的 CUDA 代码组织成单独的目标文件,以便在编译结束时进行链接,就像在 C++ 中一样。为此,我希望能够声明一个指向 __constant__ 的外部指针。内存在头文件中,并将定义放在 .c
NVCC 对设备代码的优化效果如何?它是否进行了诸如常量折叠和公共(public)子表达式消除之类的优化? 例如,它会减少以下内容: float a = 1 / sqrtf(2 * M_PI); fl
我正在尝试在 CUDA 中做这样的事情: char_sig=code[k][1] & 0b00000010; 而且 NVCC 编译器一直给我错误预期的“;” 相同的代码适用于 GCC C 编译器。我注
我正在尝试在 CUDA 中做这样的事情: char_sig=code[k][1] & 0b00000010; 而且 NVCC 编译器一直给我错误预期的“;” 相同的代码适用于 GCC C 编译器。我注
这个问题已经有答案了: Using CUDA with Visual Studio 2017 (9 个回答) 已关闭 6 年前。 我一直在尝试让 CUDA 在我的电脑上运行。我尝试干净(重新)安装最新
为什么编译器不做一些可以在内核中完成的简单优化?我有以下矩阵乘法代码: __global__ void matrixMultiply(float * A, float * B, float * C,
我刚刚开始在 CUDA 上编码,我试图将我的代码管理到一堆不同的文件中,但我的一个宏由于某种原因不会接受传递的参数。 错误是: addkernel.cu(19): error: identifier
请原谅我的菜鸟。我们的研究小组最近购买了一台服务器,其中装有 2 个 NVIDIA Tesla 单元,我负责设置它。 服务器单元正在运行 Rocks 6.0。 所以我根据以下说明安装从 NVIDIA
我希望 NVCC 将以下警告视为错误: warning : calling a __host__ function("foo") from a __host__ __device__ function
我有一个项目正在使用 CUDA 运行。由于各种原因,它需要编译一个可执行文件,无论是否支持 GTK,无需重新编译所有相关文件。在 C 下,我通过将对象的基本版本编译为 *.o 来完成此操作。和对象的
我在带有 GTX 570(计算能力 2.0)的 Ubuntu 10.10 上使用 CUDA 4.0,以及 GCC 编译器套件。据我了解,在编译过程中,CUDA 编译器驱动程序 nvcc 拆分了 .cu
我正在尝试在我的 GPU 上测量峰值单精度触发器,因为我正在修改 PTX 文件以在寄存器上执行连续的 MAD 指令。不幸的是,编译器正在删除所有代码,因为它实际上没有任何用处,因为我没有执行任何数据加
我需要从命令行使用 nvcc 编译 cuda .cu 文件。该文件是“vectorAdd_kernel.cu”并包含以下代码: extern "C" __global__ void VecAdd_ke
我正在尝试使用 nvcc 编译一个 .cu 程序,但每次我尝试在 Unix 中编译后,我的命令都不再有效。我得到一个错误: “命令”:找不到命令。 这是为什么呢?每次编译后我都必须注销/退出。 [编辑
我正在尝试将 nvcc 与最简单的示例一起使用,但它无法正常工作。我正在编译并执行来自 https://devblogs.nvidia.com/easy-introduction-cuda-c-and
在我的 mac(Snow Leopard) 上更新 CUDA 后,nvidia 的 nvcc 编译器在编译时表现得很奇怪: nvcc batched_gemm.cu 我收到以下编译错误,我不知道如何
我正在尝试编译一些 CUDA,我希望显示编译器警告。相当于: g++ fish.cpp -Wall -Wextra 除了 NVCC 不理解这些,你必须通过它们: nvcc fish.cu --comp
我是一名优秀的程序员,十分优秀!