@@ -14,184 +14,180 @@ using namespace sycl;
1414using namespace sycl ::ext::oneapi::experimental;
1515
1616int 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 ();
195191
196192 bool failed = false ;
197193 for (int i = 0 ; i < N; i++)
@@ -200,5 +196,6 @@ int main() {
200196 failed = true ;
201197 }
202198
199+ sycl::free (result, q);
203200 return failed;
204201}
0 commit comments