函数:create_stream
产品支持情况
|
产品 |
是否支持 |
|---|---|
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
功能说明
在当前进程或线程中创建一个Stream。
该接口不支持设置Stream的优先级;若不设置,Stream的优先级默认为最高。如需在创建Stream时设置优先级,请参见acl.rt.create_stream_with_config接口。
若不显式调用Stream创建接口,那么每个Context对应一个默认Stream,该默认Stream是调用acl.rt.set_device接口或acl.rt.create_context接口隐式创建的,默认Stream的优先级不支持设置,为最高优先级。默认Stream适合简单、无复杂交互逻辑的应用,但缺点在于,在多线程编程中,执行结果取决于线程调度的顺序。显式创建的Stream适合大型、复杂交互逻辑的应用,且便于提高程序的可读性、可维护性,推荐显式。
函数原型
- C函数原型
1aclError aclrtCreateStream(aclrtStream *stream)
- python函数
1stream, ret = acl.rt.create_stream()
参数说明
无
返回值说明
|
返回值 |
说明 |
|---|---|
|
stream |
int,返回创建的Stream的指针地址。 |
|
ret |
int,错误码,返回0表示成功,返回其它值表示失败。 |
约束说明
- 每个Context对应一个默认Stream,该默认Stream是调用acl.rt.set_device接口或acl.rt.create_context接口隐式创建的,默认Stream的优先级不支持设置,为最高优先级。推荐调用aclrtCreateStream接口显式创建Stream。
- 隐式创建Stream:适合简单、无复杂交互逻辑的应用,但缺点在于,在多线程编程中,执行结果取决于线程调度的顺序。
- 显式创建Stream:推荐显式,适合大型、复杂交互逻辑的应用,且便于提高程序的可读性、可维护性。
- 不同型号的硬件支持的Stream最大数不同,如果已存在多个Stream(包含默认Stream、执行内部同步的Stream),则只能显式创建N个Stream,N = Stream最大数 - 已存在的Stream数。例如,Stream最大数为1024,已存在2个Stream,则只能调用本接口显式创建1022个Stream。
|
型号 |
Stream最大数 |
|---|---|
|
|
1984 |
|
|
1984 |
|
|
512 |
|
|
1024 |
|
|
1024 |
|
|
2048 |