mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-08-14 20:29:41 -04:00
ci : Added CI with RISC-V RVV1.0 Hardware (#14439)
* Changed the CI file to hw * Changed the CI file to hw * Added to sudoers for apt * Removed the clone command and used checkout * Added libcurl * Added gcc-14 * Checking gcc --version * added gcc-14 symlink * added CC and C++ variables * Added the gguf weight * Changed the weights path * Added system specification * Removed white spaces * ci: Replace Jenkins riscv native build Cloud-V pipeline with GitHub Actions workflow Removed the legacy .devops/cloud-v-pipeline Jenkins CI configuration and introduced .github/workflows/build-riscv-native.yml for native RISC-V builds using GitHub Actions. * removed trailing whitespaces --------- Co-authored-by: Akif Ejaz <akifejaz40@gmail.com>
This commit is contained in:
@@ -1,22 +0,0 @@
|
|||||||
node('x86_runner1'){ // Running on x86 runner containing latest vector qemu, latest vector gcc and all the necessary libraries
|
|
||||||
stage('Cleanup'){
|
|
||||||
cleanWs() // Cleaning previous CI build in workspace
|
|
||||||
}
|
|
||||||
stage('checkout repo'){
|
|
||||||
retry(5){ // Retry if the cloning fails due to some reason
|
|
||||||
checkout scm // Clone the repo on Runner
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Compiling llama.cpp'){
|
|
||||||
sh'''#!/bin/bash
|
|
||||||
make RISCV=1 RISCV_CROSS_COMPILE=1 # Compiling llama for RISC-V
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
stage('Running llama.cpp'){
|
|
||||||
sh'''#!/bin/bash
|
|
||||||
module load gnu-bin2/0.1 # loading latest versions of vector qemu and vector gcc
|
|
||||||
qemu-riscv64 -L /softwares/gnu-bin2/sysroot -cpu rv64,v=true,vlen=256,elen=64,vext_spec=v1.0 ./llama-cli -m /home/alitariq/codellama-7b.Q4_K_M.gguf -p "Anything" -n 9 > llama_log.txt # Running llama.cpp on vector qemu-riscv64
|
|
||||||
cat llama_log.txt # Printing results
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
43
.github/workflows/build-riscv-native.yml
vendored
Normal file
43
.github/workflows/build-riscv-native.yml
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
name: Build on RISCV Linux Machine by Cloud-V
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
workflow_call:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
bianbu-riscv64-native: # Bianbu 2.2
|
||||||
|
runs-on: self-hosted
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
sudo apt-get update || true
|
||||||
|
sudo apt-get install -y libatomic1
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Setup Riscv
|
||||||
|
run: |
|
||||||
|
sudo apt-get update || true
|
||||||
|
sudo apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
gcc-14-riscv64-linux-gnu \
|
||||||
|
g++-14-riscv64-linux-gnu \
|
||||||
|
cmake
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
cmake -B build -DLLAMA_CURL=OFF \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DGGML_OPENMP=OFF \
|
||||||
|
-DLLAMA_BUILD_EXAMPLES=ON \
|
||||||
|
-DLLAMA_BUILD_TOOLS=ON \
|
||||||
|
-DLLAMA_BUILD_TESTS=OFF \
|
||||||
|
-DCMAKE_SYSTEM_NAME=Linux \
|
||||||
|
-DCMAKE_SYSTEM_PROCESSOR=riscv64 \
|
||||||
|
-DCMAKE_C_COMPILER=riscv64-linux-gnu-gcc-14 \
|
||||||
|
-DCMAKE_CXX_COMPILER=riscv64-linux-gnu-g++-14 \
|
||||||
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH=/usr/lib/riscv64-linux-gnu \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
|
||||||
|
|
||||||
|
cmake --build build --config Release -j $(nproc)
|
Reference in New Issue
Block a user