77 lines
2.0 KiB
CMake
77 lines
2.0 KiB
CMake
|
|
# SPDX-License-Identifier: Apache-2.0
|
||
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM-MLU project
|
||
|
|
cmake_minimum_required(VERSION 3.16)
|
||
|
|
project(vllm_mlu_C)
|
||
|
|
|
||
|
|
function(detect_debian10)
|
||
|
|
if(EXISTS "/etc/os-release")
|
||
|
|
file(READ "/etc/os-release" os_release)
|
||
|
|
if(os_release MATCHES "PRETTY_NAME=\"Debian GNU/Linux 10" OR
|
||
|
|
os_release MATCHES "VERSION_ID=\"10")
|
||
|
|
set(DEBIAN_10 TRUE PARENT_SCOPE)
|
||
|
|
message(STATUS "Detected Debian 10 (buster)")
|
||
|
|
endif()
|
||
|
|
endif()
|
||
|
|
endfunction()
|
||
|
|
|
||
|
|
detect_debian10()
|
||
|
|
|
||
|
|
if(DEBIAN_10)
|
||
|
|
find_program(GCC_PATH "gcc" PATHS "/usr/local/bin")
|
||
|
|
if(GCC_PATH)
|
||
|
|
message(STATUS "Using GCC on Debian 10: ${GCC_PATH}")
|
||
|
|
set(CMAKE_C_COMPILER "${GCC_PATH}")
|
||
|
|
set(CMAKE_CXX_COMPILER "/usr/local/bin/g++")
|
||
|
|
else()
|
||
|
|
message(WARNING "Debian 10 detected but gcc not found!")
|
||
|
|
endif()
|
||
|
|
endif()
|
||
|
|
|
||
|
|
set(CMAKE_CXX_STANDARD 17)
|
||
|
|
|
||
|
|
include(${CMAKE_CURRENT_LIST_DIR}/cmake/utils.cmake)
|
||
|
|
|
||
|
|
# Suppress potential warnings about unused manually-specified variables
|
||
|
|
set(ignoreMe "${VLLM_PYTHON_PATH}")
|
||
|
|
|
||
|
|
set(PYTHON_SUPPORTED_VERSIONS "3.9" "3.10" "3.11" "3.12")
|
||
|
|
|
||
|
|
find_package(pybind11 REQUIRED)
|
||
|
|
|
||
|
|
append_cmake_prefix_path("torch" "torch.utils.cmake_prefix_path")
|
||
|
|
set(VLLM_MLU_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}")
|
||
|
|
|
||
|
|
find_package(Torch REQUIRED)
|
||
|
|
|
||
|
|
if (NOT CMAKE_BUILD_TYPE)
|
||
|
|
set(CMAKE_BUILD_TYPE "Release" CACHE STRINGS "Build type Release/Debug (default Release)" FORCE)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
file(GLOB VLLM_MLU_SRC ${CMAKE_CURRENT_SOURCE_DIR}/csrc/*.cpp)
|
||
|
|
|
||
|
|
include_directories(
|
||
|
|
${pybind11_INCLUDE_DIRS}
|
||
|
|
${PYTHON_INCLUDE_PATH}
|
||
|
|
${TORCH_INCLUDE_DIRS}
|
||
|
|
$ENV{NEUWARE_HOME}/include
|
||
|
|
)
|
||
|
|
|
||
|
|
pybind11_add_module(vllm_mlu_C ${VLLM_MLU_SRC})
|
||
|
|
|
||
|
|
target_link_directories(
|
||
|
|
vllm_mlu_C
|
||
|
|
PRIVATE
|
||
|
|
$ENV{NEUWARE_HOME}/lib64
|
||
|
|
)
|
||
|
|
|
||
|
|
target_link_libraries(
|
||
|
|
vllm_mlu_C
|
||
|
|
PUBLIC
|
||
|
|
${TORCH_LIBRARIES}
|
||
|
|
libcndrv.so
|
||
|
|
)
|
||
|
|
|
||
|
|
target_link_options(vllm_mlu_C PRIVATE "-Wl,-rpath,$ORIGIN:$ORIGIN/lib")
|
||
|
|
|
||
|
|
install(TARGETS vllm_mlu_C DESTINATION ${VLLM_MLU_INSTALL_PATH})
|