Bump up nvComp version to 5.3.0.16 - #6430
Conversation
Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
| .AddOptionalArg<bool>(inflate::checkOutputSizeArgName, | ||
| R"code(If True, validates before decompression that the requested output | ||
| buffers are large enough for the compressed data. | ||
|
|
||
| This validation synchronizes the GPU stream and is disabled by default.)code", | ||
| false) |
There was a problem hiding this comment.
@stiepan did we have a discussion about this unsafe behavior and potential switch for that or I mixing things?
|
| Filename | Overview |
|---|---|
| dali/operators/decoder/inflate/inflate.cc | Adds check_output_size optional bool arg to operator spec; docstring incorrectly says compressed data instead of decompressed data. |
| dali/operators/decoder/inflate/inflate_gpu.cc | Implements check_output_size_ path: queries decoded sizes via nvcompBatchedLZ4GetDecompressSizeAsync, D2H copies, stream-syncs, then validates each chunk; logic and stream ordering are correct. |
| dali/operators/decoder/inflate/inflate_params.h | Adds checkOutputSizeArgName constant; straightforward and consistent with existing arg-name declarations. |
| dali/test/python/operator_1/test_inflate.py | Adds two new tests covering rejection and positive paths for check_output_size=True; both use real value comparisons via check_batch. Copyright year updated to 2026. |
| dali/test/python/test_dali_variable_batch_size.py | Fixes test_inflate by adding dtype=types.INT64 to match the int64 test samples, resolving the silent type mismatch that caused the test to fail. |
| cmake/Dependencies.common.cmake | Version pin updated from 5.2.0.13 to 5.3.0.16; straightforward one-line change. |
| internal_tools/stub_generator/nvcomp.json | Adds nvcompBatchedLZ4GetDecompressSizeAsync stub entry; matches the new call site in inflate_gpu.cc. |
Sequence Diagram
sequenceDiagram
participant U as User Pipeline
participant I as InflateOpGpuLZ4Impl
participant nv as nvCOMP (GPU)
participant H as Host (CPU)
U->>I: RunImpl(ws)
I->>I: SetupInChunks / SetupOutChunks
I->>nv: ToContiguousGPU (in_sizes, in, out_sizes, out)
alt "check_output_size == true"
I->>nv: nvcompBatchedLZ4GetDecompressSizeAsync(stream)
I->>H: cudaMemcpyAsync D2H decoded_sizes (stream)
I->>I: cudaStreamSynchronize
I->>I: "Validate each chunk decoded_size <= inflated_size"
note over I,H: Raises DALI_ENFORCE if too small
end
I->>nv: nvcompBatchedLZ4DecompressGetTempSizeAsync
I->>nv: nvcompBatchedLZ4DecompressAsync(stream)
I->>nv: FillTheTails zero-pad oversized output
nv-->>U: decompressed output tensor
Reviews (4): Last reviewed commit: "Add missing nvCOMP LZ4 dynamic stub" | Re-trigger Greptile
|
CI MESSAGE: [59212184]: BUILD STARTED |
|
CI MESSAGE: [59212200]: BUILD STARTED |
Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
|
Addressed all four Greptile findings in 901733d:
Validated with operator_1.test_inflate and test_dali_variable_batch_size.test_inflate (143 tests total). |
Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
|
CI MESSAGE: [59214762]: BUILD STARTED |
|
CI MESSAGE: [59214775]: BUILD STARTED |
|
CI MESSAGE: [59214762]: BUILD FAILED |
|
CI MESSAGE: [59214775]: BUILD FAILED |
Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
|
CI MESSAGE: [59239054]: BUILD STARTED |
|
CI MESSAGE: [59239066]: BUILD STARTED |
|
CI MESSAGE: [59239066]: BUILD PASSED |
|
CI MESSAGE: [59239054]: BUILD PASSED |
Category:
Bug fix
Description:
samples while relying on the Inflate default output type of uint8.
When enabled, it validates the decoded LZ4 size before decompression and
raises an error if the requested output buffer is too small.
Additional information:
Affected modules and functionalities:
Key points relevant for the review:
avoid an additional GPU stream synchronization.
smaller than the compressed payload expands to.
Tests:
Checklist
Documentation
DALI team only
Requirements
REQ IDs: N/A
JIRA TASK: N/A