Repository navigation
test: check FBP/FDK accuracy on the portable backend - #65
Merged
Merged
Conversation
The three accuracy tests assert the RMSE, amplitude-floor and amplitude-ceiling bounds that pin the analytical constant, the (sid/U)^2 FDK weight and the ramp-filter scale. All three call _skip_if_no_cuda(), so the cpu CI job -- which runs on a runner without a GPU -- never checks any of them. Assert the same bounds through the public Projector/fbp/fdk entry points on CPU at sizes that finish in seconds. Measured RMSE is 0.0495 (parallel 128^2), 0.0251 (fan 96^2) and 0.0376 (cone 32^3) against the 0.1 bound the native tests use. Also cover Parker weighting end to end. tests/test_weights.py checks parker_weights as a unit and the native suite checks that fbp composes it before filtering, but nothing checks that it repairs a short scan: without it the redundant-ray artefact drives the minimum to -0.38, past the -0.2 floor the native tests use, and Parker brings it back to -0.10.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
test_fbp_parallel_accuracy.py,test_fbp_fan_accuracy.pyandtest_fdk_cone_accuracy.pyall call_skip_if_no_cuda(), and the cpu job runson a runner without a GPU, so none of those bounds is checked by CI today. They
pin the analytical constant, the
(sid/U)^2FDK weight and the ramp-filterscale.
This adds the same three bounds through the public
Projector,fbpandfdkentry points on CPU, at sizes that finish in under a minute, plus a short-scan
case that only stays inside the amplitude floor with Parker weighting.
Measured on a 64-core CPU worker: parallel 0.0495, fan 0.0251, cone 0.0376
against a 0.1 bound. 4 tests, ~55 s.