Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ jobs:
os: macos-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: julia-actions/setup-julia@4c0cb0fce8556fdb04a90347310e5db8b1f98fb9 # v2
- uses: julia-actions/setup-julia@fa02766e078afaaf09b14210362cee14137e6a32 # v3.0.2
with:
version: ${{ matrix.julia-version }}
- uses: julia-actions/cache@e33b4bfa0ea7cd9caedd7cb82b0e36956ef40285 # v2
- uses: julia-actions/cache@a45e8fa8be21c18a06b7177052533149e61e9b38 # v3.1.0
- name: Install, build, test
run: julia --project=. -e 'using Pkg; Pkg.instantiate(); Pkg.build(); Pkg.test()'
8 changes: 8 additions & 0 deletions .machine_readable/6a2/STATE.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,16 @@ project = "AcceleratorGate.jl"
version = "0.1.0"
last-updated = "2026-03-15"
status = "active"
wiki = "docs/berrywiki/"
wiki-pages = 16
wiki-tool = "metadatastician/berrywiki"

[project-context]
name = "AcceleratorGate.jl"
completion-percentage = 5
phase = "alpha"

[coprocessor-documentation]
human-index = "docs/berrywiki/Home.md"
machine-index = "docs/berrywiki/Machine-Index.md"
scope = "provider admission, deterministic planning, execution evidence, and shared Zig ABI"
93 changes: 93 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Architecture

## Overview

AcceleratorGate is the Julia admission and compatibility layer for the estate's
operation-first coprocessor runtime. It does not own numerical kernels and a
backend type name is not a capability claim.

Enaction owns runtime semantics, authoritative/advisory/remote-job policy, and
the Idris2-defined native ABI. AcceleratorGate translates Julia requests into
that operation vocabulary, admits providers using explicit evidence, and
returns execution evidence to Julia consumers.

## Operation path

```text
Julia/domain value
|
v
OperationRequest (version, layout, lane, evidence floors)
|
v
deterministic provider planning
|
+-- pure-Zig Enaction native provider
+-- real hardware/provider adapter
+-- explicit reference provider
`-- explicit simulation (only when allow_simulation=true)
|
v
result + ExecutionEvidence
```

Provider claims are per operation and include support, determinism, execution
lanes, implementation kind, device class, and optional conformance digest.
Simulations are refused by default. Authoritative claims must be
`canonical_exact`. Remote providers may claim only `remote_job` execution.
Once a provider has been planned, its runtime failure is returned to the
caller; the registry never silently retries another provider.

`EnactionZigProvider` loads the shared form of the same pure-Zig library used by
the Rust adapter. It validates ABI version, layouts, capability records, status
and execution evidence. There is no C implementation or Julia-owned copy of a
kernel.

The older device hierarchy and operation-specialty table remain as a legacy
compatibility surface while consumers migrate. Environment flags and a type
such as `TPUBackend` are discovery hints only and must not be presented as
runnable hardware evidence.

## Directory Structure

```
.
├── src/
│ ├── AcceleratorGate.jl # legacy compatibility and module surface
│ └── operations.jl # central requests, evidence, planner, providers
├── tests/ # Test suites
├── docs/ # Documentation
├── scripts/ # Utility scripts
├── config/ # Configuration files
├── LICENSE # License file
├── LICENSES/ # Full license texts
└── README.adoc # Project documentation
```

## Design Principles

- **Separation of Concerns**: Each module has a single responsibility
- **Testability**: Code is written to be easily testable
- **Documentation**: All public APIs are documented
- **Configuration**: Environment-specific settings are externalized

## Dependencies

- External dependencies are minimized and clearly declared
- Version pinning is used for reproducibility

## Security Considerations

- Sensitive data is never committed to the repository
- Secrets are managed through environment variables or secure vaults
- Regular dependency audits are performed

## Maintainability

- Code follows consistent style guidelines
- Pull requests require review and CI checks
- Issues and discussions are tracked transparently

---

*Last updated: 2026-07-18*
2 changes: 1 addition & 1 deletion GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@ By submitting a pull request, you agree to license your contributions accordingl

---

*Last updated: 2026-07-18*
*Last updated: 2026-08-09*
2 changes: 1 addition & 1 deletion MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ To become a maintainer:

---

*Last updated: 2026-07-18*
*Last updated: 2026-08-09*
4 changes: 4 additions & 0 deletions Manifest.toml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ license = "MPL-2.0"

[deps]
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[compat]
julia = "1.10"
Expand Down
18 changes: 18 additions & 0 deletions docs/berrywiki/ABI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000307
parent: 10000000-0000-7000-8000-000000000301
position: 60
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# ABI

Stable Idris2-facing and Zig FFI layout rules.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
18 changes: 18 additions & 0 deletions docs/berrywiki/Architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000302
parent: 10000000-0000-7000-8000-000000000301
position: 10
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# Architecture

Boundaries, ownership, and data flow.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
18 changes: 18 additions & 0 deletions docs/berrywiki/Axiom-Kernels.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000310
parent: 10000000-0000-7000-8000-000000000301
position: 90
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# Axiom-Kernels

Axiom-derived pointwise, binary, and attention coverage.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
18 changes: 18 additions & 0 deletions docs/berrywiki/Backends.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000304
parent: 10000000-0000-7000-8000-000000000301
position: 30
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# Backends

Backend/provider registration and selection.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
18 changes: 18 additions & 0 deletions docs/berrywiki/Evidence.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000306
parent: 10000000-0000-7000-8000-000000000301
position: 50
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# Evidence

Capability and execution evidence requirements.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
19 changes: 19 additions & 0 deletions docs/berrywiki/Home.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000301
parent: null
position: 0
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# AcceleratorGate.jl

Julia operation-first admission and evidence control plane.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

This BerryWiki notebook is the human-facing index; the repository's machine-readable state file is authoritative for automation.

18 changes: 18 additions & 0 deletions docs/berrywiki/Kernels.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000305
parent: 10000000-0000-7000-8000-000000000301
position: 40
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# Kernels

Kernel families, layouts, and numerical contracts.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
18 changes: 18 additions & 0 deletions docs/berrywiki/Machine-Index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000316
parent: 10000000-0000-7000-8000-000000000301
position: 150
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# Machine-Index

Machine-readable inventory and automation entry point.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
18 changes: 18 additions & 0 deletions docs/berrywiki/Operations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000303
parent: 10000000-0000-7000-8000-000000000301
position: 20
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# Operations

Canonical operation names and request semantics.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
18 changes: 18 additions & 0 deletions docs/berrywiki/Performance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000314
parent: 10000000-0000-7000-8000-000000000301
position: 130
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# Performance

Benchmarking, determinism, and tuning guidance.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
18 changes: 18 additions & 0 deletions docs/berrywiki/Roadmap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000315
parent: 10000000-0000-7000-8000-000000000301
position: 140
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# Roadmap

Near-term implementation and admission milestones.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
18 changes: 18 additions & 0 deletions docs/berrywiki/Runtime.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- berrywiki
id: 10000000-0000-7000-8000-000000000311
parent: 10000000-0000-7000-8000-000000000301
position: 100
kind: page
tags:
- coprocessor
- gate
archived: false
-->

# Runtime

Lifecycle, loading, and failure terminality.

AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation.

See [[Home]] for the project boundary and the repository machine-readable state for exact fields.
Loading
Loading