编译pytorch版本的PreciseRoIPooling

在尝试编译带有PrRoIPooling的Dimp模型时,遇到了CUDA相关问题。首先,解决找不到cuda_runtime_api.h的问题,通过更新环境变量设置解决了该问题。接着,遇到nvcc错误'Unsupported gpu architecture compute_86',原因是CUDA 11.0不支持RTX 3080的sm_86架构。解决办法是升级CUDA到11.1以上。此外,还探讨了CUDA与驱动、TensorFlow的兼容性问题,以及临时解决cudnn初始化异常的方法。

Dimp模型中使用pr pooling来池化目标区域(ROI)特征,以此初始化滤波器,使用到的prroi_pool模块来自于github,在编译过程中遇到些问题。

找不到cuda include cuda_runtime_api的问题

cudacontext.h:5:10: fatal error: cuda_runtime_api.h: no such file or directory

找不到cuda_runtime_api.h文件,该文件在cuda安装目录下的include下,但是pytorch能够正常寻找和使用cuda以及相应的库(因为etc/profile或.bashrc已经包含了cuda路径/usr/local/cuda/bin和lib路径/usr/local/cuda/lib64,nvcc 也正常)。
在pytorch运行py文件的configurations配置中Environment variables也正常继承了系统变量(cuda path),在该位置增加/usr/local/cuda/include也没有作用,总之是环境变量export path的问题,可能是写法不对,修改为如下形式:

export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

这是nvidia官方CUDA Quick Start Guide的写法(改为了软链接路径),修改之后就没有上述问题了。可惜已经修改完成,没有记下来原来的写法。

nvcc fatal : Unsupported gpu architecture ‘compute_86’

机器是rtx 3080的显卡,驱动是460,使用的是cuda11.0的版本,pytorch 1.7.1,编译第二步就会出现nvcc的问题,主要是30系列的显卡cuda及驱动支持的兼容性问题,我也没搞清楚是怎么回事。问题:

Using /home/xx/.cache/torch_extensions as PyTorch extensions root...
Detected CUDA files, patching ldflags
Emitting ninja build file /home/xx/.cache/torch_extensions/_prroi_pooling/build.ninja...
Building extens
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值