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上建立复杂的计算基因组学。
0x03 问题
从github上clone最新代码。 nvbio使用cmake编译,开始按文档进行,出错。
- ... identifier __float2half_rn" is undefined ...
- ... cuda - fatal error: cub/cub.cuh: No such file or directory ...
mkdir build
cd build
cmake ..
make -j8
0x04 原因
后来仔细检查了一下。
- CentOS 上GCC版本太旧,4.8.3,不支持c++11规范。
- 缺少cub库。
其他cmake参数:
-DGPU_ARCHITECTURE=sm_XX - default NVBIO will use sm_35.
-DCMAKE_BUILD_TYPE=Debug
0x05 解决办法
- 安装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
- 下载cub
https://github.com/NVlabs/cub ,放到cuda/include下。
再次编译,正常。
0x06 参考
- http://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
- https://docs.nvidia.com/cuda/archive/10.2/cuda-installation-guide-linux/index.html
来源:oschina
链接:https://my.oschina.net/hand/blog/4523453