$ show geerlingguy/sbc-reviews
This repository is a data collection and presentation project for single-board computer (SBC) benchmarks maintained by Jeff Geerling. It consists of a set of automated benchmarking scripts written in Python using the pyinfra orchestration tool, which can be run against any SSH-accessible SBC to gather standardized performance metrics including Geekbench, HPL (LINPACK), power consumption, memory bandwidth, disk I/O, GPU benchmarks, and AI inference performance. A secondary set of Ansible playbooks provides a simpler but less comprehensive alternative. All collected results are manually curated into a YAML file (web/data/results.yml) and rendered into a static Hugo website with a sortable comparison table. The repository serves as a public reference for SBC performance comparisons. While primarily a data research project focused on benchmarking hardware, it also provides reusable infrastructure for running benchmarks on any Linux or macOS system.
The LLM identified 4 files worth highlighting for reuse:
A pyinfra task that clones, builds, and runs the tinymembench memory benchmark. Demonstrates a clean pattern for remote source compilation and execution across architectures. Reusable in any benchmarking pipeline.
A pyinfra task that downloads the appropriate Geekbench binary based on target architecture (x86_64, aarch64, arm64, riscv64), extracts it, runs it, and captures output. Handles macOS separately. A model for conditional deployment of third-party benchmarks.
A complex pyinfra task that benchmarks AI inference using llama.cpp or Ollama. It handles OS-specific package installation, builds llama.cpp from source with configurable build options, downloads multiple GGUF model files from HuggingFace, and runs llama-bench. The clean separation of model configuration (group_data/all.py) and execution logic makes it adaptable to other AI benchmarking needs.
A pyinfra task that ensures prerequisite packages (build tools, git, hwloc, iperf3, stress-ng, etc.) are installed across Debian, RedHat, and macOS. Parameterized with OS detection and idempotent operations. Can be extracted for any provisioning workflow.