class RapidsDeviceMemoryStore extends RapidsBufferStore
Buffer storage using device memory.
- Alphabetic
- By Inheritance
- RapidsDeviceMemoryStore
- RapidsBufferStore
- Logging
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
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
-
abstract
class
RapidsBufferBase extends RapidsBuffer
Base class for all buffers in this store.
Base class for all buffers in this store.
- Definition Classes
- RapidsBufferStore
-
class
RapidsDeviceColumnEventHandler extends EventHandler
A per cuDF column event handler that handles calls to .close() inside of the
ColumnVectorlock. - class RapidsDeviceMemoryBuffer extends RapidsBufferBase with EventHandler with RapidsBufferChannelWritable
-
class
RapidsTable extends RapidsBufferBase with RapidsBufferChannelWritable
A
RapidsTableis the spill store holder of a cuDFTable.A
RapidsTableis the spill store holder of a cuDFTable.The table is not contiguous in GPU memory. Instead, this
RapidsBufferinstance 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
closeis called.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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.
-
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
-
def
addBuffer(buffer: RapidsBufferBase): Unit
Update bookkeeping for a new buffer
Update bookkeeping for a new buffer
- Attributes
- protected
- Definition Classes
- RapidsBufferStore
-
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.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
close(): Unit
- Definition Classes
- RapidsDeviceMemoryStore → RapidsBufferStore → AutoCloseable
-
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
-
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
- RapidsDeviceMemoryStore → RapidsBufferStore
- Note
DO NOT close the buffer unless adding a reference!
,createBufferimpls should synchronize againststreambefore returning, if needed.
-
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
-
def
currentSpillableSize: Long
- Definition Classes
- RapidsBufferStore
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
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
HostMemoryBufferStorerequires such a limit.- returns
maximum amount of bytes that can be stored in the store, None for no limit
- Definition Classes
- RapidsBufferStore
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
def
initializeLogIfNecessary(isInterpreter: Boolean): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isTraceEnabled(): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
def
log: Logger
- Attributes
- protected
- Definition Classes
- Logging
-
def
logDebug(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logDebug(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logError(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logError(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logInfo(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logInfo(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logName: String
- Attributes
- protected
- Definition Classes
- Logging
-
def
logTrace(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logTrace(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logWarning(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logWarning(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
val
name: String
- Definition Classes
- RapidsBufferStore
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
nextSpillable(): RapidsBuffer
- Definition Classes
- RapidsBufferStore
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
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.
-
def
setSpillable(buffer: RapidsBufferBase, isSpillable: Boolean): Unit
- Attributes
- protected
- Definition Classes
- RapidsBufferStore
-
var
spillStore: RapidsBufferStore
A store that can be used for spilling.
A store that can be used for spilling.
- Definition Classes
- RapidsBufferStore
-
def
spillableOnAdd: Boolean
A store that manages spillability of buffers should override this method to false, otherwise
BufferTrackertreats buffers as always spillable.A store that manages spillability of buffers should override this method to false, otherwise
BufferTrackertreats buffers as always spillable.- Attributes
- protected
- Definition Classes
- RapidsDeviceMemoryStore → RapidsBufferStore
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
synchronousSpill(targetTotalSize: Long, catalog: RapidsBufferCatalog, stream: Stream = Cuda.DEFAULT_STREAM): Long
- Definition Classes
- RapidsBufferStore
-
val
tier: StorageTier
- Definition Classes
- RapidsBufferStore
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
trySpillToMaximumSize(buffer: RapidsBuffer, catalog: RapidsBufferCatalog, stream: Stream): Boolean
Tries to make room for
bufferin the host store by spilling.Tries to make room for
bufferin 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
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()