microsoft / microsoft/BitNet

Here are the current steps for builing BitNet.cpp for Raspberry Pi 5

Open
#561 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
40.3k
Forks
3.7k
PR merge metrics
No merged PRs in 30d

Description

It took me a while to get this all working properly, so I thought I'd share steps that work:

#!/bin/bash


# Flash the latest Rasbperry Pi OS Lite onto an 32GB+ SD card, and run it on a Pi 5. 
# Log in via SSH, a then:


# Prepare
sudo apt update
sudo apt install python3-pip python3-dev cmake build-essential git clang 
wget -O - https://apt.llvm.org/llvm.sh | sudo bash -s 18


# Get the working version of BitNet.cpp
git clone --recursive https://github.com/microsoft/BitNet.git
cd BitNet
git reset --hard 404980e
git pull



# An alternative command would be:
# git clone --recursive --revision=c1e9a9a237f847f8aac9f7015b756cf4faf66d0e --depth=1 https://github.com/microsoft/BitNet.git
# ..but the version of Git available on Raspberry Pi OS doesn't support --revision yet


# Create and activate a new conda environment with Python 3.9
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
bash Miniconda3-latest-Linux-aarch64.sh
source ~/.bashrc
conda create -n bitnet-cpp python=3.9
conda activate bitnet-cpp


# Install Python dependencies
conda install "pip<21.0.2"
pip install -r requirements.txt




# Build BitNet.cpp
python utils/codegen_tl1.py --model bitnet_b1_58-3B --BM 160,320,320 --BK 64,128,64 --bm 32,64,32
export CC=clang-18 CXX=clang++-18
rm -rf build && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
cd ..


# Download the model
pip install huggingface_hub
hf download microsoft/BitNet-b1.58-2B-4T-gguf --local-dir models/BitNet-b1.58-2B-4T


# Test if everything works
python run_inference.py  -m "models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf"  -p "You are a helpful assistant."  -cnv


Related issues:

https://github.com/microsoft/BitNet/issues/195
https://github.com/microsoft/BitNet/issues/240
https://github.com/microsoft/BitNet/issues/305
https://github.com/microsoft/BitNet/issues/348
https://github.com/microsoft/BitNet/issues/411
https://github.com/microsoft/BitNet/issues/470

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by checking the repository documentation entry points, then verify the commands involving requirements.txt, utils/codegen_tl1.py, the CMake build, and run_inference.py on Raspberry Pi 5. Done means the tested steps are placed in the appropriate documentation with prerequisites, the pinned revision, and a successful inference check.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp, git, huggingface, linux, python, raspberry-pi, shell
Domain
build-system, documentation, embedded-iot, machine-learning
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.