上面的原理看的有点头秃,还是来讲讲如何快速上手ndzip
吧!
点击进入 ndzip 的地址,git 下项目到本地。
环境搭建
环境需求
运行 ndzip
需要以下环境,Catch2 可根据自己是否需要来选择是否安装。
- CMake >= 3.15
- Clang >= 10.0.0
- Linux (我这里用的Ubuntu20)
- Boost >= 1.66
- Catch2 >= 2.13.3 (可选,用于单元测试和微基准测试)
CMake安装
CMake
在Ubuntu软件源中,安装非常简单,执行以下命令即可:
sudo apt install cmake
版本检查(CMake >= 3.1.5):
cmake --version
看到 CMake 版本大于3.1.5
即可。
Clang 安装
Clang
也存在 Ubuntu软件源中,步骤和CMake
差不多,命令如下:
sudo apt install clang
版本检查(Clang >= 10.0.0):
clang --version
可以看到 Clang 版本为 10.0.0
,符合要求
Boost 安装
Boostr
也存在 Ubuntu软件源中,命令如下:
sudo apt-get install libboost-all-dev
版本检查(Boost >= 1.66):
dpkg -S /usr/include/boost/version.hpp
Catch2 添加
Catch2
需要去github上下载编译,命令如下:
git clone https://github.com/catchorg/Catch2.git
cd Catch2
cmake -Bbuild -H. -DBUILD_TESTING=OFF
sudo cmake --build build/ --target install
等待编译添加完即可。
构建
安装 SYCL (废弃,用下个方法)
需要使用 cuda 的使用以下命令安装。
git clone https://github.com/illuhad/hipSYCL
cd hipSYCL
cmake -B build -DCMAKE_INSTALL_PREFIX=../hipSYCL-install -DWITH_CUDA_BACKEND=YES -DCMAKE_BUILD_TYPE=Release
cmake --build build --target install -j
由于我使用的 WSL ,cuda 一直没配置好,就不用GPU了,所以把 DWITH_CUDA_BACKEND
设为NO
。命令如下:
git clone https://github.com/illuhad/hipSYCL
cd hipSYCL
cmake -B build -DCMAKE_INSTALL_PREFIX=../hipSYCL-install -DCMAKE_BUILD_TYPE=Release
cmake --build build --target install -j
中途报了一个错,使用以下命令修复 clang 库:
sudo apt-get install libclang-10-dev
构建SYCL成功:
使用 CUDA + NVCC 构建 ndzip
使用 cuda
,安装 CUDA Toolkit
:
sudo apt-key del 7fa2af80 # 删除旧的GPG密钥,之前装过的要删掉
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
sudo apt-get update
sudo apt-get -y install cuda
使用 CUDA + NVCC 构建 ndzip(自己使用SYCL构建ndzip没跑出来。。。)
cmake -B build -DCMAKE_CUDA_ARCHITECTURES=75 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=native"
cmake --build build -j
完成构建
测试
测试可用
随便压缩个什么,压缩成功。