]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/commitdiff
CUFFT now uses ThreadCtx and also pragmas from pragmas.h
authorShanigen <vkaraf@gmail.com>
Wed, 5 Sep 2018 11:25:49 +0000 (13:25 +0200)
committerMichal Sojka <michal.sojka@cvut.cz>
Fri, 7 Sep 2018 15:31:08 +0000 (17:31 +0200)
src/fft_cufft.cpp
src/fft_cufft.h

index 4b45b99c72b76f1b0443058d8be0ddff738dc086..cac883e10cdc96b28cb41cdc36c20b615af24959 100644 (file)
@@ -121,7 +121,7 @@ void cuFFT::forward(const cv::Mat &real_input, ComplexMat &complex_result, float
         CufftErrorCheck(cufftExecR2C(plan_f_all_scales, reinterpret_cast<cufftReal *>(real_input_arr),
                                      complex_result.get_p_data()));
     } else {
-#pragma omp critical
+NORMAL_OMP_CRITICAL
         {
             CufftErrorCheck(cufftSetStream(plan_f, stream));
             CufftErrorCheck(
@@ -149,7 +149,7 @@ void cuFFT::forward_window(std::vector<cv::Mat> patch_feats, ComplexMat &complex
             cv::Mat in_roi(fw_all, cv::Rect(0, int(i * m_height), int(m_width), int(m_height)));
             in_roi = patch_feats[i].mul(m_window);
         }
-#pragma omp critical
+NORMAL_OMP_CRITICAL
         {
             CufftErrorCheck(cufftSetStream(plan_fw, stream));
             CufftErrorCheck(
@@ -166,7 +166,7 @@ void cuFFT::inverse(ComplexMat &complex_input, cv::Mat &real_result, float *real
     cufftComplex *in = reinterpret_cast<cufftComplex *>(complex_input.get_p_data());
 
     if (n_channels == 1) {
-#pragma omp critical
+NORMAL_OMP_CRITICAL
         {
             CufftErrorCheck(cufftSetStream(plan_i_1ch, stream));
             CufftErrorCheck(cufftExecC2R(plan_i_1ch, in, reinterpret_cast<cufftReal *>(real_result_arr)));
@@ -184,12 +184,12 @@ void cuFFT::inverse(ComplexMat &complex_input, cv::Mat &real_result, float *real
         CufftErrorCheck(cufftExecC2R(plan_i_features_all_scales, in, reinterpret_cast<cufftReal *>(real_result_arr)));
         return;
     }
-#pragma omp critical
+NORMAL_OMP_CRITICAL
     {
         CufftErrorCheck(cufftSetStream(plan_i_features, stream));
         CufftErrorCheck(cufftExecC2R(plan_i_features, in, reinterpret_cast<cufftReal *>(real_result_arr)));
 #if defined(OPENMP) && !defined(BIG_BATCH)
-        cudaStreamSynchronize(stream);
+        CudaSafeCall(cudaStreamSynchronize(stream));
 #endif
     }
     return;
index 2cc4a6e531b7d2a60604e9d6f14120695b3246e6..3433bc3a90efe72189d3e328dbcde48c2f109d4a 100644 (file)
@@ -4,6 +4,7 @@
 
 #include "fft.h"
 #include "cuda/cuda_error_check.cuh"
+#include "pragmas.h"
 
 #if CV_MAJOR_VERSION == 2
   #include <opencv2/gpu/gpu.hpp>
@@ -16,7 +17,7 @@
 #include <cufft.h>
 #include <cuda_runtime.h>
 
-struct Scale_vars;
+struct ThreadCtx;
 
 class cuFFT : public Fft
 {