llnl / llnl/zfp

`zfp` binary CUDA support broken?

Open
#178 10 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
885
Forks
181
PR merge metrics
No merged PRs in 30d

Description

I can't figure out how to test CUDA support on my system.

I generated a simple test file: `python3 -c 'import struct; import math; open("test.bin", "wb").write(struct.pack("<256f", *list(math.sin(v/128*6.28)*1000 for v in range(256))))'`.

Then I tried to compress it:
`zfp -x cuda -i test.bin -z testz.bin -f -1 256 -r 10 -s -h`

Which reports the following info:
`type=float nx=256 ny=1 nz=1 nw=1 raw=1024 zfp=16 ratio=64 rate=0.5 rmse=707.3 nrmse=0.3536 maxe=1000 psnr=3.01`

Sometimes it reports nan values or random large floats, despite being given the same input data, but the statistics suggest it's not actually compressing and just storing zeros (related to #105 ?). If I remove the `-h` flag then it just tells me "compression failed". Everything works fine with the other execution modes (serial and omp).

I'm trying to build and package the 1.0.0 release, which doesn't come with tests, so I'm not sure if CUDA is broken in general or this is specific to the command line tool. I am building against CUDA 11.6.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the reported `zfp -x cuda` command with the generated `test.bin` input under CUDA 11.6, comparing it with the serial and OMP modes. Trace the CUDA path used by the command-line tool and determine whether the failure is specific to CUDA or the CLI; done means valid, repeatable compressed output and a regression test if the relevant test entry point can be identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
data, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.