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
70de39f6
Unverified
Commit
70de39f6
authored
Sep 26, 2024
by
youkaichao
Committed by
GitHub
Sep 26, 2024
Browse files
[misc][installation] build from source without compilation (#8818)
parent
68988d4e
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
85 additions
and
3 deletions
+85
-3
docs/source/getting_started/installation.rst
docs/source/getting_started/installation.rst
+31
-3
python_only_dev.py
python_only_dev.py
+54
-0
No files found.
docs/source/getting_started/installation.rst
View file @
70de39f6
...
@@ -58,13 +58,41 @@ You can install vLLM using pip:
...
@@ -58,13 +58,41 @@ You can install vLLM using pip:
$ # export VLLM_COMMIT=...
$ # export VLLM_COMMIT=...
$ # pip install https://vllm-wheels.s3.us-west-2.amazonaws.com/${VLLM_COMMIT}/vllm-${VLLM_VERSION}-cp38-abi3-manylinux1_x86_64.whl
$ # pip install https://vllm-wheels.s3.us-west-2.amazonaws.com/${VLLM_COMMIT}/vllm-${VLLM_VERSION}-cp38-abi3-manylinux1_x86_64.whl
Build from source (without compilation)
---------------------------------------
If you want to develop vLLM, and you only need to change the Python code, you can build vLLM without compilation.
The first step is to follow the previous instructions to install the latest vLLM wheel:
.. code-block:: console
$ export VLLM_VERSION=0.6.1.post1
$ pip install https://vllm-wheels.s3.us-west-2.amazonaws.com/nightly/vllm-${VLLM_VERSION}-cp38-abi3-manylinux1_x86_64.whl
After verifying that the installation is successful, we have a script for you to copy and link directories, so that you can edit the Python code directly:
.. code-block:: console
$ git clone https://github.com/vllm-project/vllm.git
$ cd vllm
$ python python_only_dev.py
It will:
- Find the installed vLLM in the current environment.
- Copy built files to the current directory.
- Rename the installed vLLM
- Symbolically link the current directory to the installed vLLM.
This way, you can edit the Python code in the current directory, and the changes will be reflected in the installed vLLM.
.. _build_from_source:
.. _build_from_source:
Build from source
Build from source
(with compilation)
-----------------
-----------------
-------------------
You can also build and install
vLLM from source:
If you need to touch the C++ or CUDA code, you need to build
vLLM from source:
.. code-block:: console
.. code-block:: console
...
...
python_only_dev.py
0 → 100644
View file @
70de39f6
# enable python only development
# copy compiled files to the current directory directly
import
os
import
shutil
import
subprocess
import
sys
# cannot directly `import vllm` , because it will try to
# import from the current directory
output
=
subprocess
.
run
([
sys
.
executable
,
"-m"
,
"pip"
,
"show"
,
"vllm"
],
capture_output
=
True
)
assert
output
.
returncode
==
0
,
"vllm is not installed"
text
=
output
.
stdout
.
decode
(
"utf-8"
)
package_path
=
None
for
line
in
text
.
split
(
"
\n
"
):
if
line
.
startswith
(
"Location: "
):
package_path
=
line
.
split
(
": "
)[
1
]
break
assert
package_path
is
not
None
,
"could not find package path"
cwd
=
os
.
getcwd
()
assert
cwd
!=
package_path
,
"should not import from the current directory"
files_to_copy
=
[
"vllm/_C.abi3.so"
,
"vllm/_core_C.abi3.so"
,
"vllm/_moe_C.abi3.so"
,
"vllm/vllm_flash_attn/vllm_flash_attn_c.abi3.so"
,
"vllm/vllm_flash_attn/flash_attn_interface.py"
,
"vllm/vllm_flash_attn/__init__.py"
,
# "vllm/_version.py", # not available in nightly wheels yet
]
for
file
in
files_to_copy
:
src
=
os
.
path
.
join
(
package_path
,
file
)
dst
=
file
print
(
f
"Copying
{
src
}
to
{
dst
}
"
)
shutil
.
copyfile
(
src
,
dst
)
pre_built_vllm_path
=
os
.
path
.
join
(
package_path
,
"vllm"
)
tmp_path
=
os
.
path
.
join
(
package_path
,
"vllm_pre_built"
)
current_vllm_path
=
os
.
path
.
join
(
cwd
,
"vllm"
)
print
(
f
"Renaming
{
pre_built_vllm_path
}
to
{
tmp_path
}
"
)
os
.
rename
(
pre_built_vllm_path
,
tmp_path
)
print
(
f
"linking
{
current_vllm_path
}
to
{
pre_built_vllm_path
}
"
)
os
.
symlink
(
current_vllm_path
,
pre_built_vllm_path
)
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