@@ -14,184 +14,180 @@ using namespace sycl;
14
14
using namespace sycl ::ext::oneapi::experimental;
15
15
16
16
int main () {
17
- int *result;
18
- int N = 29 ;
19
-
20
- {
21
- queue q (gpu_selector_v);
22
-
23
- result = (int *)malloc_shared (N * sizeof (int ), q);
24
-
25
- q.submit ([&](handler &cgh) { cgh.fill (result, 0 , N); }).wait ();
26
-
27
- q.submit ([&](handler &cgh) {
28
- cgh.single_task ([=]() {
29
- // test if_architecture_is with category
30
- if_architecture_is<arch_category::intel_gpu>([&]() {
31
- result[0 ] = 1 ;
32
- }).otherwise ([&]() {});
33
-
34
- // negative test if_architecture_is with category
35
- if_architecture_is<arch_category::nvidia_gpu>([&]() {}).otherwise (
36
- [&]() { result[1 ] = 1 ; });
37
-
38
- // test else_if_architecture_is with category - 1
39
- if_architecture_is<arch_category::nvidia_gpu>([&]() {})
40
- .else_if_architecture_is <arch_category::intel_gpu>(
41
- [&]() { result[2 ] = 1 ; })
42
- .otherwise ([&]() {});
43
-
44
- // test else_if_architecture_is with category - 2
45
- if_architecture_is<arch_category::nvidia_gpu>([&]() {})
46
- .else_if_architecture_is <arch_category::amd_gpu>([&]() {})
47
- .else_if_architecture_is <arch_category::intel_gpu>(
48
- [&]() { result[3 ] = 1 ; })
49
- .otherwise ([&]() {});
50
-
51
- // test if_architecture_is_lt
52
- if_architecture_is_lt<architecture::intel_gpu_pvc_vg>([&]() {
53
- result[4 ] = 1 ;
54
- }).otherwise ([&]() {});
55
-
56
- // negative test if_architecture_is_lt - 1
57
- if_architecture_is_lt<architecture::intel_gpu_pvc>([&]() {}).otherwise (
58
- [&]() { result[5 ] = 1 ; });
59
-
60
- // negative test if_architecture_is_lt - 2
61
- if_architecture_is_lt<architecture::nvidia_gpu_sm_89>([&]() {
62
- }).otherwise ([&]() { result[6 ] = 1 ; });
63
-
64
- // test else_if_architecture_is_lt - 1
65
- if_architecture_is_lt<architecture::intel_gpu_bdw>([&]() {})
66
- .else_if_architecture_is_lt <architecture::intel_gpu_pvc_vg>(
67
- [&]() { result[7 ] = 1 ; })
68
- .otherwise ([&]() {});
69
-
70
- // test else_if_architecture_is_lt - 2
71
- if_architecture_is_lt<architecture::intel_gpu_bdw>([&]() {
72
- }).else_if_architecture_is_lt <architecture::nvidia_gpu_sm_89>([&]() {})
73
- .else_if_architecture_is_lt <architecture::intel_gpu_pvc_vg>(
74
- [&]() { result[8 ] = 1 ; })
75
- .otherwise ([&]() {});
76
-
77
- // test if_architecture_is_le
78
- if_architecture_is_le<architecture::intel_gpu_pvc>([&]() {
79
- result[9 ] = 1 ;
80
- }).otherwise ([&]() {});
81
-
82
- // negative test if_architecture_is_le - 1
83
- if_architecture_is_le<architecture::intel_gpu_skl>([&]() {}).otherwise (
84
- [&]() { result[10 ] = 1 ; });
85
-
86
- // negative test if_architecture_is_le - 2
87
- if_architecture_is_le<architecture::nvidia_gpu_sm_89>([&]() {
88
- }).otherwise ([&]() { result[11 ] = 1 ; });
89
-
90
- // test else_if_architecture_is_le - 1
91
- if_architecture_is_le<architecture::intel_gpu_skl>([&]() {})
92
- .else_if_architecture_is_le <architecture::intel_gpu_pvc>(
93
- [&]() { result[12 ] = 1 ; })
94
- .otherwise ([&]() {});
95
-
96
- // test else_if_architecture_is_le - 2
97
- if_architecture_is_le<architecture::intel_gpu_skl>([&]() {
98
- }).else_if_architecture_is_le <architecture::nvidia_gpu_sm_89>([&]() {})
99
- .else_if_architecture_is_le <architecture::intel_gpu_pvc>(
100
- [&]() { result[13 ] = 1 ; })
101
- .otherwise ([&]() {});
102
-
103
- // test if_architecture_is_gt
104
- if_architecture_is_gt<architecture::intel_gpu_skl>([&]() {
105
- result[14 ] = 1 ;
106
- }).otherwise ([&]() {});
107
-
108
- // negative test if_architecture_is_gt - 1
109
- if_architecture_is_gt<architecture::intel_gpu_pvc_vg>([&]() {
110
- }).otherwise ([&]() { result[15 ] = 1 ; });
111
-
112
- // negative test if_architecture_is_gt - 2
113
- if_architecture_is_gt<architecture::nvidia_gpu_sm_89>([&]() {
114
- }).otherwise ([&]() { result[16 ] = 1 ; });
115
-
116
- // test else_if_architecture_is_gt - 1
117
- if_architecture_is_gt<architecture::intel_gpu_pvc_vg>([&]() {})
118
- .else_if_architecture_is_gt <architecture::intel_gpu_skl>(
119
- [&]() { result[17 ] = 1 ; })
120
- .otherwise ([&]() {});
121
-
122
- // test else_if_architecture_is_gt - 2
123
- if_architecture_is_gt<architecture::intel_gpu_pvc_vg>([&]() {
124
- }).else_if_architecture_is_gt <architecture::nvidia_gpu_sm_89>([&]() {})
125
- .else_if_architecture_is_gt <architecture::intel_gpu_skl>(
126
- [&]() { result[18 ] = 1 ; })
127
- .otherwise ([&]() {});
128
-
129
- // test if_architecture_is_ge
130
- if_architecture_is_ge<architecture::intel_gpu_pvc>([&]() {
131
- result[19 ] = 1 ;
132
- }).otherwise ([&]() {});
133
-
134
- // negative test if_architecture_is_ge - 1
135
- if_architecture_is_ge<architecture::intel_gpu_pvc_vg>([&]() {
136
- }).otherwise ([&]() { result[20 ] = 1 ; });
137
-
138
- // negative test if_architecture_is_ge - 2
139
- if_architecture_is_ge<architecture::nvidia_gpu_sm_89>([&]() {
140
- }).otherwise ([&]() { result[21 ] = 1 ; });
141
-
142
- // test else_if_architecture_is_ge - 1
143
- if_architecture_is_ge<architecture::intel_gpu_pvc_vg>([&]() {})
144
- .else_if_architecture_is_ge <architecture::intel_gpu_pvc>(
145
- [&]() { result[22 ] = 1 ; })
146
- .otherwise ([&]() {});
147
-
148
- // test else_if_architecture_is_ge - 2
149
- if_architecture_is_ge<architecture::intel_gpu_pvc_vg>([&]() {
150
- }).else_if_architecture_is_ge <architecture::nvidia_gpu_sm_89>([&]() {})
151
- .else_if_architecture_is_ge <architecture::intel_gpu_pvc>(
152
- [&]() { result[23 ] = 1 ; })
153
- .otherwise ([&]() {});
154
-
155
- // test if_architecture_is_between
156
- if_architecture_is_between<architecture::intel_gpu_skl,
157
- architecture::intel_gpu_pvc_vg>([&]() {
158
- result[24 ] = 1 ;
159
- }).otherwise ([&]() {});
160
-
161
- // negative test if_architecture_is_between - 1
162
- if_architecture_is_between<architecture::intel_gpu_dg1,
163
- architecture::intel_gpu_dg2_g12>([&]() {
164
- }).otherwise ([&]() { result[25 ] = 1 ; });
165
-
166
- // negative test if_architecture_is_between - 2
167
- if_architecture_is_between<architecture::intel_gpu_dg1,
168
- architecture::nvidia_gpu_sm_89>([&]() {
169
- }).otherwise ([&]() { result[26 ] = 1 ; });
170
-
171
- // test else_if_architecture_is_between - 1
172
- if_architecture_is_between<architecture::intel_gpu_dg1,
173
- architecture::intel_gpu_dg2_g12>([&]() {})
174
- .else_if_architecture_is_between <architecture::intel_gpu_skl,
175
- architecture::intel_gpu_pvc>(
176
- [&]() { result[27 ] = 1 ; })
177
- .otherwise ([&]() {});
178
-
179
- // test else_if_architecture_is_between - 2
180
- if_architecture_is_between<architecture::intel_gpu_dg1,
181
- architecture::intel_gpu_dg2_g12>([&]() {})
182
- .else_if_architecture_is_between <architecture::intel_gpu_dg1,
183
- architecture::nvidia_gpu_sm_89>(
184
- [&]() {})
185
- .else_if_architecture_is_between <architecture::intel_gpu_skl,
186
- architecture::intel_gpu_pvc>(
187
- [&]() { result[28 ] = 1 ; })
188
- .otherwise ([&]() {});
189
-
190
- // if adding new test here, don't forget to increment result's index
191
- // and value of N variable
192
- });
193
- }).wait ();
194
- }
17
+
18
+ queue q (gpu_selector_v);
19
+ constexpr int N = 29 ;
20
+ int *result = (int *)malloc_shared (N * sizeof (int ), q);
21
+
22
+ q.submit ([&](handler &cgh) { cgh.fill (result, 0 , N); }).wait ();
23
+
24
+ q.submit ([&](handler &cgh) {
25
+ cgh.single_task ([=]() {
26
+ // test if_architecture_is with category
27
+ if_architecture_is<arch_category::intel_gpu>([&]() {
28
+ result[0 ] = 1 ;
29
+ }).otherwise ([&]() {});
30
+
31
+ // negative test if_architecture_is with category
32
+ if_architecture_is<arch_category::nvidia_gpu>([&]() {}).otherwise (
33
+ [&]() { result[1 ] = 1 ; });
34
+
35
+ // test else_if_architecture_is with category - 1
36
+ if_architecture_is<arch_category::nvidia_gpu>([&]() {})
37
+ .else_if_architecture_is <arch_category::intel_gpu>(
38
+ [&]() { result[2 ] = 1 ; })
39
+ .otherwise ([&]() {});
40
+
41
+ // test else_if_architecture_is with category - 2
42
+ if_architecture_is<arch_category::nvidia_gpu>([&]() {})
43
+ .else_if_architecture_is <arch_category::amd_gpu>([&]() {})
44
+ .else_if_architecture_is <arch_category::intel_gpu>(
45
+ [&]() { result[3 ] = 1 ; })
46
+ .otherwise ([&]() {});
47
+
48
+ // test if_architecture_is_lt
49
+ if_architecture_is_lt<architecture::intel_gpu_pvc_vg>([&]() {
50
+ result[4 ] = 1 ;
51
+ }).otherwise ([&]() {});
52
+
53
+ // negative test if_architecture_is_lt - 1
54
+ if_architecture_is_lt<architecture::intel_gpu_pvc>([&]() {}).otherwise (
55
+ [&]() { result[5 ] = 1 ; });
56
+
57
+ // negative test if_architecture_is_lt - 2
58
+ if_architecture_is_lt<architecture::nvidia_gpu_sm_89>([&]() {
59
+ }).otherwise ([&]() { result[6 ] = 1 ; });
60
+
61
+ // test else_if_architecture_is_lt - 1
62
+ if_architecture_is_lt<architecture::intel_gpu_bdw>([&]() {})
63
+ .else_if_architecture_is_lt <architecture::intel_gpu_pvc_vg>(
64
+ [&]() { result[7 ] = 1 ; })
65
+ .otherwise ([&]() {});
66
+
67
+ // test else_if_architecture_is_lt - 2
68
+ if_architecture_is_lt<architecture::intel_gpu_bdw>([&]() {})
69
+ .else_if_architecture_is_lt <architecture::nvidia_gpu_sm_89>([&]() {})
70
+ .else_if_architecture_is_lt <architecture::intel_gpu_pvc_vg>(
71
+ [&]() { result[8 ] = 1 ; })
72
+ .otherwise ([&]() {});
73
+
74
+ // test if_architecture_is_le
75
+ if_architecture_is_le<architecture::intel_gpu_pvc>([&]() {
76
+ result[9 ] = 1 ;
77
+ }).otherwise ([&]() {});
78
+
79
+ // negative test if_architecture_is_le - 1
80
+ if_architecture_is_le<architecture::intel_gpu_skl>([&]() {}).otherwise (
81
+ [&]() { result[10 ] = 1 ; });
82
+
83
+ // negative test if_architecture_is_le - 2
84
+ if_architecture_is_le<architecture::nvidia_gpu_sm_89>([&]() {
85
+ }).otherwise ([&]() { result[11 ] = 1 ; });
86
+
87
+ // test else_if_architecture_is_le - 1
88
+ if_architecture_is_le<architecture::intel_gpu_skl>([&]() {})
89
+ .else_if_architecture_is_le <architecture::intel_gpu_pvc>(
90
+ [&]() { result[12 ] = 1 ; })
91
+ .otherwise ([&]() {});
92
+
93
+ // test else_if_architecture_is_le - 2
94
+ if_architecture_is_le<architecture::intel_gpu_skl>([&]() {})
95
+ .else_if_architecture_is_le <architecture::nvidia_gpu_sm_89>([&]() {})
96
+ .else_if_architecture_is_le <architecture::intel_gpu_pvc>(
97
+ [&]() { result[13 ] = 1 ; })
98
+ .otherwise ([&]() {});
99
+
100
+ // test if_architecture_is_gt
101
+ if_architecture_is_gt<architecture::intel_gpu_skl>([&]() {
102
+ result[14 ] = 1 ;
103
+ }).otherwise ([&]() {});
104
+
105
+ // negative test if_architecture_is_gt - 1
106
+ if_architecture_is_gt<architecture::intel_gpu_pvc_vg>([&]() {
107
+ }).otherwise ([&]() { result[15 ] = 1 ; });
108
+
109
+ // negative test if_architecture_is_gt - 2
110
+ if_architecture_is_gt<architecture::nvidia_gpu_sm_89>([&]() {
111
+ }).otherwise ([&]() { result[16 ] = 1 ; });
112
+
113
+ // test else_if_architecture_is_gt - 1
114
+ if_architecture_is_gt<architecture::intel_gpu_pvc_vg>([&]() {})
115
+ .else_if_architecture_is_gt <architecture::intel_gpu_skl>(
116
+ [&]() { result[17 ] = 1 ; })
117
+ .otherwise ([&]() {});
118
+
119
+ // test else_if_architecture_is_gt - 2
120
+ if_architecture_is_gt<architecture::intel_gpu_pvc_vg>([&]() {})
121
+ .else_if_architecture_is_gt <architecture::nvidia_gpu_sm_89>([&]() {})
122
+ .else_if_architecture_is_gt <architecture::intel_gpu_skl>(
123
+ [&]() { result[18 ] = 1 ; })
124
+ .otherwise ([&]() {});
125
+
126
+ // test if_architecture_is_ge
127
+ if_architecture_is_ge<architecture::intel_gpu_pvc>([&]() {
128
+ result[19 ] = 1 ;
129
+ }).otherwise ([&]() {});
130
+
131
+ // negative test if_architecture_is_ge - 1
132
+ if_architecture_is_ge<architecture::intel_gpu_pvc_vg>([&]() {
133
+ }).otherwise ([&]() { result[20 ] = 1 ; });
134
+
135
+ // negative test if_architecture_is_ge - 2
136
+ if_architecture_is_ge<architecture::nvidia_gpu_sm_89>([&]() {
137
+ }).otherwise ([&]() { result[21 ] = 1 ; });
138
+
139
+ // test else_if_architecture_is_ge - 1
140
+ if_architecture_is_ge<architecture::intel_gpu_pvc_vg>([&]() {})
141
+ .else_if_architecture_is_ge <architecture::intel_gpu_pvc>(
142
+ [&]() { result[22 ] = 1 ; })
143
+ .otherwise ([&]() {});
144
+
145
+ // test else_if_architecture_is_ge - 2
146
+ if_architecture_is_ge<architecture::intel_gpu_pvc_vg>([&]() {})
147
+ .else_if_architecture_is_ge <architecture::nvidia_gpu_sm_89>([&]() {})
148
+ .else_if_architecture_is_ge <architecture::intel_gpu_pvc>(
149
+ [&]() { result[23 ] = 1 ; })
150
+ .otherwise ([&]() {});
151
+
152
+ // test if_architecture_is_between
153
+ if_architecture_is_between<architecture::intel_gpu_skl,
154
+ architecture::intel_gpu_pvc_vg>([&]() {
155
+ result[24 ] = 1 ;
156
+ }).otherwise ([&]() {});
157
+
158
+ // negative test if_architecture_is_between - 1
159
+ if_architecture_is_between<architecture::intel_gpu_dg1,
160
+ architecture::intel_gpu_dg2_g12>([&]() {
161
+ }).otherwise ([&]() { result[25 ] = 1 ; });
162
+
163
+ // negative test if_architecture_is_between - 2
164
+ if_architecture_is_between<architecture::intel_gpu_dg1,
165
+ architecture::nvidia_gpu_sm_89>([&]() {
166
+ }).otherwise ([&]() { result[26 ] = 1 ; });
167
+
168
+ // test else_if_architecture_is_between - 1
169
+ if_architecture_is_between<architecture::intel_gpu_dg1,
170
+ architecture::intel_gpu_dg2_g12>([&]() {})
171
+ .else_if_architecture_is_between <architecture::intel_gpu_skl,
172
+ architecture::intel_gpu_pvc>(
173
+ [&]() { result[27 ] = 1 ; })
174
+ .otherwise ([&]() {});
175
+
176
+ // test else_if_architecture_is_between - 2
177
+ if_architecture_is_between<architecture::intel_gpu_dg1,
178
+ architecture::intel_gpu_dg2_g12>([&]() {})
179
+ .else_if_architecture_is_between <architecture::intel_gpu_dg1,
180
+ architecture::nvidia_gpu_sm_89>(
181
+ [&]() {})
182
+ .else_if_architecture_is_between <architecture::intel_gpu_skl,
183
+ architecture::intel_gpu_pvc>(
184
+ [&]() { result[28 ] = 1 ; })
185
+ .otherwise ([&]() {});
186
+
187
+ // if adding new test here, don't forget to increment result's index
188
+ // and value of N variable
189
+ });
190
+ }).wait ();
195
191
196
192
bool failed = false ;
197
193
for (int i = 0 ; i < N; i++)
@@ -200,5 +196,6 @@ int main() {
200
196
failed = true ;
201
197
}
202
198
199
+ sycl::free (result, q);
203
200
return failed;
204
201
}
0 commit comments