Initial EveryCycle workspace
Cargo workspace with stub crates for the seven planned components: runtime,
scheduler, orchestrator, serving, tui, hal, bmc-agent. Each crate is a doc
comment shell; factoring decisions defer to Phase 0.
Includes README, MIT LICENSE, CONTRIBUTING, and docs/architecture.md (the
runtime sketch).
20 files changed,
+442 insertions,
-0 deletions
|
1 |
+ |
/target
|
|
2 |
+ |
Cargo.lock
|
|
3 |
+ |
.DS_Store
|
|
4 |
+ |
*.swp
|
|
5 |
+ |
*.swo
|
|
1 |
+ |
# Contributing to EveryCycle
|
|
2 |
+ |
|
|
3 |
+ |
EveryCycle is in `0.0.x`. Patterns documented here will grow as the codebase does. For now:
|
|
4 |
+ |
|
|
5 |
+ |
## Conventions
|
|
6 |
+ |
|
|
7 |
+ |
- Edition 2024, MSRV `1.85`.
|
|
8 |
+ |
- Workspace dependencies are declared once in the root `Cargo.toml`. Member crates use `dep.workspace = true`.
|
|
9 |
+ |
- `cargo fmt` and `cargo clippy --all-targets --all-features -- -D warnings` clean before push.
|
|
10 |
+ |
- Commit messages: concise, imperative tense, no emoji.
|
|
11 |
+ |
- No PRs. Patches sent via `git send-email` to the founder, or pushed directly by the lead fellow and area owners once those roles exist.
|
|
12 |
+ |
|
|
13 |
+ |
## Documentation
|
|
14 |
+ |
|
|
15 |
+ |
- Per-project doc files follow Make Creative's [markdown standards](../../../code/_meta/docs/markdown_standards.md) (private link; the convention summary is below).
|
|
16 |
+ |
- Architecture lives in `docs/architecture.md`.
|
|
17 |
+ |
- A `CHANGELOG.md` will appear once there are user-visible changes worth recording. Until then, the git log is the record.
|
|
18 |
+ |
|
|
19 |
+ |
## Crate boundaries
|
|
20 |
+ |
|
|
21 |
+ |
When in doubt about which crate a piece of code belongs in, default to `everycycle-runtime` and refactor outward when the boundary becomes obvious. Premature crate splitting is more painful than late crate splitting.
|
|
22 |
+ |
|
|
23 |
+ |
## Tests
|
|
24 |
+ |
|
|
25 |
+ |
Phase 0 lands with unit tests for any non-trivial logic and integration tests that exercise the HTTP surface. Property-based tests (`proptest`) preferred for any decoder, parser, or invariant-bearing structure. No mocked GPUs — integration tests either run against a real device or are gated behind a feature flag.
|
|
26 |
+ |
|
|
27 |
+ |
## What this file does not cover yet
|
|
28 |
+ |
|
|
29 |
+ |
- Release process (no releases yet).
|
|
30 |
+ |
- Security disclosure policy (no security surface to disclose against yet).
|
|
31 |
+ |
- Public contributor onboarding (project is unlisted; onboarding is in-person).
|
|
32 |
+ |
|
|
33 |
+ |
These appear when they're needed.
|
|
1 |
+ |
[workspace]
|
|
2 |
+ |
resolver = "3"
|
|
3 |
+ |
members = [
|
|
4 |
+ |
"crates/runtime",
|
|
5 |
+ |
"crates/scheduler",
|
|
6 |
+ |
"crates/orchestrator",
|
|
7 |
+ |
"crates/serving",
|
|
8 |
+ |
"crates/tui",
|
|
9 |
+ |
"crates/hal",
|
|
10 |
+ |
"crates/bmc-agent",
|
|
11 |
+ |
]
|
|
12 |
+ |
|
|
13 |
+ |
[workspace.package]
|
|
14 |
+ |
version = "0.0.1"
|
|
15 |
+ |
edition = "2024"
|
|
16 |
+ |
rust-version = "1.85"
|
|
17 |
+ |
license = "MIT"
|
|
18 |
+ |
authors = ["Make Creative, LLC"]
|
|
19 |
+ |
repository = "https://git.sr.ht/~maxmj/everycycle"
|
|
20 |
+ |
homepage = "https://git.sr.ht/~maxmj/everycycle"
|
|
21 |
+ |
|
|
22 |
+ |
[workspace.lints.rust]
|
|
23 |
+ |
unused = "warn"
|
|
24 |
+ |
unreachable_pub = "warn"
|
|
25 |
+ |
|
|
26 |
+ |
[workspace.lints.clippy]
|
|
27 |
+ |
pedantic = { level = "warn", priority = -1 }
|
|
28 |
+ |
module_name_repetitions = "allow"
|
|
1 |
+ |
MIT License
|
|
2 |
+ |
|
|
3 |
+ |
Copyright (c) 2026 Make Creative, LLC
|
|
4 |
+ |
|
|
5 |
+ |
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6 |
+ |
of this software and associated documentation files (the "Software"), to deal
|
|
7 |
+ |
in the Software without restriction, including without limitation the rights
|
|
8 |
+ |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9 |
+ |
copies of the Software, and to permit persons to whom the Software is
|
|
10 |
+ |
furnished to do so, subject to the following conditions:
|
|
11 |
+ |
|
|
12 |
+ |
The above copyright notice and this permission notice shall be included in all
|
|
13 |
+ |
copies or substantial portions of the Software.
|
|
14 |
+ |
|
|
15 |
+ |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16 |
+ |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17 |
+ |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18 |
+ |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19 |
+ |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20 |
+ |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21 |
+ |
SOFTWARE.
|
|
1 |
+ |
# EveryCycle
|
|
2 |
+ |
|
|
3 |
+ |
Rust inference runtime for heterogeneous and often-cheap GPU hardware.
|
|
4 |
+ |
|
|
5 |
+ |
EveryCycle extracts every clock cycle out of whatever silicon is in the box — current datacenter cards, used consumer GPUs, mixed-generation fleets, CPU offload, NVMe kv-cache spillover. It is the software that runs on the inference appliances built by a hardware operation under Make Creative.
|
|
6 |
+ |
|
|
7 |
+ |
Status: `0.0.x`, pre-Phase-0. The first concrete artifact is the [architecture sketch](docs/architecture.md).
|
|
8 |
+ |
|
|
9 |
+ |
## Crates
|
|
10 |
+ |
|
|
11 |
+ |
| Crate | Role |
|
|
12 |
+ |
|------|------|
|
|
13 |
+ |
| `everycycle-runtime` | Model execution, heterogeneous layer placement, quantization-aware kernel dispatch |
|
|
14 |
+ |
| `everycycle-scheduler` | Continuous batching, paged kv-cache, admission control, speculative-decode coordination |
|
|
15 |
+ |
| `everycycle-orchestrator` | Multi-box control plane: capability map, request routing, fleet management |
|
|
16 |
+ |
| `everycycle-serving` | HTTP API surface (OpenAI-compatible), streaming |
|
|
17 |
+ |
| `everycycle-tui` | Operator dashboard, structured telemetry views |
|
|
18 |
+ |
| `everycycle-hal` | Hardware abstraction: device enumeration, topology, memory pools, telemetry |
|
|
19 |
+ |
| `everycycle-bmc-agent` | Rust agent for the OpenBMC fork on our boxes; structured telemetry, fan curves, power capping |
|
|
20 |
+ |
|
|
21 |
+ |
The exact factoring is a Phase 0 decision; the names are decided.
|
|
22 |
+ |
|
|
23 |
+ |
## Building
|
|
24 |
+ |
|
|
25 |
+ |
Standard Cargo. Rust 1.85+ (edition 2024).
|
|
26 |
+ |
|
|
27 |
+ |
```
|
|
28 |
+ |
cargo build
|
|
29 |
+ |
cargo test
|
|
30 |
+ |
```
|
|
31 |
+ |
|
|
32 |
+ |
## License
|
|
33 |
+ |
|
|
34 |
+ |
MIT. See [LICENSE](LICENSE).
|
|
35 |
+ |
|
|
36 |
+ |
The software is permissively licensed by design. EveryCycle is open because the open-hardware ethos of the boxes is open, and because broad adoption is the wedge against opaque inference appliances. Revenue comes from building great machines and from custom integrations — not from license fees.
|
|
37 |
+ |
|
|
38 |
+ |
## Status and contact
|
|
39 |
+ |
|
|
40 |
+ |
Pre-public. The project is unlisted on SourceHut until the Phase 0 demo runs. Documentation will be incomplete until then. If you have somehow found this and want to talk, the founder's contact is in the commit history.
|
|
1 |
+ |
[package]
|
|
2 |
+ |
name = "everycycle-bmc-agent"
|
|
3 |
+ |
description = "Rust agent for the OpenBMC fork on EveryCycle boxes: structured telemetry, fan curves, power capping."
|
|
4 |
+ |
version.workspace = true
|
|
5 |
+ |
edition.workspace = true
|
|
6 |
+ |
rust-version.workspace = true
|
|
7 |
+ |
license.workspace = true
|
|
8 |
+ |
authors.workspace = true
|
|
9 |
+ |
repository.workspace = true
|
|
10 |
+ |
|
|
11 |
+ |
[lints]
|
|
12 |
+ |
workspace = true
|
|
1 |
+ |
//! EveryCycle BMC agent.
|
|
2 |
+ |
//!
|
|
3 |
+ |
//! Runs on the box's baseboard management controller (an OpenBMC fork on
|
|
4 |
+ |
//! Aspeed AST2600-class hardware). Exposes structured telemetry over gRPC to
|
|
5 |
+ |
//! the host runtime, drives fan curves and power capping from a thermal
|
|
6 |
+ |
//! model, sequences PSU and GPU power events.
|
|
7 |
+ |
//!
|
|
8 |
+ |
//! Separate binary from the host runtime — different security boundary,
|
|
9 |
+ |
//! different reliability constraints, different update cadence.
|
|
1 |
+ |
[package]
|
|
2 |
+ |
name = "everycycle-hal"
|
|
3 |
+ |
description = "Hardware abstraction: device enumeration, topology, memory pools, IPC primitives, telemetry."
|
|
4 |
+ |
version.workspace = true
|
|
5 |
+ |
edition.workspace = true
|
|
6 |
+ |
rust-version.workspace = true
|
|
7 |
+ |
license.workspace = true
|
|
8 |
+ |
authors.workspace = true
|
|
9 |
+ |
repository.workspace = true
|
|
10 |
+ |
|
|
11 |
+ |
[lints]
|
|
12 |
+ |
workspace = true
|
|
1 |
+ |
//! EveryCycle hardware abstraction layer.
|
|
2 |
+ |
//!
|
|
3 |
+ |
//! Device enumeration across CUDA, ROCm, Vulkan, and CPU. PCIe topology and
|
|
4 |
+ |
//! NVLink (where present). Memory pool allocation. Shared-memory and lockless
|
|
5 |
+ |
//! IPC primitives between the runtime, scheduler, and serving processes.
|
|
6 |
+ |
//! Power and thermal telemetry, sourced from drivers and from the BMC.
|
|
1 |
+ |
[package]
|
|
2 |
+ |
name = "everycycle-orchestrator"
|
|
3 |
+ |
description = "Multi-box control plane: capability map, request routing, fleet management."
|
|
4 |
+ |
version.workspace = true
|
|
5 |
+ |
edition.workspace = true
|
|
6 |
+ |
rust-version.workspace = true
|
|
7 |
+ |
license.workspace = true
|
|
8 |
+ |
authors.workspace = true
|
|
9 |
+ |
repository.workspace = true
|
|
10 |
+ |
|
|
11 |
+ |
[lints]
|
|
12 |
+ |
workspace = true
|
|
1 |
+ |
//! EveryCycle multi-box orchestrator.
|
|
2 |
+ |
//!
|
|
3 |
+ |
//! Maintains the fleet capability map (which model is warm where, queue depth,
|
|
4 |
+ |
//! thermal state) and routes requests to the box that should serve them.
|
|
5 |
+ |
//! Handles rolling model loads and box health.
|
|
1 |
+ |
[package]
|
|
2 |
+ |
name = "everycycle-runtime"
|
|
3 |
+ |
description = "EveryCycle inference runtime: model execution, heterogeneous layer placement, kernel dispatch."
|
|
4 |
+ |
version.workspace = true
|
|
5 |
+ |
edition.workspace = true
|
|
6 |
+ |
rust-version.workspace = true
|
|
7 |
+ |
license.workspace = true
|
|
8 |
+ |
authors.workspace = true
|
|
9 |
+ |
repository.workspace = true
|
|
10 |
+ |
|
|
11 |
+ |
[lints]
|
|
12 |
+ |
workspace = true
|