blob: f8abd457e8aad6ae07de51b64f13dc2a35554184 (
plain)
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
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
|
###################################################################################
# these configurations are copied from beignet root directory cmake for stand alone build.
# do NOT set the NOT_BUILD_STAND_ALONE_UTEST if build the utest alone.
if (NOT NOT_BUILD_STAND_ALONE_UTEST)
message(STATUS "Building Stand Alone Utest")
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
INCLUDE (FindPkgConfig)
Find_Package(PythonInterp)
# OpenCL
pkg_check_modules(OPENCL REQUIRED OpenCL)
IF(OPENCL_FOUND)
INCLUDE_DIRECTORIES(${OPENCL_INCLUDE_DIRS})
ENDIF(OPENCL_FOUND)
# Force Release with debug info
if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE RelWithDebInfo)
endif (NOT CMAKE_BUILD_TYPE)
message(STATUS "Building mode: " ${CMAKE_BUILD_TYPE})
set (CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "assure config" FORCE)
# Threads
Find_Package(Threads)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof")
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_CXX_FLAGS}")
set (CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DGBE_DEBUG=1")
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DGBE_DEBUG=1")
set (CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG -DGBE_DEBUG=0")
set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG -DGBE_DEBUG=0")
set (CMAKE_C_FLAGS_DEBUG "-O0 -g -DGBE_DEBUG=1")
set (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DGBE_DEBUG=1")
set (CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG -DGBE_DEBUG=0")
set (CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG -DGBE_DEBUG=0")
endif (NOT NOT_BUILD_STAND_ALONE_UTEST)
###################################################################################
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../include
${OPENGL_INCLUDE_DIRS}
${EGL_INCLUDE_DIRS})
##### Math Function Part:
EXECUTE_PROCESS(COMMAND mkdir generated -p WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} utest_math_gen.py WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE GEN_MATH_STRING)
string(REGEX REPLACE " " ";" ADDMATHFUNC ${GEN_MATH_STRING})
string(REGEX REPLACE "generated/([^\ ]*)\\.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/../kernels/\\1.cl" KERNEL_MATH_LIST ${GEN_MATH_STRING})
string(REGEX REPLACE " " ";" KERNEL_MATH_LIST ${KERNEL_MATH_LIST})
string(REGEX REPLACE "generated/([^\ ]*)\\.cpp" "\\1.cl" KERNEL_GITIGNORE_LIST ${GEN_MATH_STRING})
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "generated;${KERNEL_MATH_LIST}")
configure_file (
"setenv.sh.in"
"setenv.sh"
)
#XXX only need GL if required
link_directories (${LLVM_LIBRARY_DIR} ${OPENGL_LIBDIR} ${EGL_LIBDIR} ${X11_LIBDIR} ${DRM_LIBDIR})
set (utests_basic_sources
utest_error.c
utest_assert.cpp
utest.cpp
utest_file_map.cpp
utest_helper.cpp)
# the test case with binary kernel
if (NOT_BUILD_STAND_ALONE_UTEST)
set (utests_binary_kernel_sources load_program_from_bin_file.cpp enqueue_built_in_kernels.cpp)
endif (NOT_BUILD_STAND_ALONE_UTEST)
set (utests_sources
compiler_basic_arithmetic.cpp
compiler_displacement_map_element.cpp
compiler_mandelbrot.cpp
compiler_mandelbrot_alternate.cpp
compiler_box_blur_float.cpp
compiler_box_blur_image.cpp
compiler_box_blur.cpp
compiler_insert_to_constant.cpp
compiler_argument_structure.cpp
compiler_argument_structure_indirect.cpp
compiler_argument_structure_select.cpp
compiler_arith_shift_right.cpp
compiler_mixed_pointer.cpp
compiler_array0.cpp
compiler_array.cpp
compiler_array1.cpp
compiler_array2.cpp
compiler_array3.cpp
compiler_array4.cpp
compiler_byte_scatter.cpp
compiler_ceil.cpp
compiler_popcount.cpp
compiler_convert_uchar_sat.cpp
compiler_copy_buffer.cpp
compiler_copy_image.cpp
compiler_copy_large_image.cpp
compiler_copy_image_1d.cpp
compiler_copy_image_3d.cpp
compiler_copy_buffer_row.cpp
compiler_degrees.cpp
compiler_step.cpp
compiler_fabs.cpp
compiler_abs.cpp
compiler_abs_diff.cpp
compiler_fill_image.cpp
compiler_fill_large_image.cpp
compiler_fill_image0.cpp
compiler_fill_image_1d.cpp
compiler_fill_image_3d.cpp
compiler_fill_image_3d_2.cpp
compiler_function_argument0.cpp
compiler_function_argument1.cpp
compiler_function_argument2.cpp
compiler_function_argument.cpp
compiler_function_constant0.cpp
compiler_function_constant1.cpp
compiler_function_constant.cpp
compiler_global_constant.cpp
compiler_global_constant_2.cpp
compiler_group_size.cpp
compiler_hadd.cpp
compiler_if_else.cpp
compiler_integer_division.cpp
compiler_integer_remainder.cpp
compiler_insert_vector.cpp
compiler_lower_return0.cpp
compiler_lower_return1.cpp
compiler_lower_return2.cpp
compiler_mad_hi.cpp
compiler_mul_hi.cpp
compiler_mad24.cpp
compiler_mul24.cpp
compiler_multiple_kernels.cpp
compiler_radians.cpp
compiler_rhadd.cpp
compiler_rotate.cpp
compiler_saturate.cpp
compiler_saturate_sub.cpp
compiler_shift_right.cpp
compiler_short_scatter.cpp
compiler_smoothstep.cpp
compiler_uint2_copy.cpp
compiler_uint3_copy.cpp
compiler_uint8_copy.cpp
compiler_uint16_copy.cpp
compiler_uint3_unaligned_copy.cpp
compiler_upsample_int.cpp
compiler_upsample_long.cpp
compiler_unstructured_branch0.cpp
compiler_unstructured_branch1.cpp
compiler_unstructured_branch2.cpp
compiler_unstructured_branch3.cpp
compiler_write_only_bytes.cpp
compiler_write_only.cpp
compiler_write_only_shorts.cpp
compiler_switch.cpp
compiler_bswap.cpp
compiler_clz.cpp
compiler_ctz.cpp
compiler_math.cpp
compiler_atomic_functions.cpp
compiler_async_copy.cpp
compiler_workgroup_broadcast.cpp
compiler_workgroup_reduce.cpp
compiler_workgroup_scan_exclusive.cpp
compiler_workgroup_scan_inclusive.cpp
compiler_subgroup_broadcast.cpp
compiler_subgroup_reduce.cpp
compiler_subgroup_scan_exclusive.cpp
compiler_subgroup_scan_inclusive.cpp
compiler_subgroup_buffer_block_read.cpp
compiler_subgroup_buffer_block_write.cpp
compiler_subgroup_image_block_read.cpp
compiler_subgroup_image_block_write.cpp
compiler_subgroup_media_block_read.cpp
compiler_subgroup_media_block_write.cpp
compiler_async_stride_copy.cpp
compiler_insn_selection_min.cpp
compiler_insn_selection_max.cpp
compiler_insn_selection_masked_min_max.cpp
compiler_load_bool_imm.cpp
compiler_global_memory_barrier.cpp
compiler_local_memory_two_ptr.cpp
compiler_local_memory_barrier.cpp
compiler_local_memory_barrier_wg64.cpp
compiler_local_memory_barrier_2.cpp
compiler_local_slm.cpp
compiler_movforphi_undef.cpp
compiler_volatile.cpp
compiler_copy_image1.cpp
compiler_get_image_info.cpp
compiler_get_image_info_array.cpp
compiler_vect_compare.cpp
compiler_vector_load_store.cpp
compiler_vector_inc.cpp
compiler_cl_finish.cpp
get_cl_info.cpp
builtin_atan2.cpp
builtin_bitselect.cpp
builtin_frexp.cpp
builtin_mad_sat.cpp
builtin_modf.cpp
builtin_nextafter.cpp
builtin_remquo.cpp
builtin_shuffle.cpp
builtin_shuffle2.cpp
builtin_sign.cpp
builtin_lgamma.cpp
builtin_lgamma_r.cpp
builtin_tgamma.cpp
buildin_work_dim.cpp
builtin_global_size.cpp
builtin_local_size.cpp
builtin_global_id.cpp
builtin_num_groups.cpp
builtin_local_id.cpp
builtin_sub_group_size.cpp
builtin_max_sub_group_size.cpp
builtin_num_sub_groups.cpp
builtin_sub_group_id.cpp
builtin_acos_asin.cpp
builtin_pow.cpp
builtin_exp.cpp
builtin_convert_sat.cpp
sub_buffer.cpp
runtime_createcontext.cpp
runtime_set_kernel_arg.cpp
runtime_null_kernel_arg.cpp
runtime_event.cpp
runtime_barrier_list.cpp
runtime_marker_list.cpp
runtime_compile_link.cpp
compiler_long.cpp
compiler_long_2.cpp
compiler_long_not.cpp
compiler_long_hi_sat.cpp
compiler_long_div.cpp
compiler_long_convert.cpp
compiler_long_shl.cpp
compiler_long_shr.cpp
compiler_long_asr.cpp
compiler_long_mult.cpp
compiler_long_cmp.cpp
compiler_long_bitcast.cpp
compiler_half.cpp
compiler_function_argument3.cpp
compiler_function_qualifiers.cpp
compiler_bool_cross_basic_block.cpp
compiler_private_const.cpp
compiler_private_data_overflow.cpp
compiler_getelementptr_bitcast.cpp
compiler_time_stamp.cpp
compiler_double_precision.cpp
compiler_double.cpp
compiler_double_div.cpp
compiler_double_convert.cpp
load_program_from_gen_bin.cpp
get_arg_info.cpp
profiling_exec.cpp
enqueue_copy_buf.cpp
enqueue_copy_buf_unaligned.cpp
test_printf.cpp
enqueue_fill_buf.cpp
builtin_kernel_max_global_size.cpp
image_1D_buffer.cpp
image_from_buffer.cpp
image_planar_yuv.cpp
compare_image_2d_and_1d_array.cpp
compiler_fill_image_1d_array.cpp
compiler_fill_image_2d_array.cpp
compiler_constant_expr.cpp
compiler_assignment_operation_in_if.cpp
vload_bench.cpp
runtime_use_host_ptr_buffer.cpp
runtime_alloc_host_ptr_buffer.cpp
runtime_use_host_ptr_image.cpp
runtime_use_host_ptr_large_image.cpp
compiler_get_max_sub_group_size.cpp
compiler_get_sub_group_local_id.cpp
compiler_sub_group_shuffle.cpp
compiler_sub_group_shuffle_down.cpp
compiler_sub_group_shuffle_up.cpp
compiler_sub_group_shuffle_xor.cpp
builtin_global_linear_id.cpp
builtin_local_linear_id.cpp
multi_queue_events.cpp
compiler_mix.cpp
compiler_math_3op.cpp
compiler_bsort.cpp
builtin_kernel_block_motion_estimate_intel.cpp
compiler_program_global.cpp
compiler_generic_atomic.cpp
compiler_atomic_functions_20.cpp
compiler_sampler.cpp
compiler_generic_pointer.cpp
runtime_pipe_query.cpp
compiler_pipe_builtin.cpp
compiler_device_enqueue.cpp
compiler_sqrt_div.cpp)
if (LLVM_VERSION_NODOT VERSION_GREATER 34)
SET(utests_sources
${utests_sources}
compiler_overflow.cpp)
endif (LLVM_VERSION_NODOT VERSION_GREATER 34)
if (NOT_BUILD_STAND_ALONE_UTEST)
if (X11_FOUND)
SET(utests_sources
${utests_sources}
runtime_climage_from_boname.cpp)
SET(UTESTS_REQUIRED_X11_LIB ${X11_LIBRARIES} ${XEXT_LIBRARIES})
else()
SET(UTESTS_REQUIRED_X11_LIB "")
endif (X11_FOUND)
endif (NOT_BUILD_STAND_ALONE_UTEST)
if (CMRT_FOUND)
SET(utests_sources
${utests_sources}
runtime_cmrt.cpp)
endif (CMRT_FOUND)
SET (kernel_bin ${CMAKE_CURRENT_SOURCE_DIR}/../kernels/compiler_ceil)
list (GET GBE_BIN_GENERATER -1 GBE_BIN_FILE)
if(GEN_PCI_ID)
ADD_CUSTOM_COMMAND(
OUTPUT ${kernel_bin}.bin
COMMAND ${GBE_BIN_GENERATER} ${kernel_bin}.cl -o${kernel_bin}.bin -t${GEN_PCI_ID}
DEPENDS ${GBE_BIN_FILE} ${kernel_bin}.cl)
else(GEN_PCI_ID)
ADD_CUSTOM_COMMAND(
OUTPUT ${kernel_bin}.bin
COMMAND ${GBE_BIN_GENERATER} ${kernel_bin}.cl -o${kernel_bin}.bin
DEPENDS ${GBE_BIN_FILE} ${kernel_bin}.cl)
endif(GEN_PCI_ID)
if (NOT_BUILD_STAND_ALONE_UTEST)
ADD_CUSTOM_TARGET(kernel_bin.bin DEPENDS ${kernel_bin}.bin)
endif (NOT_BUILD_STAND_ALONE_UTEST)
add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/generated
COMMAND mkdir ${CMAKE_CURRENT_SOURCE_DIR}/generated -p
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/utest_math_gen.py > /dev/null 2>&1
COMMAND echo ${KERNEL_GITIGNORE_LIST} |sed 's/ /\\n/g' > ${CMAKE_CURRENT_SOURCE_DIR}/../kernels/.gitignore
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_custom_target(utest_generator
DEPENDS generated
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
#compiler_fill_gl_image test case also need xlib
if (OPENGL_FOUND AND EGL_FOUND AND X11_FOUND)
SET(utests_sources ${utests_sources} compiler_fill_gl_image.cpp)
SET(CMAKE_CXX_FLAGS "-DHAS_GL_EGL_X11 ${CMAKE_CXX_FLAGS} ${DEF_OCL_PCH_PCM_PATH}")
SET(CMAKE_C_FLAGS "-DHAS_GL_EGL_X11 ${CMAKE_C_FLAGS} ${DEF_OCL_PCH_PCM_PATH}")
SET(UTESTS_REQUIRED_GL_EGL_X11_LIB ${OPENGL_LIBRARIES} ${EGL_LIBRARIES} ${X11_LIBRARIES})
endif()
if (USE_STANDALONE_GBE_COMPILER STREQUAL "true")
SET(utests_sources ${utests_basic_sources} ${utests_binary_kernel_sources})
else ()
SET(utests_sources ${utests_basic_sources} ${utests_binary_kernel_sources} ${ADDMATHFUNC} ${utests_sources})
endif ()
if (COMPILER STREQUAL "CLANG")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-tautological-compare")
endif ()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations" )
ADD_LIBRARY(utests SHARED ${utests_sources})
if (NOT_BUILD_STAND_ALONE_UTEST)
TARGET_LINK_LIBRARIES(utests cl m ${UTESTS_REQUIRED_GL_EGL_X11_LIB} ${CMAKE_THREAD_LIBS_INIT} ${UTESTS_REQUIRED_X11_LIB})
else()
TARGET_LINK_LIBRARIES(utests ${OPENCL_LIBRARIES} m ${UTESTS_REQUIRED_GL_EGL_X11_LIB} ${CMAKE_THREAD_LIBS_INIT} ${UTESTS_REQUIRED_X11_LIB})
endif()
ADD_EXECUTABLE(utest_run utest_run.cpp)
TARGET_LINK_LIBRARIES(utest_run utests)
if (NOT_BUILD_STAND_ALONE_UTEST)
ADD_DEPENDENCIES (utest_run kernel_bin.bin)
endif (NOT_BUILD_STAND_ALONE_UTEST)
ADD_DEPENDENCIES (utests utest_generator)
ADD_EXECUTABLE(flat_address_space runtime_flat_address_space.cpp)
TARGET_LINK_LIBRARIES(flat_address_space utests)
ADD_CUSTOM_TARGET(utest DEPENDS utest_run utests flat_address_space)
|