Device

sealed trait Device

Represents a device where tensors are stored and tensor operations are executed

Companion:
object
class Object
trait Matchable
class Any
object CPU.type
object MPS.type

Value members

Abstract methods

def measureTime[A](f: => A): (A, Long)
def setSeed(seed: Long): Unit
def to(t: Tensor): Tensor
def withOtherStreamThenSync[A](synchronizeBefore: Boolean)(f: => A): A

Executes f on a new stream f must not switch to other threads Restores the stream to the default stream

Executes f on a new stream f must not switch to other threads Restores the stream to the default stream

Concrete methods

def allocateBuffers[S : Sc](size: Long, options: STenOptions): BufferPair
def to[S : Sc](t: STen): STen
def toBatched[S : Sc](tensors: Seq[STen], buffers: BufferPair): Seq[STen]

Copies tensors to this device in a single cross device copy. Data is copied via a buffer pair which consists of a source and a destinatin buffer. srcBuffer is supposed to be on the source device. dstBuffer has to be on this device. Tensors are first copied to the srcBuffer, then the srcBuffer is copied to dstBuffer, then the dstBuffer is split into views.

Copies tensors to this device in a single cross device copy. Data is copied via a buffer pair which consists of a source and a destinatin buffer. srcBuffer is supposed to be on the source device. dstBuffer has to be on this device. Tensors are first copied to the srcBuffer, then the srcBuffer is copied to dstBuffer, then the dstBuffer is split into views.

All tensors must have the same data type.

Might make sense to pin the srcBuffer.