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 |
返回当前的算子下发模式。 |