Skip to content

Commit 6929268

Browse files
committed
Added RISC-V supported tests
1 parent 72d53e6 commit 6929268

File tree

1 file changed

+305
-0
lines changed

1 file changed

+305
-0
lines changed

.github/workflows/build.yml

Lines changed: 305 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1574,3 +1574,308 @@ jobs:
15741574
run: |
15751575
GG_BUILD_KLEIDIAI=1 GG_BUILD_EXTRA_TESTS_0=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt
15761576
1577+
debian-cpu-cmake-rv64-native:
1578+
1579+
runs-on: RISCV64
1580+
1581+
steps:
1582+
- name: Clone
1583+
id: checkout
1584+
uses: actions/checkout@v4
1585+
1586+
- name: Setup ccache
1587+
run: |
1588+
mkdir -p $HOME/.ccache $HOME/ccache_debug
1589+
ccache -M 5G -d $HOME/.ccache
1590+
export CCACHE_LOGFILE=/home/runneruser/ccache_debug/ccache.log
1591+
export CCACHE_DEBUGDIR="/home/runneruser/ccache_debug"
1592+
echo "$GITHUB_WORKSPACE"
1593+
echo "CCACHE_LOGFILE=$CCACHE_LOGFILE" >> $GITHUB_ENV
1594+
echo "CCACHE_DEBUGDIR=$CCACHE_DEBUGDIR" >> $GITHUB_ENV
1595+
echo "CCACHE_BASEDIR=$GITHUB_WORKSPACE" >> $GITHUB_ENV
1596+
echo "CCACHE_DIR=$HOME/.ccache" >> $GITHUB_ENV
1597+
- name: Dependencies
1598+
id: depends
1599+
run: |
1600+
sudo apt-get update
1601+
sudo apt-get install -y build-essential libcurl4-openssl-dev wget
1602+
1603+
- name: Build
1604+
id: cmake_build
1605+
run: |
1606+
cmake -B build \
1607+
-DLLAMA_CURL=OFF \
1608+
-DCMAKE_BUILD_TYPE=Release \
1609+
-DGGML_OPENMP=OFF \
1610+
-DLLAMA_BUILD_EXAMPLES=ON \
1611+
-DLLAMA_BUILD_TOOLS=ON \
1612+
-DLLAMA_BUILD_TESTS=OFF \
1613+
-DCMAKE_SYSTEM_NAME=Linux \
1614+
-DCMAKE_SYSTEM_PROCESSOR=riscv64 \
1615+
-DCMAKE_C_COMPILER=riscv64-linux-gnu-gcc-14 \
1616+
-DCMAKE_CXX_COMPILER=riscv64-linux-gnu-g++-14 \
1617+
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
1618+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
1619+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
1620+
-DCMAKE_FIND_ROOT_PATH=/usr/lib/riscv64-linux-gnu \
1621+
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
1622+
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
1623+
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH \
1624+
-DGGML_RPC=ON
1625+
# -DLLAMA_FATAL_WARNINGS=ON # Turned off due to compiler warnings being treated as errors on RISC-V
1626+
1627+
cmake --build build --config Release -j $(nproc)
1628+
1629+
- name: Test
1630+
id: cmake_test
1631+
run: |
1632+
cd build
1633+
ctest -L 'main|curl' --verbose --timeout 900
1634+
1635+
- name: Test llama2c conversion
1636+
id: llama2c_test
1637+
run: |
1638+
cd build
1639+
echo "Fetch tokenizer"
1640+
wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories260K/tok512.bin
1641+
echo "Fetch llama2c model"
1642+
wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories260K/stories260K.bin
1643+
./bin/llama-convert-llama2c-to-ggml --copy-vocab-from-model ./tok512.bin --llama2c-model stories260K.bin --llama2c-output-model stories260K.gguf
1644+
./bin/llama-cli -m stories260K.gguf -p "One day, Lily met a Shoggoth" -n 500 -c 256
1645+
1646+
debian-trixie-cmake-sanitizer-riscv64-native:
1647+
runs-on: RISCV64
1648+
1649+
continue-on-error: true
1650+
1651+
strategy:
1652+
matrix:
1653+
sanitizer: [ADDRESS, THREAD, UNDEFINED]
1654+
build_type: [Debug]
1655+
1656+
steps:
1657+
- name: Clone
1658+
id: checkout
1659+
uses: actions/checkout@v4
1660+
1661+
- name: Setup ccache
1662+
run: |
1663+
mkdir -p $HOME/.ccache $HOME/ccache_debug
1664+
ccache -M 5G -d $HOME/.ccache
1665+
export CCACHE_LOGFILE=/home/runneruser/ccache_debug/ccache.log
1666+
export CCACHE_DEBUGDIR="/home/runneruser/ccache_debug"
1667+
echo "$GITHUB_WORKSPACE"
1668+
echo "CCACHE_LOGFILE=$CCACHE_LOGFILE" >> $GITHUB_ENV
1669+
echo "CCACHE_DEBUGDIR=$CCACHE_DEBUGDIR" >> $GITHUB_ENV
1670+
echo "CCACHE_BASEDIR=$GITHUB_WORKSPACE" >> $GITHUB_ENV
1671+
echo "CCACHE_DIR=$HOME/.ccache" >> $GITHUB_ENV
1672+
1673+
- name: Dependencies
1674+
id: depends
1675+
run: |
1676+
sudo apt-get update
1677+
sudo apt-get install build-essential libcurl4-openssl-dev
1678+
1679+
- name: Build
1680+
id: cmake_build
1681+
if: ${{ matrix.sanitizer != 'THREAD' }}
1682+
run: |
1683+
cmake -B build \
1684+
-DLLAMA_CURL=OFF \
1685+
-DCMAKE_BUILD_TYPE=Release \
1686+
-DGGML_OPENMP=OFF \
1687+
-DLLAMA_BUILD_EXAMPLES=ON \
1688+
-DLLAMA_BUILD_TOOLS=ON \
1689+
-DLLAMA_BUILD_TESTS=OFF \
1690+
-DCMAKE_SYSTEM_NAME=Linux \
1691+
-DCMAKE_SYSTEM_PROCESSOR=riscv64 \
1692+
-DCMAKE_C_COMPILER=riscv64-linux-gnu-gcc-14 \
1693+
-DCMAKE_CXX_COMPILER=riscv64-linux-gnu-g++-14 \
1694+
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
1695+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
1696+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
1697+
-DCMAKE_FIND_ROOT_PATH=/usr/lib/riscv64-linux-gnu \
1698+
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
1699+
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
1700+
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH \
1701+
\#-DLLAMA_FATAL_WARNINGS=ON \
1702+
-DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON \
1703+
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
1704+
cmake --build build --config ${{ matrix.build_type }} -j $(nproc)
1705+
1706+
- name: Build (no OpenMP)
1707+
id: cmake_build_no_openmp
1708+
if: ${{ matrix.sanitizer == 'THREAD' }}
1709+
run: |
1710+
cmake -B build \
1711+
-DLLAMA_CURL=OFF \
1712+
-DCMAKE_BUILD_TYPE=Release \
1713+
-DGGML_OPENMP=OFF \
1714+
-DLLAMA_BUILD_EXAMPLES=ON \
1715+
-DLLAMA_BUILD_TOOLS=ON \
1716+
-DLLAMA_BUILD_TESTS=OFF \
1717+
-DCMAKE_SYSTEM_NAME=Linux \
1718+
-DCMAKE_SYSTEM_PROCESSOR=riscv64 \
1719+
-DCMAKE_C_COMPILER=riscv64-linux-gnu-gcc-14 \
1720+
-DCMAKE_CXX_COMPILER=riscv64-linux-gnu-g++-14 \
1721+
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
1722+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
1723+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
1724+
-DCMAKE_FIND_ROOT_PATH=/usr/lib/riscv64-linux-gnu \
1725+
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
1726+
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
1727+
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH \
1728+
\#-DLLAMA_FATAL_WARNINGS=ON \
1729+
-DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON \
1730+
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
1731+
-DGGML_OPENMP=OFF
1732+
cmake --build build --config ${{ matrix.build_type }} -j $(nproc)
1733+
1734+
- name: Test
1735+
id: cmake_test
1736+
run: |
1737+
cd build
1738+
ctest -L main --verbose --timeout 900
1739+
1740+
1741+
debian-trixie-llguidance-riscv64-native:
1742+
runs-on: RISCV64
1743+
1744+
steps:
1745+
- name: Clone
1746+
id: checkout
1747+
uses: actions/checkout@v4
1748+
1749+
- name: Dependencies
1750+
id: depends
1751+
run: |
1752+
sudo apt-get update
1753+
sudo apt-get install -y build-essential libcurl4-openssl-dev rustup python3-pip
1754+
1755+
- name: Build
1756+
id: cmake_build
1757+
run: |
1758+
mkdir build
1759+
cd build
1760+
cmake .. \
1761+
-DLLAMA_CURL=OFF \
1762+
-DCMAKE_BUILD_TYPE=Release \
1763+
-DGGML_OPENMP=OFF \
1764+
-DLLAMA_BUILD_EXAMPLES=ON \
1765+
-DLLAMA_BUILD_TOOLS=ON \
1766+
-DLLAMA_BUILD_TESTS=OFF \
1767+
-DCMAKE_SYSTEM_NAME=Linux \
1768+
-DCMAKE_SYSTEM_PROCESSOR=riscv64 \
1769+
-DCMAKE_C_COMPILER=riscv64-linux-gnu-gcc-14 \
1770+
-DCMAKE_CXX_COMPILER=riscv64-linux-gnu-g++-14 \
1771+
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
1772+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
1773+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
1774+
-DCMAKE_FIND_ROOT_PATH=/usr/lib/riscv64-linux-gnu \
1775+
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
1776+
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
1777+
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH \
1778+
\#-DLLAMA_FATAL_WARNINGS=ON \
1779+
-DLLAMA_LLGUIDANCE=ON
1780+
cmake --build . --config Release -j $(nproc)
1781+
1782+
- name: Test
1783+
id: cmake_test
1784+
run: |
1785+
cd build
1786+
ctest -L main --verbose --timeout 900
1787+
1788+
1789+
1790+
debian-trixie-cmake-rpc-riscv64-native:
1791+
runs-on: RISCV64
1792+
1793+
continue-on-error: true
1794+
1795+
steps:
1796+
- name: Clone
1797+
id: checkout
1798+
uses: actions/checkout@v4
1799+
1800+
- name: Setup ccache
1801+
run: |
1802+
mkdir -p $HOME/.ccache $HOME/ccache_debug
1803+
ccache -M 5G -d $HOME/.ccache
1804+
export CCACHE_LOGFILE=/home/runneruser/ccache_debug/ccache.log
1805+
export CCACHE_DEBUGDIR="/home/runneruser/ccache_debug"
1806+
echo "$GITHUB_WORKSPACE"
1807+
echo "CCACHE_LOGFILE=$CCACHE_LOGFILE" >> $GITHUB_ENV
1808+
echo "CCACHE_DEBUGDIR=$CCACHE_DEBUGDIR" >> $GITHUB_ENV
1809+
echo "CCACHE_BASEDIR=$GITHUB_WORKSPACE" >> $GITHUB_ENV
1810+
echo "CCACHE_DIR=$HOME/.ccache" >> $GITHUB_ENV
1811+
1812+
- name: Dependencies
1813+
id: depends
1814+
run: |
1815+
sudo apt-get update
1816+
sudo apt-get install build-essential libcurl4-openssl-dev
1817+
1818+
- name: Build
1819+
id: cmake_build
1820+
run: |
1821+
cmake -B build \
1822+
-DLLAMA_CURL=OFF \
1823+
-DCMAKE_BUILD_TYPE=Release \
1824+
-DGGML_OPENMP=OFF \
1825+
-DLLAMA_BUILD_EXAMPLES=ON \
1826+
-DLLAMA_BUILD_TOOLS=ON \
1827+
-DLLAMA_BUILD_TESTS=OFF \
1828+
-DCMAKE_SYSTEM_NAME=Linux \
1829+
-DCMAKE_SYSTEM_PROCESSOR=riscv64 \
1830+
-DCMAKE_C_COMPILER=riscv64-linux-gnu-gcc-14 \
1831+
-DCMAKE_CXX_COMPILER=riscv64-linux-gnu-g++-14 \
1832+
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
1833+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
1834+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
1835+
-DCMAKE_FIND_ROOT_PATH=/usr/lib/riscv64-linux-gnu \
1836+
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
1837+
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
1838+
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH \
1839+
-DGGML_RPC=ON
1840+
cmake --build build --config Release -j $(nproc)
1841+
1842+
- name: Test
1843+
id: cmake_test
1844+
run: |
1845+
cd build
1846+
ctest -L main --verbose
1847+
ggml-ci-riscv64-native-cpu-low-perf:
1848+
runs-on: RISCV64
1849+
1850+
steps:
1851+
- name: Install Dependencies
1852+
run: |
1853+
sudo apt-get update
1854+
sudo apt-get install -y git-lfs
1855+
- name: Clone
1856+
id: checkout
1857+
uses: actions/checkout@v4
1858+
1859+
- name: Setup ccache
1860+
run: |
1861+
mkdir -p $HOME/.ccache $HOME/ccache_debug
1862+
ccache -M 5G -d $HOME/.ccache
1863+
export CCACHE_LOGFILE=/home/runneruser/ccache_debug/ccache.log
1864+
export CCACHE_DEBUGDIR="/home/runneruser/ccache_debug"
1865+
echo "$GITHUB_WORKSPACE"
1866+
echo "CCACHE_LOGFILE=$CCACHE_LOGFILE" >> $GITHUB_ENV
1867+
echo "CCACHE_DEBUGDIR=$CCACHE_DEBUGDIR" >> $GITHUB_ENV
1868+
echo "CCACHE_BASEDIR=$GITHUB_WORKSPACE" >> $GITHUB_ENV
1869+
echo "CCACHE_DIR=$HOME/.ccache" >> $GITHUB_ENV
1870+
1871+
- name: Dependencies
1872+
id: depends
1873+
run: |
1874+
sudo apt-get update
1875+
sudo apt-get install build-essential libcurl4-openssl-dev
1876+
1877+
- name: Test
1878+
id: ggml-ci
1879+
run: |
1880+
git lfs install
1881+
LLAMA_ARG_THREADS=$(nproc) LLAMA_FATAL_WARNINGS=OFF GG_BUILD_LOW_PERF=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt

0 commit comments

Comments
 (0)