Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CUDA build to GitHub Actions (and CMake clean-up) #1300

Merged
merged 3 commits into from
Feb 5, 2024

Conversation

KrisThielemans
Copy link
Collaborator

  • add a GHA build with CUDA, whcih needed renaming of caches
  • add missing source extensions in some CMakeLists.txt

@KrisThielemans
Copy link
Collaborator Author

@markus-jehl this works all ok, but it is the first time that we test gcc 12 with CUDA on GHA. Sadly test_interpolate_projdata fails
https://github.com/UCL/STIR/actions/runs/7219366591/job/19670252356#step:10:165

INFO: Performing symmetric interpolation test for Cylindrical scanner
INFO: Determined voxel size by dividing default_bin_size (6.52531) by zoom
WARNING: Disabling symmetries as image is rotated due to phi offset of the scanner.
WARNING: forward_project. Imaging modality unknown for either the image or the projection data or both.
Going ahead anyway.
Error : 6.3685 is larger than 0.00089545, symmetry errors larger than 0.01% of absolute values in axial direction

the "blocks" test works. Any idea?

(By the way, we need to set modality in these tests to avoid at least some warnings.)

@KrisThielemans
Copy link
Collaborator Author

confirmed that test_interpolate_projdata fails on my local machine with gcc 12

@KrisThielemans
Copy link
Collaborator Author

Left gcc-12, right gcc-11
image

@markus-jehl @danieldeidda any ideas?

@markus-jehl
Copy link
Contributor

markus-jehl commented Feb 2, 2024

How does the downsampled viewgram look? If that one is still symmetric, then it is definitely in the interpolation. Otherwise it must be some difference in how float numbers are rounded

@KrisThielemans
Copy link
Collaborator Author

it's the downsampled data. left is gcc-12
image

@markus-jehl
Copy link
Contributor

This is very strange... I looked at the scanner definitions and the math checks out as far as I can tell. So it must be some weird floating point issue in how the cylinder is constructed for the downsampled scanner or similar.

@KrisThielemans
Copy link
Collaborator Author

no problem in Debug build

@KrisThielemans
Copy link
Collaborator Author

downsampled image in Debug mode occupies central 3 planes (out of 11). In RelWithDebug, it has 1 more non-zero plane, causing asymmetry.

@KrisThielemans
Copy link
Collaborator Author

for the cylindrical scanner, the z-voxel size is 10mm, but the length of the cylinder is 40. So, this is sensitive to rounding.

Symmetric cylinder object was not symmetric for the "cylinder" case
on gcc-12 Release due to rounding error problems.
@KrisThielemans
Copy link
Collaborator Author

Should be fixed. @markus-jehl please have a look.

@markus-jehl
Copy link
Contributor

That looks clean, thank you!

@KrisThielemans KrisThielemans merged commit b486fc8 into UCL:master Feb 5, 2024
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants