-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance difference between cuSZ and SZ #44
Comments
Hi,
cuSZ applies Huffman coding (customized, of multibyte symbols, CPU-SZ the same) after prediction-quantization while CPU-SZ applies Huffman coding + DEFLATE (gzip). By exploiting repeated pattern CPU-SZ achieves higher compression ratio (CR). For example, on some smooth/sparse data fields, CR can go beyond 32x (if float32 as input), while Huffman encoding without pattern finding can only achieve at most 32x by having 1-bit codewords. (Besides, blocking for the purpose of parallelizing creates slight difference.)
If you need observe the highest possible compression ratio (in practice we trade off this with high kernel throughput), here are several ways may help,
- enable gzip and/or nvcomp (pre-alpha, may fail)
cusz -t f32 -m r2r -e 1e-4 -i ./data/ex-cesm-CLDHGH -2 3600 1800 -z --gzip
cusz -t f32 -m r2r -e 1e-4 -i ./data/ex-cesm-CLDHGH -2 3600 1800 -z --nvcomp
cusz -t f32 -m r2r -e 1e-4 -i ./data/ex-cesm-CLDHGH -2 3600 1800 -z --gzip —nvcomp
- simply `tar zcf <cusz-archive>`
Hope this answers your question.
… On May 12, 2021, at 12:33 PM, mawpolaris ***@***.***> wrote:
Hi Team,
Have you observed any significant differences in compression ratio by using SZ and cuSZ? (the same data, error mode and error bound).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Hi Nate, Thank you for your response. That make sense. To clarify, SZ (v2.1+) and cuSZ (current version, version number?)
|
Hi @mawpolaris, For the time being, we can say cuSZ release 0.2.2 onward (as the updates only enhances performance). In general, SZ 2.1 is far more mature than cuSZ in (1) having preprocess, more compression mode (e.g., point-wise) and autotuning, and (2) having Lorenzo predictor and Linear Regression, whereas cuSZ has Lorenzo (we are working on new predictors).
I will also try to update an FAQ to address these problems. |
Hi Team,
Have you observed any significant differences in compression ratio by using SZ and cuSZ? (the same data, error mode and error bound).
The text was updated successfully, but these errors were encountered: