Skip to main content

GERDOS

Global Execution Runtime for Dynamic Open Systems

GERDOS is a model-agnostic execution runtime designed to extract useful performance from heterogeneous and constrained hardware.

Its purpose is the measured heterogeneous execution of a small exact operation set across hardware configurations that conventional inference runtimes may not exploit efficiently.

GERDOS treats compute, memory, storage, transfer mechanisms, and model state as resources within a single global execution system, while representing physical connectivity through a separate topology model.

Core principle

Revive old hardware. Run new models.

Direction, not status: what actually runs today is listed under Status below. Full-model inference is not claimed.

Architectural principles

  • Model-agnostic core
  • Hardware-aware execution
  • Global resource visibility
  • Dynamic scheduling
  • Explicit memory hierarchy
  • CPU as a compute resource
  • GPU as a compute and memory resource
  • Storage as an executable memory tier when beneficial
  • Overlapped computation and data movement
  • Measurement-driven decisions
  • Backend independence
  • Reproducible benchmarking

Specific models are validation workloads, not architectural dependencies.


Status

Early architectural development.

The project is intentionally being built from a minimal foundation rather than starting with model-specific or hardware-specific assumptions.

What runs today: the v1 op set (affine, matmul, reductions, min/max, mask-select, gather, division, move — F32), tiny gated demos, and tiled 128x128x128 matmul on the CPU/OpenCL/Vulkan engines. Full-model inference is not claimed: softmax, attention, layer-norm, residual-add, and argmax are refused by name until the algebra gap closes — nothing here runs an LLM yet.


Quickstart

Requires CMake 3.20+, a C++20 compiler, and Ninja (or your generator of choice). Python 3.10+ only for the gerdos driver/wheels.

Linux

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
ctest --test-dir build --output-on-failure

Both configs must be green with zero warnings under -Wall -Wextra -Wpedantic. Hardware suites print SKIP: ... and exit green when no device is present — that is the hardware gate working, not a failure. Full walkthrough: docs/GETTING_STARTED.md.

Windows (MSVC developer prompt)

cmake/ctest are not on a plain PowerShell PATH; run everything inside one VsDevCmd session:

VsDevCmd.bat -arch=amd64
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -S . -B build-win
cmake --build build-win
ctest --test-dir build-win --output-on-failure

With the Vulkan SDK installed (VULKAN_SDK set), the Vulkan compute backend test registers and runs; without it, it is absent-by-design. OpenCL needs a vendor ICD or it stays unregistered. Same green-tree rule, /W4, zero warnings.

Python wheels

pip install gerdos
python -m gerdos selftest

Manylinux x86_64/aarch64 wheels (CPython 3.10–3.13) self-test on the spot with no repo, no compiler, no env vars.


License

MIT — see LICENSE. Version is single-sourced from include/gerdos/version.hpp (currently 0.1.3).

Metadata

Release files for gerdos 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for gerdos 0.1.3
File
gerdos-0.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
gerdos-0.1.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
gerdos-0.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
gerdos-0.1.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
gerdos-0.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
gerdos-0.1.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
gerdos-0.1.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
gerdos-0.1.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details

Total release size: 774.3 kB

Release files / gerdos-0.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL gerdos-0.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 99.0 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4f6a1fe11a01b6691f0d99298202b43b4ac00e959fcc876942668887f55c1229
BLAKE2b-256 checksum
How to use checksums
fe6be11f2f02c02df9f3dd4a28b5cc0546bf9782017d378899a32536b1f18739
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / gerdos-0.1.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL gerdos-0.1.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 94.6 kB
Tags CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
eda03f2961c74a689631f1fa9328f5922918693ab289489207c754489e2ce65f
BLAKE2b-256 checksum
How to use checksums
020ea5cc8daffb7da11dd27639c9438aacdd518969788b18726017e67d1164b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / gerdos-0.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL gerdos-0.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 99.0 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c6fb1359a6b51a000093835c8e1ffc8adecb348101836948a8c32d3c8d2dd5b1
BLAKE2b-256 checksum
How to use checksums
c6040e40f6dbd55d4ca7dec79e8b5768425f4fcff191115a6cc63e9f607ad3ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / gerdos-0.1.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL gerdos-0.1.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 94.6 kB
Tags CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
54e409dd52de65835eaae2c44ecbe56c4de4d015316c38bd719484712f91f40c
BLAKE2b-256 checksum
How to use checksums
e51c9e38f0c5aaf1fa8a26f01d165062559b5655c9c86fd2b284ba2acfb42e06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / gerdos-0.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL gerdos-0.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 99.0 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9a5528f2f30939babca96dceef46c480b7d78745959ecae9632f9a3ffd16d04a
BLAKE2b-256 checksum
How to use checksums
10c14c07995b078c5097a962c69870b84dddb8a5f028f009549255c88bbe114e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / gerdos-0.1.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL gerdos-0.1.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 94.6 kB
Tags CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b5b49f08a84e56ff2483a55c2777fc0c633eedf90cb331878f134d2a631e446a
BLAKE2b-256 checksum
How to use checksums
f9d72e7fcdd1cf4e57827262a7a62cd57141fc3786392a642c72b43854a9c5dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / gerdos-0.1.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL gerdos-0.1.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 99.0 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2aa7c1cbf5eff97a18d3ab0ecf182d956c2e4b340395bd29d61121ddd9b94cc8
BLAKE2b-256 checksum
How to use checksums
79ce0d0b0b6f8210644c96cb6bcb5c7b61c766dca100228407fd4f19670462dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / gerdos-0.1.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL gerdos-0.1.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 94.6 kB
Tags CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fcfb561a9825c3454c7742a0702bf5b42b30ac5e7f9728dfa6730ea2194d3008
BLAKE2b-256 checksum
How to use checksums
c74eb73a4a4a870a430740605b69a3915c7c330827a451b28b12f0ac367bd6ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

0.1.4

1 release file

This release

0.1.3 This release

8 release files

0.1.2

10 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page