File tree Expand file tree Collapse file tree 2 files changed +26
-2
lines changed Expand file tree Collapse file tree 2 files changed +26
-2
lines changed Original file line number Diff line number Diff line change 1818 strategy :
1919 matrix :
2020 os : [ubuntu-22.04]
21- backend : [mkl, dnnl]
21+ backend : [mkl, dnnl, asan ]
2222
2323 steps :
2424 - uses : actions/checkout@v4
5050 sudo apt-get install -y intel-oneapi-dnnl-devel=$DNNL_VERSION intel-oneapi-dnnl=$DNNL_VERSION
5151 cmake -DCMAKE_INSTALL_PREFIX=$PWD/install -DBUILD_TESTS=ON -DWITH_MKL=OFF -DOPENMP_RUNTIME=COMP -DWITH_DNNL=ON .
5252
53+ - name : Configure with ASAN
54+ if : startsWith(matrix.os, 'ubuntu') && matrix.backend == 'asan'
55+ env :
56+ DNNL_VERSION : 2023.0.0-25399
57+ run : |
58+ sudo apt-get install -y intel-oneapi-dnnl-devel=$DNNL_VERSION intel-oneapi-dnnl=$DNNL_VERSION
59+ cmake -DCMAKE_INSTALL_PREFIX=$PWD/install -DBUILD_TESTS=ON -DWITH_MKL=OFF -DOPENMP_RUNTIME=COMP -DWITH_DNNL=ON \
60+ -DGOOGLE_ADDRESS_SANITIZER=ON -DCMAKE_BUILD_TYPE=Debug .
61+
5362 - name : Build
5463 run : |
5564 make install
7180 if : matrix.backend == 'dnnl'
7281 run : |
7382 tests/ctranslate2_test tests/data
74-
83+ - name : Test ASAN
84+ if : matrix.backend == 'asan'
85+ run : |
86+ ASAN_OPTIONS=detect_leaks=1:print_stats=1 tests/ctranslate2_test tests/data
7587
7688 build-and-test-cpp-aarch64 :
7789 runs-on : ubuntu-22.04
Original file line number Diff line number Diff line change @@ -22,6 +22,8 @@ option(BUILD_TESTS "Compile the tests" OFF)
2222option (BUILD_SHARED_LIBS "Build shared libraries" ON )
2323option (WITH_TENSOR_PARALLEL "Compile with NCCL and MPI backend" OFF )
2424option (WITH_FLASH_ATTN "Compile with Flash Attention 2" OFF )
25+ option (GOOGLE_ADDRESS_SANITIZER "ASAN" OFF )
26+
2527
2628if (ENABLE_PROFILING)
2729 message (STATUS "Enable profiling support" )
@@ -444,6 +446,16 @@ if (WITH_RUY)
444446 list (APPEND LIBRARIES ruy)
445447endif ()
446448
449+ IF (GOOGLE_ADDRESS_SANITIZER AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "DEBUG" ))
450+ MESSAGE (STATUS "GOOGLE_ADDRESS_SANITIZER: ENABLED" )
451+ set (ASAN_FLAGS " -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-common" )
452+ string (APPEND CMAKE_C_FLAGS ${ASAN_FLAGS} )
453+ string (APPEND CMAKE_CXX_FLAGS ${ASAN_FLAGS} )
454+ add_link_options (-fsanitize=address)
455+ ELSEIF (GOOGLE_ADDRESS_SANITIZER)
456+ MESSAGE (FATAL_ERROR "SANITIZER requires Debug build type" ) # simplify CMake configuration for now
457+ ENDIF ()
458+
447459if (WITH_CUDA)
448460 find_package (CUDA 11.0 REQUIRED)
449461 list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR} /cmake)
You can’t perform that action at this time.
0 commit comments