# Sensor bloom model benchmark (2026-09-27) Isolated benchmark of the optional `src/sensor_bloom.c` limited-response model. It performs no ray tracing, catalog lookup, or PSF splatting: it fills a synthetic HDR framebuffer and times the post-processing model alone. The default frame is `512x288` so a full sweep stays bounded; larger optional sizes are clamped to `1024` and this target is not part of `make test`. Environment: Gentoo, `cc` 15.3.0, `16` CPUs. ## Tested code The model under test is committed as `9cd933d1f83cf768249031402cb347a159a70f2d` (the sensor-bloom implementation is the only change it contains). The benchmark was run from that content; the only untracked files at run time were this record and the pre-existing unrelated `nmesh_spacetime_output_format.md`. ```text $ git rev-parse HEAD 9cd933d1f83cf768249031402cb347a159a70f2d $ git status --short ?? benchmarks/sensor_bloom_2026-09-27.md ?? nmesh_spacetime_output_format.md ``` Exact content hashes of the files that define and exercise the model at benchmark time (`nmesh_spacetime_output_format.md` is a pre-existing unrelated untracked file and was not part of this work): ```text $ sha256sum src/sensor_bloom.c src/sensor_bloom.h tests/test_sensor_bloom.c tests/benchmark_sensor_bloom.c src/main.c Makefile tests/test_camera_cli.py e6f5c8fd3de13756e6804f27b26c27827715667bf0ec46951b4f2bbb8eaabffd src/sensor_bloom.c 03e8e58061cfe420630a71b7969350e2e7efecee26d96a57b5a1087a25e4a2ab src/sensor_bloom.h 897643aba1631553bdee462a95e6c08c23b16fdf43f0b8d7a4857f369a087f14 tests/test_sensor_bloom.c b1f4a3ed5622ca5c11fc58c87c3aee3bb9149e3035b68ea8c7671f3ce01c1a10 tests/benchmark_sensor_bloom.c fdced6f075f77f17cb795c315fb0ac0590cc11789b556af3792d7ef47fed2629 src/main.c 3852dea3c9e9b22a99d03623301b79fc4c0a62cd5808fb97f5f0abb81ee3f379 Makefile 5fd9bae9dc1f841105b508ed6b6fce6429357b40e06adf700d5ce333b72ba92a tests/test_camera_cli.py ``` ## Commands ```sh make -B -j4 BUILD_TYPE=Release PSF_BACKEND=cpu sensor-bloom-bench OMP_NUM_THREADS=1 ./build/Release/obj/minkowski/standard_sink1_cpu/benchmark_sensor_bloom OMP_NUM_THREADS=4 ./build/Release/obj/minkowski/standard_sink1_cpu/benchmark_sensor_bloom OMP_NUM_THREADS=16 ./build/Release/obj/minkowski/standard_sink1_cpu/benchmark_sensor_bloom ``` ## Raw build output ```text mkdir -p build/Release/obj/minkowski/standard_sink1_cpu cc -DENABLE_PNG -DFRAME_PSF_EVENT_SINK=1 -DFAST_PSF_FFTW -std=c11 -march=native -pipe -Wall -Wextra -Wpedantic -O2 -DNDEBUG -fopenmp -Isrc tests/benchmark_sensor_bloom.c src/sensor_bloom.c -lm -lpng -lfftw3_omp -lfftw3 -o build/Release/obj/minkowski/standard_sink1_cpu/benchmark_sensor_bloom ``` ## Raw benchmark output ```text ### OMP_NUM_THREADS=1 sensor-bloom benchmark: size=512x288 threads=1 limit=1.000 central e=0.00 size=512x288 saturated=3 predicted=1 actual=1 bbox=0.0001 elapsed=0.001640s checksum=aaec29797d030b5a scattered e=0.00 size=512x288 saturated=192 predicted=1 actual=1 bbox=0.7751 elapsed=0.003504s checksum=0c52973c56f09383 random5pct e=0.00 size=512x288 saturated=22223 predicted=1 actual=1 bbox=1.0000 elapsed=0.003353s checksum=d489cdf14f756d3a central e=0.50 size=512x288 saturated=3 predicted=43 actual=15 bbox=0.0065 elapsed=0.001633s checksum=6625d592f76add42 scattered e=0.50 size=512x288 saturated=192 predicted=43 actual=15 bbox=0.8433 elapsed=0.020001s checksum=44e39b09a596122f random5pct e=0.50 size=512x288 saturated=22223 predicted=40 actual=17 bbox=1.0000 elapsed=0.027526s checksum=d8c99ec18949278a central e=0.90 size=512x288 saturated=3 predicted=233 actual=43 bbox=0.0513 elapsed=0.002913s checksum=6cf4d8e02d652b62 scattered e=0.90 size=512x288 saturated=192 predicted=233 actual=43 bbox=0.9609 elapsed=0.059650s checksum=ef91f6cf7f41249b random5pct e=0.90 size=512x288 saturated=22223 predicted=216 actual=47 bbox=1.0000 elapsed=0.077348s checksum=fd976dae0c08cc92 ### OMP_NUM_THREADS=4 sensor-bloom benchmark: size=512x288 threads=4 limit=1.000 central e=0.00 size=512x288 saturated=3 predicted=1 actual=1 bbox=0.0001 elapsed=0.001911s checksum=aaec29797d030b5a scattered e=0.00 size=512x288 saturated=192 predicted=1 actual=1 bbox=0.7751 elapsed=0.002795s checksum=0c52973c56f09383 random5pct e=0.00 size=512x288 saturated=22223 predicted=1 actual=1 bbox=1.0000 elapsed=0.001979s checksum=d489cdf14f756d3a central e=0.50 size=512x288 saturated=3 predicted=43 actual=15 bbox=0.0065 elapsed=0.001981s checksum=6625d592f76add42 scattered e=0.50 size=512x288 saturated=192 predicted=43 actual=15 bbox=0.8433 elapsed=0.006968s checksum=44e39b09a596122f random5pct e=0.50 size=512x288 saturated=22223 predicted=40 actual=17 bbox=1.0000 elapsed=0.010725s checksum=d8c99ec18949278a central e=0.90 size=512x288 saturated=3 predicted=233 actual=43 bbox=0.0513 elapsed=0.002210s checksum=6cf4d8e02d652b62 scattered e=0.90 size=512x288 saturated=192 predicted=233 actual=43 bbox=0.9609 elapsed=0.019092s checksum=ef91f6cf7f41249b random5pct e=0.90 size=512x288 saturated=22223 predicted=216 actual=47 bbox=1.0000 elapsed=0.020793s checksum=fd976dae0c08cc92 ### OMP_NUM_THREADS=16 sensor-bloom benchmark: size=512x288 threads=16 limit=1.000 central e=0.00 size=512x288 saturated=3 predicted=1 actual=1 bbox=0.0001 elapsed=0.002165s checksum=aaec29797d030b5a scattered e=0.00 size=512x288 saturated=192 predicted=1 actual=1 bbox=0.7751 elapsed=0.002720s checksum=0c52973c56f09383 random5pct e=0.00 size=512x288 saturated=22223 predicted=1 actual=1 bbox=1.0000 elapsed=0.002128s checksum=d489cdf14f756d3a central e=0.50 size=512x288 saturated=3 predicted=43 actual=15 bbox=0.0065 elapsed=0.001764s checksum=6625d592f76add42 scattered e=0.50 size=512x288 saturated=192 predicted=43 actual=15 bbox=0.8433 elapsed=0.012356s checksum=44e39b09a596122f random5pct e=0.50 size=512x288 saturated=22223 predicted=40 actual=17 bbox=1.0000 elapsed=0.014079s checksum=d8c99ec18949278a central e=0.90 size=512x288 saturated=3 predicted=233 actual=43 bbox=0.0513 elapsed=0.002201s checksum=6cf4d8e02d652b62 scattered e=0.90 size=512x288 saturated=192 predicted=233 actual=43 bbox=0.9609 elapsed=0.030918s checksum=ef91f6cf7f41249b random5pct e=0.90 size=512x288 saturated=22223 predicted=216 actual=47 bbox=1.0000 elapsed=0.020280s checksum=fd976dae0c08cc92 ``` - `saturated` is the number of channels initially above `E`; `predicted` is the model's reported `predicted_iterations`: the conservative decay bound plus the fp guard, clamped to the 4096 hard limit; `actual` is the number of synchronous rounds run; `bbox` is the fraction of the frame covered by the final monotonic bounding box. `actual <= predicted` in every row. - The `predicted`/`actual` fields and `checksum` are identical across the three runs above with `OMP_NUM_THREADS=1`, `4`, and `16`; only `elapsed` changes. These numbers characterize the model on a bounded synthetic frame only. They do not establish any full-resolution or production-render performance.