项目地址:https://github.com/dbolya/yolact
使用yolact编译DCNv2提示
/media/howso/f/lu/myproj/yolact-master/external/DCNv2/src/cuda/dcn_v2_cuda.cu(107): error: identifier "THCState_getCurrentStream" is undefined
/media/howso/f/lu/myproj/yolact-master/external/DCNv2/src/cuda/dcn_v2_cuda.cu(279): error: identifier "THCState_getCurrentStream" is undefined
/media/howso/f/lu/myproj/yolact-master/external/DCNv2/src/cuda/dcn_v2_cuda.cu(324): error: identifier "THCudaBlas_Sgemv" is undefined
3 errors detected in the compilation of "/media/howso/f/lu/myproj/yolact-master/external/DCNv2/src/cuda/dcn_v2_cuda.cu".
error: command '/usr/local/cuda-11.0/bin/nvcc' failed with exit status 1
我的环境是:
ubuntu18.04
RTX3090
torch==1.7.0
torchvision==0.8.1
cuda11.0+cudnn8.1.1
原因是DCNv2对于RTX30系列支持不好,需要重新去https://github.com/MatthewHowe/DCNv2
下载,而且这样还不够需要在bash make.sh之前
export TORCH_CUDA_ARCH_LIST=7.5
虽然RTX3090算力是8.6但是还是会提示错误,设置7.5就可以