Skip to content

Commit 2df6d44

Browse files
committed
[SYCL][Test] Introduce fuzzing for SYCL config file
1 parent 1f71d16 commit 2df6d44

File tree

12 files changed

+152
-0
lines changed

12 files changed

+152
-0
lines changed

sycl/tools/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ if (SYCL_ENABLE_XPTI_TRACING)
1515
endif()
1616
endif()
1717

18+
add_subdirectory(fuzzers)

sycl/tools/fuzzers/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
add_subdirectory(sycl-config-fuzzer)
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#set(LLVM_LINK_COMPONENTS
2+
# Support # For dealing with temporary files
3+
#)
4+
5+
message(WARNING ${LLVM_LIB_FUZZING_ENGINE})
6+
7+
add_executable(sycl-config-fuzzer
8+
EXCLUDE_FROM_ALL
9+
main.cpp
10+
)
11+
12+
if (TARGET sycl-config-fuzzer)
13+
target_link_libraries(sycl-config-fuzzer
14+
PRIVATE
15+
${LLVM_LIB_FUZZING_ENGINE}
16+
# We link the whole SYCL RT at object level
17+
$<TARGET_OBJECTS:sycl_object>
18+
$<TARGET_PROPERTY:sycl,LINK_LIBRARIES>
19+
)
20+
set_target_properties(sycl-config-fuzzer PROPERTIES FOLDER "SYCL/Fuzzers")
21+
target_include_directories(sycl-config-fuzzer
22+
PRIVATE SYSTEM
23+
${SYCL_SOURCE_DIR}/source/
24+
)
25+
26+
set(CORPUS_BINARY_DIR ${CMAKE_BINARY_DIR}/fuzzer-artifacts/sycl-config-corpus)
27+
28+
add_custom_command(TARGET sycl-config-fuzzer PRE_BUILD
29+
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/fuzzer-artifacts/sycl-config-artifacts
30+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/corpus ${CORPUS_BINARY_DIR}
31+
)
32+
33+
add_custom_target(fuzz-sycl-config
34+
COMMENT "Running the SYCL config fuzzer for a minute..."
35+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/fuzzer-artifacts/sycl-config-artifacts
36+
COMMAND $<TARGET_FILE:sycl-config-fuzzer> ${CORPUS_BINARY_DIR} -artifact_prefix=config- -max_total_time=60
37+
USES_TERMINAL
38+
)
39+
set_target_properties(fuzz-sycl-config PROPERTIES FOLDER "SYCL/Fuzzers")
40+
endif()
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
SYCL_PRINT_EXECUTION_GRAPH=1
2+
SYCL_DISABLE_EXECUTION_GRAPH_CLEANUP=0
3+
SYCL_DISABLE_POST_ENQUEUE_CLEANUP=1
4+
SYCL_DEVICE_ALLOWLIST=a;b;c
5+
SYCL_UR_TRACE=-1
6+
SYCL_PARALLEL_FOR_RANGE_ROUNDING_TRACE=1
7+
SYCL_DISABLE_PARALLEL_FOR_RANGE_ROUNDING=0
8+
SYCL_PARALLEL_FOR_RANGE_ROUNDING_PARAMS=32;4;4
9+
SYCL_DEVICELIB_NO_FALLBACK=1
10+
SYCL_PROGRAM_LINK_OPTIONS="-ze-opt-disable"
11+
SYCL_PROGRAM_COMPILE_OPTIONS="-ze-opt-level=2"
12+
SYCL_PROGRAM_APPEND_LINK_OPTIONS=2
13+
SYCL_PROGRAM_APPEND_COMPILE_OPTIONS=1
14+
SYCL_HOST_UNIFIED_MEMORY=1
15+
SYCL_CACHE_DIR="C:/path/to/some/dir with spaces"
16+
SYCL_CACHE_TRACE=1
17+
SYCL_IN_MEM_CACHE_EVICTION_THRESHOLD=32
18+
SYCL_CACHE_DISABLE_PERSISTENT=1
19+
SYCL_CACHE_PERSISTENT=1
20+
SYCL_CACHE_EVICTION_DISABLE=0
21+
SYCL_CACHE_MAX_SIZE=-1
22+
SYCL_CACHE_THRESHOLD=64
23+
SYCL_CACHE_MIN_DEVICE_IMAGE_SIZE=32
24+
SYCL_CACHE_MAX_DEVICE_IMAGE_SIZE=128
25+
INTEL_ENABLE_OFFLOAD_ANNOTATIONS=1
26+
SYCL_ENABLE_DEFAULT_CONTEXTS=0
27+
SYCL_QUEUE_THREAD_POOL_SIZE=16
28+
SYCL_RT_WARNING_LEVEL=4
29+
SYCL_REDUCTION_PREFERRED_WORKGROUP_SIZE=256
30+
ONEAPI_DEVICE_SELECTOR="*:gpu;opencl:gpu"
31+
SYCL_ENABLE_FUSION_CACHING=0
32+
SYCL_CACHE_IN_MEM=1
33+
SYCL_JIT_AMDGCN_PTX_KERNELS=1
34+
SYCL_JIT_AMDGCN_PTX_TARGET_CPU=1
35+
SYCL_JIT_AMDGCN_PTX_TARGET_FEATURES="+A,-B"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SYCL_CACHE_DIR=c:/path/to/dir
2+
SYCL_QUEUE_THREAD_POOL_SIZE=23
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Comment
2+
OPTION=value # comment
3+
#comment
4+
OPTION2=value #comment
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SYCL_UR_TRACE=1
2+
SYCL_UR_TRACE=-1
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SYCL_UR_TRACE=-1
2+
ONEAPI_DEVICE_SELECTOR=opencl:gpu
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SYCL_CACHE_IN_MEM=1
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
UNKNOWN_OPTION=some-random-value

0 commit comments

Comments
 (0)