From 3b7770dbce165b9f93b651ed24dbcffbd571d126 Mon Sep 17 00:00:00 2001 From: James Ravenscroft Date: Sun, 14 May 2023 09:18:40 +0100 Subject: [PATCH] add cuda to dependencies --- .github/workflows/build-cuda.yml | 84 ++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 .github/workflows/build-cuda.yml diff --git a/.github/workflows/build-cuda.yml b/.github/workflows/build-cuda.yml new file mode 100644 index 0000000..f815bda --- /dev/null +++ b/.github/workflows/build-cuda.yml @@ -0,0 +1,84 @@ +name: Build CUDA binary on Ubuntu + +on: + push: + branches: [ '**' ] + tags: ['**'] + pull_request: + branches: [ "main" ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + + build-ubuntu: + # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. + # You can convert this to a matrix build if you need cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ubuntu-latest + + # strategy: + # matrix: + # include: + # - build: 'avx2' + # defines: '' + # - build: 'avx' + # defines: '-DLLAMA_AVX2=OFF' + # - build: 'avx512' + # defines: '-DLLAMA_AVX512=ON' + + + steps: + - uses: actions/checkout@v3 + with: + submodules: true + + - name: Install Dependencies + run: | + wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb + sudo dpkg -i cuda-keyring_1.0-1_all.deb + sudo apt-get update && sudo apt-get install -yq libboost-dev cuda + + - name: Build + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: | + cd ${{github.workspace}}/ggml + cmake -B ${{github.workspace}}/ggml/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -D CMAKE_EXE_LINKER_FLAGS="-static" + cd ${{github.workspace}}/ggml/build + make codegen codegen-serve codegen-quantize + chmod +x ${{github.workspace}}/ggml/build/bin/codegen + chmod +x ${{github.workspace}}/ggml/build/bin/codegen-serve + chmod +x ${{github.workspace}}/ggml/build/bin/codegen-quantize + + + - uses: benjlevesque/short-sha@v2.2 + id: short-sha + with: + length: 6 + + + - name: Upload Build Artifacts + uses: actions/upload-artifact@v3.1.2 + with: + # Artifact name + name: turbopilot-${{ runner.os }}-${{ runner.arch }}-${{ steps.short-sha.outputs.sha }} # optional, default is artifact + # A file, directory or wildcard pattern that describes what to upload + path: ${{github.workspace}}/ggml/build/bin/codegen* + # The desired behavior if no files are found using the provided path. + + - name: package artifacts for release + if: startsWith(github.ref, 'refs/tags/') + + run: | + cd ${{github.workspace}}/ggml/build/bin + zip turbopilot-${{ runner.os }}-${{ runner.arch }}.zip ./codegen* + + - name: Upload binaries to release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + with: + token: ${{ secrets.PUBLISH_TOKEN }} + files: ${{github.workspace}}/ggml/build/bin/turbopilot-${{ runner.os }}-${{ runner.arch }}.zip