Caffe2 - C++ API
A deep learning, cross platform ML framework
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes
caffe2::CPUContext Class Referencefinal

The CPU Context, representing the bare minimum of what a Context class in Caffe2 should implement. More...

#include <context.h>

Inheritance diagram for caffe2::CPUContext:
at::BaseContext

Public Types

typedef std::mt19937 rand_gen_type
 

Public Member Functions

 CPUContext (const DeviceOption &option)
 
 CPUContext (const at::Device &device)
 
void SwitchToDevice (int) override
 
void WaitEvent (const Event &ev) override
 
void Record (Event *ev, const char *err_msg=nullptr) const override
 
void FinishDeviceComputation () override
 
rand_gen_type & RandGenerator ()
 
void CopyBytesSameDevice (size_t nbytes, const void *src, void *dst) override
 
void CopyBytesFromCPU (size_t nbytes, const void *src, void *dst) override
 
void CopyBytesToCPU (size_t nbytes, const void *src, void *dst) override
 
bool SupportsNonFundamentalTypes () const override
 
template<class SrcContext , class DstContext >
void CopyBytes (size_t nbytes, const void *src, void *dst)
 
template<typename T , class SrcContext , class DstContext >
void Copy (size_t n, const T *src, T *dst)
 
template<class SrcContext , class DstContext >
void CopyItems (const TypeMeta &meta, size_t n, const void *src, void *dst)
 
at::Device device () const override
 
DeviceType device_type () const override
 
template<>
void CopyBytes (size_t nbytes, const void *src, void *dst)
 
- Public Member Functions inherited from at::BaseContext
void SwitchToDevice ()
 
template<typename T >
void CopySameDevice (size_t n, const T *src, T *dst)
 
template<typename T >
void CopyFromCPU (size_t n, const T *src, T *dst)
 
template<typename T >
void CopyToCPU (size_t n, const T *src, T *dst)
 
void EnforceMetaCopyOK ()
 
void CopyItemsSameDevice (const caffe2::TypeMeta &meta, size_t n, const void *src, void *dst)
 
void CopyItemsFromCPU (const caffe2::TypeMeta &meta, size_t n, const void *src, void *dst)
 
void CopyItemsToCPU (const caffe2::TypeMeta &meta, size_t n, const void *src, void *dst)
 

Static Public Member Functions

static at::DataPtr New (size_t nbytes)
 
static bool HasAsyncPartDefault ()
 
static bool SupportsAsyncScheduling ()
 
static bool IsStreamFree (const DeviceOption &, int)
 
static constexpr DeviceType GetDeviceType ()
 

Protected Attributes

int random_seed_ {1701}
 
std::unique_ptr< rand_gen_type > random_generator_
 

Detailed Description

The CPU Context, representing the bare minimum of what a Context class in Caffe2 should implement.

// TODO modify docs See operator.h, especially Operator<Context>, for how Context are used in actual operator implementations that are associated with specific devices. In general, the Context class is passed in as a template argument, and the operator can use the functions defined in the context to execute whatever computation it has.

Definition at line 40 of file context.h.


The documentation for this class was generated from the following files: