Skip to content

Windows 11 下编译 MSDeformAttnFunction 的详细指南

一、安装必要的 Python 包

确保安装以下 Python 包以支持项目运行:

  • torch
  • torchaudio
  • torchvision
  • opencv
  • pandas
  • cython

可以通过 pip 命令安装这些包:

pip install torch torchaudio torchvision opencv-python pandas cython

二、配置 C++ 编译环境

1. 选择合适的 Visual Studio 版本

推荐使用 Visual Studio 2019,尽管 Visual Studio 2022 也可用,但 Visual Studio 2019 在此场景下更为稳定。由于微软官网可能只提供 Visual Studio 2022 下载,Visual Studio 2019 可从其他可靠渠道获取,例如百度网盘(需确保下载源的可靠性)。

2. 安装 Visual Studio 2019 组件

在安装 Visual Studio 2019 时,勾选以下组件:

  • 使用 C++ 的桌面开发:这是基础组件,用于支持 C++ 桌面应用程序开发。
  • 适用于 v142 的 C++ Clang-dl 生成工具 (x64):提供 Clang 编译器工具链,确保与项目要求的编译工具兼容。
  • 其他 MSVC 相关选项:勾选其他与 MSVC(Microsoft Visual C++)相关的选项以增强环境的完整性。

3. 配置环境变量

添加路径变量

在系统的环境变量中添加以下路径,确保路径准确无误:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64

验证编译器安装

打开新的终端,输入以下命令以验证编译器是否正确安装:

cl

若成功,将显示编译器的版本信息。

配置其他环境变量

添加 INCLUDELIB 环境变量以指定头文件和库文件路径:

  • INCLUDE 变量:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\cppwinrt;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\winrt;
  • LIB 变量:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt_enclave\x64;

4. 验证环境配置

创建一个简单的 C++ 文件(如 test.cpp)以验证环境是否配置正确:

#include <iostream>
int main() {
    std::cout << "Hello World" << std::endl;
    return 0;
}

在终端中运行以下命令进行编译:

cl test.cpp

若编译成功,将生成 test.objtest.exe 文件。

三、编译 MSDeformAttnFunction

进入项目目录

进入 setup.py 所在目录:

cd \Deformable-DETR\models\ops

运行安装脚本

执行以下命令以编译和安装 MSDeformAttnFunction:

python setup.py build install

此过程可能输出大量信息,耐心等待直至完成。

测试安装

运行测试脚本验证安装是否成功:

python test.py

若出现显存不足的报错,可根据实际需求调整显存配置。

四、注意事项

  1. CUDA 和 cuDNN 配置:确保系统中安装了 CUDA 和 cuDNN,而不仅仅是虚拟环境。因为 setup.py 使用系统环境变量 CUDA_HOME 来判断 CUDA 是否可用。若仅在虚拟环境中安装 CUDA 和 cuDNN,CUDA_HOME 的值可能为 None,导致编译失败。

  2. 参考文档:如遇问题,可参考相关博客或文档以获取更多解决方案。例如,CSDN 博客中有关于 Windows 配置 MultiScaleDeformableAttention 的详细记录,提供额外的指导和建议。

Ref

https://zhuanlan.zhihu.com/p/3559139990