admin管理员组文章数量:1439694
【教程】编译运行Gunrock
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~
编译这个库真的是非常艰难,官方给的教程实在简单,实际中遇到很多问题。 我已爬坑,下面的代码只需要挨个复制即可,已测试通过。
我的环境:
- gcc、g++:8.4
- cuda:11.7
- cmake:3.29
开始编译
1、先下载仓库。
代码语言:javascript代码运行次数:0运行复制cd ~
git clone --recursive .git
cd gunrock
mkdir build && cd build
2、升级cmake,太低版本会报错。
代码语言:javascript代码运行次数:0运行复制# 进入临时目录
cd /tmp
# 下载最新版 CMake(或改成你想要的版本)
wget .29.2/cmake-3.29.2-linux-x86_64.sh
# 添加执行权限
chmod +x cmake-3.29.2-linux-x86_64.sh
# 安装(比如安装到 /opt/cmake)
sudo mkdir -p /opt/cmake
sudo ./cmake-3.29.2-linux-x86_64.sh --prefix=/opt/cmake --skip-license
# 添加到环境变量(临时生效)
export PATH=/opt/cmake/bin:$PATH
# 查看版本确认
cmake --version
cd ~/gunrock/build
3、更新gcc、g++版本为8.x,太高的会报错。
代码语言:javascript代码运行次数:0运行复制# 添加 gcc/g++ 版本到 alternatives 系统
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 80
# 选择默认 gcc
sudo update-alternatives --config gcc
# 选择默认 g++
sudo update-alternatives --config g++
# 验证版本
gcc --version
g++ --version
4、手动下载cub,默认缺失的。
代码语言:javascript代码运行次数:0运行复制cd ~/gunrock/externals
git clone .git
5、手动下载libcudacxx,默认缺失的。
代码语言:javascript代码运行次数:0运行复制cd ~/gunrock/externals
git clone .git
6、手动替换par_nosync,cuda11.7已经改了,不然会报错。
cd ~/gunrock/build
find ../include ../examples -type f -name "*.cuh" -o -name "*.cu" -o -name "*.hxx" | xargs sed -i 's/thrust::cuda::par_nosync/thrust::cuda::par/g'
7、现在终于可以编译了。
代码语言:javascript代码运行次数:0运行复制cd ~/gunrock/build
rm -rf *
cmake .. \
-DCMAKE_C_COMPILER=gcc-8 \
-DCMAKE_CXX_COMPILER=g++-8 \
-DCMAKE_CUDA_STANDARD=17 \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CUDA_FLAGS="--expt-extended-lambda \
-I${PWD}/../externals/cub \
-I${PWD}/../externals/libcudacxx/include"
make sssp
# 如果要编译所有的例子:
# make -j$(nproc)
8、测试运行示例。注意要加个参数-m,官方示例没加。
代码语言:javascript代码运行次数:0运行复制bin/sssp -m ../datasets/chesapeake/chesapeake.mtx
本文标签: 教程编译运行Gunrock
版权声明:本文标题:【教程】编译运行Gunrock 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1747633062a2733430.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论