- Notifications
You must be signed in to change notification settings - Fork14
Massively Parallel Huffman Decoding on GPUs
License
weissenberger/gpuhd
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A Huffman decoder for processing raw (i.e. unpartitioned) Huffman encoded data on the GPU. It also includes a basic, sequential encoder.
For further information, please refer to ourconference paper.
- CUDA-enabled GPU with compute capability 3.0 or higher
- GNU/Linux
- GNU compiler version 5.4.0 or higher
- CUDA SDK 8 or higher
- latest proprietary graphics drivers
Please edit the Makefile:
Set
CUDA_INCLUDE
to the include directory of your CUDA installation, e.g.:CUDA_INCLUDE = /usr/local/cuda-9.1/include
Set
CUDA_LIB
to the library directory of your CUDA installation, e.g.:CUDA_LIB = /usr/local/cuda-9.1/lib64
Set
ARCH
to the compute capability of your GPU, i.e.ARCH = 35
for compute capability 3.5. If you'd like to compile the decoder for multiple generations of GPUs, please editNVCC_FLAGS
accordingly.
The test program will generate a chunk of random, binomially distributed data, encode the data with a specified maximum codeword length and decode the data on the GPU.
To compile the test program, configure the Makefile as described above. Run:
make
./bin/demo <compute device index> <size of input in megabytes>
To compile a static library, run:
make lib