blob: 4c45f664f409b73e43d9c40346d08c55d8981710 [file] [log] [blame] [view]
# 概述
你可以在 Amazon Linux, Ubuntu/Debian, OS X, and Windows 操作系统上运行 MXNet,同时 Docker 和云服务(比如AWS)也可以运行。MXNet目前支持 Python, R, Julia Scala 编程语言
配置 MXNet 详细教程:
- [MXNet with Docker](./docker_setup_zh.md)
- [云服务器(AWS AMI)安装](./cloud_setup_zh.md)
- [Ubuntu安装](./ubuntu_setup_zh.md)
- [Amazon Linux安装](./amazonlinux_setup_zh.md)
- [OS X (Mac)安装](./osx_setup_zh.md)
- [Windows安装](./windows_setup_zh.md)
本文还包含如下:
- [MXNet 设备要求](#设备要求)
- [常见安装问题](#常见安装问题)
- [编译依赖库](#编译依赖库)
如果你在安装中碰到问题,并在在[常见安装问题](#常见安装问题)中找不到解决办法,可以在 [mxnet/issues](https://github.com/dmlc/mxnet/issues) 发起提问.如果你可以解决这个问题,可以发起 pull request。细节可以参考 [contribution guidelines](http://mxnet.io/community/index.html).
# 设备要求
这里列出了运行 MXNet 的基本要求、在 GPU 上运行的要求、计算机视觉和图像增强的要求。
**注意:** 配置所有基本(仅 CPU)要求在各自的操作系统安装指南中已经说明。这里只提供给配置交替依赖(alternate dependencies)(GPU/Intel MKL 等等..)和实验的高级用户.
## 最低要求
你必须具备如下条件:
- 一个支持 C++ 11 的编译器。此编译器用来编译 MXNet 的源码。支持的编译器如下:
* [G++ (4.8 or later)](https://gcc.gnu.org/gcc-4.8/)
* [Clang](http://clang.llvm.org/)
- 一个 [BLAS](https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) (Basic Linear Algebra Subprograms) 库。BLAS 库包含了处理向量和矩阵运算的标准编译模块。你需要 BLAS 库来处理线性代数运算。支持的 BLAS 库包含如下:
* [libblas](http://www.netlib.org/blas/)
* [openblas](http://www.openblas.net/)
* [Intel MKL](https://software.intel.com/en-us/node/528497)
- [Graphviz](http://www.graphviz.org/) 用来查看图像.
- [Jupyter Notebook](http://jupyter.readthedocs.io/en/latest/) 用来运行例子和教程.
## 使用 GPU 的要求
* 一个计算能力(Compute Capability)2.0及以上的 GPU。计算能力(Compute Capability)是 CUDA 硬件的特性。每种计算能力的详细特性可以参考列表 [CUDA Version features and specifications](https://en.wikipedia.org/wiki/CUDA#Version_features_and_specifications)。 NVIDIA GPU 支持的特性,可以参考列表:[CUDA GPUs](https://developer.nvidia.com/cuda-gpus).
* [CUDA工具包](https://developer.nvidia.com/cuda-toolkit) 7.0 及以上。CUDA 工具包是一个可以让 MXNet 运行在 NVIDIA GPU 上的环境,它包含了一个编译器,一个数学库和一个调试工具。参考 [CUDA Toolkit download page](https://developer.nvidia.com/cuda-toolkit) 下载最新版。
* CuDNN (CUDA Deep Neural Network) 库。CuDNN 库提供调节底层GPU性能的方法,用来调节 GPU 的计算能力。参考 [CUDA Deep Neural Network](https://developer.nvidia.com/cudnn) 下载最新版。
## 计算机视觉和图像增强的要求
如果你需要支持计算机视觉和图像增强,需要安装 [OpenCV](http://opencv.org/).Open Source Computer Vision (OpenCV)库提供了计算机视觉和图像增强所需要的功能,详细介绍参考 [OpenCV](https://en.wikipedia.org/wiki/OpenCV).
# 编译依赖库
这里介绍如何从源码编译 MXNet 的依赖库。这个方法在两种特殊环境中很有用:
- 如果你的服务器正在使用较早版本的 Linux,依赖的包已经找不到,或者 Yum apt-get 不能安装新版本。
- 如果你没有 root 权限来安装依赖包。你需要把安装目录从 /usr/local 移动到有权限的目录下。下面的例子是使用 ${HOME} 目录。
## 从源码编译 GCC
你需要 32-bit libc 库,来编译 GNU Complier Collection (GCC)。
1. 根据操作系统选择一条命令来安装 libc:
```bash
sudo apt-get install libc6-dev-i386 # In Ubuntu
sudo yum install glibc-devel.i686 # In RHEL (Red Hat Linux)
sudo yum install glibc-devel.i386 # In CentOS 5.8
sudo yum install glibc-devel.i686 # In CentOS 6/7
```
2. 通过下面的命令下载 GCC 源码:
```bash
wget http://mirrors.concertpass.com/gcc/releases/gcc-4.8.5/gcc-4.8.5.tar.gz
tar -zxf gcc-4.8.5.tar.gz
cd gcc-4.8.5
./contrib/download_prerequisites
```
3. 通过下面命令编译 GCC:
```bash
mkdir release && cd release
../configure --prefix=/usr/local --enable-languages=c,c++
make -j10
sudo make install
```
4. 将库路径添加到 ```~/.bashrc```:
```bash
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib64
```
## 编译 OpenCV
你需要 ```cmake```库来编译 OpenCV
* 如果你没有 cmake 或者 cmake 版本早于 3.6.1(比如 RHEL 默认的 cmake 版本),通过下面的命令来安装新版 cmake:
```bash
wget https://cmake.org/files/v3.6/cmake-3.6.1-Linux-x86_64.tar.gz
tar -zxvf cmake-3.6.1-Linux-x86_64.tar.gz
alias cmake="cmake-3.6.1-Linux-x86_64/bin/cmake"
```
* 通过下面命令下载 OpenCV 源码:
```bash
wget https://codeload.github.com/opencv/opencv/zip/2.4.13
unzip 2.4.13
cd opencv-2.4.13
mkdir release
cd release/
```
* 编译 openCV。下面的命令可以编译不支持 GPU openCV,这可能意味着 MXNet 程序在 GPU 上运行会比较慢。它还可能发出警告的 1394 功能
```bash
cmake -D BUILD_opencv_gpu=OFF -D WITH_CUDA=OFF -D WITH_1394=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8
sudo make install
```
* 将库路径添加到 ```~/.bashrc```:
```bash
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/
```
# 常见安装问题
这里介绍常见安装问题的解决办吧
## 普通
**消息:** ImportError: No module named _graphviz
**原因:** Graphviz 未安装.
**解决:** Mac 上,你可以通过下面命令在安装 Graphviz
```bash
brew install graphviz
```
或者使用 pip
```bash
brew install python
pip install graphviz
```
**消息:** RuntimeError: failed to execute ['dot', '-Tsvg'], make sure the Graphviz executables are on your systems' path
**原因:** Graphviz 的可执行(库)路径不再当前系统的 path 中,程序无法使用 Graphviz 绘制图像
**解决:** 将 Graphviz 可执行(库)路径添加到系统 path 中。在 Mac/Linux 上,Graphviz 通常安装在 - ```/usr/local/lib/graphviz/``` or ```/usr/lib/graphviz/``` or ```/usr/lib64/graphviz/``` and on Windows - ```C:\Program Files (x86)\Graphviz2.38\bin```.
**注意** 如果你使用 Jupyter notebook,可能需要重启 kernel 来刷新系统 path。
## Mac OS X 错误消息
**消息:** link error ld: library not found for -lgomp
**原因:** OpenMP 不在系统库 path 中.
**解决:** 将 OpenMP 添加的系统库 path 中。:
* 用下面命令创建定位数据库(locate database):
```bash
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
```
* 用下面命令定位 OpenMP 库:
```bash
locate libgomp.dylib
```
* 将 OpenMP 添加到系统库 path 中, 用上一条命令的输出结果替换下面命令中的 ```path1``` :
```bash
ln -s path1 /usr/local/lib/libgomp.dylib
```
* 用下面的命令编译你刚刚的修改:
```bash
make -j$(sysctl -n hw.ncpu)
```
## R 错误消息
**消息** Unable to load mxnet after enabling CUDA
**解决:** 如果在安装时你打开了 CUDA 功能,但是不能加载 mxnet。将这些行添加到你的```$RHOME/etc/ldpaths``` 环境变量中:
```bash
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
```
**注意:** R 中可以通过 ```R.home()``` 命令来查找 $RHOME 环境变量.
# 下一步
* [教程](http://mxnet.io/tutorials/index.html)
* [如何使用](http://mxnet.io/how_to/index.html)
* [架构设计](http://mxnet.io/architecture/index.html)