GPU集群环境(CentOS 7.4)下NVbio的编译安装

限于喜欢 提交于 2020-10-06 07:08:15

0x01 环境

10节点CPU,GPU混合集群。其中四个GPU节点,使用Tesla P100。 基础操作系统为centos 7.4 x86_64。cuda 10.2,anaconda 4.3。

0x02 需求

在GPU节点上编译安装nvbio。

NVBIO是一款基于C++框架的GPU加速库,其能够对短和长读一致性进行>高吞吐量的序列分析,并且其模块库中包含数据结构、算法和使用的应用程序。通过NVBIO可以在CPU-GPU 和CPU-only上建立复杂的计算基因组学。

  1. https://developer.nvidia.com/nvbio
  2. https://github.com/NVlabs/nvbio

0x03 问题

从github上clone最新代码。 nvbio使用cmake编译,开始按文档进行,出错。

  1. ... identifier __float2half_rn" is undefined ...
  2. ... cuda - fatal error: cub/cub.cuh: No such file or directory ...
mkdir build
cd build
cmake ..
make -j8

0x04 原因

后来仔细检查了一下。

  1. CentOS 上GCC版本太旧,4.8.3,不支持c++11规范。
  2. 缺少cub库。

其他cmake参数:

-DGPU_ARCHITECTURE=sm_XX - default NVBIO will use sm_35.
-DCMAKE_BUILD_TYPE=Debug

0x05 解决办法

  1. 安装GCC8.3
#使用yum安装
sudo yum install centos-release-scl-rh
sudo yum install devtoolset-8-build
sudo yum install devtoolset-8-gdb
sudo yum install devtoolset-8-gcc devtoolset-8-gcc-c++
sudo source /opt/rh/devtoolset-8/enable
  1. 下载cub
https://github.com/NVlabs/cub ,放到cuda/include下。

再次编译,正常。

0x06 参考

  1. http://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
  2. https://docs.nvidia.com/cuda/archive/10.2/cuda-installation-guide-linux/index.html
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!