You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The release contract for the owned-CUDA worker is incomplete in three linked ways, all verified on the same box that successfully runs the lane (RTX 4050, CUDA 13.2.1, driver API 13030):
1. verify_acceptance runs <exe> --version, but the exe dies at PE load without its DLL sidecars
The worker is built against CUDA 13 runtime DLLs (cudart64_13.dll, cublas64_13.dll, cublasLt64_13.dll). With the sidecars absent, ck-synapse-worker-cuda.exe --version exits 0xC0000135 (STATUS_DLL_NOT_FOUND) before main — no output, no version string. Reproduced by copying just the exe to an empty directory and running it.
So a release archive that ships the exe without the DLLs would abort ck setup synapse for every Windows user without a CUDA toolkit, at the version-probe step. Two possible fixes:
Delay-load hardening: mark the CUDA DLLs delay-load so --version resolves before any CUDA symbol is needed (the exe's --version path touches none). This also makes the inert-worker assertion in the manual build gate exact instead of approximate.
Ship the redist sidecars in the archive (the windows-owned-cuda-manual-gate already flattens the redist archives to build; the same step can package them).
These compose: delay-load makes the acceptance probe honest, sidecars make the lane actually run.
2. No release asset exists for the CUDA worker
v0.1.0-alpha.2 ships worker-llama, worker-ane, worker-decode — no worker-cuda. The release workflow's own comment says this is deliberate until "a CUDA build runner exists", but the manual gate (windows-owned-cuda-manual-gate) now produces exactly that artifact on a hosted runner (it needs nvcc from a redist download, which the gate already does). The remaining gap is packaging + inventory, blocked on decision 1 (sidecar contract) and the naming contract:
3. worker_bin / env is mandatory with no default resolution
Nothing looks beside the module binary for ck-synapse-worker-*, so even a user who unpacks a hypothetical archive must hand-set SYNAPSE_OWNED_CUDA_WORKER_BIN. I opened #12 with sibling resolution for the module side; the worker side (its worker_bin for owned-cuda entries) would follow the same pattern.
Suggested sequence
Delay-load hardening + sidecar packaging contract (small, unlocks 2 and the acceptance probe).
Ship worker-cuda in the Windows release matrix (the gate already builds it; needs the sidecar manifest from 1).
Verified artifacts from this box available on request: the exit-code capture, the exact redist file list the gate flattens, and the working sidecar layout that makes the lane run.
The release contract for the owned-CUDA worker is incomplete in three linked ways, all verified on the same box that successfully runs the lane (RTX 4050, CUDA 13.2.1, driver API 13030):
1.
verify_acceptanceruns<exe> --version, but the exe dies at PE load without its DLL sidecarsThe worker is built against CUDA 13 runtime DLLs (
cudart64_13.dll,cublas64_13.dll,cublasLt64_13.dll). With the sidecars absent,ck-synapse-worker-cuda.exe --versionexits0xC0000135(STATUS_DLL_NOT_FOUND) beforemain— no output, no version string. Reproduced by copying just the exe to an empty directory and running it.So a release archive that ships the exe without the DLLs would abort
ck setup synapsefor every Windows user without a CUDA toolkit, at the version-probe step. Two possible fixes:--versionresolves before any CUDA symbol is needed (the exe's--versionpath touches none). This also makes the inert-worker assertion in the manual build gate exact instead of approximate.windows-owned-cuda-manual-gatealready flattens the redist archives to build; the same step can package them).These compose: delay-load makes the acceptance probe honest, sidecars make the lane actually run.
2. No release asset exists for the CUDA worker
v0.1.0-alpha.2shipsworker-llama,worker-ane,worker-decode— noworker-cuda. The release workflow's own comment says this is deliberate until "a CUDA build runner exists", but the manual gate (windows-owned-cuda-manual-gate) now produces exactly that artifact on a hosted runner (it needsnvccfrom a redist download, which the gate already does). The remaining gap is packaging + inventory, blocked on decision 1 (sidecar contract) and the naming contract:3.
worker_bin/ env is mandatory with no default resolutionNothing looks beside the module binary for
ck-synapse-worker-*, so even a user who unpacks a hypothetical archive must hand-setSYNAPSE_OWNED_CUDA_WORKER_BIN. I opened #12 with sibling resolution for the module side; the worker side (itsworker_binfor owned-cuda entries) would follow the same pattern.Suggested sequence
worker-cudain the Windows release matrix (the gate already builds it; needs the sidecar manifest from 1).Verified artifacts from this box available on request: the exit-code capture, the exact redist file list the gate flattens, and the working sidecar layout that makes the lane run.