How danielesavino/imageflow works
ImageFlow is a C image-processing library. An application loads an image, builds an operation flow, and runs it through a selected scheduler; the scheduler may reorder operations, dispatch implementations to available devices, and manage transfers before the result is stored. The graph preserves the documented CPU, CUDA, HIP, image-I/O, and scheduler capabilities. Several runtime relationships are documented in the README but their implementation bodies were not sampled, so those edges cite the README.
Main entry points: scheduler.c Scheduler dispatch · operations.c Operation dispatch · devices.c Device registry · img_loader.h Image transfers
Components 15
Image I/O
- Image I/O API
src/io/image.c - stb codecs
src/stb/stb_image.c
Pipeline and scheduling
- Flow builder
src/pipeline.c - Scheduler dispatch
src/scheduler/scheduler.c - Reorder scheduler
src/scheduler/reorder.c - Linear scheduler
src/scheduler/linear.c - CPU scheduler
src/scheduler/cpu.c
Runtime dispatch
- Operation dispatch
src/operations.c - Device registry
src/devices/devices.c - Image transfers
include/ImageFlow/devices/img_loader.h
Compute backends
- CPU backend
src/backends/cpu.c - CUDA backend
src/backends/cuda.cu - HIP backend
src/backends/hip.cpp
Other components
- Application
- Image files
Connections 24
- Application → Image I/O API: loads image
README.md - Image I/O API → Image files: reads and writes
README.md - Image I/O API → stb codecs: uses codecs
- Application → Flow builder: builds flow
README.md - Application → Scheduler dispatch: runs flow
README.md - Scheduler dispatch → Reorder scheduler: dispatches to
README.md - Scheduler dispatch → Linear scheduler: dispatches to
README.md - Scheduler dispatch → CPU scheduler: dispatches to
README.md - Reorder scheduler → Linear scheduler: runs linearly
README.md - Linear scheduler → Operation dispatch: executes operations
README.md - CPU scheduler → Operation dispatch: executes operations
README.md - Linear scheduler → Image transfers: manages transfers
README.md - Operation dispatch → CPU backend: dispatches implementations
README.md - Operation dispatch → CUDA backend: dispatches implementations
README.md - Operation dispatch → HIP backend: dispatches implementations
README.md - Device registry → CPU backend: registers availability
README.md - Device registry → CUDA backend: registers availability
README.md - Device registry → HIP backend: registers availability
README.md - Image transfers → CPU backend: uses device handlers
- Image transfers → CUDA backend: uses device handlers
- Image transfers → HIP backend: uses device handlers
- Scheduler dispatch → Device registry: checks enabled devices
README.md - Flow builder → Scheduler dispatch: hands off flow
README.md - Operation dispatch → Device registry: indexes by device