CPUContext

class CPUContext

The cpu device context.

Constructors

inline dragon::CPUContext::CPUContext()

Constructor.

inline explicit dragon::CPUContext::CPUContext(unsigned int random_seed)

Constructor with the random seed.

inline explicit dragon::CPUContext::CPUContext(const DeviceOption &option)

Constructor with the device option.

Public Properties

device

inline int dragon::CPUContext::device() const

Return the device index.

rand_generator

inline std::mt19937 *dragon::CPUContext::rand_generator()

Return the random generator.

stream

inline int dragon::CPUContext::stream() const

Return the stream index.

workspace

Workspace *dragon::CPUContext::workspace()

Return the current workspace.

set_stream

inline void dragon::CPUContext::set_stream(int stream)

Set the stream index.

Public Functions

Copy

template<typename T, class DestContext, class SrcContext>
static inline void dragon::CPUContext::Copy(
  int n,
  T *dest,
  const T *src)

Copy a typed memory block to the destination.

Delete

static inline void dragon::CPUContext::Delete(void *ptr)

Deallocate a memory block.

FinishDeviceComputation

inline void dragon::CPUContext::FinishDeviceComputation()

Wait for the dispatched computation to complete.

Memset

static inline void dragon::CPUContext::Memset(
  size_t n,
  void *ptr,
  int value = 0)

Set a memory block to the given value.

MemsetAsync

inline void dragon::CPUContext::MemsetAsync(
  size_t n,
  void *ptr,
  int value)

Set a memory block to the given value asynchronously.

Memcpy

template<class DestContext, class SrcContext>
static inline void dragon::CPUContext::Memcpy(
  size_t n,
  void *dest,
  const void *src)

Copy a memory block to the destination.

MemcpyAsync

template<class DestContext, class SrcContext>
inline void dragon::CPUContext::MemcpyAsync(
  size_t n,
  void *dest,
  const void *src)

Copy a memory block to the destination asynchronously.

New

static inline void *dragon::CPUContext::New(size_t size)

Allocate a block of memory.

SwitchToDevice

inline void dragon::CPUContext::SwitchToDevice(int stream_id = 0)

Switch to the device and select given stream in current thread.