a. 下载 openmpi 源文件,—> 官网。选择自己想安装的版本,这里选择 4.0.0 版本。
b. 下载 GCC 源文件,—>清华镜像源。选择想要安装的版本,这里选择 7.5.0 版本。
a. 找到 gcc-7.5.0.tar.gz 文件,解压。
tar -zxvf gcc-7.5.0.tar.gz
b. 下载编译所需依赖。
cd gcc-7.5.0
./contrib/download_prerequisites
cd ..
c. 创建 build 目录,进行编译设置。默认安装路径是 /usr/local/,自定义路径使用 --prefix,例如,–prefix=/usr/local/gcc-7.5.0。
mkdir gcc-build
cd gcc-build
../gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
# 自定义安装路径,则:
# ../gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --prefix=/usr/local/gcc-7.5.0
d. 编译。
sudo make -j4
# 使用sudo 避免权限问题编译失败,-j代表进程数。
如果编译顺利,进行 e. 步。
如果出现类似 “sanitizer_internal_defs.h:254:72: error: size of array ‘assertion_failed__1129’ is negative” 的错误,则增加一项 --disable-libsanitizer , 并从 c. 步重新开始。
make clean
cd ..
rm -rf gcc-buiuld
mkdir gcc-build
cd gcc-build
../gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --disable-libsanitizer
sudo make -j4
# 如果自定义路径,记得加上--prefix=/...
如果还有问题,请参考这篇博客,—> 降级gcc6.3.X。
e. 安装。
sudo make install -j4
f. 替换旧的 gcc、g++。
先检查目前的 gcc 版本。
gcc --version
g++ --verison
# gcc表示c编译器,g++表示c++编译器
然后,开始替换。
cd /usr/bin
# 备份旧的gcc、g++
sudo cp gcc gcc.bak
sudo cp g++ g++.bak
# 链接新的gcc
sudo ln -s '/usr/local/bin/gcc' gcc
sudo ln -s '/usr/local/bin/g++' g++
如果自定义路径,则
sudo ln -s '/usr/local/gcc-7.5.0/bin/gcc' gcc
sudo ln -s '/usr/local/gcc-7.5.0/bin/g++' g++
再次检查 gcc 版本。
gcc --version
g++ --verison
如果版本号变成 7.5.0 ,则安装成功。
a. 找到 openmpi-4.0.0.tar.gz 文件,解压。
tar -zxvf openmpi-4.0.0.tar.gz
b. 创建 build 目录,进行编译设置。
mkdir openmpi-build
cd openmpi-build
export CC=/usr/local/bin/gcc
export CXX=/usr/lcoal/bin/g++
../openmpi-4.0.0/configure --prefix=/usr/local/openmpi-4.0.0 --disable-mpi-fortran --enable-mpi-cxx
# --prefix表示自定义安装路径,--disable-mpi-fortran表示不编译fortran语言,如果要使用fortran语言,请去掉该项。
# ../openmpi-4.0.0/configure --prefix=/usr/local/openmpi-4.0.0
# 请注意,默认编译设置只编译c语言和fortran语言,如果要编译c++语言,请加上--enable-mpi-cxx
# ../openmpi-4.0.0/configure --prefix=/usr/local/openmpi-4.0.0 --enable-mpi-cxx
# 还可以自定义各种配置,参考下面命令
# ../openmpi-4.0.0/configure --help| less
c. 编译。
sudo make -j4
d. 安装。
sudo make install -j4
e. 配置环境变量。
vi ~/.bashrc
在文档末尾加入如下代码。OPENMPI 换成你自己的安装路径。
export OPENMPI=/usr/local/openmpi-4.0.0
export PATH=$OPENMPI/bin:$PATH
export LD_LIBRARY_PATH=$OPENMPI/lib:$LD_LIBRARY_PATH
export INCLUDE=$OPENMPI/include:$INCLUDE
export CPATH=$OPENMPI/include:$CPATH
export MANPATH=$OPENMPI/share/man:$MANPATH
刷新系统变量,使修改后的 .bashrc 生效。
source ~/.bashrc
f. 检验安装效果。
which mpirun
若显示正确路径,例如,/usr/local/openmpi-4.0.0/bin/mpirun , 则安装成功。
若安装过程中还有其他问题,请参考 openmpi 官网FAQ。
若要编译 Fortran 语言,可以参考,—>这篇文章,或者官网 FAQ。
其实完全可以参照官网教程进行 pip 安装,—>官网教程。不过使用conda install 或 pip install 的方式安装会自动安装 mpich,而mpich 和 openmpi 有些变量设置是不兼容的。所以下面演示手动从源码编译安装。
到官网下载,—> 官网。选择自己要安装的版本,这里选择 3.1.1 。
a. 安装Cython。mpi4py编译需要用到Cython。
conda install cython
b. 找到 mpi4py-3.1.1.tar.gz 文件,解压。
tar -zxvf mpi4py-3.1.1.tar.gz
cd mpi4py-3.1.1
c. 设置 openmpi 路径。
vi mpi.cfg
找到 [openmpi],修改 mpi_dir 为你自己的 openmpi 安装路径,并对注释掉的那两行进行解注释。
53 # Open MPI example
54 # ----------------
55 [openmpi]
56 mpi_dir = /usr/local/openmpi-4.0.0
57 mpicc = %(mpi_dir)s/bin/mpicc
58 mpicxx = %(mpi_dir)s/bin/mpicxx
59 include_dirs = %(mpi_dir)s/include
60 libraries = mpi
61 library_dirs = %(mpi_dir)s/lib
62 runtime_library_dirs = %(library_dirs)s
d. 编译。
使用 --mpi=… 指定要使用的MPI,这里使用 openmpi 。
python setup.py build --mpi=openmpi
注:编译过程中,可能会有两个 error ,应该是版本兼容性问题,应该不影响使用,不用管。
e. 安装。
使用 --prefix=… 指定 mpi4py 安装路径,不加 --prefix 默认安装到 anaconda安装路径。
python setup.py install --prefix=‘你的conda虚拟环境路径’
torchsparse 项目地址,—>官网。
torchpack 项目地址,—>官网。
a. 下载 torchsprse 源文件,—>官网。这里下载 1.4.0 版本。
b. 下载 sparsehash 源文件,—>官网。这里下载 2.0.4 版本。
c. 下载 torchpack 源文件, —>官网。这里选择 0.3.1 版本。
a. 找到 sparsehash-sparsehash-2.0.4.tar.gz 文件,解压。
tar -zxvf sparsehash-sparsehash-2.0.4.tar.gz
cd sparsehash-sparsehash-2.0.4
b. 编译,安装。可以使用 --prefix 指定安装路径。
export CC=/usr/local/bin/gcc
export CXX=/usr/lcoal/bin/g++
./configure --prefix=/usr/local/sparsehash-2.0.4
sudo make -j4
sudo make install -j4
c. 设置环境变量
vi ~/.bashrc
在文档最后,加入一句。
export CPLUS_INCLUDE_PATH=/usr/local/sparsehash-2.0.4
刷新环境变量。
source ~/.bashrc
a. 找到 torchsparse-1.4.0.tar.gz 文件,解压。
tar -zxvf torchsparse-1.4.0.tar.gz
b. 使用 pip 进行安装。./ 表示安装当前目录本地文件。
pip install ./torchsparse-1.4.0
a. 找到 torchpack-0.3.1.tar.gz 文件,解压。
tar -zxvf torchpack-0.3.1.tar.gz
b. 使用 pip 进行安装。
pip install ./torchpack-0.3.1
如果打不开某一个网址,可以给我发邮件,邮件发给你,—> [email protected] 。
[1] Linux 安装指定版本GCC方法
[2] 降级gcc6.3.X
[3] Open MPI安装使用
[4] Ubuntu 20.04下安装Openmpi
[5] C++ bindings (deprecated)
[6] MPI for Python
[7] torchsparse
[8] torchpack
[9] sparsehash