Giter Club home page Giter Club logo

gpuhd's Introduction

CUHD - A Massively Parallel Huffman Decoder

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 our conference paper.

Requirements

  • 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

Compilation process

Configuration

Please edit the Makefile:

  1. Set CUDA_INCLUDE to the include directory of your CUDA installation, e.g.: CUDA_INCLUDE = /usr/local/cuda-9.1/include

  2. Set CUDA_LIB to the library directory of your CUDA installation, e.g.: CUDA_LIB = /usr/local/cuda-9.1/lib64

  3. 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 edit NVCC_FLAGS accordingly.

Test program

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.

Compiling the test program

To compile the test program, configure the Makefile as described above. Run:

make

Running the test program

./bin/demo <compute device index> <size of input in megabytes>

Compiling a static library

To compile a static library, run:

make lib

gpuhd's People

Contributors

weissenberger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.