GPUCompact

July 27, 2026 · View on GitHub

A disgustingly fast GPU-based archiver.


Benchmarks on GeForce RTX 4090 for the Silesia corpus

Profile Summary

ProfileComp. Wall (MB/s)Comp. GPU (MB/s)Decomp. Wall (MB/s)Decomp. GPU (MB/s)Ratio
best_speed~287.6~331.7~697.5~919.13.02x
speed~252.0~289.4~624.2~833.83.25x
balanced (default)~254.3~290.4~641.8~868.53.35x
ratio~185.3~201.5~420.1~507.03.59x
best_ratio~113.8~123.6~256.2~294.93.71x
Detailed results

Default Profile (balanced) — Overall Ratio: 3.35x

FilenameSize (MB)RatioComp. Wall (MB/s)Comp. GPU (MB/s)Decomp. Wall (MB/s)Decomp. GPU (MB/s)SHA
dickens9.723.18x216.92244.97602.81451.24PASS
mozilla48.852.55x216.81226.67771.87869.72PASS
mr9.513.36x193.07216.94573.09842.64PASS
nci32.0012.70x264.79279.17958.121146.01PASS
ooffice5.871.95x188.80222.12396.06815.79PASS
osdb9.623.09x267.61317.30548.77795.47PASS
reymont6.324.40x269.91335.17519.18914.15PASS
samba20.613.95x216.99231.51771.34949.87PASS
sao6.921.29x348.87471.66426.09714.34PASS
webster39.544.17x344.14367.82859.20995.14PASS
x-ray8.081.74x286.27351.85485.88735.63PASS
xml5.108.85x203.95245.79460.28976.97PASS

best_speed Profile — Overall Ratio: 3.02x

FilenameSize (MB)RatioComp. Wall (MB/s)Comp. GPU (MB/s)Decomp. Wall (MB/s)Decomp. GPU (MB/s)SHA
dickens9.722.87x227.13258.73624.76482.78PASS
mozilla48.852.33x237.18249.73870.861000.18PASS
mr9.512.98x215.44243.67641.961004.61PASS
nci32.009.65x270.28285.35992.171190.32PASS
ooffice5.871.81x210.45258.29453.91849.72PASS
osdb9.622.79x336.58408.87598.24904.65PASS
reymont6.323.80x303.52387.68541.241022.56PASS
samba20.613.53x229.22246.49820.251059.70PASS
sao6.921.23x387.50552.71448.80797.63PASS
webster39.543.69x360.94390.44863.21986.59PASS
x-ray8.081.65x342.39442.78521.38811.18PASS
xml5.107.29x208.62257.42440.18923.03PASS

best_ratio Profile — Overall Ratio: 3.71x

FilenameSize (MB)RatioComp. Wall (MB/s)Comp. GPU (MB/s)Decomp. Wall (MB/s)Decomp. GPU (MB/s)SHA
dickens9.723.59x136.77154.26258.37186.14PASS
mozilla48.852.73x89.8192.02265.64214.22PASS
mr9.513.72x69.6673.91190.40216.94PASS
nci32.0019.33x189.82200.38471.57522.67PASS
ooffice5.872.06x75.4182.75197.01269.48PASS
osdb9.623.42x81.9387.70195.35224.81PASS
reymont6.325.17x99.44111.34228.85308.10PASS
samba20.614.42x118.36124.88317.80355.57PASS
sao6.921.32x102.10115.08185.40249.04PASS
webster39.544.90x162.84170.02364.85389.23PASS
x-ray8.081.85x82.7790.32178.99210.15PASS
xml5.1011.18x138.09163.96267.30422.53PASS

How to Build

Prerequisites

  • NVIDIA CUDA Toolkit 13.3 (nvcc)
  • Node.js 24 & npm
  • Rust Toolchain (2024 edition support)
  • Visual Studio 2022 (C++ Desktop Development workload)

Build Desktop GUI & Setup Installer

# Install frontend dependencies
npm install

# Build app, native CUDA DLL, CLI binary, and NSIS installer
npm run tauri build

Artifacts generated:

  • NSIS Setup Installer: src-tauri/target/release/bundle/nsis/GPUCompact_1.0.0_x64-setup.exe
  • Desktop Executable: src-tauri/target/release/gpucompact-app.exe
  • CLI Executable: src-tauri/target/release/gpucompact.exe
  • Native Shared Library: src-tauri/target/release/gpucompact_native.dll

Build Native CLI Tool Only

Note: On Windows, run raw nvcc commands inside x64 Native Tools Command Prompt for VS 2022 so cl.exe is in your system PATH.

cd native
nvcc -O3 -std=c++17 --threads 32 -arch=sm_89 --use_fast_math -extra-device-vectorization -Xptxas -O3 -Xptxas -dlcm=ca -Xcompiler "/O2,/Ob3,/arch:AVX2,/fp:fast,/MP,/Zc:preprocessor,/Zc:__cplusplus" -Xlinker "/OPT:REF,/OPT:ICF" -o gpucompact.exe main.cpp archive_reader.cpp archive_writer.cpp benchmark.cpp sha256.cpp context.cu kernels.cu

Disclaimer

This is a personal project I made because I was bored. I take no responsibility for data loss, archive corruption, melted GPUs, or blown up SSDs because they couldn't keep up with the speed. It might or might not work with your graphics card, it's only been tested on an RTX 4090. The project contains AI-assisted code and comes without any form of warranty.

Also, if you are a corporation, the repository is licensed under AGPLv3. Incorporating, bundling, or hosting this codebase inside proprietary, closed-source software or services without open-sourcing your surrounding stack under AGPLv3 is strictly prohibited by law. If you want to use this in a closed-source setup without copyleft obligations, you need my explicit, written permission and a separate commercial license. If you are just an individual developer testing or forking cool open-source projects, feel free to do whatever you want with it under the terms of the AGPLv3.