61
tools/ai_qos/CMakeLists.txt
Normal file
61
tools/ai_qos/CMakeLists.txt
Normal file
@@ -0,0 +1,61 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(ai_qos LANGUAGES CXX)
|
||||
find_package(Python3 COMPONENTS Interpreter Development.Module REQUIRED)
|
||||
execute_process(
|
||||
COMMAND python3 -c "import pybind11, os; print(os.path.dirname(os.path.dirname(pybind11.get_include())))"
|
||||
OUTPUT_VARIABLE PYBIND11_ROOT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
list(APPEND CMAKE_PREFIX_PATH "${PYBIND11_ROOT}")
|
||||
find_package(pybind11 CONFIG REQUIRED)
|
||||
pybind11_add_module(ai_qos MODULE ai_qos.cpp)
|
||||
target_compile_features(ai_qos PRIVATE cxx_std_11)
|
||||
# ---- DSMI lookup (driver SDK, not CANN-only) ----
|
||||
set(_dsmi_inc_paths
|
||||
/usr/local/Ascend/driver/include
|
||||
/usr/local/Ascend/ascend-toolkit/latest/driver/include
|
||||
/usr/local/Ascend/driver/kernel/inc/driver
|
||||
)
|
||||
set(_dsmi_lib_paths
|
||||
/usr/local/Ascend/driver/lib64/driver
|
||||
/usr/local/Ascend/ascend-toolkit/latest/driver/lib64
|
||||
)
|
||||
if(DEFINED ENV{ASCEND_HOME_PATH} AND NOT "$ENV{ASCEND_HOME_PATH}" STREQUAL "")
|
||||
get_filename_component(_ascend_parent "$ENV{ASCEND_HOME_PATH}" DIRECTORY)
|
||||
list(INSERT _dsmi_inc_paths 0
|
||||
"${_ascend_parent}/driver/include"
|
||||
"$ENV{ASCEND_HOME_PATH}/driver/include"
|
||||
)
|
||||
list(INSERT _dsmi_lib_paths 0
|
||||
"${_ascend_parent}/driver/lib64/driver"
|
||||
"$ENV{ASCEND_HOME_PATH}/driver/lib64"
|
||||
)
|
||||
endif()
|
||||
find_path(DSMI_INCLUDE_DIR
|
||||
NAMES dsmi_common_interface.h
|
||||
PATHS ${_dsmi_inc_paths}
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
find_library(DSMI_LIBRARY
|
||||
NAMES drvdsmi_host
|
||||
PATHS ${_dsmi_lib_paths}
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
if(NOT DSMI_INCLUDE_DIR)
|
||||
message(FATAL_ERROR
|
||||
"ai_qos: dsmi_common_interface.h not found. "
|
||||
"Pass -DDSMI_INCLUDE_DIR=/path/to/include"
|
||||
)
|
||||
endif()
|
||||
if(NOT DSMI_LIBRARY)
|
||||
message(FATAL_ERROR
|
||||
"ai_qos: drvdsmi_host not found. "
|
||||
"Pass -DDSMI_LIBRARY=/path/to/libdrvdsmi_host.so"
|
||||
)
|
||||
endif()
|
||||
target_include_directories(ai_qos PRIVATE
|
||||
${pybind11_INCLUDE_DIRS}
|
||||
${DSMI_INCLUDE_DIR}
|
||||
)
|
||||
target_link_libraries(ai_qos PRIVATE ${DSMI_LIBRARY})
|
||||
install(TARGETS ai_qos LIBRARY DESTINATION .)
|
||||
Reference in New Issue
Block a user