// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once #include "AzIntEngine.h" #include "../indexing/CUDAMemHelpers.h" class AzIntEngineGPU : public AzIntEngine { CudaStream stream; int threads; int blocks; int shared_needed; int shared_size; CudaDevicePtr gpu_azint_correction; CudaDevicePtr gpu_pixel_to_bin; CudaDevicePtr gpu_sum; CudaDevicePtr gpu_sum2; CudaDevicePtr gpu_count; CudaRegisteredVector cpu_sum_reg; CudaRegisteredVector cpu_sum2_reg; CudaRegisteredVector cpu_count_reg; CudaDevicePtr gpu_image; public: AzIntEngineGPU(const AzimuthalIntegration& integration); void Run(const std::vector &image, AzimuthalIntegrationProfile &profile) override; };