关于mmdetection中cuda环境配置
Mmdetection有两种版本、2.3之前的版本需要分别编译mmcv和mmdetection、2.3版本将ops目录转移到了mmcv中、组成了mmcv-full版本,而mmdetection中没有需要编译的c++代码了。
对于mmdet2.3、需要先安装mmcv-full、这里有两种安装方式、直接pip安装编译好的mmcv和下载mmcv源码进行本地的编译、前者比较简单、但需要注意匹配本地的pytorch和cuda的版本,后者需要本地编译、所以需要原生的cuda来编译(编译中需要用到nvcc)。需要注意的是、这里提到的cuda分为torch自带的cuda运行库和原生的cuda库、前者只有运行接口、不能编译代码、后者则可以。所以对于直接下载编译好的mmcv-full版本、就不用额外安装cuda、只要torch自带的cudart满足mmcv的要求版本即可;而通过本地cuda编译好的mmcv、也可以在torch的cuda接口上运行。
这里其实就是一个可能会让大家比较纠结的问题、到底pytorch需要额外安装cuda吗。答案就是不需要,因为torch自带了一般需求下的cuda运行环境,除非代码中含有自定义的c++代码、需要编译、则需要额外的cuda编译器来完成编译。同样的,使用conda安装时,pytorch不带cuda的库,需要额外指定cudatoolkit一起安装,也是装一些运行库。