xref: /aosp_15_r20/external/pytorch/cmake/Modules/FindBLIS.cmake (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Worker# - Find BLIS library
2*da0073e9SAndroid Build Coastguard Worker#
3*da0073e9SAndroid Build Coastguard Worker# This module sets the following variables:
4*da0073e9SAndroid Build Coastguard Worker#  BLIS_FOUND - set to true if a library implementing CBLAS interface is found.
5*da0073e9SAndroid Build Coastguard Worker#  BLIS_INCLUDE_DIR - path to include dir.
6*da0073e9SAndroid Build Coastguard Worker#  BLIS_LIB - list of libraries for BLIS.
7*da0073e9SAndroid Build Coastguard Worker#
8*da0073e9SAndroid Build Coastguard Worker# CPU only Dockerfile to build with AMD BLIS is available at the location
9*da0073e9SAndroid Build Coastguard Worker# pytorch/docker/pytorch/cpu-blis/Dockerfile
10*da0073e9SAndroid Build Coastguard Worker#
11*da0073e9SAndroid Build Coastguard Worker
12*da0073e9SAndroid Build Coastguard Worker
13*da0073e9SAndroid Build Coastguard WorkerSET(BLIS_INCLUDE_SEARCH_PATHS
14*da0073e9SAndroid Build Coastguard Worker  /usr/include/blis
15*da0073e9SAndroid Build Coastguard Worker  /usr/local/include
16*da0073e9SAndroid Build Coastguard Worker  /usr/local/include/blis
17*da0073e9SAndroid Build Coastguard Worker  /opt/blis/include
18*da0073e9SAndroid Build Coastguard Worker  $ENV{BLIS_HOME}
19*da0073e9SAndroid Build Coastguard Worker  $ENV{BLIS_HOME}/include
20*da0073e9SAndroid Build Coastguard Worker  $ENV{BLIS_HOME}/include/blis
21*da0073e9SAndroid Build Coastguard Worker)
22*da0073e9SAndroid Build Coastguard Worker
23*da0073e9SAndroid Build Coastguard WorkerSET(BLIS_LIB_SEARCH_PATHS
24*da0073e9SAndroid Build Coastguard Worker  /lib/blis
25*da0073e9SAndroid Build Coastguard Worker  /lib64/blis
26*da0073e9SAndroid Build Coastguard Worker  /usr/lib/blis
27*da0073e9SAndroid Build Coastguard Worker  /usr/lib64/blis
28*da0073e9SAndroid Build Coastguard Worker  /usr/local/blis/lib
29*da0073e9SAndroid Build Coastguard Worker  /opt/blis/lib
30*da0073e9SAndroid Build Coastguard Worker  $ENV{BLIS_HOME}
31*da0073e9SAndroid Build Coastguard Worker  $ENV{BLIS_HOME}/lib
32*da0073e9SAndroid Build Coastguard Worker)
33*da0073e9SAndroid Build Coastguard Worker
34*da0073e9SAndroid Build Coastguard WorkerFIND_PATH(BLIS_INCLUDE_DIR NAMES cblas.h blis.h
35*da0073e9SAndroid Build Coastguard Worker          PATHS ${BLIS_INCLUDE_SEARCH_PATHS})
36*da0073e9SAndroid Build Coastguard Worker#    Check include files
37*da0073e9SAndroid Build Coastguard WorkerIF(NOT BLIS_INCLUDE_DIR)
38*da0073e9SAndroid Build Coastguard Worker        SET(BLIS_FOUND OFF)
39*da0073e9SAndroid Build Coastguard Worker        MESSAGE(WARNING "Could not find BLIS include. Turning BLIS_FOUND off")
40*da0073e9SAndroid Build Coastguard Worker        RETURN()
41*da0073e9SAndroid Build Coastguard WorkerENDIF()
42*da0073e9SAndroid Build Coastguard Worker
43*da0073e9SAndroid Build Coastguard Worker
44*da0073e9SAndroid Build Coastguard WorkerFIND_LIBRARY(BLIS_LIB NAMES blis PATHS ${BLIS_LIB_SEARCH_PATHS})
45*da0073e9SAndroid Build Coastguard Worker#    Check libraries
46*da0073e9SAndroid Build Coastguard WorkerIF(NOT BLIS_LIB)
47*da0073e9SAndroid Build Coastguard Worker        SET(BLIS_FOUND OFF)
48*da0073e9SAndroid Build Coastguard Worker        MESSAGE(WARNING "Could not find BLIS lib. Turning BLIS_FOUND off")
49*da0073e9SAndroid Build Coastguard Worker        RETURN()
50*da0073e9SAndroid Build Coastguard WorkerENDIF()
51*da0073e9SAndroid Build Coastguard Worker
52*da0073e9SAndroid Build Coastguard WorkerSET(BLIS_FOUND ON)
53*da0073e9SAndroid Build Coastguard Worker
54*da0073e9SAndroid Build Coastguard WorkerIF(BLIS_FOUND)
55*da0073e9SAndroid Build Coastguard Worker        IF(NOT BLIS_FIND_QUIETLY)
56*da0073e9SAndroid Build Coastguard Worker                MESSAGE(STATUS "Found BLIS libraries: ${BLIS_LIB}")
57*da0073e9SAndroid Build Coastguard Worker                MESSAGE(STATUS "Found BLIS include: ${BLIS_INCLUDE_DIR}")
58*da0073e9SAndroid Build Coastguard Worker        ENDIF()
59*da0073e9SAndroid Build Coastguard WorkerELSE()
60*da0073e9SAndroid Build Coastguard Worker        MESSAGE(FATAL_ERROR "Could not find BLIS")
61*da0073e9SAndroid Build Coastguard WorkerENDIF()
62*da0073e9SAndroid Build Coastguard Worker
63*da0073e9SAndroid Build Coastguard WorkerINCLUDE(FindPackageHandleStandardArgs)
64*da0073e9SAndroid Build Coastguard WorkerFIND_PACKAGE_HANDLE_STANDARD_ARGS(BLIS DEFAULT_MSG BLIS_INCLUDE_DIR BLIS_LIB)
65*da0073e9SAndroid Build Coastguard Worker
66*da0073e9SAndroid Build Coastguard WorkerMARK_AS_ADVANCED(
67*da0073e9SAndroid Build Coastguard Worker        BLIS_INCLUDE_DIR
68*da0073e9SAndroid Build Coastguard Worker        BLIS_LIB
69*da0073e9SAndroid Build Coastguard Worker        blis
70*da0073e9SAndroid Build Coastguard Worker)
71