Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <csignal> 7 : 8 : // Blaze 3.8.2 has a missing include that causes nvcc to fail 9 : // (fixed in https://bitbucket.org/blaze-lib/blaze/pull-requests/63). 10 : // We just include it here to fix the issue. 11 : // NOLINTBEGIN 12 : #include <blaze/util/EnableIf.h> 13 : #include <blaze/math/traits/ReduceTrait.h> 14 : // NOLINTEND 15 : 16 : #ifdef __CUDA_ARCH__ 17 : // When building for Nvidia GPUs we need to disable the use of vector 18 : // intrinsics. 19 : #define BLAZE_USE_VECTORIZATION 0 20 : #endif 21 : 22 : #ifdef SPECTRE_DEBUG 23 : #define BLAZE_THROW(EXCEPTION) \ 24 : struct sigaction handler {}; \ 25 : handler.sa_handler = SIG_IGN; \ 26 : handler.sa_flags = 0; \ 27 : sigemptyset(&handler.sa_mask); \ 28 : sigaction(SIGTRAP, &handler, nullptr); \ 29 : raise(SIGTRAP); \ 30 : throw EXCEPTION 31 : #else // SPECTRE_DEBUG 32 0 : #define BLAZE_THROW(EXCEPTION) 33 : #endif // SPECTRE_DEBUG