Shortcuts

从源码编译 MMCV

在 Linux 或者 macOS 上编译 MMCV

克隆算法库

git clone https://github.com/open-mmlab/mmcv.git
cd mmcv

建议安装 ninja 以加快编译速度

pip install -r requirements/optional.txt

你可以安装 lite 版本

pip install -e .

也可以安装 full 版本

MMCV_WITH_OPS=1 pip install -e .

如果是在 macOS 上编译,则需要在安装命令前添加一些环境变量

CC=clang CXX=clang++ CFLAGS='-stdlib=libc++'

例如

CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' MMCV_WITH_OPS=1 pip install -e .

注解

如果你打算使用 opencv-python-headless 而不是 opencv-python,例如在一个很小的容器环境或者没有图形用户界面的服务器中,你可以先安装 opencv-python-headless,这样在安装 mmcv 依赖的过程中会跳过 opencv-python

在 Windows 上编译 MMCV

在 Windows 上编译 MMCV 比 Linux 复杂,本节将一步步介绍如何在 Windows 上编译 MMCV。

依赖项

请首先安装以下的依赖项:

  • Git:安装期间,请选择 add git to Path

  • Visual Studio Community 2019:用于编译 C++ 和 CUDA 代码

  • Miniconda:包管理工具

  • CUDA 10.2:如果只需要 CPU 版本可以不安装 CUDA,安装CUDA时,可根据需要进行自定义安装。如果已经安装新版本的显卡驱动,建议取消驱动程序的安装

注解

您需要知道如何在 Windows 上设置变量环境,尤其是 “PATH” 的设置,以下安装过程都会用到。

设置 Python 环境

  1. 从 Windows 菜单启动 Anaconda 命令行

注解

如 Miniconda 安装程序建议,不要使用原始的 cmd.exe 或是 powershell.exe。命令行有两个版本,一个基于 PowerShell,一个基于传统的 cmd.exe。请注意以下说明都是使用的基于 PowerShell

  1. 创建一个新的 Conda 环境

    conda create --name mmcv python=3.7  # 经测试,3.6, 3.7, 3.8 也能通过
    conda activate mmcv  # 确保做任何操作前先激活环境
    
  2. 安装 PyTorch 时,可以根据需要安装支持 CUDA 或不支持 CUDA 的版本

    # CUDA version
    conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
    # CPU version
    conda install pytorch torchvision cpuonly -c pytorch
    
  3. 准备 MMCV 源代码

    git clone https://github.com/open-mmlab/mmcv.git
    cd mmcv
    
  4. 安装所需 Python 依赖包

    pip3 install -r requirements/runtime.txt
    
  5. 建议安装 ninja 以加快编译速度

    pip install -r requirements/optional.txt
    

编译与安装 MMCV

MMCV 有三种安装的模式:

  1. Lite 版本(不包含算子)

    这种方式下,没有算子被编译,这种模式的 mmcv 是原生的 python 包

  2. Full 版本(只包含 CPU 算子)

    编译 CPU 算子,但只有 x86 将会被编译,并且编译版本只能在 CPU only 情况下运行

  3. Full 版本(既包含 CPU 算子,又包含 CUDA 算子)

    同时编译 CPU 和 CUDA 算子,ops 模块的 x86 与 CUDA 的代码都可以被编译。同时编译的版本可以在 CUDA 上调用 GPU

通用步骤

  1. 设置 MSVC 编译器

    设置环境变量。添加 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x64PATH,则 cl.exe 可以在命令行中运行,如下所示。

    (base) PS C:\Users\xxx> cl
    Microsoft (R) C/C++ Optimizing  Compiler Version 19.27.29111 for x64
    Copyright (C) Microsoft Corporation.   All rights reserved.
    
    usage: cl [ option... ] filename... [ / link linkoption... ]
    

    为了兼容性,我们使用 x86-hosted 以及 x64-targeted 版本,即路径中的 Hostx86\x64

    因为 PyTorch 将解析 cl.exe 的输出以检查其版本,只有 utf-8 将会被识别,你可能需要将系统语言更改为英语。控制面板 -> 地区-> 管理-> 非 Unicode 来进行语言转换。

安装方式一:Lite version(不包含算子)

在完成上述的公共步骤后,从菜单打开 Anaconda 命令框,输入以下命令

# 激活环境
conda activate mmcv
# 切换到 mmcv 根目录
cd mmcv
# 安装
python setup.py develop
# 检查是否安装成功
pip list

安装方式二:Full version(只编译 CPU 算子)

  1. 完成上述的公共步骤

  2. 设置环境变量

    $env:MMCV_WITH_OPS = 1
    $env:MAX_JOBS = 8  # 根据你可用CPU以及内存量进行设置
    
  3. 编译安装

    conda activate mmcv  # 激活环境
    cd mmcv  # 改变路径
    python setup.py build_ext  # 如果成功, cl 将被启动用于编译算子
    python setup.py develop  # 安装
    pip list  # 检查是否安装成功
    

安装方式三:Full version(既编译 CPU 算子又编译 CUDA 算子)

  1. 完成上述的公共步骤

  2. 设置环境变量

    $env:MMCV_WITH_OPS = 1
    $env:MAX_JOBS = 8  # 根据你可用CPU以及内存量进行设置
    
  3. 检查 CUDA_PATH 或者 CUDA_HOME 环境变量已经存在在 envs 之中

    (base) PS C:\Users\WRH> ls env:
    
    Name                           Value
    ----                           -----
    CUDA_PATH                      C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
    CUDA_PATH_V10_1                C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
    CUDA_PATH_V10_2                C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
    

    如果没有,你可以按照下面的步骤设置

    $env:CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2"
    # 或者
    $env:CUDA_HOME = $env:CUDA_PATH_V10_2  # CUDA_PATH_V10_2 已经在环境变量中
    
  4. 设置 CUDA 的目标架构

    $env:TORCH_CUDA_ARCH_LIST="6.1" # 支持 GTX 1080
    # 或者用所有支持的版本,但可能会变得很慢
    $env:TORCH_CUDA_ARCH_LIST="3.5 3.7 5.0 5.2 6.0 6.1 7.0 7.5"
    

注解

我们可以在 here 查看 GPU 的计算能力

  1. 编译安装

    $env:MMCV_WITH_OPS = 1
    $env:MAX_JOBS = 8 # 根据你可用CPU以及内存量进行设置
    conda activate mmcv # 激活环境
    cd mmcv  # 改变路径
    python setup.py build_ext  # 如果成功, cl 将被启动用于编译算子
    python setup.py develop # 安装
    pip list # 检查是否安装成功
    

注解

如果你的 PyTorch 版本是 1.6.0,你可能会遇到一些这个 issue 提到的错误,则可以参考这个 pull request 修改 本地环境的 PyTorch 源代码

如果编译安装 mmcv 的过程中遇到了问题,你也许可以在 Frequently Asked Question 找到解决方法

Read the Docs v: v1.4.4
Versions
latest
stable
v1.4.4
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.3.18
v1.3.17
v1.3.16
v1.3.15
v1.3.14
v1.3.13
Downloads
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.