ENGINEERING / CASE STUDY

Naught Labs

I’m investigating whether existing applications can use compute beyond their own machine—and when doing so is actually worth it.

Status
Experimental systems
Reading time
3 minutes
Filed under
  • Distributed systems
  • Runtime engineering
  • Computer architecture
Updated

Why should a device end at its own hardware?

When an application outgrows a laptop, the usual answer is another computer, a remote desktop or a version of the application built for the cloud. I’m interested in a different possibility: keep the application, and let selected computations reach resources elsewhere.

That question led me from workload orchestration into native execution: the point where an application asks a library or its host for a particular calculation. It also exposed a difficult distinction. Making a remote calculation work is not the same as making the application faster.

The layers I’ve explored

My early Fusion experiments described work explicitly as a graph: one calculation produces data that another consumes. That made it possible to measure where work ran, what moved between machines and how long a GPU took to become available.

Splice moves closer to existing programs by intercepting selected numerical calls. The AutoCAD experiments take a separate route through the application’s geometry interfaces. Alongside those, OBP investigates doing less work, ASPR investigates anticipating data demand, and ReSynth investigates moving fewer bytes.

The local machine is the competitor

Some of the largest improvements came before any network was involved. Avoiding an unnecessary intermediate calculation can save more than offloading it. In AutoCAD, a local Rust implementation was faster than the remote version of the same operation.

I still have a narrow positive result for a GPU whose input was already present. But fresh input, startup and checking can reverse that result. I now treat the best local implementation as the baseline, rather than assuming that a faster remote processor must be useful.

What works, and what is unfinished

I have working numerical components, selected native-call interception, CPU and experimental GPU execution, Windows-to-Linux exchanges, and geometry results returned into a live AutoCAD session. Each has a specific supported boundary; they are not evidence that arbitrary applications can already offload safely.

The AutoCAD work is not ready for student use. The first unfamiliar drawing can still require a slow comparison against the original calculation, and the installer does not yet deliver the geometry integration as a complete product.

The larger ambition

I want compute to become something a device can access, rather than only something fixed inside its case. Privacy and accessibility belong to that ambition too: reaching another machine should not require blindly trusting it or buying into an entirely different application.

The research is how I test that ambition. A local result, a remote result and a failed experiment each tell me something different about which part of the idea is worth pursuing next.

Technical details and evidence

The implementation work spans Rust, C/C++ interoperability, OpenBLAS/CBLAS, TCP object exchange, LZ4/Zstandard and experimental CUDA/cuBLAS execution. Linux native interception, Windows native execution and AutoCAD host integration have different supported interfaces.

The linked experiments distinguish startup, steady execution, host result consumption and complete-operation cost. They do not establish production readiness, universal application compatibility or confidentiality against a malicious execution host.

The full intersection operation measured three ways at 16,384 crossings

Technical details and evidence
Experiment identifier
cad-campus-nov10-128-complete
Original title
Matched complete-operation comparison, 16384 crossings
Measurement boundary
Identical integer route geometry and control points, the same geometry operation through the application automation interface, an empty output prefix and full numerical arrays in the original native order. The complete timer covers entity lookup, the geometry call and any interception, qualification, execution and transfer where applicable, automation marshalling, byte conversion and binary file output. It excludes process startup, installation and account sign-in.
Hardware
Windows workstation (CPU model not recorded); remote CPU node with 8 cores, 31331228 KiB available memory and 209 GB free disk running Ubuntu 26.04.1.
Software
AutoCAD 2021 R24.0.47.0.0; local candidate adapter build with an in-process Rust primitive; frozen remote adapter build.
Input
Owned integer route pair, 128 routes, 16384 crossings.
Samples
Native complete operation: 1 sample. Local warm: 3 samples (82.7683, 1209.915 and 123.1285 ms complete). Remote warm: 2 samples (1067.1995 and 1012.2782 ms complete).
Statistical method
median of warm samples; native is a single sample
Cold / warm state
Warm for the local and remote medians. The cold first-use cost is recorded as a separate experiment and is not folded into these rows.
Network
Local mode ran with no worker and no tunnel. Remote mode used an encrypted tunnel to the CPU node with a bounded local forwarding proxy that adds a small hop.
Serialization
The remote response used the compressed frame; the local path produced the result in process.
Correctness checks
Full arrays, unique complete integer-grid sets and output digests were asserted. The warm original-order difference stayed at or below 1.25e-11, with the largest observed value 7.275957614183426e-12 in the larger case. Warm local returns and alternating pairs made zero native calls.
Original measurements — full precision
Original metricExact valueSamplesStatistic
native complete operation3970.8752 ms1single sample
local warm complete operation, median123.1285 ms3median of 3 samples
remote warm complete operation, median1039.73885 ms2median of 2 samples

