1.编译 MultiScaleDeformableAttention报错
目录
1.编译 MultiScaleDeformableAttention报错
1.1错误代码
FAILED: /home/zhangbn/trackformer-main/src/trackformer/models/ops/temp.linux-x86_64-cpython-37/home/zhangbn/trackformer-main/src/trackformer/models/ops/src/cpu/ms_deform_attn_cpu.o
c++ -MMD -MF /home/zhangbn/trackformer-main/src/trackformer/models/ops/temp.linux-x86_64-cpython-37/home/zhangbn/trackformer-main/src/trackformer/models/ops/src/cpu/ms_deform_attn_cpu.o.d -pthread -B /home/zhangbn/anaconda3/envs/trackformer_env/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/zhangbn/trackformer-main/src/trackformer/models/ops/src -I/home/zhangbn/anaconda3/envs/trackformer_env/lib/python3.7/site-packages/torch/include -I/home/zhangbn/anaconda3/envs/trackformer_env/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/zhangbn/anaconda3/envs/trackformer_env/lib/python3.7/site-packages/torch/include/TH -I/home/zhangbn/anaconda3/envs/trackformer_env/lib/python3.7/site-packages/torch/include/THC -I:/usr/local/cuda/include -I/home/zhangbn/anaconda3/envs/trackformer_env/include/python3.7m -c -c /home/zhangbn/trackformer-main/src/trackformer/models/ops/src/cpu/ms_deform_attn_cpu.cpp -o /home/zhangbn/trackformer-main/src/trackformer/models/ops/temp.linux-x86_64-cpython-37/home/zhangbn/trackformer-main/src/trackformer/models/ops/src/cpu/ms_deform_attn_cpu.o -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=MultiScaleDeformableAttention -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
In file included from /home/zhangbn/trackformer-main/src/trackformer/models/ops/src/cpu/ms_deform_attn_cpu.cpp:4:
/home/zhangbn/anaconda3/envs/trackformer_env/lib/python3.7/site-packages/torch/include/ATen/cuda/CUDAContext.h:5:10: fatal error: cuda_runtime_api.h: 没有那个文件或目录
5 | #include <cuda_runtime_api.h>
| ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
File "/home/zhangbn/anaconda3/envs/trackformer_env/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1400, in _run_ninja_build
check=True)
File "/home/zhangbn/anaconda3/envs/trackformer_env/lib/python3.7/subprocess.py", line 512, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.
1.2解决办法
export CUDA_HOME=/usr/local/cuda
export PATH="/usr/local/cuda-11.8/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PA"
和
export PATH="$PATH:/usr/local/cuda-11.8/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PA:/usr/local/cuda-11.8/lib64"
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
的区别~~
第一种:Linux环境变量在扫描的时候首先扫描 /usr/local/cuda-11.1/bin文件夹下的 nvcc。
第二种:Linux环境变量在扫描的时候首先扫描 /usr/bin 文件下的 nvcc ,如果扫描不到才会继续扫描/usr/local/cuda-11.1/bin 文件夹下的 nvcc。在设置时使用第一种方式添加到bashrc,并source更新。
1.3结果
Installed /home/zhangbn/anaconda3/envs/trackformer_env/lib/python3.7/site-packages/MultiScaleDeformableAttention-1.0-py3.7-linux-x86_64.egg
Processing dependencies for MultiScaleDeformableAttention==1.0
Finished processing dependencies for MultiScaleDeformableAttention==1.0
编译成功
2.数据集的下载
按照提供的链接下载即可,添加软链接使用:
ln -s 源文件位置 目标文件位置