Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
vllm_cscc
Commits
a3896c7f
Unverified
Commit
a3896c7f
authored
May 27, 2025
by
Luka Govedič
Committed by
GitHub
May 27, 2025
Browse files
[Build] Fixes for CMake install (#18570)
parent
51e98e4f
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
7 deletions
+25
-7
CMakeLists.txt
CMakeLists.txt
+5
-0
cmake/external_projects/vllm_flash_attn.cmake
cmake/external_projects/vllm_flash_attn.cmake
+18
-2
cmake/utils.cmake
cmake/utils.cmake
+1
-1
setup.py
setup.py
+1
-4
No files found.
CMakeLists.txt
View file @
a3896c7f
...
...
@@ -23,6 +23,9 @@ include(${CMAKE_CURRENT_LIST_DIR}/cmake/utils.cmake)
# Suppress potential warnings about unused manually-specified variables
set
(
ignoreMe
"
${
VLLM_PYTHON_PATH
}
"
)
# Prevent installation of dependencies (cutlass) by default.
install
(
CODE
"set(CMAKE_INSTALL_LOCAL_ONLY TRUE)"
ALL_COMPONENTS
)
#
# Supported python versions. These versions will be searched in order, the
# first match will be selected. These should be kept in sync with setup.py.
...
...
@@ -785,5 +788,7 @@ endif()
# For CUDA we also build and ship some external projects.
if
(
VLLM_GPU_LANG STREQUAL
"CUDA"
)
include
(
cmake/external_projects/flashmla.cmake
)
# vllm-flash-attn should be last as it overwrites some CMake functions
include
(
cmake/external_projects/vllm_flash_attn.cmake
)
endif
()
cmake/external_projects/vllm_flash_attn.cmake
View file @
a3896c7f
...
...
@@ -46,22 +46,38 @@ else()
endif
()
# Ensure the vllm/vllm_flash_attn directory exists before installation
install
(
CODE
"file(MAKE_DIRECTORY
\"\$
{CMAKE_INSTALL_PREFIX}/vllm/vllm_flash_attn
\"
)"
ALL_COMPONENTS
)
# Make sure vllm-flash-attn install rules are nested under vllm/
# This is here to support installing all components under the same prefix with cmake --install.
# setup.py installs every component separately but uses the same prefix for all.
# ALL_COMPONENTS is used to avoid duplication for FA2 and FA3,
# and these statements don't hurt when installing neither component.
install
(
CODE
"set(CMAKE_INSTALL_LOCAL_ONLY FALSE)"
ALL_COMPONENTS
)
install
(
CODE
"set(OLD_CMAKE_INSTALL_PREFIX
\"\$
{CMAKE_INSTALL_PREFIX}
\"
)"
ALL_COMPONENTS
)
install
(
CODE
"set(CMAKE_INSTALL_PREFIX
\"\$
{CMAKE_INSTALL_PREFIX}/vllm/
\"
)"
ALL_COMPONENTS
)
# Fetch the vllm-flash-attn library
FetchContent_MakeAvailable
(
vllm-flash-attn
)
message
(
STATUS
"vllm-flash-attn is available at
${
vllm-flash-attn_SOURCE_DIR
}
"
)
# Restore the install prefix
install
(
CODE
"set(CMAKE_INSTALL_PREFIX
\"\$
{OLD_CMAKE_INSTALL_PREFIX}
\"
)"
ALL_COMPONENTS
)
install
(
CODE
"set(CMAKE_INSTALL_LOCAL_ONLY TRUE)"
ALL_COMPONENTS
)
# Copy over the vllm-flash-attn python files (duplicated for fa2 and fa3, in
# case only one is built, in the case both are built redundant work is done)
install
(
DIRECTORY
${
vllm-flash-attn_SOURCE_DIR
}
/vllm_flash_attn/
DESTINATION vllm_flash_attn
DESTINATION
vllm/
vllm_flash_attn
COMPONENT _vllm_fa2_C
FILES_MATCHING PATTERN
"*.py"
)
install
(
DIRECTORY
${
vllm-flash-attn_SOURCE_DIR
}
/vllm_flash_attn/
DESTINATION vllm_flash_attn
DESTINATION
vllm/
vllm_flash_attn
COMPONENT _vllm_fa3_C
FILES_MATCHING PATTERN
"*.py"
)
cmake/utils.cmake
View file @
a3896c7f
...
...
@@ -76,7 +76,7 @@ function (hipify_sources_target OUT_SRCS NAME ORIG_SRCS)
set
(
CSRC_BUILD_DIR
${
CMAKE_CURRENT_BINARY_DIR
}
/csrc
)
add_custom_target
(
hipify
${
NAME
}
COMMAND
${
CMAKE_SOURCE_DIR
}
/cmake/hipify.py -p
${
CMAKE_SOURCE_DIR
}
/csrc -o
${
CSRC_BUILD_DIR
}
${
SRCS
}
COMMAND
${
Python_EXECUTABLE
}
${
CMAKE_SOURCE_DIR
}
/cmake/hipify.py -p
${
CMAKE_SOURCE_DIR
}
/csrc -o
${
CSRC_BUILD_DIR
}
${
SRCS
}
DEPENDS
${
CMAKE_SOURCE_DIR
}
/cmake/hipify.py
${
SRCS
}
BYPRODUCTS
${
HIP_SRCS
}
COMMENT
"Running hipify on
${
NAME
}
extension source files."
)
...
...
setup.py
View file @
a3896c7f
...
...
@@ -251,11 +251,8 @@ class cmake_build_ext(build_ext):
# CMake appends the extension prefix to the install path,
# and outdir already contains that prefix, so we need to remove it.
# We assume only the final component of extension prefix is added by
# CMake, this is currently true for current extensions but may not
# always be the case.
prefix
=
outdir
if
'.'
in
ext
.
name
:
for
_
in
range
(
ext
.
name
.
count
(
'.'
))
:
prefix
=
prefix
.
parent
# prefix here should actually be the same for all components
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment