BatchedDecompressor#

public abstract class BatchedDecompressor#

Decompressor that operates on multiple input buffers in a batch.

Subclassed by ai.rapids.cudf.nvcomp.BatchedLZ4Decompressor, ai.rapids.cudf.nvcomp.BatchedZstdDecompressor

Constructor Summary

BatchedDecompressor(long chunkSize)

Construct a batched decompressor instance.

Method Summary

Constructors

public BatchedDecompressor(long chunkSize)#

Construct a batched decompressor instance.

Parameters:

chunkSize – maximum uncompressed block size, must match value used during compression

Methods

public void decompressAsync(
BaseDeviceMemoryBuffer[] origInputs,
BaseDeviceMemoryBuffer[] outputs,
Cuda.Stream stream
)#

Asynchronously decompress a batch of buffers.

Parameters:
  • origInputs – buffers to decompress, will be closed by this operation

  • outputs – output buffers that will contain the decompressed results, each must be sized to the exact decompressed size of the corresponding input

  • stream – CUDA stream to use

Protected Methods

protected abstract long batchedDecompressGetTempSize(
long numChunks,
long maxUncompressedChunkBytes,
long maxTotalSize,
long stream
)#

Computes the temporary storage size in bytes needed to decompress a compressed batch.

Parameters:
  • numChunks – number of chunks in the batch

  • maxUncompressedChunkBytes – maximum uncompressed size of any chunk in bytes

  • maxTotalSize – Upper bound on the total uncompressed size of all chunks

  • stream – CUDA stream to use

Returns:

number of temporary storage bytes needed to decompress the batch

protected abstract void batchedDecompressAsync(
long devInPtrs,
long devInSizes,
long devOutSizes,
long batchSize,
long tempPtr,
long tempSize,
long devOutPtrs,
long stream
)#

Asynchronously decompress a batch of compressed data buffers.

Parameters:
  • devInPtrs – device address of compressed input buffer addresses vector

  • devInSizes – device address of compressed input buffer sizes vector

  • devOutSizes – device address of uncompressed buffer sizes vector

  • batchSize – number of buffers in the batch

  • tempPtr – device address of the temporary decompression space

  • tempSize – size of the temporary decompression space in bytes

  • devOutPtrs – device address of uncompressed output buffer addresses vector

  • stream – CUDA stream to use