diff --git a/.gitignore b/.gitignore index 938a2386bb1d8..177130cd358ba 100644 --- a/.gitignore +++ b/.gitignore @@ -115,5 +115,8 @@ hipblas.dll koboldcpp_hipblas.so koboldcpp_hipblas.dll +bin/ +conda/ + # Jetbrains idea folder .idea/ diff --git a/environment.yaml b/environment.yaml new file mode 100644 index 0000000000000..17a698466d20c --- /dev/null +++ b/environment.yaml @@ -0,0 +1,24 @@ +name: koboldcpp +channels: + - nvidia/label/cuda-11.5.0 + - conda-forge + - defaults +dependencies: + - python=3.8 + - cuda-nvcc=11.5 + - cuda-libraries-dev=11.5 + - cxx-compiler + - gxx=10 + - pip + - git=2.35.1 + - libopenblas + - openblas + - clblast + - ninja + - make + - packaging + - pyinstaller + - libcblas + - ocl-icd-system + - pip: + - customtkinter diff --git a/koboldcpp.sh b/koboldcpp.sh new file mode 100755 index 0000000000000..50074e402e176 --- /dev/null +++ b/koboldcpp.sh @@ -0,0 +1,22 @@ +#!/bin/bash +if [ ! -f "bin/micromamba" ]; then + curl -Ls https://anaconda.org/conda-forge/micromamba/1.5.3/download/linux-64/micromamba-1.5.3-0.tar.bz2 | tar -xvj bin/micromamba +fi + +if [[ ! -f "conda/envs/linux/bin/python" || $1 == "rebuild" ]]; then + bin/micromamba create --no-shortcuts -r conda -n linux -f environment.yaml -y + bin/micromamba create --no-shortcuts -r conda -n linux -f environment.yaml -y + bin/micromamba run -r conda -n linux make clean +fi + +bin/micromamba run -r conda -n linux make LLAMA_OPENBLAS=1 LLAMA_CLBLAST=1 LLAMA_CUBLAS=1 LLAMA_PORTABLE=1 + +if [[ $1 == "rebuild" ]]; then + echo Rebuild complete, you can now try to launch Koboldcpp. +elif [[ $1 == "dist" ]]; then + bin/micromamba remove -r conda -n linux --force ocl-icd -y + bin/micromamba run -r conda -n linux pyinstaller --noconfirm --onefile --collect-all customtkinter --add-data='./koboldcpp_default.so:.' --add-data='./koboldcpp_cublas.so:.' --add-data='./koboldcpp_openblas.so:.' --add-data='./koboldcpp_clblast.so:.' --add-data='./koboldcpp_clblast_noavx2.so:.' --add-data='./klite.embd:.' --add-data='./kcpp_docs.embd:.' --add-data='./rwkv_vocab.embd:.' --add-data='./rwkv_world_vocab.embd:.' --clean --console koboldcpp.py -n "koboldcpp-linux-x64" + bin/micromamba install -r conda -n linux ocl-icd -c conda-forge -y + else + bin/micromamba run -r conda -n linux python koboldcpp.py $* +fi