Repository navigation
Level 7: filling the decode-speed gap between lz4hc and zstd #313
Replies: 5 comments 2 replies
Proto v1 (level -7)On my laptop (Apple M3)
|
Proto v2 (level -7)On my laptop (Apple M3)
|
Great numbers!
To me -- yes, sure.
In real tests, at least on my engine, the floor is 3 Gb/s, after which the game loading time starts decreasing due to CPU usage. This depends on different external factors like SSD etc. But I'd say the whole 3-4 Gb/s area is an object of interest -- every ratio point can exchange SSD bandwidth for CPU and give better results -- if not during the initial load, then in-game. |
|
@solbjorn this is the last benchmarks in CI. This is a v7 format breaking changes... As you see level 7 is 1.8x decode speed of Benchmark Result (ubuntu-latest)lzbench 2.3 | GCC 14.2.0 | 64-bit Linux | AMD EPYC 7763 64-Core Processor
Benchmark Result (macos-26-xlarge)lzbench 2.3 | Clang 21.0.0 | 64-bit MacOS |
|
|
@hellobertrand, huge thanks man. Level 7 does exactly what I needed! I hope it won't take too long for mhx to merge your PR to upstream DwarFS. In the meantime, could you maybe keep your dwfs fork up to date with the upstream branch? I'll be still using it in the engine. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Why this discussion
In a recent DwarFS thread, @solbjorn made a point that matches what I thinking about for a while:
That gap is real. On silesia (lzbench):
Everything between 36% and ~31% with decode speed above 2 GB/s is essentially unserved. That's where a zxc level 7 could live.
What I'm exploring
I have an early prototype (format v7) that adds, on top of level 6:
Early numbers on silesia (Apple M-series, lzbench): 33.78% ratio at 4 GB/s decode roughly 2.7 ratio points better than the lz4hc class, while still decoding 2x faster than zstd. Compression is very slow (7 MB/s), which I consider acceptable for a compress-once / read-many level.
An another prototype give 35.2% ratio at 5 GB/s decode.
Two design principles:
What I'd like your input on
All reactions