diff --git a/psrdada_cpp/effelsberg/edd/src/SpectralKurtosisCuda.cu b/psrdada_cpp/effelsberg/edd/src/SpectralKurtosisCuda.cu index 46711d32bc68bcbac223c737c80596a616367072..ba75bc0ca5cbf0d02c6f85baaac849566a05eda6 100755 --- a/psrdada_cpp/effelsberg/edd/src/SpectralKurtosisCuda.cu +++ b/psrdada_cpp/effelsberg/edd/src/SpectralKurtosisCuda.cu @@ -171,6 +171,8 @@ void SpectralKurtosisCuda::compute_sk_k(thrust::device_vector<thrust::complex<fl int nrfiwindows = 0; cudaMemcpyFromSymbol(&nrfiwindows, rfi_count, sizeof(int)); stats.rfi_fraction = (float)nrfiwindows / _nwindows; + int reset_rfi_count = 0; + cudaMemcpyToSymbol(rfi_count, &reset_rfi_count, sizeof(int)); nvtxRangePop(); BOOST_LOG_TRIVIAL(info) << "RFI fraction: " << stats.rfi_fraction; nvtxRangePop(); diff --git a/psrdada_cpp/effelsberg/edd/test/CMakeLists.txt b/psrdada_cpp/effelsberg/edd/test/CMakeLists.txt index e7812caf9f5cdcee1a6cf23608b5693af49f12ff..8502287d909c6143f87e5ee0bc22ef272425165d 100644 --- a/psrdada_cpp/effelsberg/edd/test/CMakeLists.txt +++ b/psrdada_cpp/effelsberg/edd/test/CMakeLists.txt @@ -18,6 +18,6 @@ set( src/SpectralKurtosisCudaTester.cu ) cuda_add_executable(gtest_edd ${gtest_edd_src} ) -target_link_libraries(gtest_edd ${PSRDADA_CPP_EFFELSBERG_EDD_LIBRARIES} ${CUDA_CUFFT_LIBRARIES} -lcublas -lnvToolsExt -L/usr/local/cuda-10.1/lib64/) +target_link_libraries(gtest_edd ${PSRDADA_CPP_EFFELSBERG_EDD_LIBRARIES} ${CUDA_CUFFT_LIBRARIES} -lcublas -lnvToolsExt -L/usr/local/cuda-11.0/lib64/) add_test(gtest_edd gtest_edd --test_data "${CMAKE_CURRENT_LIST_DIR}/data") diff --git a/psrdada_cpp/effelsberg/edd/test/src/SpectralKurtosisCudaTester.cu b/psrdada_cpp/effelsberg/edd/test/src/SpectralKurtosisCudaTester.cu index dfa5ae0a239a0f6d9711db0e2132e9ff1950b8a1..ca4e561f15764a7198b0e186643f7490d734af72 100644 --- a/psrdada_cpp/effelsberg/edd/test/src/SpectralKurtosisCudaTester.cu +++ b/psrdada_cpp/effelsberg/edd/test/src/SpectralKurtosisCudaTester.cu @@ -136,6 +136,17 @@ TEST_F(SpectralKurtosisCudaTester, sk_kernel) EXPECT_EQ(stat.rfi_status[ii], stat_k.rfi_status[ii]); } EXPECT_EQ(stat.rfi_fraction, stat_k.rfi_fraction); + + //RFI replacement + BOOST_LOG_TRIVIAL(info) <<"RFI replacement..\n"; + SKRfiReplacementCuda rr; + rr.replace_rfi_data(stat_k.rfi_status, d_samples); + + //SK computation after RFI replacement + BOOST_LOG_TRIVIAL(info) <<"computing SK after replacing the RFI data..\n"; + sk.compute_sk_k(d_samples, stat_k); + float expected_val_after_rfi_replacement = 0; + EXPECT_EQ(expected_val_after_rfi_replacement, stat_k.rfi_fraction); } } //test