nvcc warning : the 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (use -wno-deprecated-gpu-targets to suppress warning).
时间: 2023-04-26 07:02:01 浏览: 410
nvcc警告:'compute_35'、'compute_37'、'compute_50'、'sm_35'、'sm_37'和'sm_50'架构已经过时,可能在未来的版本中被移除(使用-wno-deprecated-gpu-targets来抑制警告)。
相关问题
nvcc fatal : Unsupported gpu architecture 'compute_37'
根据您提供的引用内容,这个错误是由于您GPU架构不受nvcc支持所引起的。nvcc是NVIDIA CUDA编译器驱动程序,用于将CUDA源代码编译为可在GPU上执行的二进制代码。当您尝试编译一个不受支持的GPU架构时,就会出现这个错误。
要解决这个问题,您可以采取以下几个步骤:
1. 确认您的GPU架构是否受支持。您可以在NVIDIA官方文档中找到有关支持的GPU架构的信息[^1]。
2. 如果您的GPU架构不受支持,您有几个选择:
- 更新您的GPU驱动程序。有时,更新GPU驱动程序可以提供对新的GPU架构的支持。
- 更换使用受支持的GPU架构的GPU。如果您的GPU架构太旧,可能需要考虑升级到一个新的GPU。
- 修改您的CUDA代码以适应受支持的GPU架构。这可能需要对您的代码进行一些修改,以便在不受支持的GPU架构上运行。
3. 如果您确定您的GPU架构受支持,但仍然遇到这个错误,可能是由于其他原因引起的。您可以尝试以下步骤来解决问题:
- 确保您的CUDA安装正确并与您的GPU兼容。
- 检查您的编译选项和环境设置是否正确。
- 确保您的代码没有其他错误或依赖项问题。
请注意,这只是一般的解决方案,具体的解决方法可能因您的环境和代码而异。如果您需要更具体的帮助,请提供更多的上下文和代码示例。
Checking if nvcc accepts flags --generate-code=arch=compute_35,code=sm_35
`nvcc` 是 NVIDIA 的 CUDA 编译器,用于将 CUDA C/C++ 源代码编译成可以在 GPU 上运行的目标代码。当你想检查 `nvcc` 是否接受特定的编译标志 `--generate-code=arch=compute_35,code=sm_35` 时,这个选项通常用于生成针对CUDA架构 Compute Capability 3.5(代号 sm_35)的 PTX (Parallel Thread Execution) 代码。
`--generate-code` 参数用于控制编译过程中的代码生成特性。`arch` 指定了目标GPU的架构,而 `code` 则指定生成的可执行代码对应的具体计算模型。在这个例子中,它告诉 `nvcc` 仅生成针对 Compute 35 架构,并按照 SM 35 模型优化代码。
如果你想测试这个命令是否有效,可以尝试在一个简单的 CUDA 程序中添加这个选项,然后观察编译结果或错误信息。例如:
```bash
nvcc -I/path/to/cuda/include -c your_code.cu --generate-code=arch=compute_35,code=sm_35
```
如果编译器支持该选项,可能会给出警告或其他有关此特性可用性的信息;如果不支持,则可能会返回错误消息,说明该选项未被识别。
阅读全文