|
Product |
Supported (√/x) |
|---|---|
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
Creates a stream in the calling process or thread.
This API does not allow for adjusting the stream priority. By default, streams are assigned the highest priority if none is specified. For details about how to set the priority when creating a stream, see the acl.rt.create_stream_with_config API.
If the stream creation API is not explicitly called, each context corresponds to a default stream. The default stream is implicitly created by calling the acl.rt.set_device or acl.rt.create_context API. The priority of the default stream cannot be set and is the highest priority. The default stream is suitable for simple applications without complex interaction logic. However, in multithreaded programming, the execution result depends on the thread scheduling sequence. Explicitly created streams are suitable for large-scale applications with complex interaction logic to improve program readability and maintainability. Therefore, explicit streams are recommended.
1
|
aclError aclrtCreateStream(aclrtStream *stream) |
1
|
stream, ret = acl.rt.create_stream() |
None
|
Return Value |
Description |
|---|---|
|
stream |
Int, pointer address of the created context. |
|
ret |
Int, error code. 0 on success; else, failure. |
|
Model |
Maximum Number of Streams |
|---|---|
|
|
1,984 |
|
|
1,984 |
|
|
1,984 |
|
|
512 |
|
|
1,024 In the |
|
|
2,048
In the multi-process scenario, if the total number of streams created at a time is close to 2,048, streams may fail to be created. In this case, you are advised to perform the following operations:
|
For details about the API call sequence and examples, see Runtime Resource Allocation and Deallocation.