支持 CUDA 5 的 GPU 上不受支持的 GPU 架构计算_30

3MP*_*ook 8 cuda nvidia nvcc darknet yolo

我目前正在尝试在最新的 CUDA 工具包(版本 11.1)上编译 Darknet。我有一个能够运行 CUDA 版本 5 的 GPU,它是 GeForce 940M。然而,在使用最新的 CUDA 工具包重建暗网时,它说

nvcc 致命:不支持的 GPU 架构“compute_30”

compute_30 适用于版本 3,当我的 GPU 可以运行版本 5 时它怎么会失败 我的代码是否有可能检测到我的英特尔显卡而不是我的 Nvidia GPU?如果是这种情况,是否可以更改其检测?

Abd*_*tef 16

CUDA 10.2 之后compute_30版本的支持已被删除。因此,如果您正在使用 nvcc,请确保使用此标志来针对暗网构建系统中的正确架构

-gencode=arch=compute_50,code=sm_50
Run Code Online (Sandbox Code Playgroud)

您可能还需要使用这个来避免架构被弃用的警告。

-Wno-deprecated-gpu-targets 
Run Code Online (Sandbox Code Playgroud)

  • 对于阅读此问题并回答@talonmies'评论的其他人,您应该在 Makefile 中的某个位置找到对“compute_30”的引用。您可以将其替换为“compute_50”。以暗网为例,“compute_20”已被注释掉:“# -gencode arch=compute_20,code=[sm_20,sm_21] \ This one is deprecated?”。您可以对“compute_30”执行相同的操作以将其注释掉,因为指定了其他“compute_##”标志将取代它(“compute_35”、“compute_50”、“compute_52”)。 (3认同)