Add cuBLAS llama-cpp-python wheel installation (#102)

Parses requirements.txt using regex to determine required version.
This commit is contained in:
jllllll 2023-07-15 23:31:33 -05:00 committed by GitHub
parent bb79037ebd
commit 11a8fd1eb9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,5 +1,6 @@
import argparse import argparse
import glob import glob
import re
import os import os
import site import site
import subprocess import subprocess
@ -110,10 +111,10 @@ def update_dependencies():
os.chdir("text-generation-webui") os.chdir("text-generation-webui")
run_cmd("git pull", assert_success=True, environment=True) run_cmd("git pull", assert_success=True, environment=True)
# Workaround for git+ packages not updating properly # Workaround for git+ packages not updating properly Also store requirements.txt for later use
with open("requirements.txt") as f: with open("requirements.txt") as f:
requirements = f.read().splitlines() textgen_requirements = f.read()
git_requirements = [req for req in requirements if req.startswith("git+")] git_requirements = [req for req in textgen_requirements.splitlines() if req.startswith("git+")]
# Loop through each "git+" requirement and uninstall it # Loop through each "git+" requirement and uninstall it
for req in git_requirements: for req in git_requirements:
@ -161,6 +162,12 @@ def update_dependencies():
if '+cu' not in torver and run_cmd("conda list -f pytorch-cuda | grep pytorch-cuda", environment=True, capture_output=True).returncode == 1: if '+cu' not in torver and run_cmd("conda list -f pytorch-cuda | grep pytorch-cuda", environment=True, capture_output=True).returncode == 1:
return return
# Install llama-cpp-python built with cuBLAS support for NVIDIA GPU acceleration
if '+cu' in torver:
llama_cpp = re.search('(?<=llama-cpp-python==)\d+(?:\.\d+)*', textgen_requirements)
if llama_cpp is not None:
run_cmd(f'python -m pip install llama-cpp-python=={llama_cpp[0]} --force-reinstall --no-deps --index-url=https://jllllll.github.io/llama-cpp-python-cuBLAS-wheels/AVX2/cu117', environment=True)
# Finds the path to your dependencies # Finds the path to your dependencies
for sitedir in site.getsitepackages(): for sitedir in site.getsitepackages():
if "site-packages" in sitedir: if "site-packages" in sitedir: