if((DEFINED ENABLE_VECMATHLIB) AND (DEFINED ENABLE_SLEEF))
if(ENABLE_SLEEF AND ENABLE_VECMATHLIB)
message(FATAL_ERROR"requested to use both Vecmathlib and SLEEF - pick one!")
endif()
option(ENABLE_SLEEF "Use SLEEF for kernel library"ON)
if((NOT ENABLE_SLEEF) AND (NOT ENABLE_VECMATHLIB))
message(FATAL_ERROR"requested to use neither Vecmathlib nor SLEEF - pick one!")
endif()
endif()
option(ENABLE_CONFORMANCE "Enable conformance to OpenCL standard. Disabling this may enable slightly faster kernel library functions (at a price of range/precision). Note that enabling this does not guarantee conformance (depends on hardware)"ON)
if(NOTDEFINED ENABLE_CONFORMANCE)
if(((DEFINED ENABLE_VECMATHLIB) AND ENABLE_VECMATHLIB) OR
((DEFINED ENABLE_SLEEF) AND (NOT ENABLE_SLEEF)))
set(DEFAULT_CONF OFF)
set(DEFAULT_SLEEF OFF)
set(DEFAULT_VML ON)
else()
set(DEFAULT_CONF ON)
set(DEFAULT_SLEEF ON)
set(DEFAULT_VML OFF)
endif()
else()
set(DEFAULT_CONF ${ENABLE_CONFORMANCE})
if (ENABLE_CONFORMANCE)
# requested conformant
if((DEFINED ENABLE_VECMATHLIB) AND ENABLE_VECMATHLIB)
message(FATAL_ERROR"requested to use Vecmathlib with enabled conformance")
option(ENABLE_CONFORMANCE "Enable conformance to OpenCL standard. Disabling this may enable slightly faster kernel library functions (at a price of range/precision). Note that enabling this does not guarantee conformance (depends on hardware). Incompatible with Vecmathlib. Defaults to ON"${DEFAULT_CONF})
option(ENABLE_SLEEF "Use SLEEF for kernel library, mutually exclusive with ENABLE_VECMATHLIB"${DEFAULT_SLEEF})
option(ENABLE_VECMATHLIB "Use vecmathlib for kernel library, mutually exclusive with ENABLE_SLEEF"${DEFAULT_VML})
if((NOT CLANGXX_WORKS) AND ENABLE_VECMATHLIB)
message(WARNING "Disabling vecmathlib because clang++ doesn't seem to work!")
set(ENABLE_VECMATHLIB OFF)
set(ENABLE_VECMATHLIB OFFCACHE BOOL "VML"FORCE)
set(ENABLE_SLEEF ON)
set(ENABLE_SLEEF ONCACHE BOOL "SLEEF"FORCE)
endif()
# vecmathlib does not compile with fp16 currently
if(ENABLE_VECMATHLIB AND (NOT CL_DISABLE_HALF))
message(STATUS "Half available, but disabling half support since vecmathlib is enabled.")
set(CL_DISABLE_HALF 1)
set(CL_DISABLE_HALF 1 CACHE BOOL "Disable cl_khr_fp16 because fp16 is not supported")
0 comments on commit
b4017fd