Repository navigation
v1.3.3
1.3.3 - 2026-04-23
Fixed
- Kernel numerical consistency and speed. The CUDA kernels in
diffct/differentiable.pyare now consistentlyfloat32end to end — literal constants (0.0,0.5,1.0,-inf, ...) and integer-to-float casts inside the Siddon and SF kernels are routed through typed_DTYPEhelpers so numba no longer implicitly promotes intermediates tofloat64. This removes a silent precision mismatch that was slowing down every projector/backprojector kernel; the library runs substantially faster with no change in public-API behavior. - Thread indexing and grid configuration in the 3D cone Siddon forward / backward kernels and the 2D fan SF backward kernel. The
cuda.grid(...)unpack order and the matching_grid_2d/_grid_3dlaunch arguments are aligned so the warp-adjacent axis matches the stride-1 axis of the output buffer:(iv, iu, iview)for 3D cone (d_sino[view, u, v]/d_vol[ix, iy, iz]) and(ix, iy)for 2D fan SF. Fixes mismatched launches betweenConeProjectorFunction,ConeBackprojectorFunction,FanProjectorFunction, andFanBackprojectorFunctionand their kernels. - Walnut rotation-axis correction in the shipped preprocessing and sample data.
examples/data/preprocess_walnut.pynow applies the Zenodo record's recommended 5-raw-pixel left shift before binning and cropping, records the correction in the.npzmetadata, and the shippedexamples/data/walnut_cone.npz/walnut_reco.pngare regenerated accordingly.examples/realdata_walnut_fdk.pyandexamples/data/NOTICEare updated to surface the correction and the richer walnut metadata.
Changed
- Examples now require CUDA explicitly.
examples/fbp_parallel.py,fbp_fan.py,fdk_cone.py,iterative_reco_*.py,realdata_fbp_*.py,realdata_fdk_cone.py, andrealdata_walnut_fdk.pyasserttorch.cuda.is_available()and initialize the CUDA device up front instead of silently falling back to CPU (which the numba-cuda kernels never supported anyway).
Full Changelog: v1.3.2...v1.3.3