-
Notifications
You must be signed in to change notification settings - Fork 5
Hardware Setup
- llama.cpp source: https://github.com/ggml-org/llama.cpp
- CMake 3.17+
- CUDA Toolkit (workers with NVIDIA GPUs)
- ROCm 6.x (coordinator with AMD GPUs)
The worker machine runs rpc-server, one instance per GPU.
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
cmake -B build -DGGML_CUDA=ON -DGGML_RPC=ON
cmake --build build --config ReleaseBoth -DGGML_CUDA=ON and -DGGML_RPC=ON are required. CUDA handles local GPU compute, RPC enables the network server.
Start one rpc-server per GPU on separate ports:
# GPU 0 (RTX 4070 Ti Super)
build\bin\rpc-server.exe -p 50052
# GPU 1 (RTX 3060)
build\bin\rpc-server.exe -p 50053Each rpc-server auto-detects and binds to the next available CUDA device in order.
For persistent operation:
nssm install hydra-rpc-50052 C:\path\to\rpc-server.exe -p 50052
nssm install hydra-rpc-50053 C:\path\to\rpc-server.exe -p 50053
nssm start hydra-rpc-50052
nssm start hydra-rpc-50053Or use the provided script (from WSL or Git Bash):
./scripts/install-worker.sh ~/llama.cppThe coordinator runs llama-server which loads the model and connects to remote workers.
Follow the official guide. Verify with:
rocminfo | grep "Marketing Name"git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
cmake -B build \
-DGGML_HIP=ON \
-DGGML_RPC=ON \
-DAMDGPU_TARGETS=gfx1100 \
-DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j$(nproc)
sudo cp build/bin/llama-server /usr/local/bin/gfx1100 is the target for RX 7900 XTX/XT. Check yours with rocminfo.
./scripts/install-coordinator.sh ~/llama.cppFrom the coordinator machine:
# TCP check
nc -zv 192.168.86.36 50052
nc -zv 192.168.86.36 50053
# Or use Hydra
hydra statusSmall model test before committing to a 70B:
llama-cli -m small-model.gguf -ngl 99 \
--rpc 192.168.86.36:50052 \
-p "Hello world"If tokens generate, cross-vendor RPC is working.
rpc-server binds to CUDA devices in order. If you need specific GPU assignment on a multi-GPU worker:
# Force GPU 0
CUDA_VISIBLE_DEVICES=0 rpc-server.exe -p 50052
# Force GPU 1
CUDA_VISIBLE_DEVICES=1 rpc-server.exe -p 50053The Windows desktop currently runs GLM-4.7-Flash via llama-server on port 8080. The rpc-server instances use different ports (50052/50053) and don't conflict. However, GPU memory is shared — running both simultaneously may require reducing context sizes.