A simulated CUDA device behind the cuda-driver table: modules, globals, streams and launches whose kernels run as C functions on CPU threads, for testing without a GPU
$ sexc add @ajax/cuda-driver-fake- total 3
- drwxr-xr-x-../
- drwxr-xr-x-Oct 27 02:56v/# 1 version
- drwxr-xr-x-Oct 27 02:56files/# the files of 0.1.0
- latest
- 0.1.0, published Oct 27 02:56 by ajax
- owners
- ajax
- license
- MIT
- dependencies
- @ajax/cuda-driver ^0.1.0, @ajax/mesh-text ^0.1.0, @ajax/mesh-check ^0.1.0
- dependents
- @ajax/mesh-cuda, @ajax/mesh-inproc, @ajax/mesh-mps
- keywords
- mesh alphaos cuda fake testing gpu
- homepage
- https://github.com/thomasdavis/alpha-c-mesh/tree/main/packages/cuda-driver-fake
- repository
- https://github.com/thomasdavis/alpha-c-mesh
1# @ajax/cuda-driver-fake 2 3A simulated CUDA device behind @ajax/cuda-driver's table: device attributes, primary and green contexts, "cubins" (a line of text naming the entry, registers, local bytes, thread limit and `MESH_RT_ABI`), globals, opt-in shared memory, scratch memory, streams, and launches whose kernels are C functions run on a thread of their own while the stream reads busy. Device memory is host memory, so a fake kernel can play a program's node loop against the real mailbox. Failure injection (`mesh_fake_cuda_fail_next`) and counters of everything it saw. 4 5Not a port: it exists so the CUDA, MPS and in-process backends are tested without a GPU. 6 7## Ported from 8 9[alpha-rust-mesh](https://github.com/rsafier/alpha-rust-mesh) (Richard Safier, MIT): nothing (test support). 10 11## Tests 12 13Exercised by @ajax/mesh-cuda's, @ajax/mesh-mps's and @ajax/mesh-inproc's tests. 14 15## Licence 16 17MIT. See the repository's LICENSE.