-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcuda_jamfile
More file actions
350 lines (300 loc) · 8.83 KB
/
cuda_jamfile
File metadata and controls
350 lines (300 loc) · 8.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
# Copyright 2026 Matt Borland
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt
import testing ;
import ../../config/checks/config : requires ;
project : requirements
[ requires cxx20_hdr_bit cxx20_hdr_compare cxx20_hdr_concepts ]
;
# Test the error handler mechanisms
run test_cuda_error_handling.cu ;
# u8 tests
run test_cuda_u8_add.cu ;
run test_cuda_u8_sub.cu ;
run test_cuda_u8_mul.cu ;
run test_cuda_u8_div.cu ;
run test_cuda_u8_mod.cu ;
# u16 tests
run test_cuda_u16_add.cu ;
run test_cuda_u16_sub.cu ;
run test_cuda_u16_mul.cu ;
run test_cuda_u16_div.cu ;
run test_cuda_u16_mod.cu ;
# u32 tests
run test_cuda_u32_add.cu ;
run test_cuda_u32_sub.cu ;
run test_cuda_u32_mul.cu ;
run test_cuda_u32_div.cu ;
run test_cuda_u32_mod.cu ;
# u64 tests
run test_cuda_u64_add.cu ;
run test_cuda_u64_sub.cu ;
run test_cuda_u64_mul.cu ;
run test_cuda_u64_div.cu ;
run test_cuda_u64_mod.cu ;
# u128 tests
run test_cuda_u128_add.cu ;
run test_cuda_u128_sub.cu ;
run test_cuda_u128_mul.cu ;
run test_cuda_u128_div.cu ;
run test_cuda_u128_mod.cu ;
# Error reporting tests - verify device_error_context catches overflow/underflow/div-by-zero
# u8 error tests
run test_cuda_u8_add_error.cu ;
run test_cuda_u8_sub_error.cu ;
run test_cuda_u8_mul_error.cu ;
run test_cuda_u8_div_error.cu ;
run test_cuda_u8_mod_error.cu ;
# u16 error tests
run test_cuda_u16_add_error.cu ;
run test_cuda_u16_sub_error.cu ;
run test_cuda_u16_mul_error.cu ;
run test_cuda_u16_div_error.cu ;
run test_cuda_u16_mod_error.cu ;
# u32 error tests
run test_cuda_u32_add_error.cu ;
run test_cuda_u32_sub_error.cu ;
run test_cuda_u32_mul_error.cu ;
run test_cuda_u32_div_error.cu ;
run test_cuda_u32_mod_error.cu ;
# u64 error tests
run test_cuda_u64_add_error.cu ;
run test_cuda_u64_sub_error.cu ;
run test_cuda_u64_mul_error.cu ;
run test_cuda_u64_div_error.cu ;
run test_cuda_u64_mod_error.cu ;
# u128 error tests
run test_cuda_u128_add_error.cu ;
run test_cuda_u128_sub_error.cu ;
run test_cuda_u128_mul_error.cu ;
run test_cuda_u128_div_error.cu ;
run test_cuda_u128_mod_error.cu ;
# Bit function tests
# u8 bit tests
run test_cuda_u8_has_single_bit.cu ;
run test_cuda_u8_bit_ceil.cu ;
run test_cuda_u8_bit_floor.cu ;
run test_cuda_u8_bit_width.cu ;
run test_cuda_u8_rotl.cu ;
run test_cuda_u8_rotr.cu ;
run test_cuda_u8_countl_zero.cu ;
run test_cuda_u8_countl_one.cu ;
run test_cuda_u8_countr_zero.cu ;
run test_cuda_u8_countr_one.cu ;
run test_cuda_u8_popcount.cu ;
run test_cuda_u8_byteswap.cu ;
run test_cuda_u8_bitswap.cu ;
# u16 bit tests
run test_cuda_u16_has_single_bit.cu ;
run test_cuda_u16_bit_ceil.cu ;
run test_cuda_u16_bit_floor.cu ;
run test_cuda_u16_bit_width.cu ;
run test_cuda_u16_rotl.cu ;
run test_cuda_u16_rotr.cu ;
run test_cuda_u16_countl_zero.cu ;
run test_cuda_u16_countl_one.cu ;
run test_cuda_u16_countr_zero.cu ;
run test_cuda_u16_countr_one.cu ;
run test_cuda_u16_popcount.cu ;
run test_cuda_u16_byteswap.cu ;
run test_cuda_u16_bitswap.cu ;
# u32 bit tests
run test_cuda_u32_has_single_bit.cu ;
run test_cuda_u32_bit_ceil.cu ;
run test_cuda_u32_bit_floor.cu ;
run test_cuda_u32_bit_width.cu ;
run test_cuda_u32_rotl.cu ;
run test_cuda_u32_rotr.cu ;
run test_cuda_u32_countl_zero.cu ;
run test_cuda_u32_countl_one.cu ;
run test_cuda_u32_countr_zero.cu ;
run test_cuda_u32_countr_one.cu ;
run test_cuda_u32_popcount.cu ;
run test_cuda_u32_byteswap.cu ;
run test_cuda_u32_bitswap.cu ;
# u64 bit tests
run test_cuda_u64_has_single_bit.cu ;
run test_cuda_u64_bit_ceil.cu ;
run test_cuda_u64_bit_floor.cu ;
run test_cuda_u64_bit_width.cu ;
run test_cuda_u64_rotl.cu ;
run test_cuda_u64_rotr.cu ;
run test_cuda_u64_countl_zero.cu ;
run test_cuda_u64_countl_one.cu ;
run test_cuda_u64_countr_zero.cu ;
run test_cuda_u64_countr_one.cu ;
run test_cuda_u64_popcount.cu ;
run test_cuda_u64_byteswap.cu ;
run test_cuda_u64_bitswap.cu ;
# u128 bit tests
run test_cuda_u128_has_single_bit.cu ;
run test_cuda_u128_bit_ceil.cu ;
run test_cuda_u128_bit_floor.cu ;
run test_cuda_u128_bit_width.cu ;
run test_cuda_u128_rotl.cu ;
run test_cuda_u128_rotr.cu ;
run test_cuda_u128_countl_zero.cu ;
run test_cuda_u128_countl_one.cu ;
run test_cuda_u128_countr_zero.cu ;
run test_cuda_u128_countr_one.cu ;
run test_cuda_u128_popcount.cu ;
run test_cuda_u128_byteswap.cu ;
run test_cuda_u128_bitswap.cu ;
# Byte conversion tests
# u8 byte conversion tests
run test_cuda_u8_to_be.cu ;
run test_cuda_u8_from_be.cu ;
run test_cuda_u8_to_le.cu ;
run test_cuda_u8_from_le.cu ;
# u16 byte conversion tests
run test_cuda_u16_to_be.cu ;
run test_cuda_u16_from_be.cu ;
run test_cuda_u16_to_le.cu ;
run test_cuda_u16_from_le.cu ;
# u32 byte conversion tests
run test_cuda_u32_to_be.cu ;
run test_cuda_u32_from_be.cu ;
run test_cuda_u32_to_le.cu ;
run test_cuda_u32_from_le.cu ;
# u64 byte conversion tests
run test_cuda_u64_to_be.cu ;
run test_cuda_u64_from_be.cu ;
run test_cuda_u64_to_le.cu ;
run test_cuda_u64_from_le.cu ;
# u128 byte conversion tests
run test_cuda_u128_to_be.cu ;
run test_cuda_u128_from_be.cu ;
run test_cuda_u128_to_le.cu ;
run test_cuda_u128_from_le.cu ;
# Charconv tests
# u8 charconv tests
run test_cuda_u8_charconv.cu ;
run test_cuda_u8_charconv_all_bases.cu ;
# u16 charconv tests
run test_cuda_u16_charconv.cu ;
run test_cuda_u16_charconv_all_bases.cu ;
# u32 charconv tests
run test_cuda_u32_charconv.cu ;
run test_cuda_u32_charconv_all_bases.cu ;
# u64 charconv tests
run test_cuda_u64_charconv.cu ;
run test_cuda_u64_charconv_all_bases.cu ;
# u128 charconv tests
run test_cuda_u128_charconv.cu ;
run test_cuda_u128_charconv_all_bases.cu ;
# Integer utilities tests
# u8 integer utilities tests
run test_cuda_u8_isqrt.cu ;
run test_cuda_u8_remove_trailing_zeros.cu ;
run test_cuda_u8_is_power_10.cu ;
run test_cuda_u8_is_power_2.cu ;
run test_cuda_u8_ilog2.cu ;
run test_cuda_u8_ilog10.cu ;
run test_cuda_u8_ilog.cu ;
run test_cuda_u8_ipow.cu ;
run test_cuda_u8_abs_diff.cu ;
run test_cuda_u8_div_ceil.cu ;
run test_cuda_u8_next_multiple_of.cu ;
# u16 integer utilities tests
run test_cuda_u16_isqrt.cu ;
run test_cuda_u16_remove_trailing_zeros.cu ;
run test_cuda_u16_is_power_10.cu ;
run test_cuda_u16_is_power_2.cu ;
run test_cuda_u16_ilog2.cu ;
run test_cuda_u16_ilog10.cu ;
run test_cuda_u16_ilog.cu ;
run test_cuda_u16_ipow.cu ;
run test_cuda_u16_abs_diff.cu ;
run test_cuda_u16_div_ceil.cu ;
run test_cuda_u16_next_multiple_of.cu ;
# u32 integer utilities tests
run test_cuda_u32_isqrt.cu ;
run test_cuda_u32_remove_trailing_zeros.cu ;
run test_cuda_u32_is_power_10.cu ;
run test_cuda_u32_is_power_2.cu ;
run test_cuda_u32_ilog2.cu ;
run test_cuda_u32_ilog10.cu ;
run test_cuda_u32_ilog.cu ;
run test_cuda_u32_ipow.cu ;
run test_cuda_u32_abs_diff.cu ;
run test_cuda_u32_div_ceil.cu ;
run test_cuda_u32_next_multiple_of.cu ;
# u64 integer utilities tests
run test_cuda_u64_isqrt.cu ;
run test_cuda_u64_remove_trailing_zeros.cu ;
run test_cuda_u64_is_power_10.cu ;
run test_cuda_u64_is_power_2.cu ;
run test_cuda_u64_ilog2.cu ;
run test_cuda_u64_ilog10.cu ;
run test_cuda_u64_ilog.cu ;
run test_cuda_u64_ipow.cu ;
run test_cuda_u64_abs_diff.cu ;
run test_cuda_u64_div_ceil.cu ;
run test_cuda_u64_next_multiple_of.cu ;
# u128 integer utilities tests
run test_cuda_u128_isqrt.cu ;
run test_cuda_u128_remove_trailing_zeros.cu ;
run test_cuda_u128_is_power_10.cu ;
run test_cuda_u128_is_power_2.cu ;
run test_cuda_u128_ilog2.cu ;
run test_cuda_u128_ilog10.cu ;
run test_cuda_u128_ilog.cu ;
run test_cuda_u128_ipow.cu ;
run test_cuda_u128_abs_diff.cu ;
run test_cuda_u128_div_ceil.cu ;
run test_cuda_u128_next_multiple_of.cu ;
# Numeric tests
# u8 numeric tests
run test_cuda_u8_gcd.cu ;
run test_cuda_u8_lcm.cu ;
run test_cuda_u8_midpoint.cu ;
# u16 numeric tests
run test_cuda_u16_gcd.cu ;
run test_cuda_u16_lcm.cu ;
run test_cuda_u16_midpoint.cu ;
# u32 numeric tests
run test_cuda_u32_gcd.cu ;
run test_cuda_u32_lcm.cu ;
run test_cuda_u32_midpoint.cu ;
# u64 numeric tests
run test_cuda_u64_gcd.cu ;
run test_cuda_u64_lcm.cu ;
run test_cuda_u64_midpoint.cu ;
# u128 numeric tests
run test_cuda_u128_gcd.cu ;
run test_cuda_u128_lcm.cu ;
run test_cuda_u128_midpoint.cu ;
# i8 tests
run test_cuda_i8_add.cu ;
run test_cuda_i8_sub.cu ;
run test_cuda_i8_mul.cu ;
run test_cuda_i8_div.cu ;
run test_cuda_i8_mod.cu ;
# i16 tests
run test_cuda_i16_add.cu ;
run test_cuda_i16_sub.cu ;
run test_cuda_i16_mul.cu ;
run test_cuda_i16_div.cu ;
run test_cuda_i16_mod.cu ;
# i32 tests
run test_cuda_i32_add.cu ;
run test_cuda_i32_sub.cu ;
run test_cuda_i32_mul.cu ;
run test_cuda_i32_div.cu ;
run test_cuda_i32_mod.cu ;
# i64 tests
run test_cuda_i64_add.cu ;
run test_cuda_i64_sub.cu ;
run test_cuda_i64_mul.cu ;
run test_cuda_i64_div.cu ;
run test_cuda_i64_mod.cu ;
# i128 tests
run test_cuda_i128_add.cu ;
run test_cuda_i128_sub.cu ;
run test_cuda_i128_mul.cu ;
run test_cuda_i128_div.cu ;
run test_cuda_i128_mod.cu ;
# Examples
run ../examples/cuda.cu ;
run ../examples/cuda_error_handling.cu ;
run ../examples/cuda_error_handling_without_error_context.cu ;