DPC++ Runtime
Runtime libraries for oneAPI DPC++
id_query.hpp
Go to the documentation of this file.
1 /***************************************************************************
2  *
3  * Copyright (C) Codeplay Software Ltd.
4  *
5  * Part of the LLVM Project, under the Apache License v2.0 with LLVM
6  * Exceptions. See https://llvm.org/LICENSE.txt for license information.
7  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  *
15  * SYCL compatibility extension
16  *
17  * id_query.hpp
18  *
19  * Description:
20  * id_query functionality for the SYCL compatibility extension
21  **************************************************************************/
22 
23 #pragma once
24 
26 #include <sycl/nd_item.hpp>
27 
28 namespace syclcompat {
29 
31 
32 inline void wg_barrier() { get_nd_item<3>().barrier(); }
33 
34 namespace local_id {
35 inline size_t x() { return get_nd_item<3>().get_local_id(2); }
36 inline size_t y() { return get_nd_item<3>().get_local_id(1); }
37 inline size_t z() { return get_nd_item<3>().get_local_id(0); }
38 } // namespace local_id
39 
40 namespace local_range {
41 inline size_t x() { return get_nd_item<3>().get_local_range(2); }
42 inline size_t y() { return get_nd_item<3>().get_local_range(1); }
43 inline size_t z() { return get_nd_item<3>().get_local_range(0); }
44 } // namespace local_range
45 
46 namespace work_group_id {
47 inline size_t x() { return get_nd_item<3>().get_group(2); }
48 inline size_t y() { return get_nd_item<3>().get_group(1); }
49 inline size_t z() { return get_nd_item<3>().get_group(0); }
50 } // namespace work_group_id
51 
52 namespace work_group_range {
53 inline size_t x() { return get_nd_item<3>().get_group_range(2); }
54 inline size_t y() { return get_nd_item<3>().get_group_range(1); }
55 inline size_t z() { return get_nd_item<3>().get_group_range(0); }
56 } // namespace work_group_range
57 
58 namespace global_range {
59 inline size_t x() { return get_nd_item<3>().get_global_range(2); }
60 inline size_t y() { return get_nd_item<3>().get_global_range(1); }
61 inline size_t z() { return get_nd_item<3>().get_global_range(0); }
62 } // namespace global_range
63 
64 namespace global_id {
65 inline size_t x() { return get_nd_item<3>().get_global_id(2); }
66 inline size_t y() { return get_nd_item<3>().get_global_id(1); }
67 inline size_t z() { return get_nd_item<3>().get_global_id(0); }
68 } // namespace global_id
69 
70 } // namespace syclcompat
void wg_barrier()
Definition: id_query.hpp:32