mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2025-01-07 09:11:46 +00:00
47 lines
1.6 KiB
CMake
47 lines
1.6 KiB
CMake
|
if ("cann${CANN_INSTALL_DIR}" STREQUAL "cann" AND DEFINED ENV{ASCEND_TOOLKIT_HOME})
|
||
|
set(CANN_INSTALL_DIR $ENV{ASCEND_TOOLKIT_HOME})
|
||
|
message(STATUS "CANN: updated CANN_INSTALL_DIR from ASCEND_TOOLKIT_HOME=$ENV{ASCEND_TOOLKIT_HOME}")
|
||
|
endif()
|
||
|
|
||
|
if (CANN_INSTALL_DIR)
|
||
|
# Only Support Linux.
|
||
|
if (NOT UNIX)
|
||
|
message(FATAL_ERROR "CANN: CANN toolkit supports unix but not ${CMAKE_SYSTEM_NAME}")
|
||
|
endif()
|
||
|
|
||
|
# Supported platforms: x86-64, arm64
|
||
|
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||
|
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64")
|
||
|
else()
|
||
|
message(FATAL_ERROR "CANN: CANN toolkit supports x86-64 and arm64 but not ${CMAKE_SYSTEM_PROCESSOR}")
|
||
|
endif()
|
||
|
|
||
|
# Set header and libs
|
||
|
set(CANN_INCLUDE_DIRS
|
||
|
${CANN_INSTALL_DIR}/include
|
||
|
${CANN_INSTALL_DIR}/include/aclnn
|
||
|
${CANN_INSTALL_DIR}/acllib/include
|
||
|
)
|
||
|
|
||
|
add_subdirectory(kernels)
|
||
|
list(APPEND CANN_LIBRARIES
|
||
|
ascendcl
|
||
|
nnopbase
|
||
|
opapi
|
||
|
acl_op_compiler
|
||
|
ascendc_kernels
|
||
|
)
|
||
|
|
||
|
file(GLOB GGML_SOURCES_CANN "*.cpp")
|
||
|
|
||
|
add_library(ggml-cann ${GGML_SOURCES_CANN})
|
||
|
target_link_libraries(ggml-cann PRIVATE ggml-base ${CANN_LIBRARIES})
|
||
|
target_include_directories(ggml-cann PRIVATE . .. ${CANN_INCLUDE_DIRS})
|
||
|
target_link_directories(ggml-cann PRIVATE ${CANN_INSTALL_DIR}/lib64)
|
||
|
|
||
|
message(STATUS "CANN: CANN_INCLUDE_DIRS = ${CANN_INCLUDE_DIRS}")
|
||
|
message(STATUS "CANN: CANN_LIBRARIES = ${CANN_LIBRARIES}")
|
||
|
else()
|
||
|
message(FATAL_ERROR "CANN: Can't find CANN_INSTALL_DIR, did you forget to source set_var.sh?")
|
||
|
endif()
|