From fb57e62d44c4e9528356f2bb3dab39a1fcbc329a Mon Sep 17 00:00:00 2001
From: Tobias Winchen <tobias.winchen@rwth-aachen.de>
Date: Thu, 14 Mar 2019 08:03:07 +0000
Subject: [PATCH] Enable profiling in FftSpectrometer

---
 psrdada_cpp/effelsberg/edd/detail/FftSpectrometer.cu | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/psrdada_cpp/effelsberg/edd/detail/FftSpectrometer.cu b/psrdada_cpp/effelsberg/edd/detail/FftSpectrometer.cu
index a14c9b06..3bff5ca9 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();
-- 
GitLab