CALCULATED FROM THE MEASUREMENTSnative complete operation ÷ local warm complete operation, median = 32.249846×96.899210% lower time for local warm complete operation, median.

CALCULATED FROM THE MEASUREMENTSlocal warm complete operation, median ÷ remote warm complete operation, median = 0.11842253×744.43395% higher time for remote warm complete operation, median.

Experimental limitations

  • Native is a single sample while the local and remote medians rest on three and two samples, so the comparison is indicative rather than statistically qualified.
  • Sessions were sequential, not randomised.
  • Synthetic fixed geometry precludes any general or student-performance statement.
  • The retained local outlier of 1209.915 ms complete is one of the three recorded local samples and is not hidden.
  • The remote adapter still used the older single-entry cache, and both warm medians compare already-qualified empty-prefix operations.
  • The campus verdict for this work is NO-GO for a student campus demonstration; nothing here is a student-readiness statement.

The local candidate is the fastest path measured for this workload by a wide margin and the remote path is second. The gain comes from the implementation, not from placement.

Technical details and evidence
Open experiment ↗

The prepared path once it is warm and calibrated

Technical details and evidence
Experiment identifier
rt-prepared-s5-steady-eight-call
Original title
Prepared calibrated steady-state eight-call workload, ratio against the best eligible local baseline
Measurement boundary
The steady-state leg of a prepared multi-resource qualification: a pre-built artifact is attached and calibrated before measurement, so the boundary deliberately excludes preparation and calibration cost. The ratio against the best eligible single target passed the predeclared bounds.
Hardware
Two worker processes on one admitted CPU host, described in the receipt as correlated processes sharing the same hardware. The host is recorded as Ubuntu 24.04 with kernel 6.8 on EPYC-Genoa, with the Rust toolchain at 1.99.0 and one declared thread. The receipt states explicitly that this is not a heterogeneous resource set.
Software
A private immutable prepared plan retaining owned input identity plus live session, backend, memory, capability, affinity and freshness checks; one authoritative placement decision per two-GEMM region; a common optimised runner with a visible fallback trace.
Input
A small-integer N32 two-dependent-GEMM region executed as eight calls per block, with all 1,024 final output elements checked on every measured call.
Samples
1,200 measured calls, 450 warm-ups and 150 phase records across five arms of 30 paired blocks each. 240 calibrated measured rows with valid profiles and ages between 120 and 438 microseconds.
Statistical method
Nearest-rank block median and 95th percentile over 30 blocks, expressed as a ratio against the fixed named best eligible prepared local baseline, with a paired mean-ratio bootstrap of 10,000 resamples at a fixed seed.
Cold / warm state
The qualifying arm is the calibrated prepared steady state. Preparation and calibration costs are charged to a separate first-use boundary and are not folded into the steady figure.
Network
Loopback between the client and the two worker processes on the same host. Directional stream accounting excludes the enclosing transport overhead and private allocator peaks.
Serialization
Traffic records retain actual remote transfer and residency behaviour separately from dispatcher local behaviour. Per-call codec and transfer accounting is carried in the campaign receipts.
Correctness checks
Every one of the 1,200 measured calls reports 1,024 final output elements checked; the source aborts on any mismatch and the launch exit is zero. Independent re-summing of all eight caller times in each of the 150 blocks found zero mismatches, and no failed traffic records appear in the completed phases.
Original measurements — full precision
Original metricExact valueSamplesStatistic
prepared applied whole-workload wait, median0.228 ms30nearest-rank block median, 228 microseconds
prepared applied whole-workload wait, 95th percentile0.259 ms30nearest-rank block 95th percentile, 259 microseconds
best eligible local whole-workload wait, median0.211 ms30nearest-rank block median, 211 microseconds
best eligible local whole-workload wait, 95th percentile0.228 ms30nearest-rank block 95th percentile, 228 microseconds
median ratio against the best eligible local baseline1.0805687204 ratio30observed block median ratio against the 1.10 bound
95th percentile ratio against the best eligible local baseline1.1359649123 ratio30observed block 95th percentile ratio against the 1.15 bound
paired mean-ratio interval, lower bound1.0469289615080855 ratio3010,000 paired resamples at the fixed seed
paired mean-ratio interval, upper bound1.1081226992587965 ratio3010,000 paired resamples at the fixed seed
measured calls1200 calls1501,200 measured calls across 150 phase records
warm-up records450 calls150untimed warm-up records in the campaign
phase records150 blocks150phase records carrying eight measured calls each
calibrated measured rows with valid fresh profiles240 calls150profile ages between 120 and 438 microseconds
forced worker regions executed480 calls150the recorded 240 real regions on each of two forced worker arms, summed

