Skip to content

Commit 9da9bc8

Browse files
[SYCL][E2E] Fix memory leak in device_architecture_comparison_on_device_aot.cpp (#16667)
1 parent 251eb90 commit 9da9bc8

File tree

1 file changed

+175
-178
lines changed

1 file changed

+175
-178
lines changed

sycl/test-e2e/DeviceArchitecture/device_architecture_comparison_on_device_aot.cpp

Lines changed: 175 additions & 178 deletions
Original file line numberDiff line numberDiff line change
@@ -14,184 +14,180 @@ using namespace sycl;
1414
using namespace sycl::ext::oneapi::experimental;
1515

1616
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();
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

Comments
 (0)