// 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 { std::shared_ptr stream; int threads; int blocks; size_t shared_needed; size_t 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; public: AzIntEngineGPU(const AzimuthalIntegration& integration, std::shared_ptr stream); void Run(const ImagePreprocessorBuffer &image, AzimuthalIntegrationProfile &profile) override; };