1*da0073e9SAndroid Build Coastguard Worker# - Find MAGMA library 2*da0073e9SAndroid Build Coastguard Worker# This module finds an installed MAGMA library, a matrix algebra library 3*da0073e9SAndroid Build Coastguard Worker# similar to LAPACK for GPU and multicore systems 4*da0073e9SAndroid Build Coastguard Worker# (see http://icl.cs.utk.edu/magma/). 5*da0073e9SAndroid Build Coastguard Worker# 6*da0073e9SAndroid Build Coastguard Worker# This module will look for MAGMA library under /usr/local/magma by 7*da0073e9SAndroid Build Coastguard Worker# default. To use a different installed version of the library set 8*da0073e9SAndroid Build Coastguard Worker# environment variable MAGMA_HOME before running cmake (e.g. 9*da0073e9SAndroid Build Coastguard Worker# MAGMA_HOME=${HOME}/lib/magma instead of default /usr/local/magma) 10*da0073e9SAndroid Build Coastguard Worker# 11*da0073e9SAndroid Build Coastguard Worker# This module sets the following variables: 12*da0073e9SAndroid Build Coastguard Worker# MAGMA_FOUND - set to true if the MAGMA library is found. 13*da0073e9SAndroid Build Coastguard Worker# MAGMA_LIBRARIES - list of libraries to link against to use MAGMA 14*da0073e9SAndroid Build Coastguard Worker# MAGMA_INCLUDE_DIR - include directory 15*da0073e9SAndroid Build Coastguard Worker 16*da0073e9SAndroid Build Coastguard Workerif(MAGMA_FOUND) 17*da0073e9SAndroid Build Coastguard Worker return() 18*da0073e9SAndroid Build Coastguard Workerendif() 19*da0073e9SAndroid Build Coastguard Worker 20*da0073e9SAndroid Build Coastguard Workerinclude(FindPackageHandleStandardArgs) 21*da0073e9SAndroid Build Coastguard Worker 22*da0073e9SAndroid Build Coastguard WorkerSET(MAGMA_LIBRARIES) 23*da0073e9SAndroid Build Coastguard WorkerSET(MAGMA_INCLUDE_DIR) 24*da0073e9SAndroid Build Coastguard Worker 25*da0073e9SAndroid Build Coastguard WorkerFIND_LIBRARY(MAGMA_LIBRARIES magma 26*da0073e9SAndroid Build Coastguard Worker HINTS $ENV{MAGMA_HOME} /usr/local/magma 27*da0073e9SAndroid Build Coastguard Worker PATH_SUFFIXES lib) 28*da0073e9SAndroid Build Coastguard Worker 29*da0073e9SAndroid Build Coastguard WorkerFIND_PATH(MAGMA_INCLUDE_DIR magma.h 30*da0073e9SAndroid Build Coastguard Worker HINTS $ENV{MAGMA_HOME} /usr/local/magma 31*da0073e9SAndroid Build Coastguard Worker PATH_SUFFIXES include) 32*da0073e9SAndroid Build Coastguard Worker 33*da0073e9SAndroid Build Coastguard WorkerIF (MAGMA_LIBRARIES) 34*da0073e9SAndroid Build Coastguard Worker SET(MAGMA_FOUND TRUE) 35*da0073e9SAndroid Build Coastguard WorkerELSE (MAGMA_LIBRARIES) 36*da0073e9SAndroid Build Coastguard Worker SET(MAGMA_FOUND FALSE) 37*da0073e9SAndroid Build Coastguard WorkerENDIF (MAGMA_LIBRARIES) 38*da0073e9SAndroid Build Coastguard Worker 39*da0073e9SAndroid Build Coastguard Workeradd_library(torch::magma INTERFACE IMPORTED) 40*da0073e9SAndroid Build Coastguard Workerset_property(TARGET torch::magma 41*da0073e9SAndroid Build Coastguard Worker PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${MAGMA_INCLUDE_DIR}") 42*da0073e9SAndroid Build Coastguard Workerset_property(TARGET torch::magma 43*da0073e9SAndroid Build Coastguard Worker PROPERTY INTERFACE_LINK_LIBRARIES "${MAGMA_LIBRARIES}") 44*da0073e9SAndroid Build Coastguard Worker 45*da0073e9SAndroid Build Coastguard Worker# Check for Magma V2 46*da0073e9SAndroid Build Coastguard Workerinclude(CheckPrototypeDefinition) 47*da0073e9SAndroid Build Coastguard Workercheck_prototype_definition(magma_get_sgeqrf_nb 48*da0073e9SAndroid Build Coastguard Worker "magma_int_t magma_get_sgeqrf_nb( magma_int_t m, magma_int_t n );" 49*da0073e9SAndroid Build Coastguard Worker "0" 50*da0073e9SAndroid Build Coastguard Worker "magma.h" 51*da0073e9SAndroid Build Coastguard Worker MAGMA_V2) 52*da0073e9SAndroid Build Coastguard Workerif(MAGMA_V2) 53*da0073e9SAndroid Build Coastguard Worker set_property(TARGET torch::magma 54*da0073e9SAndroid Build Coastguard Worker PROPERTY INTERFACE_COMPILE_DEFINITIONS "MAGMA_V2") 55*da0073e9SAndroid Build Coastguard Workerendif(MAGMA_V2) 56