Spike: prove a license-safe, performance-parity Mojo-Metal integration #84
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Prove a production-shaped Mojo GPU integration for DS4Server on macOS and Apple Metal while preserving DS4 behavior and matching the existing DS4Server Metal backend.
This exploratory spike is the first and mandatory decision gate. It must finish before broad operator or model porting begins. CUDA is an explicitly deferred follow-up and is not a completion requirement for this issue.
Scope
The ABI, module boundaries, tensor layouts, and target-policy seam must leave room for a later CUDA target, but this issue must not wait for CUDA hardware, Linux packaging, NVIDIA APIs, or CUDA performance work.
MAX versus project-owned kernel decision
The spike must decide each required component using two independent gates: license safety and measured Metal performance.
MAX candidates must be measured both in isolation and in the representative resident layer path. A permissive license does not justify a slower kernel, and a fast kernel does not justify an unclear license.
The current DS4Server Metal kernels are the predefined implementation and performance oracle for project-owned replacements. Preserve their proven layouts, fusion boundaries, cache behavior, scheduling intent, and materialization choices where those drive performance. The shared Mojo design may expose a narrow compile-time target-policy seam for future CUDA, but it must not introduce speculative NVIDIA implementation work into the Metal path.
Gates
Deliverables
Primary sources to revalidate
Spike: prove a portable Mojo GPU integration without losing native performanceto Spike: prove a license-safe, performance-parity Mojo-Metal integrationImplemented and pushed in
0dcf181.Decision: STOP at the mandatory license/runtime gate. Mojo is pinned to 1.0.0 (
Mojo 1.0.0 (ed45d567)) throughuv.lock, with a one-command proof attools/mojo-spike/check.shand the full evidence/decision record atdocs/MOJO_SPIKE_84.md.Verified findings:
@rpath/libKGENCompilerRTShared.dylib;DeviceContext;max.gpu.hostpath requires MAX plus AsyncRT/KGEN runtime dylibs;LicenseRef-MAX-Platform-Software-License, and no authoritative redistribution list naming the required dylibs was found;DS4Server now targets Apple silicon and macOS 15.0 in Cargo builds, Mach-O load commands, package metadata, and README. The obsolete macOS compatibility guards were removed. Issues #85 through #91 were updated in their bodies with the binding license, viability, platform, packaging, CUDA, and re-entry criteria.
Verification:
UV_OFFLINE=1 tools/mojo-spike/check.shcargo fmt --all -- --checkcargo clippy --all-targets --all-features -- -D warningsmake bundlecargo test --all-features(219 passed, 16 hardware/integration tests ignored)minos 15.0; app plist reportsLSMinimumSystemVersion = 15.0The milestone can resume GPU implementation only when every runtime library has explicit redistribution permission (or an open host path replaces it), the complete closure packages and signs on a clean machine, and the same-workload native/Mojo parity harness can run.
based on this findings - especially the license topics - all work on MOJO is cancelled.
Project decision: the Mojo backend effort is canceled. All committed spike tooling, dependencies, lockfiles, and documentation were removed in
9a33c61; generated probe state was deleted as well. The independent Apple-silicon/macOS-15 product floor remains. This issue is no longer actionable.