失败原因
直接用pip install spatial_correlation_sampler
安装spatial-correlation-sampler只适用于CUDA<11.0 并且 torch<1.7 的机器。
CUDA11直接使用会报错:
(MS) root@cy-PT6630WN:/data/Pytorch-Correlation-extension# python setup.py install
running install
running bdist_egg
running egg_info
creating Correlation_Module/spatial_correlation_sampler.egg-info
writing Correlation_Module/spatial_correlation_sampler.egg-info/PKG-INFO
writing dependency_links to Correlation_Module/spatial_correlation_sampler.egg-info/dependency_links.txt
writing requirements to Correlation_Module/spatial_correlation_sampler.egg-info/requires.txt
writing top-level names to Correlation_Module/spatial_correlation_sampler.egg-info/top_level.txt
writing manifest file ‘Correlation_Module/spatial_correlation_sampler.egg-info/SOURCES.txt’
/opt/anaconda3/envs/MS/lib/python3.8/site-packages/torch/utils/cpp_extension.py:387: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja… Falling back to using the slow distutils backend.
warnings.warn(msg.format(‘we could not find ninja.’))
reading manifest file ‘Correlation_Module/spatial_correlation_sampler.egg-info/SOURCES.txt’
adding license file ‘LICENSE’
writing manifest file ‘Correlation_Module/spatial_correlation_sampler.egg-info/SOURCES.txt’
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/spatial_correlation_sampler
copying Correlation_Module/spatial_correlation_sampler/init.py -> build/lib.linux-x86_64-3.8/spatial_correlation_sampler
copying Correlation_Module/spatial_correlation_sampler/spatial_correlation_sampler.py -> build/lib.linux-x86_64-3.8/spatial_correlation_sampler
running build_ext
Traceback (most recent call last):
File “setup.py”, line 69, in
launch_setup()
File “setup.py”, line 37, in launch_setup
setup(
File “/opt/anaconda3/envs/MS/lib/python3.8/site-packages/setuptools/init.py”, line 153, in setup
return distutils.core.setup(**attrs)
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/core.py”, line 148, in setup
dist.run_commands()
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/dist.py”, line 966, in run_commands
self.run_command(cmd)
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/dist.py”, line 985, in run_command
cmd_obj.run()
File “/opt/anaconda3/envs/MS/lib/python3.8/site-packages/setuptools/command/install.py”, line 67, in run
self.do_egg_install()
File “/opt/anaconda3/envs/MS/lib/python3.8/site-packages/setuptools/command/install.py”, line 109, in do_egg_install
self.run_command(‘bdist_egg’)
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/cmd.py”, line 313, in run_command
self.distribution.run_command(command)
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/dist.py”, line 985, in run_command
cmd_obj.run()
File “/opt/anaconda3/envs/MS/lib/python3.8/site-packages/setuptools/command/bdist_egg.py”, line 164, in run
cmd = self.call_command(‘install_lib’, warn_dir=0)
File “/opt/anaconda3/envs/MS/lib/python3.8/site-packages/setuptools/command/bdist_egg.py”, line 150, in call_command
self.run_command(cmdname)
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/cmd.py”, line 313, in run_command
self.distribution.run_command(command)
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/dist.py”, line 985, in run_command
cmd_obj.run()
File “/opt/anaconda3/envs/MS/lib/python3.8/site-packages/setuptools/command/install_lib.py”, line 11, in run
self.build()
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/command/install_lib.py”, line 107, in build
self.run_command(‘build_ext’)
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/cmd.py”, line 313, in run_command
self.distribution.run_command(command)
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/dist.py”, line 985, in run_command
cmd_obj.run()
File “/opt/anaconda3/envs/MS/lib/python3.8/site-packages/setuptools/command/build_ext.py”, line 79, in run
_build_ext.run(self)
File “/opt/anaconda3/envs/MS/lib/python3.8/distutils/command/build_ext.py”, line 340, in run
self.build_extensions()
File “/opt/anaconda3/envs/MS/lib/python3.8/site-packages/torch/utils/cpp_extension.py”, line 410, in build_extensions
self._check_cuda_version()
File “/opt/anaconda3/envs/MS/lib/python3.8/site-packages/torch/utils/cpp_extension.py”, line 787, in _check_cuda_version
raise RuntimeError(CUDA_MISMATCH_MESSAGE.format(cuda_str_version, torch.version.cuda))
RuntimeError:
The detected CUDA version (10.0) mismatches the version that was used to compile
PyTorch (11.3). Please make sure to use the same CUDA versions.
安装步骤
- conda 新建虚拟环境 。并进入新虚拟环境
pytorch_1.7
conda create -n pytorch_1.7 python=3.7
- 进入pytorch官网安装
CUDA11
版本下的1.7.0
版本的pytorch。 pytorch官网
# CUDA 11.0
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0 -c pytorch
- 下载spatial-correlation-sampler源码,执行以下语句
cd Pytorch-Correlation-extension
python setup.py install
- 安装完成,显示如下信息
- 使用
pip list
查看是否安装成功
参考资料
https://blog.csdn.net/weixin_48632536/article/details/124578014
https://blog.csdn.net/weixin_44359479/article/details/121434074