Pytorch-CUDA从入门到放弃(一)

在学习如何编写扩展之前我们首先要部署好相关环境,包括开发环境和编译、运行环境。

开发环境各不相同,不再赘述,笔者使用的开发机为MBP,编译机和运行机为Ubuntu服务器,如果没有相关经验建议使用笔者的开发配置

下面是在Ubuntu系统下搭建编译和运行环境,并运行官方DEMO的过程。

下载官方DEMO

使用GIT下载官方DEMO:

git clone https://github.com/pytorch/extension-cpp.git

安装 Python 依赖

C++ 程序与 Python 交互需要使用 pybind11,因此首先安装依赖

# for conda
conda install pytest pybind11
# for pip
# pip install pytest
# pip install pybind11

安装合适版本的GCC

选择版本

使用的GCC版本 < 4.9.0时,可以编译代码,但运行时会出现段错误。

使用的GCC版本 > 6.0.0时,不可以编译。其他情况均可以使用。

由于大部分人的环境为非root,因此需要手动编译。

在安装GCC之前需要先手动安装三个前置依赖,分别是 GMP、MPFR和MPC。

其中MPC依赖MPFR,MPFR依赖GMP,请按以下顺序安装并确认版本信息。

安装 GMP

从中科大下载镜像文件:

wget ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2
# 想要下载其他版本可以浏览 ftp://ftp.gnu.org/gnu/gmp/

解压下载的文件:

tar -xjf gmp-6.1.2.tar.bz2

设置安装目录:

cd gmp-6.1.2
./configure  --prefix=/home/username/gmp/ CFLAGS=-fPIC CXXFLAGS=-fPIC

编译并安装:

make -j8
make install

安装 MPFR

从中科大下载镜像文件:

wget ftp://ftp.gnu.org/gnu/mpfr/mpfr-4.0.1.zip
# 想要下载其他版本可以浏览 ftp://ftp.gnu.org/gnu/mpfr/

解压下载的文件:

unzip mpfr-4.0.1.zip

设置安装目录:

cd mpfr-4.0.1
./configure --prefix=/home/username/gmp/mpfr/ --with-gmp=/home/username/gmp/ CFLAGS=-fPIC CXXFLAGS=-fPIC

编译并安装:

make -j8
make install

安装 MPC

从中科大下载镜像文件:

wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
# 想要下载其他版本可以浏览 ftp://ftp.gnu.org/gnu/mpc/

解压下载的文件:

tar -zxvf mpc-1.1.0.tar.gz

设置安装目录:

cd mpc-1.1.0
./configure --prefix=/home/username/mpc/ --with-gmp=/home/username/gmp/ --with-mpfr=/home/username/gmp/mpfr/ CFLAGS=-fPIC CXXFLAGS=-fPIC

编译并安装:

make -j8
make install

配置环境变量

这里不建议使用临时环境变量,一旦忘记设置就会导致找不到相关库。我们修改 .bashrc 文件:

vim .bashrc
==== 我是文件内容 ====
export LD_LIBRARY_PATH=/home/username/gmp/lib:/home/username/mpfr/lib:/home/username/mpc/lib/:$LD_LIBRARY_PATH
# 顺便把还没安装的 gcc 也添加进来
export PATH=/home/username/gcc_compile/bin/:$PATH
==== 我是文件内容 ====
source .bashrc
# 重启 shell

安装 GCC

从中科大下载镜像文件:

wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.gz
# 想要下载其他版本可以浏览 ftp://ftp.gnu.org/gnu/gcc/

解压下载的文件:

tar -zxvf gcc-5.5.0.tar.gz

设置安装目录:

cd gcc-5.5.0
./configure --prefix=/home/username/gcc_compile --enable-threads=posix --disable-checking --disable-multilib --enable-plugin --enable-lto --enable-languages=c,c++,fortran --with-gmp=/home/username/gmp/ --with-mpfr=/home/username/mpfr/ --with-mpc=/home/username/mpc/

编译并安装:

make -j12
make install

确认安装成功:

gcc -v

编译运行CPP/CUDA

进入项目目录:

cd extension-cpp

进入CPP/CUDA目录:

cd cpp
# 如果想要编译 cuda 的话,cd cuda

编译并导入:

python setup.py install
# 如果编译过想重新编译记得删除 /build/ /dist/ 文件夹

运行测试:

cd extension-cpp
python benchmark.py cpp

    原文作者:纵横
    原文地址: https://zhuanlan.zhihu.com/p/46991210
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