Context
功能
加速库上下文类,主要用于管理Operation运行所需要的全局资源。
Context类会管理任务流队列比如Operation执行以及TilingCopy,管理tiling内存的申请与释放。
定义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | class Context { public: Context() = default; virtual ~Context() = default; virtual Status SetExecuteStream(aclrtStream stream) = 0; virtual aclrtStream GetExecuteStream() const = 0; virtual Status SetAsyncTilingCopyStatus(bool enable) = 0; virtual bool GetAsyncTilingCopyStatus() const = 0; virtual Status SetExecuteStreams(const std::vector<aclrtStream> &streams) = 0; virtual std::vector<aclrtStream> GetExecuteStreams() = 0; virtual Status SetExecuteType(ExecuteType type) = 0; virtual ExecuteType GetExecuteType() = 0; virtual Status SetLaunchMode(LaunchMode mode) = 0; virtual LaunchMode GetLaunchMode() = 0; };  | 
参数列表
成员名称  | 
参数  | 
返回值  | 
描述  | 
|---|---|---|---|
SetExecuteStream  | 
stream  | 
Status  | 
stream表示了Device侧的执行流, 每个流具体表现为一条执行队列。 通过这个函数设置使用传入的流执行对应的Operation。 
 如果设置成功,返回NO_ERROR。如果失败,请参见ErrorType。  | 
GetExecuteStream  | 
-  | 
aclrtStream  | 
获取当前执行stream。  | 
SetAsyncTilingCopyStatus  | 
enable  | 
Status  | 
设置异步拷贝tiling信息功能是否开启,如果是,则创建Stream和Event来进行tiling拷贝过程。 
 如果设置成功,返回NO_ERROR。如果失败,请参见ErrorType。  | 
GetAsyncTilingCopyStatus  | 
-  | 
bool  | 
获取tiling拷贝状态,如果获取成功,返回True。  | 
SetExecuteStreams  | 
streams  | 
Status  | 
设置实际的执行流,Operation执行时会根据配置的streamId从Context匹配对应的实际执行流。 
 状态值,如果设置成功,返回NO_ERROR。如果失败,请参见ErrorType。  | 
GetExecuteStreams  | 
-  | 
std::vector<aclrtStream>  | 
获取Context中当前设置的一组执行流。 如果设置成功,返回Context当前设置的一组执行流。  | 
SetExecuteType  | 
-  | 
Status  | 
设置Execute的类型。  | 
GetExecuteType  | 
-  | 
ExecuteType  | 
获取当前context Execute的类型。  | 
SetLaunchMode  | 
mode  | 
Status  | 
设置算子下发模式。 
 状态值,如果设置成功,返回NO_ERROR。如果失败,请参见ErrorType。  | 
GetLaunchMode  | 
-  | 
LaunchMode  | 
返回当前的算子下发模式。  |