diff --git a/psrdada_cpp/effelsberg/edd/detail/FftSpectrometer.cu b/psrdada_cpp/effelsberg/edd/detail/FftSpectrometer.cu index a14c9b06423363e5a0e9bc22fb907aec52a8a232..3bff5ca9b7a52ed5a76cb00dccc870251cc1195f 100644 --- a/psrdada_cpp/effelsberg/edd/detail/FftSpectrometer.cu +++ b/psrdada_cpp/effelsberg/edd/detail/FftSpectrometer.cu @@ -2,6 +2,7 @@ #include "psrdada_cpp/common.hpp" #include "psrdada_cpp/cuda_utils.hpp" #include "psrdada_cpp/raw_bytes.hpp" +#include <cuda_profiler_api.h> #include <cuda.h> namespace psrdada_cpp { @@ -111,7 +112,15 @@ bool FftSpectrometer<HandlerType>::operator()(RawBytes& block) { ++_call_count; BOOST_LOG_TRIVIAL(debug) << "FftSpectrometer operator() called (count = " << _call_count << ")"; - assert(block.used_bytes() == _buffer_bytes /* Unexpected buffer size */); + if (block.used_bytes() != _buffer_bytes) { /* Unexpected buffer size */ + BOOST_LOG_TRIVIAL(error) << "Unexpected Buffer Size - Got " + << block.used_bytes() << " byte, expected " + << _buffer_bytes << " byte)"; + cudaDeviceSynchronize(); + cudaProfilerStop(); + return true; + } + CUDA_ERROR_CHECK(cudaStreamSynchronize(_h2d_stream)); _raw_voltage_db.swap();