昇腾社区首页
中文
注册

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。

  • stream:传入的stream队列。

如果设置成功,返回NO_ERROR。如果失败,请参见ErrorType

GetExecuteStream

-

aclrtStream

获取当前执行stream。

SetAsyncTilingCopyStatus

enable

Status

设置异步拷贝tiling信息功能是否开启,如果是,则创建Stream和Event来进行tiling拷贝过程。

  • enable:传入的标志,bool类型。

如果设置成功,返回NO_ERROR。如果失败,请参见ErrorType

GetAsyncTilingCopyStatus

-

bool

获取tiling拷贝状态,如果获取成功,返回True。

SetExecuteStreams

streams

Status

设置实际的执行流,Operation执行时会根据配置的streamId从Context匹配对应的实际执行流。

  • streams:需要设置的一组stream。

状态值,如果设置成功,返回NO_ERROR。如果失败,请参见ErrorType

GetExecuteStreams

-

std::vector<aclrtStream>

获取Context中当前设置的一组执行流。

如果设置成功,返回Context当前设置的一组执行流。

SetExecuteType

-

Status

设置Execute的类型。

GetExecuteType

-

ExecuteType

获取当前context Execute的类型。

SetLaunchMode

mode

Status

设置算子下发模式。

  • mode:算子下发的模式类型。

状态值,如果设置成功,返回NO_ERROR。如果失败,请参见ErrorType

GetLaunchMode

-

LaunchMode

返回当前的算子下发模式。