set(DBCSR_OPENCL_PARAMS_WITHGPU ${CMAKE_CURRENT_SOURCE_DIR}/params/tune_multiply_${WITH_GPU}.csv) set(DBCSR_OPENCL_PARAMS_CUSTOM ${CMAKE_CURRENT_SOURCE_DIR}/tune_multiply.csv) if (EXISTS ${DBCSR_OPENCL_PARAMS_WITHGPU}) set(DBCSR_OPENCL_SCRIPT_MSG "ACC/LIBSMM OpenCL: using parameters for ${WITH_GPU}") set(DBCSR_OPENCL_PARAMS ${DBCSR_OPENCL_PARAMS_WITHGPU}) elseif (WITH_GPU MATCHES "none") set(DBCSR_OPENCL_SCRIPT_MSG "ACC/LIBSMM OpenCL: no tuned parameters used") set(DBCSR_OPENCL_SCRIPT_ARGS -p \"\") elseif (EXISTS ${DBCSR_OPENCL_PARAMS_CUSTOM}) set(DBCSR_OPENCL_SCRIPT_MSG "ACC/LIBSMM OpenCL: using custom parameters") set(DBCSR_OPENCL_PARAMS ${DBCSR_OPENCL_PARAMS_CUSTOM}) else () set(DBCSR_OPENCL_SCRIPT_MSG "ACC/LIBSMM OpenCL: using all tuned parameters") endif () message(STATUS ${DBCSR_OPENCL_SCRIPT_MSG}) set(DBCSR_OPENCL_KERNELS kernels/multiply.cl kernels/transpose.cl) list(TRANSFORM DBCSR_OPENCL_KERNELS PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/) list(APPEND DBCSR_OPENCL_DEPENDS ${DBCSR_ACC_HEADER} ${DBCSR_OPENCL_COMMON}) list(TRANSFORM DBCSR_OPENCL_DEPENDS PREPEND ${DBCSR_SOURCE_DIR}/) set(DBCSR_OPENCL_KHEADER opencl_kernels.h) add_custom_command( COMMAND ${DBCSR_OPENCL_SCRIPT} ${DBCSR_OPENCL_SCRIPT_ARGS} ${DBCSR_OPENCL_KERNELS} ${DBCSR_OPENCL_PARAMS} ${CMAKE_CURRENT_SOURCE_DIR}/${DBCSR_OPENCL_KHEADER} DEPENDS ${DBCSR_OPENCL_DEPENDS} ${DBCSR_OPENCL_KERNELS} ${DBCSR_OPENCL_SCRIPT} ${DBCSR_OPENCL_PARAMS} OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${DBCSR_OPENCL_KHEADER} COMMENT ${DBCSR_OPENCL_SCRIPT_MSG}) add_custom_target(${DBCSR_OPENCL_KHEADER} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBCSR_OPENCL_KHEADER}) add_dependencies(dbcsr ${DBCSR_OPENCL_KHEADER}) target_include_directories(dbcsr PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})