CALCULATED FROM THE MEASUREMENTSbest eligible local whole-workload wait, median ÷ prepared applied whole-workload wait, median = 0.92543860×8.0568720% higher time for prepared applied whole-workload wait, median.

CALCULATED FROM THE MEASUREMENTSbest eligible local whole-workload wait, 95th percentile ÷ prepared applied whole-workload wait, 95th percentile = 0.88030888×13.596491% higher time for prepared applied whole-workload wait, 95th percentile.

Experimental limitations

  • This is the steady leg only. Preparation, calibration, refresh and full-experiment cost are charged elsewhere and fail.
  • All measured dispatcher choices were local; the result measures the cost of the remote path, not a placement win.
  • Real remote execution is proved separately by forced worker baselines and is not claimed here.
  • The paired mean-ratio interval upper endpoint exceeds the 1.10 median bound; the frozen decision rule uses observed quantiles with uncertainty disclosed rather than confidence-bound containment, so no robust population bound is claimed.
  • The result is a thirty-block small-integer experiment and is not a universal numerical or tail guarantee.
  • Retained payload and accounting are not an allocator, resident-set or enclosing transport trace.

In the prepared steady state the dispatcher path costs about 8 percent more than the best eligible local baseline at the median and about 14 percent at the 95th percentile, inside the predeclared 10 and 15 percent bounds. The paired mean-ratio interval is disclosed with an upper endpoint above the median bound. Nothing here is an acceleration claim: every measured choice was local, and the remote path exists only in the forced correctness arms.

Technical details and evidence
Open experiment ↗
Technical details and evidence

CONCEPTUAL ARCHITECTURE

Two possible execution paths.

APPLICATION → INTERCEPTION → QUALIFICATION → PLACEMENT

LOCAL PATH

Local execution / fallback → host application

REMOTE PATH

Representation → transfer → worker → validation → host application

1 / Application execution

An existing native application continues to own its state. Supporting arbitrary applications is a goal, not a demonstrated capability.

2 / Selected interception

Capture an eligible native computation at an explicit boundary. Compatibility, memory layout and side effects must be understood first.

3 / Qualification

Check correctness constraints, supported inputs and whether capture, transfer and validation can plausibly pay for themselves.

4 / Placement

Compare local and remote paths. An optimized local implementation is an essential baseline, not an inconvenient result to omit.

5 / Representation & transfer

Represent inputs, account for serialization and transfer costs, and validate data versions. Residency and reconstruction are research directions.

6 / Remote worker

Execute the selected computation externally. A faster worker alone does not prove a faster end-to-end application.

7 / Validation & return

Validate results against the computation’s contract before the application consumes them. Recovery must not silently change semantics.

8 / Local execution & fallback

Keep work local when unsupported, unprofitable or disconnected. A fallback path must preserve correctness and application state.

Follow the next question