Deflate on various hardware platforms
Should work on Linux and MacOS.
-
Install
bazel
orbazelisk
-
Verify that you can build and test:
bazel test //...
Install the recommended extensions. See .vscode/extensions.json.
Create a compilation database:
bazel build //... && bazel run @hedron_compile_commands//:refresh_all && bazel build //...
Then configure clangd. If you're using VS Code, the .vscode/settings does this for you, and .vscode/extensions.json already recommends installing the clangd extension.
Otherwise, copy the clangd args from the .vscode/settings.json.
- Build Huffman code tables from given symbol frequencies.
- Huffman decoding with C++ std lib.
- Implement Deflate decompression with C++ std lib.
- Benchmark it on CPU.
- Build system work to get it to run on GPU.
- Port Deflate to GPU.
- Benchmark it on GPU.
- Support chunked output. Started in 2e6a83d622e , but removed because it was adding too much complexity and I wanted to focus on getting the basics working.