Skip to content

[SYCL] [L0] Make immediate commandlists thread-specific #7041

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 26 commits into from
Dec 29, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
ce715ac
Making immediate commandlists thread-specific.
rdeodhar Oct 13, 2022
031a3b0
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Oct 13, 2022
27bd96b
Changes for per-thread imm cmdlists.
rdeodhar Oct 14, 2022
f25051b
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Oct 14, 2022
ed7e8f6
Formatting change.
rdeodhar Oct 14, 2022
a06eb93
Removed some debug prints.
rdeodhar Oct 14, 2022
996e313
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Oct 17, 2022
ba9757b
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Oct 18, 2022
a2ea420
Use unordered_map, other cleanup.
rdeodhar Oct 19, 2022
c8b73ef
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Oct 20, 2022
6ec02ba
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Dec 7, 2022
c9f4cb1
Put imm cmdlists into thread-specific map.
rdeodhar Dec 14, 2022
15d9053
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Dec 14, 2022
28255be
Use TID for all queue groups.
rdeodhar Dec 15, 2022
f87485e
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Dec 15, 2022
462ab2d
Change to documentation.
rdeodhar Dec 15, 2022
95ccd8b
Cleaned up initialization of queue groups.
rdeodhar Dec 20, 2022
78f7e87
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Dec 20, 2022
1572aab
Rearrange code and return enum for useImmediateCommandLists.
rdeodhar Dec 20, 2022
a4917a2
Review comments addressed.
rdeodhar Dec 21, 2022
fe9eea0
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Dec 21, 2022
2aa98f2
Removed ifdef'd code.
rdeodhar Dec 21, 2022
a1144e4
Code reuse.
rdeodhar Dec 21, 2022
237a1c4
Code cleanup.
rdeodhar Dec 21, 2022
eb9f16b
Changed traversal of commandlists for consistency with other traversals.
rdeodhar Dec 22, 2022
ffa9229
Merge branch 'sycl' of https://github.com/intel/llvm into cmdlist4
rdeodhar Dec 22, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sycl/doc/EnvironmentVariables.md
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ variables in production code.</span>
| `SYCL_PI_LEVEL_ZERO_USE_COMPUTE_ENGINE` | Integer | It can be set to an integer (>=0) in which case all compute commands will be submitted to the command-queue with the given index in the compute command group. If it is instead set to a negative value then all available compute engines may be used. The default value is "0" |
| `SYCL_PI_LEVEL_ZERO_USE_COPY_ENGINE_FOR_D2D_COPY` (experimental) | Integer | Allows the use of copy engine, if available in the device, in Level Zero plugin for device to device copy operations. The default is 0. This option is experimental and will be removed once heuristics are added to make a decision about use of copy engine for device to device copy operations. |
| `SYCL_PI_LEVEL_ZERO_DEVICE_SCOPE_EVENTS` | Any(\*) | Enable support of device-scope events whose state is not visible to the host. If enabled mode is SYCL_PI_LEVEL_ZERO_DEVICE_SCOPE_EVENTS=1 the Level Zero plugin would create all events having device-scope only and create proxy host-visible events for them when their status is needed (wait/query) on the host. If enabled mode is SYCL_PI_LEVEL_ZERO_DEVICE_SCOPE_EVENTS=2 the Level Zero plugin would create all events having device-scope and add proxy host-visible event at the end of each command-list submission. The default is 0, meaning all events have host visibility. |
| `SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS` | Integer | When set to a positive value enables use of Level Zero immediate commandlists, which means there is no batching and all commands are immediately submitted for execution. Default is 0. Note: When immediate commandlist usage is enabled it is necessary to also set SYCL_PI_LEVEL_ZERO_DEVICE_SCOPE_EVENTS to either 0 or 1. |
| `SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS` | Integer | When set to a positive value enables use of Level Zero immediate commandlists, which means there is no batching and all commands are immediately submitted for execution. When set to 1, unique immediate commandlists are created for each SYCL queue. When set to 2, unique immediate commandlists are created per host thread per SYCL queue. Default is 0. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do I understand it correctly that "Default is 0" means that immediate command lists are not used?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, by default immediate command lists are not used.
We are working towards making them default.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, immediate command lists are not enabled by default yet.

| `SYCL_PI_LEVEL_ZERO_USE_MULTIPLE_COMMANDLIST_BARRIERS` | Integer | When set to a positive value enables use of multiple Level Zero commandlists when submitting barriers. Default is 1. |
| `SYCL_PI_LEVEL_ZERO_USE_COPY_ENGINE_FOR_FILL` | Integer | When set to a positive value enables use of a copy engine for memory fill operations. Default is 0. |
| `SYCL_PI_LEVEL_ZERO_SINGLE_ROOT_DEVICE_BUFFER_MIGRATION` | Integer | When set to "0" tells to use single root-device allocation for all devices in a context where all devices have same root. Otherwise performs regular buffer migration. Default is 1. |
Expand Down
Loading