kernelkit.kernels.VoxelDrivenConeBP

kernelkit.kernels.VoxelDrivenConeBP#

class kernelkit.kernels.VoxelDrivenConeBP(voxels_per_block: tuple = None, projs_per_block: int = None, volume_axes: tuple = (0, 1, 2), projection_axes: tuple = (0, 1, 2))#

Voxel-driven conebeam backprojection kernel.

Attributes:
cuda_source

Returns the CUDA source code of the kernel

is_compiled
projection_axes
volume_axes

Methods

FLOAT_DTYPE

alias of float32

InterpolationMethod(value[, names, module, ...])

Texture fetching approach.

__call__(textures, volume, volume_geometry)

XrayBackprojection with conebeam geometry.

compile([max_projs, texture])

Compile the kernel.

geoms2params(projection_geometry, ...[, ...])

Compute kernel parameters

set_params(params)

Copy parameters to constant memory of the kernel.

__init__(voxels_per_block: tuple = None, projs_per_block: int = None, volume_axes: tuple = (0, 1, 2), projection_axes: tuple = (0, 1, 2))#

Conebeam backprojection kernel.

Parameters:
voxels_per_blocktuple, optional

Number of voxels computed in one thread block, corresponding to the reversed volume.shape, not taking into account the mapping to world coordinates via volume_axes. I.e.: voxels_per_block[2] describes CUDA blockDim.x and voxels_per_block[0] describes how many slices i of volume[i, …] are processed in one thread. If your input volume is (8, 16, 32) voxels, maybe a good setting would be (32, 16, 8), regardless to which world axes (x, y, z) the 8, 16, and 32 voxels belong. Note voxels_per_block[0] * voxels_per_block[1] is constrained to the maximum number of CUDA threads, typically 1024.

projs_per_blockint, optional

Maximum number of projections processed in one thread block. If None defaults to LIMIT_PROJS_PER_BLOCK.

volume_axestuple, optional

Axes of the backprojection volume. Defaults to (0, 1, 2). The axes are in the order x, y, z. The first axis is the source- detector axis, the second is the horizontal orthogonal axis and the third is the vertical axis. ASTRA Toolbox uses (2, 1, 0).

projection_axestuple, optional

Axes of the projections to be backprojected. Defaults to (0, 1, 2). The axes are in the order angle, row, column.

See also

kernelkit.kernel.VoxelDrivenConeFP

Conebeam forward projection kernel

kernelkit.kernel.BaseKernel

Base class for CUDA kernels

Methods

__init__([voxels_per_block, ...])

Conebeam backprojection kernel.

compile([max_projs, texture])

Compile the kernel.

geoms2params(projection_geometry, ...[, ...])

Compute kernel parameters

set_params(params)

Copy parameters to constant memory of the kernel.

Attributes

SUPPORTED_DTYPES

cuda_source

Returns the CUDA source code of the kernel

is_compiled

projection_axes

projs_per_block

volume_axes

voxels_per_block