Packages

c

com.nvidia.spark.rapids

RapidsDeviceMemoryStore

class RapidsDeviceMemoryStore extends RapidsBufferStore

Buffer storage using device memory.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RapidsDeviceMemoryStore
  2. RapidsBufferStore
  3. Logging
  4. AutoCloseable
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RapidsDeviceMemoryStore(chunkedPackBounceBufferSize: Long = 128L*1024*1024, hostBounceBufferSize: Long = 128L*1024*1024)

    chunkedPackBounceBufferSize

    this is the size of the bounce buffer to be used during spill in chunked_pack. The parameter defaults to 128MB, with a rule-of-thumb of 1MB per SM.

Type Members

  1. abstract class RapidsBufferBase extends RapidsBuffer

    Base class for all buffers in this store.

    Base class for all buffers in this store.

    Definition Classes
    RapidsBufferStore
  2. class RapidsDeviceColumnEventHandler extends EventHandler

    A per cuDF column event handler that handles calls to .close() inside of the ColumnVector lock.

  3. class RapidsDeviceMemoryBuffer extends RapidsBufferBase with EventHandler with RapidsBufferChannelWritable
  4. class RapidsTable extends RapidsBufferBase with RapidsBufferChannelWritable

    A RapidsTable is the spill store holder of a cuDF Table.

    A RapidsTable is the spill store holder of a cuDF Table.

    The table is not contiguous in GPU memory. Instead, this RapidsBuffer instance allows us to use the cuDF chunked_pack API to make the table contiguous as the spill is happening.

    This class owns the cuDF table and will close it when close is called.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addBuffer(id: RapidsBufferId, buffer: DeviceMemoryBuffer, tableMeta: TableMeta, initialSpillPriority: Long, needsSync: Boolean): RapidsBuffer

    Adds a buffer to the device storage.

    Adds a buffer to the device storage. This does NOT take ownership of the buffer, so it is the responsibility of the caller to close it.

    This function is called only from the RapidsBufferCatalog, under the catalog lock.

    id

    the RapidsBufferId to use for this buffer

    buffer

    buffer that will be owned by the store

    tableMeta

    metadata describing the buffer layout

    initialSpillPriority

    starting spill priority value for the buffer

    needsSync

    whether the spill framework should stream synchronize while adding this device buffer (defaults to true)

    returns

    the RapidsBuffer instance that was added.

  5. def addBuffer(buffer: RapidsBufferBase, needsSync: Boolean): Unit

    Adds a buffer to the spill framework, stream synchronizing with the producer stream to ensure that the buffer is fully materialized, and can be safely copied as part of the spill.

    Adds a buffer to the spill framework, stream synchronizing with the producer stream to ensure that the buffer is fully materialized, and can be safely copied as part of the spill.

    needsSync

    true if we should stream synchronize before adding the buffer

    Attributes
    protected
    Definition Classes
    RapidsBufferStore
  6. def addBuffer(buffer: RapidsBufferBase): Unit

    Update bookkeeping for a new buffer

    Update bookkeeping for a new buffer

    Attributes
    protected
    Definition Classes
    RapidsBufferStore
  7. def addTable(id: RapidsBufferId, table: Table, initialSpillPriority: Long, needsSync: Boolean): RapidsBuffer

    Adds a table to the device storage.

    Adds a table to the device storage.

    This takes ownership of the table.

    This function is called only from the RapidsBufferCatalog, under the catalog lock.

    id

    the RapidsBufferId to use for this table

    table

    table that will be owned by the store

    initialSpillPriority

    starting spill priority value

    needsSync

    whether the spill framework should stream synchronize while adding this table (defaults to true)

    returns

    the RapidsBuffer instance that was added.

  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  10. def close(): Unit
    Definition Classes
    RapidsDeviceMemoryStoreRapidsBufferStore → AutoCloseable
  11. def copyBuffer(buffer: RapidsBuffer, catalog: RapidsBufferCatalog, stream: Stream): Option[RapidsBufferBase]

    Adds an existing buffer from another store to this store.

    Adds an existing buffer from another store to this store. The buffer must already have an active reference by the caller and needs to be eventually closed by the caller (i.e.: this method will not take ownership of the incoming buffer object). This does not need to update the catalog, the caller is responsible for that.

    buffer

    data from another store

    catalog

    RapidsBufferCatalog we may need to modify during this copy

    stream

    CUDA stream to use for copy or null

    returns

    the new buffer that was created

    Definition Classes
    RapidsBufferStore
  12. def createBuffer(other: RapidsBuffer, catalog: RapidsBufferCatalog, stream: Stream): Option[RapidsBufferBase]

    Create a new buffer from an existing buffer in another store.

    Create a new buffer from an existing buffer in another store. If the data transfer will be performed asynchronously, this method is responsible for adding a reference to the existing buffer and later closing it when the transfer completes.

    catalog

    RapidsBufferCatalog we may need to modify during this create

    stream

    CUDA stream to use or null

    returns

    the new buffer that was created.

    Attributes
    protected
    Definition Classes
    RapidsDeviceMemoryStoreRapidsBufferStore
    Note

    DO NOT close the buffer unless adding a reference!

    ,

    createBuffer impls should synchronize against stream before returning, if needed.

  13. def currentSize: Long

    Return the current byte total of buffers in this store.

    Return the current byte total of buffers in this store.

    Definition Classes
    RapidsBufferStore
  14. def currentSpillableSize: Long
    Definition Classes
    RapidsBufferStore
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  17. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  18. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  19. def getMaxSize: Option[Long]

    Stores that need to stay within a specific byte limit of buffers stored override this function.

    Stores that need to stay within a specific byte limit of buffers stored override this function. Only the HostMemoryBufferStore requires such a limit.

    returns

    maximum amount of bytes that can be stored in the store, None for no limit

    Definition Classes
    RapidsBufferStore
  20. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  21. def initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  22. def initializeLogIfNecessary(isInterpreter: Boolean): Unit
    Attributes
    protected
    Definition Classes
    Logging
  23. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  24. def isTraceEnabled(): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  25. def log: Logger
    Attributes
    protected
    Definition Classes
    Logging
  26. def logDebug(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  27. def logDebug(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  28. def logError(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  29. def logError(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  30. def logInfo(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  31. def logInfo(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  32. def logName: String
    Attributes
    protected
    Definition Classes
    Logging
  33. def logTrace(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  34. def logTrace(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  35. def logWarning(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  36. def logWarning(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  37. val name: String
    Definition Classes
    RapidsBufferStore
  38. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  39. def nextSpillable(): RapidsBuffer
    Definition Classes
    RapidsBufferStore
  40. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  41. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  42. def setSpillStore(store: RapidsBufferStore): Unit

    Specify another store that can be used when this store needs to spill.

    Specify another store that can be used when this store needs to spill.

    Definition Classes
    RapidsBufferStore
    Note

    Only one spill store can be registered. This will throw if a spill store has already been registered.

  43. def setSpillable(buffer: RapidsBufferBase, isSpillable: Boolean): Unit
    Attributes
    protected
    Definition Classes
    RapidsBufferStore
  44. var spillStore: RapidsBufferStore

    A store that can be used for spilling.

    A store that can be used for spilling.

    Definition Classes
    RapidsBufferStore
  45. def spillableOnAdd: Boolean

    A store that manages spillability of buffers should override this method to false, otherwise BufferTracker treats buffers as always spillable.

    A store that manages spillability of buffers should override this method to false, otherwise BufferTracker treats buffers as always spillable.

    Attributes
    protected
    Definition Classes
    RapidsDeviceMemoryStoreRapidsBufferStore
  46. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  47. def synchronousSpill(targetTotalSize: Long, catalog: RapidsBufferCatalog, stream: Stream = Cuda.DEFAULT_STREAM): Long
    Definition Classes
    RapidsBufferStore
  48. val tier: StorageTier
    Definition Classes
    RapidsBufferStore
  49. def toString(): String
    Definition Classes
    AnyRef → Any
  50. def trySpillToMaximumSize(buffer: RapidsBuffer, catalog: RapidsBufferCatalog, stream: Stream): Boolean

    Tries to make room for buffer in the host store by spilling.

    Tries to make room for buffer in the host store by spilling.

    buffer

    buffer that will be copied to the host store if it fits

    stream

    CUDA stream to synchronize for memory operations

    returns

    true if the buffer fits after a potential spill

    Attributes
    protected
    Definition Classes
    RapidsBufferStore
  51. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  52. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  53. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from RapidsBufferStore

Inherited from Logging

Inherited from AutoCloseable

Inherited from AnyRef

Inherited from Any

Ungrouped