Package ai.rapids.cudf.nvcomp
Class BatchedCompressor
java.lang.Object
ai.rapids.cudf.nvcomp.BatchedCompressor
- Direct Known Subclasses:
BatchedLZ4Compressor,BatchedZstdCompressor
Multi-buffer compressor
-
Constructor Summary
ConstructorsConstructorDescriptionBatchedCompressor(long chunkSize, long maxOutputChunkSize, long maxIntermediateBufferSize) Construct a batched compressor instance -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract voidbatchedCompressAsync(long devInPtrs, long devInSizes, long chunkSize, long batchSize, long tempPtr, long tempSize, long devOutPtrs, long compressedSizesOutPtr, long stream) Asynchronously compress a batch of buffers.protected abstract longbatchedCompressGetTempSize(long batchSize, long maxChunkSize) Get the temporary workspace size required to perform compression of an entire batch.compress(BaseDeviceMemoryBuffer[] origInputs, Cuda.Stream stream) Compress a batch of buffers.
-
Constructor Details
-
BatchedCompressor
public BatchedCompressor(long chunkSize, long maxOutputChunkSize, long maxIntermediateBufferSize) Construct a batched compressor instance- Parameters:
chunkSize- maximum amount of uncompressed data to compress as a single chunk. Inputs larger than this will be compressed in multiple chunks.maxIntermediateBufferSize- desired maximum size of intermediate device buffers used during compression.
-
-
Method Details
-
compress
Compress a batch of buffers. The input buffers will be closed.- Parameters:
origInputs- buffers to compressstream- CUDA stream to use- Returns:
- compressed buffers corresponding to the input buffers
-
batchedCompressGetTempSize
protected abstract long batchedCompressGetTempSize(long batchSize, long maxChunkSize) Get the temporary workspace size required to perform compression of an entire batch.- Parameters:
batchSize- number of chunks in the batchmaxChunkSize- maximum size of an uncompressed chunk in bytes- Returns:
- The size of required temporary workspace in bytes to compress the batch.
-
batchedCompressAsync
protected abstract void batchedCompressAsync(long devInPtrs, long devInSizes, long chunkSize, long batchSize, long tempPtr, long tempSize, long devOutPtrs, long compressedSizesOutPtr, long stream) Asynchronously compress a batch of buffers. Note that compressedSizesOutPtr must point to pinned memory for this operation to be asynchronous.- Parameters:
devInPtrs- device address of uncompressed buffer addresses vectordevInSizes- device address of uncompressed buffer sizes vectorchunkSize- maximum size of an uncompressed chunk in bytesbatchSize- number of chunks in the batchtempPtr- device address of the temporary workspace buffertempSize- size of the temporary workspace buffer in bytesdevOutPtrs- device address of output buffer addresses vectorcompressedSizesOutPtr- device address where to write the sizes of the compressed data written to the corresponding output buffers. Must point to a buffer with at least 8 bytes of memory per output buffer in the batch.stream- CUDA stream to use
-