|
1 | 1 | # GPUZIP |
2 | 2 |
|
3 | | -GPUZIP is a library designed to enhance checkpointing on GPUs by combining data compression and prefetching techniques. It leverages the Revolve checkpoint algorithm and GPU-based data compression to optimize memory utilization and improve computation-to-communication ratios. |
| 3 | +GPUZIP is a library designed to enhance checkpointing on GPUs by combining data compression and prefetching techniques. It leverages the Revolve checkpoint algorithm and GPU-based data compression to optimize memory utilization and enhance the computation-to-communication ratio. |
4 | 4 |
|
5 | 5 | Supported compressors: [NVIDIA Bitcomp](https://developer.nvidia.com/nvcomp), [cuSZp](https://dl.acm.org/doi/10.1145/3581784.3607048), and [cuZFP](https://zfp.readthedocs.io/en/release1.0.1/execution.html#using-cuda). |
6 | 6 |
|
7 | 7 |
|
8 | 8 | ## Tutorials & Documentation |
9 | 9 | - [C++/CUDA Examples](docs/CppCudaExamples.md) - Information of how to include GPUZIP on your C++/CUDA project and how to call its API. |
10 | | -- [Installing cuZFP](docs/InstallingCuZFP.md) - A brief information of how to install cuZFP on the machine to be used by GPUZIP (NVCOMP bitcomp and cuSZp does not need to be manually installed.) |
| 10 | +- [Installing cuZFP](docs/InstallingCuZFP.md) - A brief information on how to install cuZFP on the machine to be used by GPUZIP (NVCOMP bitcomp and cuSZp do not need to be manually installed.) |
11 | 11 | - [GPUZIPy - Python Package](docs/PythonExamples.md) - How to install and use GPUZIPy, a Python wrapper for GPUZIP (Compressor only). |
12 | | -- [Paper (EuroPAR'2024)](https://doi.org/10.1007/978-3-031-69583-4_12) |
| 12 | +- [Conference Paper (GPUZIP 1.0.0) (EuroPAR'2024)](https://doi.org/10.1007/978-3-031-69583-4_12) |
| 13 | +- [Article (GPUZIP 2.0.0) (IJHPCA)](https://doi.org/10.1177/10943420251340794) |
| 14 | +- [Repro Data & Dataset Input Data](https://doi.org/10.25824/redu/KJ9KVA) |
13 | 15 |
|
14 | 16 | ## This Repository Structure |
15 | 17 | ``` |
16 | 18 | - `src/` - Contains the source code for GPUZIP, including the core compression and prefetching algorithms. |
17 | | -- `src/Prefetch` - Prefetching matters -- it can be used independent from `Compressor`. |
| 19 | +- `src/Prefetch` - Prefetching matters -- it can be used independently from `Compressor`. |
18 | 20 | - `src/Prefetch/include` - The folder should be included in your project |
19 | | -- `src/Compressor` - Compression matters -- it can be used independent from `Prefetch`. |
| 21 | +- `src/Compressor` - Compression matters -- it can be used independently from `Prefetch`. |
20 | 22 | - `src/Compressor/include` - The folder should be included in your project |
21 | 23 | - `GPUZIPy/` - Resources for the Python wrapper. |
22 | 24 | - `docs/` - The documentation for this project. |
23 | 25 | ``` |
24 | 26 |
|
25 | 27 | ## Version |
26 | 28 | - [1.0.0](https://github.com/LSC-Unicamp/GPUZIP/tree/1.0.0%2Beuropar24) - Presented at EuroPar 2024. |
27 | | -- [2.0.0](https://github.com/LSC-Unicamp/GPUZIP/tree/2.0.0%2Bunpublished) - Latest version, still unpublished, under review. |
| 29 | +- [2.0.0](https://github.com/LSC-Unicamp/GPUZIP/tree/2.0.0%2Bijhpca) - Latest version, published with IJHPCA article (Published in 2025). |
28 | 30 |
|
29 | 31 | ## Cite |
30 | 32 |
|
| 33 | +### GPUZIP v2.0.0 (Preferable) |
| 34 | + |
| 35 | +> Maltempi T, Rigo S, Pereira M, et al. Checkpointing fine-tuning for accelerating seismic applications in GPUs. The International Journal of High Performance Computing Applications. 2025;0(0). doi:10.1177/10943420251340794 |
| 36 | +
|
| 37 | +```text |
| 38 | +@article{gpuzip2, |
| 39 | +author = {Thiago Maltempi and Sandro Rigo and Marcio Pereira and Hervé Yviquel and Gustavo Leite and Orlando Lee and Jessé Costa and Guido Araujo}, |
| 40 | +title ={Checkpointing fine-tuning for accelerating seismic applications in GPUs}, |
| 41 | +journal = {The International Journal of High Performance Computing Applications}, |
| 42 | +volume = {0}, |
| 43 | +number = {0}, |
| 44 | +pages = {10943420251340794}, |
| 45 | +year = {0}, |
| 46 | +doi = {10.1177/10943420251340794}, |
| 47 | +URL = {https://doi.org/10.1177/10943420251340794}, |
| 48 | +eprint = {https://doi.org/10.1177/10943420251340794}, |
| 49 | +abstract = { High-performance computing (HPC) systems are essential to handle computationally intensive tasks in fields such as physics, climate modeling, and seismic analysis. Reverse Time Migration (RTM), a widely used seismic imaging technique for oil reservoir exploration, exemplifies these challenges, requiring vast amounts of memory and extended computation times. RTM relies on checkpointing to store data during forward wave propagation for reuse in the backward phase. However, traditional checkpoint methods are constrained by costly host-GPU data transfers, which limits performance. GPUZIP v2.0 addresses these bottlenecks with several enhancements over its predecessor: (1) A GPU Checkpoint Cache with a least recently used (LRU) policy enables flexible checkpoint storage configurations and efficient prefetching; (2) A redesigned prefetch algorithm further increases cache hit ratios; and (3) The integration of three distinct checkpointing algorithms provides adaptability for diverse application profiles. These advancements allow fine-tuning of RTM and similar applications, significantly improving performance. The experimental results show that GPUZIP v2.0 achieves speedups of up to 5.12×, surpassing the 3.9× achieved by its previous version. GPUZIP v2.0 provides an effective solution for accelerating memory-intensive HPC applications by reducing data transfer overhead and offering customized checkpoint strategies. GPUZIP is publicly available via GitHub. } |
| 50 | +}a |
| 51 | +``` |
| 52 | + |
| 53 | + |
| 54 | +### GPUZIP v1.0.0 |
31 | 55 | > Thiago Maltempi, Sandro Rigo, Marcio Pereira, Hervé Yviquel, Jessé Costa, and Guido Araujo. 2024. Combining Compression and Prefetching to Improve Checkpointing for Inverse Seismic Problems in GPUs. In Euro-Par 2024: Parallel Processing: 30th European Conference on Parallel and Distributed Processing, Madrid, Spain, August 26–30, 2024, Proceedings, Part III. Springer-Verlag, Berlin, Heidelberg, 167–181. https://doi.org/10.1007/978-3-031-69583-4_12 |
32 | 56 |
|
33 | 57 | ```text |
34 | | -@inproceedings{10.1007/978-3-031-69583-4_12, |
| 58 | +@inproceedings{gpuzip1, |
35 | 59 | author = {Maltempi, Thiago and Rigo, Sandro and Pereira, Marcio and Yviquel, Herv\'{e} and Costa, Jess\'{e} and Araujo, Guido}, |
36 | 60 | title = {Combining Compression and Prefetching to Improve Checkpointing for Inverse Seismic Problems in GPUs}, |
37 | 61 | year = {2024}, |
|
0 commit comments