Research Paper Artifacts
cuSZ-I: High-Fidelity Error-Bounded Lossy Compression for Scientific Data on GPUs
The research paper artifacts serve the reproducting purpose. The artifacts are developed by the paper authors, Jinyang Liu, Jiannan Tian, and Shixun Wu.
- NVIDIA GPU with CUDA 11.3 onward
- cmake 3.18 onward
- C++17 enabled compiler, GCC 9 onward
To build cuSZ-I (cuSZ)
# Example architectures (";" to separate multiple SM versions)
# "80" <- A100; "86" <- A4000; RTX 30 series
# Please also refer to https://github.com/szcompressor/cuSZ/wiki/Build-and-Install for more detailed SM version listing
# Install to [/path/to/install/dir]
git clone https://github.com/Meso272/cusz-I.git cusz-interp
cd cusz-interp && mkdir build && cd build
cmake .. \
-DPSZ_BACKEND=cuda \
-DPSZ_BUILD_EXAMPLES=on \
-DCMAKE_CUDA_ARCHITECTURES="70;80;86" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_COLOR_DIAGNOSTICS=on \
# -DCMAKE_INSTALL_PREFIX=[/path/to/install/dir]
make -j
# make install # uncomment `-DCMAKE_INSTALL_PREFIX=...` to install to system PATH
# `ctest` to perform testing
To build cuZFP
git clone https://github.com/LLNL/zfp.git
cd zfp && mkdir build && cd build
cmake .. \
-DZFP_WITH_CUDA=on \
-DCMAKE_CUDA_ARCHITECTURES="80;86" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=[/path/to/install/dir]
make -j
make install
To build cuSZp
git clone https://github.com/szcompressor/cuSZp.git
cd cuSZp && mkdir build && cd build
cmake .. \
-DCMAKE_CUDA_ARCHITECTURES="80;86" \
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=[/path/to/install/dir]
make -j
make install
Detailed lookup: CUDA GPU architectures (SM version) and representative GPUs.
NVIDIA CUDA architectures and names and representative GPUs are listed below. More details can be found at CUDA GPUs.
SM id | arch. | grade/segment | GPU product example |
---|---|---|---|
60 | Pascal | HPC/ML | P100 |
70 | Volta | HPC/ML | V100 |
75 | Turing | consumer/professional | RTX 20?0, Quadro RTX ?000 |
80 | Ampere | HPC/ML | A100 |
86 | Ampere | consumer/professional | RTX 30?0, RTX A?000 |
89 * |
Ada | consumer/professional | RTX 40?0, RTX ?000 |
90 * |
Hopper | HPC/ML | H100 |
*
as of CUDA 11.8
All mentioned data in the research paper but RTM data are available on
Note that cusz
has been changed for the artifacts by
- changing the binary name to
cuszi
, and - using
spline
as the default predictor (whereaslorenzo
is the default forcusz
)
# run cusz-interpolation using spline predictor
cuszi -t f32 -m r2r -e [ErrorBound] -i [/PATH/TO/DATA] -l [X]x[Y]x[Z] -z --report time
cuszi -i [/PATH/TO/DATA].cusza -x --report time --compare ${CESM}
# run cusz-lorenzo
cuszi -t f32 -m r2r -e [ErrorBound] -i [/PATH/TO/DATA] -l [X]x[Y]x[Z] -z --report time --predictor lorenzo
cuszi -i [/PATH/TO/DATA].cusza -x --report time --compare ${CESM}
# run FZ-GPU
./fz-gpu [/PATH/TO/DATA] [X] [Y] [Z] [ErrorBound]
# run cuSZp (draft)
./cuSZp_gpu_f32_api [/PATH/TO/DATA] REL [ErrorBound]
# run cuzfp (draft)
./zfp -f -i [/PATH/TO/DATA] -3 [Z] [Y] [X] -r [Rate] -x cuda
This R&D is supported by the Exascale Computing Project (ECP), Project Number: 17-SC-20-SC, a collaborative effort of two DOE organizations – the Office of Science and the National Nuclear Security Administration, responsible for the planning and preparation of a capable exascale ecosystem. This repository is based upon work supported by the U.S. Department of Energy, Office of Science, under contract DE-AC02-06CH11357, and also supported by the National Science Foundation under Grants CCF-1617488, CCF-1619253, OAC-2003709, OAC-1948447/2034169, and OAC-2003624/2042084.