Skip to content

Commit

Permalink
cleanup unnecessary setNumThreads() calls
Browse files Browse the repository at this point in the history
  • Loading branch information
alalek committed Apr 28, 2018
1 parent c49d781 commit b8de57f
Show file tree
Hide file tree
Showing 30 changed files with 55 additions and 64 deletions.
3 changes: 0 additions & 3 deletions modules/bgsegm/samples/bgfg.cpp
Expand Up @@ -37,9 +37,6 @@ static Ptr<BackgroundSubtractor> createBGSubtractorByName(const String& algoName

int main(int argc, char** argv)
{
setUseOptimized(true);
setNumThreads(8);

CommandLineParser parser(argc, argv, keys);
parser.about(about);
parser.printMessage();
Expand Down
1 change: 0 additions & 1 deletion modules/optflow/perf/perf_deepflow.cpp
Expand Up @@ -20,7 +20,6 @@ PERF_TEST_P(DenseOpticalFlow_DeepFlow, perf, Values(szVGA, sz720p))
randu(frame1, 0, 255);
randu(frame2, 0, 255);

cv::setNumThreads(cv::getNumberOfCPUs());
TEST_CYCLE_N(1)
{
Ptr<DenseOpticalFlow> algo = createOptFlow_DeepFlow();
Expand Down
1 change: 0 additions & 1 deletion modules/optflow/perf/perf_disflow.cpp
Expand Up @@ -32,7 +32,6 @@ PERF_TEST_P(DenseOpticalFlow_DIS, perf,

MakeArtificialExample(frame1, frame2);

cv::setNumThreads(cv::getNumberOfCPUs());
TEST_CYCLE_N(10)
{
Ptr<DenseOpticalFlow> algo = createOptFlow_DIS(preset);
Expand Down
1 change: 0 additions & 1 deletion modules/optflow/perf/perf_variational_refinement.cpp
Expand Up @@ -23,7 +23,6 @@ PERF_TEST_P(DenseOpticalFlow_VariationalRefinement, perf, Combine(Values(szQVGA,
randu(frame2, 0, 255);
flow.setTo(0.0f);

cv::setNumThreads(cv::getNumberOfCPUs());
TEST_CYCLE_N(10)
{
Ptr<VariationalRefinement> var = createVariationalFlowRefinement();
Expand Down
10 changes: 8 additions & 2 deletions modules/optflow/test/test_OF_reproducibility.cpp
Expand Up @@ -57,6 +57,9 @@ TEST_P(DenseOpticalFlow_DIS, MultithreadReproducibility)
OFParams params = GetParam();
Size size = get<0>(params);

int nThreads = cv::getNumThreads();
if (nThreads == 1)
throw SkipTestException("Single thread environment");
for (int iter = 0; iter <= loopsCount; iter++)
{
Mat frame1(size, CV_8U);
Expand All @@ -79,7 +82,7 @@ TEST_P(DenseOpticalFlow_DIS, MultithreadReproducibility)
algo->setUseMeanNormalization(use_mean_normalization);
algo->setUseSpatialPropagation(use_spatial_propagation);

cv::setNumThreads(cv::getNumberOfCPUs());
cv::setNumThreads(nThreads);
Mat resMultiThread;
algo->calc(frame1, frame2, resMultiThread);

Expand Down Expand Up @@ -111,6 +114,9 @@ TEST_P(DenseOpticalFlow_VariationalRefinement, MultithreadReproducibility)
OFParams params = GetParam();
Size size = get<0>(params);

int nThreads = cv::getNumThreads();
if (nThreads == 1)
throw SkipTestException("Single thread environment");
for (int iter = 0; iter <= loopsCount; iter++)
{
Mat frame1(size, CV_8U);
Expand All @@ -128,7 +134,7 @@ TEST_P(DenseOpticalFlow_VariationalRefinement, MultithreadReproducibility)
var->setFixedPointIterations(rng.uniform(1, 20));
var->setOmega(rng.uniform(1.01f, 1.99f));

cv::setNumThreads(cv::getNumberOfCPUs());
cv::setNumThreads(nThreads);
Mat resMultiThread;
flow.copyTo(resMultiThread);
var->calc(frame1, frame2, resMultiThread);
Expand Down
2 changes: 0 additions & 2 deletions modules/tracking/src/trackerCSRT.cpp
Expand Up @@ -506,8 +506,6 @@ bool TrackerCSRTImpl::updateImpl(const Mat& image_, Rect2d& boundingBox)
// *********************************************************************
bool TrackerCSRTImpl::initImpl(const Mat& image_, const Rect2d& boundingBox)
{
cv::setNumThreads(getNumThreads());

//treat gray image as color image
Mat image;
if(image_.channels() == 1) {
Expand Down
4 changes: 1 addition & 3 deletions modules/ximgproc/perf/perf_adaptive_manifold.cpp
Expand Up @@ -29,9 +29,7 @@ PERF_TEST_P( AdaptiveManifoldPerfTest, perf,
Mat src(sz, CV_MAKE_TYPE(depth, srcCnNum));
Mat dst(sz, CV_MAKE_TYPE(depth, srcCnNum));

cv::setNumThreads(cv::getNumberOfCPUs());

declare.in(joint, src, WARMUP_RNG).out(dst).tbb_threads(cv::getNumberOfCPUs());
declare.in(joint, src, WARMUP_RNG).out(dst);

double sigma_s = 16;
double sigma_r = 0.5;
Expand Down
3 changes: 1 addition & 2 deletions modules/ximgproc/perf/perf_bilateral_texture_filter.cpp
Expand Up @@ -29,8 +29,7 @@ PERF_TEST_P(BilateralTextureFilterTest, perf,
Mat src(sz, CV_MAKE_TYPE(depth,srcCn));
Mat dst(sz, src.type());

cv::setNumThreads(cv::getNumberOfCPUs());
declare.in(src, WARMUP_RNG).out(dst).tbb_threads(cv::getNumberOfCPUs());
declare.in(src, WARMUP_RNG).out(dst);

TEST_CYCLE_N(1)
{
Expand Down
1 change: 0 additions & 1 deletion modules/ximgproc/perf/perf_disparity_wls_filter.cpp
Expand Up @@ -41,7 +41,6 @@ PERF_TEST_P( DisparityWLSFilterPerfTest, perf, Combine(GuideTypes::all(), SrcTyp
ROI = Rect(ROI.x/2,ROI.y/2,ROI.width/2,ROI.height/2);
}

cv::setNumThreads(cv::getNumberOfCPUs());
TEST_CYCLE_N(10)
{
Ptr<DisparityWLSFilter> wls_filter = createDisparityWLSFilterGeneric(use_conf);
Expand Down
3 changes: 1 addition & 2 deletions modules/ximgproc/perf/perf_domain_transform.cpp
Expand Up @@ -34,9 +34,8 @@ PERF_TEST_P( DomainTransformTest, perf,
Mat src(size, srcType);
Mat dst(size, srcType);

declare.in(guide, src, WARMUP_RNG).out(dst).tbb_threads(cv::getNumberOfCPUs());
declare.in(guide, src, WARMUP_RNG).out(dst);

cv::setNumThreads(cv::getNumberOfCPUs());
TEST_CYCLE_N(5)
{
dtFilter(guide, src, dst, sigmaSpatial, sigmaColor, dtfType);
Expand Down
3 changes: 1 addition & 2 deletions modules/ximgproc/perf/perf_fgs_filter.cpp
Expand Up @@ -24,9 +24,8 @@ PERF_TEST_P( FGSFilterPerfTest, perf, Combine(GuideTypes::all(), SrcTypes::all()
Mat src(sz, srcType);
Mat dst(sz, srcType);

declare.in(guide, src, WARMUP_RNG).out(dst).tbb_threads(cv::getNumberOfCPUs());
declare.in(guide, src, WARMUP_RNG).out(dst);

cv::setNumThreads(cv::getNumberOfCPUs());
TEST_CYCLE_N(10)
{
double lambda = rng.uniform(500.0, 10000.0);
Expand Down
3 changes: 1 addition & 2 deletions modules/ximgproc/perf/perf_guided_filter.cpp
Expand Up @@ -24,9 +24,8 @@ PERF_TEST_P( GuidedFilterPerfTest, perf, Combine(GuideTypes::all(), SrcTypes::al
Mat src(sz, srcType);
Mat dst(sz, srcType);

declare.in(guide, src, WARMUP_RNG).out(dst).tbb_threads(cv::getNumberOfCPUs());
declare.in(guide, src, WARMUP_RNG).out(dst);

cv::setNumThreads(cv::getNumberOfCPUs());
TEST_CYCLE_N(3)
{
int radius = rng.uniform(5, 30);
Expand Down
3 changes: 1 addition & 2 deletions modules/ximgproc/perf/perf_l0_smooth.cpp
Expand Up @@ -23,8 +23,7 @@ PERF_TEST_P(L0SmoothTest, perf,
Mat src(sz, CV_MAKE_TYPE(depth, srcCn));
Mat dst(sz, src.type());

cv::setNumThreads(cv::getNumberOfCPUs());
declare.in(src, WARMUP_RNG).out(dst).tbb_threads(cv::getNumberOfCPUs());
declare.in(src, WARMUP_RNG).out(dst);

RNG rnd(sz.height + depth + srcCn);
double lambda = rnd.uniform(0.01, 0.05);
Expand Down
3 changes: 1 addition & 2 deletions modules/ximgproc/perf/perf_rolling_guidance_filter.cpp
Expand Up @@ -25,8 +25,7 @@ PERF_TEST_P(RollingGuidanceFilterTest, perf,
Mat src(sz, CV_MAKE_TYPE(depth, srcCn));
Mat dst(sz, src.type());

cv::setNumThreads(cv::getNumberOfCPUs());
declare.in(src, WARMUP_RNG).out(dst).tbb_threads(cv::getNumberOfCPUs());
declare.in(src, WARMUP_RNG).out(dst);

RNG rnd(cvRound(10*sigmaS) + sz.height + depth + srcCn);
double sigmaC = rnd.uniform(1.0, 255.0);
Expand Down
3 changes: 1 addition & 2 deletions modules/ximgproc/perf/perf_weighted_median_filter.cpp
Expand Up @@ -34,8 +34,7 @@ PERF_TEST_P(WeightedMedianFilterTest, perf,
Mat src(sz, CV_MAKE_TYPE(srcDepth, srcCn));
Mat dst(sz, src.type());

cv::setNumThreads(cv::getNumberOfCPUs());
declare.in(joint, src, WARMUP_RNG).out(dst).tbb_threads(cv::getNumberOfCPUs());
declare.in(joint, src, WARMUP_RNG).out(dst);

TEST_CYCLE_N(1)
{
Expand Down
3 changes: 1 addition & 2 deletions modules/ximgproc/perf/pref_joint_bilateral_filter.cpp
Expand Up @@ -29,8 +29,7 @@ PERF_TEST_P(JointBilateralFilterTest, perf,
Mat src(sz, CV_MAKE_TYPE(depth, srcCn));
Mat dst(sz, src.type());

cv::setNumThreads(cv::getNumberOfCPUs());
declare.in(joint, src, WARMUP_RNG).out(dst).tbb_threads(cv::getNumberOfCPUs());
declare.in(joint, src, WARMUP_RNG).out(dst);

RNG rnd(cvRound(10*sigmaS) + sz.height + depth + jCn + srcCn);
double sigmaC = rnd.uniform(1.0, 255.0);
Expand Down
3 changes: 0 additions & 3 deletions modules/ximgproc/samples/graphsegmentation_demo.cpp
Expand Up @@ -91,9 +91,6 @@ int main(int argc, char** argv) {
return -1;
}

setUseOptimized(true);
setNumThreads(8);

Ptr<GraphSegmentation> gs = createGraphSegmentation();

if (argc > 3)
Expand Down
4 changes: 2 additions & 2 deletions modules/ximgproc/samples/live_demo.cpp
Expand Up @@ -158,7 +158,6 @@ void changeModeCallback(int state, void *filter)
void changeNumberOfCpuCallback(int count, void*)
{
count = std::max(1, count);
cv::setNumThreads(count);
g_numberOfCPUs = count;
}

Expand Down Expand Up @@ -188,7 +187,6 @@ int main()
displayOverlay("Demo", "Press Ctrl+P to show property window", 5000);

//Thread trackbar
cv::setNumThreads(g_numberOfCPUs); //speedup filtering
createTrackbar("Threads", String(), &g_numberOfCPUs, cv::getNumberOfCPUs(), changeNumberOfCpuCallback);

//Buttons to choose different modes
Expand Down Expand Up @@ -219,6 +217,8 @@ int main()
cap >> rawFrame;
} while (rawFrame.empty());

cv::setNumThreads(g_numberOfCPUs); //speedup filtering

splitScreen(rawFrame, outputFrame, srcFrame, processedFrame);
g_filterOp(srcFrame, processedFrame);

Expand Down
5 changes: 0 additions & 5 deletions modules/ximgproc/samples/selectivesearchsegmentation_demo.cpp
Expand Up @@ -59,11 +59,6 @@ int main(int argc, char** argv) {
return -1;
}

setUseOptimized(true);
setNumThreads(8);

std::srand((int)std::time(0));

Mat img = imread(argv[1]);

Ptr<SelectiveSearchSegmentation> gs = createSelectiveSearchSegmentation();
Expand Down
9 changes: 4 additions & 5 deletions modules/ximgproc/test/test_adaptive_manifold.cpp
Expand Up @@ -29,8 +29,6 @@ TEST(AdaptiveManifoldTest, SplatSurfaceAccuracy)
{
RNG rnd(0);

cv::setNumThreads(cv::getNumberOfCPUs());

for (int i = 0; i < 5; i++)
{
Size sz(rnd.uniform(512, 1024), rnd.uniform(512, 1024));
Expand Down Expand Up @@ -90,8 +88,6 @@ TEST(AdaptiveManifoldTest, AuthorsReferenceAccuracy)
Mat srcImg = imread(getOpenCVExtraDir() + srcImgPath);
ASSERT_TRUE(!srcImg.empty());

cv::setNumThreads(cv::getNumberOfCPUs());

for (int i = 0; i < 3; i++)
{
Mat refRes = imread(getOpenCVExtraDir() + refPaths[i]);
Expand Down Expand Up @@ -148,13 +144,16 @@ TEST_P(AdaptiveManifoldRefImplTest, RefImplAccuracy)
resize(guide, guide, dstSize, 0, 0, INTER_LINEAR_EXACT);
resize(src, src, dstSize, 0, 0, INTER_LINEAR_EXACT);

int nThreads = cv::getNumThreads();
if (nThreads == 1)
throw SkipTestException("Single thread environment");
for (int iter = 0; iter < 4; iter++)
{
double sigma_s = rnd.uniform(1.0, 50.0);
double sigma_r = rnd.uniform(0.1, 0.9);
bool adjust_outliers = (iter % 2 == 0);

cv::setNumThreads(cv::getNumberOfCPUs());
cv::setNumThreads(nThreads);
Mat res;
amFilter(guide, src, res, sigma_s, sigma_r, adjust_outliers);

Expand Down
5 changes: 4 additions & 1 deletion modules/ximgproc/test/test_bilateral_texture_filter.cpp
Expand Up @@ -66,9 +66,12 @@ TEST_P(BilateralTextureFilterTest, MultiThreadReproducibility)
else
randu(src, 0.0f, 1.0f);

int nThreads = cv::getNumThreads();
if (nThreads == 1)
throw SkipTestException("Single thread environment");
for (int iter = 0; iter <= loopsCount; iter++)
{
cv::setNumThreads(cv::getNumberOfCPUs());
cv::setNumThreads(nThreads);
Mat resMultiThread;
bilateralTextureFilter(src, resMultiThread, fr, 1, sigmaAlpha, sigmaAvg);

Expand Down
6 changes: 4 additions & 2 deletions modules/ximgproc/test/test_disparity_wls_filter.cpp
Expand Up @@ -39,7 +39,6 @@ TEST(DisparityWLSFilterTest, ReferenceAccuracy)
double ref_MSE = (double)reference_res["MSE_after"];
double ref_BadPercent = (double)reference_res["BadPercent_after"];

cv::setNumThreads(cv::getNumberOfCPUs());
Mat res;

Ptr<DisparityWLSFilter> wls_filter = createDisparityWLSFilterGeneric(true);
Expand Down Expand Up @@ -88,6 +87,9 @@ TEST_P(DisparityWLSFilterTest, MultiThreadReproducibility)
ROI = Rect(ROI.x/2,ROI.y/2,ROI.width/2,ROI.height/2);
}

int nThreads = cv::getNumThreads();
if (nThreads == 1)
throw SkipTestException("Single thread environment");
for (int iter = 0; iter <= loopsCount; iter++)
{
double lambda = rng.uniform(100.0, 10000.0);
Expand All @@ -97,7 +99,7 @@ TEST_P(DisparityWLSFilterTest, MultiThreadReproducibility)
wls_filter->setLambda(lambda);
wls_filter->setSigmaColor(sigma);

cv::setNumThreads(cv::getNumberOfCPUs());
cv::setNumThreads(nThreads);
Mat resMultiThread;
wls_filter->filter(left_disp,left,resMultiThread,right_disp,ROI);

Expand Down
6 changes: 4 additions & 2 deletions modules/ximgproc/test/test_domain_transform.cpp
Expand Up @@ -100,12 +100,15 @@ TEST_P(DomainTransformTest, MultiThreadReproducibility)
Mat guide = convertTypeAndSize(original, guideType, size);
Mat src = convertTypeAndSize(original, srcType, size);

int nThreads = cv::getNumThreads();
if (nThreads == 1)
throw SkipTestException("Single thread environment");
for (int iter = 0; iter <= loopsCount; iter++)
{
double ss = rng.uniform(0.0, 100.0);
double sc = rng.uniform(0.0, 100.0);

cv::setNumThreads(cv::getNumberOfCPUs());
cv::setNumThreads(nThreads);
Mat resMultithread;
dtFilter(guide, src, resMultithread, ss, sc, mode);

Expand Down Expand Up @@ -194,7 +197,6 @@ TEST(DomainTransformTest, AuthorReferenceAccuracy)
ASSERT_FALSE(ref_IC.empty());
ASSERT_FALSE(ref_RF.empty());

cv::setNumThreads(cv::getNumberOfCPUs());
Mat res_NC, res_IC, res_RF;
dtFilter(src, src, res_NC, ss, sc, DTF_NC);
dtFilter(src, src, res_IC, ss, sc, DTF_IC);
Expand Down
6 changes: 4 additions & 2 deletions modules/ximgproc/test/test_fgs_filter.cpp
Expand Up @@ -55,7 +55,6 @@ TEST(FastGlobalSmootherTest, ReferenceAccuracy)
ASSERT_FALSE(src.empty());
ASSERT_FALSE(ref.empty());

cv::setNumThreads(cv::getNumberOfCPUs());
Mat res;
fastGlobalSmootherFilter(src,src,res,1000.0,10.0);

Expand Down Expand Up @@ -90,12 +89,15 @@ TEST_P(FastGlobalSmootherTest, MultiThreadReproducibility)
else
randu(src, -100000.0f, 100000.0f);

int nThreads = cv::getNumThreads();
if (nThreads == 1)
throw SkipTestException("Single thread environment");
for (int iter = 0; iter <= loopsCount; iter++)
{
double lambda = rng.uniform(100.0, 10000.0);
double sigma = rng.uniform(1.0, 100.0);

cv::setNumThreads(cv::getNumberOfCPUs());
cv::setNumThreads(nThreads);
Mat resMultiThread;
fastGlobalSmootherFilter(guide, src, resMultiThread, lambda, sigma);

Expand Down
5 changes: 4 additions & 1 deletion modules/ximgproc/test/test_guided_filter.cpp
Expand Up @@ -324,12 +324,15 @@ TEST_P(GuidedFilterTest, accuracy)
guide = convertTypeAndSize(guide, CV_MAKE_TYPE(guide.depth(), guideCnNum), dstSize);
src = convertTypeAndSize(src, CV_MAKE_TYPE(src.depth(), srcCnNum), dstSize);

int nThreads = cv::getNumThreads();
if (nThreads == 1)
throw SkipTestException("Single thread environment");
for (int iter = 0; iter < 2; iter++)
{
int radius = rng.uniform(0, 50);
double eps = rng.uniform(0.0, SQR(255.0));

cv::setNumThreads(cv::getNumberOfCPUs());
cv::setNumThreads(nThreads);
Mat res;
Ptr<GuidedFilter> gf = createGuidedFilter(guide, radius, eps);
gf->filter(src, res);
Expand Down
4 changes: 0 additions & 4 deletions modules/ximgproc/test/test_joint_bilateral_filter.cpp
Expand Up @@ -192,10 +192,8 @@ TEST_P(JointBilateralFilterTest_NaiveRef, Accuracy)
Mat resNaive;
jointBilateralFilterNaive(joint, src, resNaive, 0, sigmaC, sigmaS);

cv::setNumThreads(cv::getNumberOfCPUs());
Mat res;
jointBilateralFilter(joint, src, res, 0, sigmaC, sigmaS);
cv::setNumThreads(1);

checkSimilarity(res, resNaive);
}
Expand Down Expand Up @@ -226,8 +224,6 @@ TEST_P(JointBilateralFilterTest_BilateralRef, Accuracy)
RNG rnd(cvRound(10*sigmaS) + srcPath.length() + srcType + src.rows);
double sigmaC = rnd.uniform(0.0, 255.0);

cv::setNumThreads(cv::getNumberOfCPUs());

Mat resRef;
bilateralFilter(src, resRef, 0, sigmaC, sigmaS);

Expand Down

0 comments on commit b8de57f

Please sign in to comment.