|
| 1 | +# Development Notes |
| 2 | + |
| 3 | +Setup friction encountered on this fork during GPU development — kept |
| 4 | +here separately so the main README stays clean. Not universal microsim |
| 5 | +guidance, just what was hit on this machine. |
| 6 | + |
| 7 | +## GPU backend (cupy) setup |
| 8 | + |
| 9 | +1. **numpy version conflict** — microsim's metadata pins `numpy<2.0`, but |
| 10 | + `cupy-cuda12x` requires `numpy>=2.0`. In practice, numpy 2.4.6 worked |
| 11 | + fine at runtime with this version of microsim despite the metadata |
| 12 | + warning — if `pip` flags the conflict, it's likely safe to ignore, |
| 13 | + but verify by running a real simulation before trusting it. |
| 14 | + |
| 15 | +2. **CUDA headers not found** (`RuntimeError: Failed to find CUDA headers`) |
| 16 | + — if your system has multiple CUDA toolkit installs (common after |
| 17 | + driver updates over time), cupy's JIT compiler may not find headers |
| 18 | + even with `CUDA_PATH` set correctly. Installing the toolkit extra |
| 19 | + directly into the venv sidesteps the problem: |
| 20 | +```bash |
| 21 | + pip install "cupy-cuda12x[ctk]" |
| 22 | +``` |
| 23 | + |
| 24 | +3. **zarr / numcodecs mismatch** (`ImportError: cannot import name |
| 25 | + 'cbuffer_sizes' from 'numcodecs.blosc'`) — zarr 2.17.x expects an |
| 26 | + older numcodecs API: |
| 27 | +```bash |
| 28 | + pip install "numcodecs<0.13" |
| 29 | +``` |
| 30 | + |
| 31 | +4. **COSEM data fetching** — loading real segmentation data (e.g. the |
| 32 | + `cosem` example) requires the optional extra: |
| 33 | +```bash |
| 34 | + pip install "microsim[cosem]" |
| 35 | +``` |
| 36 | + |
| 37 | +None of these are bugs in microsim itself, except where already filed |
| 38 | +as upstream PRs (#140, #141) — mostly environment/dependency friction |
| 39 | +from multiple existing CUDA/Python installs on a dev machine. |
0 commit comments