支持CUDA 5的GPU上不受支持的GPU架构compute_30

问题描述

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

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

compute_30适用于版本3,当我的gpu可以运行版本5时如何失败 我的代码是否有可能检测到我的英特尔图形卡而不是我的nvidia gpu? 如果是这样,是否可以更改其检测?

解决方法

versions after CUDA 10.2compute_30的支持已删除。因此,如果您使用的是nvcc,请确保使用此标志在Darknet的构建系统中定位正确的体系结构

-gencode=arch=compute_50,code=sm_50

您可能还需要使用此代码,以避免警告不推荐使用的体系结构

-Wno-deprecated-gpu-targets 
,

我添加了以下内容:

makefiletemp = open('Makefile','r+') 
list_of_lines = makefiletemp.readlines()
list_of_lines[15] = list_of_lines[14]
list_of_lines[16] = "ARCH= -gencode arch=compute_35,code=sm_35 \\\n"

makefiletemp = open('Makefile','w')
makefiletemp.writelines(list_of_lines)
makefiletemp.close()

就在 #编译暗网

!make

命令。这似乎奏效了!