Skip to content

Commit 793728c

Browse files
docs: add DEV_NOTES.md with GPU/dependency setup issues
1 parent 805a107 commit 793728c

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

DEV_NOTES.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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

Comments
 (0)