diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml new file mode 100644 index 0000000..15c08d2 --- /dev/null +++ b/.github/workflows/install.yml @@ -0,0 +1,52 @@ +name: Install KTransformers +run-name: Install KTransformers +on: + workflow_dispatch: + inputs: + job_to_run: + description: "Which job to run?" + required: true + default: "install" + type: choice + options: + - create&install + - install +jobs: + Install-KTransformers: + runs-on: self-hosted + steps: + - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." + - name: Check out repository code + uses: actions/checkout@v4 + - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." + - name: Remove old conda environment + continue-on-error: true + if: ${{ inputs.job_to_run == 'create&install'}} + run: | + source /home/qujing3/anaconda3/etc/profile.d/conda.sh + conda env remove --name KTransformers-dev -y + - name: Create conda environment + if: ${{ inputs.job_to_run == 'create&install'}} + run: | + source /home/qujing3/anaconda3/etc/profile.d/conda.sh + conda create --name KTransformers-dev python=3.11 + conda activate KTransformers-dev + conda install -c conda-forge libstdcxx-ng -y + - name: Install dependencies + if: ${{ inputs.job_to_run == 'create&install'}} + run: | + source /home/qujing3/anaconda3/etc/profile.d/conda.sh + conda activate KTransformers-dev + pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126 + pip3 install packaging ninja cpufeature numpy + pip install ~/flash_attn-2.7.4.post1+cu12torch2.6cxx11abiTRUE-cp311-cp311-linux_x86_64.whl + - name: Install KTransformers + run: | + source /home/qujing3/anaconda3/etc/profile.d/conda.sh + conda activate KTransformers-dev + cd ${{ github.workspace }} + git submodule init + git submodule update + USE_NUMA=1 bash install.sh + - run: echo "This job's status is ${{ job.status }}."