diff --git a/lib/libstereo/middlebury/main.cpp b/lib/libstereo/middlebury/main.cpp index 9bbf0edd1b05cb2c9c25439a737f5ec2c6a8fb74..75e68a99c0e5c851d5ce1f816c71f7b8994edaaa 100644 --- a/lib/libstereo/middlebury/main.cpp +++ b/lib/libstereo/middlebury/main.cpp @@ -9,6 +9,8 @@ #include "middlebury.hpp" #include "algorithms.hpp" +#include <cuda_runtime.h> + #include "../../components/common/cpp/include/ftl/config.h" struct Result { @@ -141,6 +143,10 @@ void main_default(const std::vector<std::string> &paths, std::vector<std::pair<MiddleburyData, std::map<std::string, Result>>> results; + int devices=0; + cudaGetDeviceCount(&devices); + cudaSetDevice(devices-1); + for (const auto &dir : paths) { auto input = load_input(dir); std::map<std::string, Result> result; diff --git a/lib/libstereo/src/algorithms/brefcensussgm.cu b/lib/libstereo/src/algorithms/brefcensussgm.cu index 141388f3d570785bdff2e508fe5c044fbd03878c..eea64c294e16957ccfa4b5e25c4256d89812fbf8 100644 --- a/lib/libstereo/src/algorithms/brefcensussgm.cu +++ b/lib/libstereo/src/algorithms/brefcensussgm.cu @@ -21,7 +21,7 @@ StereoBRefCensusSgm::StereoBRefCensusSgm() : impl_(nullptr) { void StereoBRefCensusSgm::compute(cv::InputArray l, cv::InputArray r, cv::OutputArray disparity) { - cudaSetDevice(0); + //cudaSetDevice(0); if (l.rows() != impl_->cost.height() || r.cols() != impl_->cost.width()) { delete impl_; impl_ = nullptr; diff --git a/lib/libstereo/src/algorithms/censussgm.cu b/lib/libstereo/src/algorithms/censussgm.cu index fb229bf668d0b60f40dcad82d9f616a720cf451e..3c15e5275f2eae48a07f2f7758c77a7fdb333c97 100644 --- a/lib/libstereo/src/algorithms/censussgm.cu +++ b/lib/libstereo/src/algorithms/censussgm.cu @@ -16,7 +16,7 @@ StereoCensusSgm::StereoCensusSgm() : impl_(nullptr) { void StereoCensusSgm::compute(cv::InputArray l, cv::InputArray r, cv::OutputArray disparity) { - cudaSetDevice(0); + //cudaSetDevice(0); if (l.rows() != impl_->cost.height() || r.cols() != impl_->cost.width()) { delete impl_; impl_ = nullptr; diff --git a/lib/libstereo/src/algorithms/hcensussgm.cu b/lib/libstereo/src/algorithms/hcensussgm.cu index 420f22f534a1c856864efd273d399f136411ea17..2a7c7586c215624b4a09bf0230d95a1d04534995 100644 --- a/lib/libstereo/src/algorithms/hcensussgm.cu +++ b/lib/libstereo/src/algorithms/hcensussgm.cu @@ -70,7 +70,7 @@ StereoHierCensusSgm::StereoHierCensusSgm() : impl_(nullptr) { void StereoHierCensusSgm::compute(cv::InputArray l, cv::InputArray r, cv::OutputArray disparity) { - cudaSetDevice(0); + //cudaSetDevice(0); if (l.rows() != impl_->cost.height() || r.cols() != impl_->cost.width()) { delete impl_; impl_ = nullptr; diff --git a/lib/libstereo/src/algorithms/meancensussgm.cu b/lib/libstereo/src/algorithms/meancensussgm.cu index e0c1d49d7bb4569faa9086d39a5e16deaa9cd5a5..7058ba79f8f9432a61e8ac1e009cedd8d36ab52c 100644 --- a/lib/libstereo/src/algorithms/meancensussgm.cu +++ b/lib/libstereo/src/algorithms/meancensussgm.cu @@ -20,7 +20,7 @@ StereoMeanCensusSgm::StereoMeanCensusSgm() : impl_(nullptr) { void StereoMeanCensusSgm::compute(cv::InputArray l, cv::InputArray r, cv::OutputArray disparity) { - cudaSetDevice(0); + //cudaSetDevice(0); if (l.rows() != impl_->cost.height() || r.cols() != impl_->cost.width()) { delete impl_; impl_ = nullptr; diff --git a/lib/libstereo/src/algorithms/stablesgm.cu b/lib/libstereo/src/algorithms/stablesgm.cu index 3aeb33a528e483d4bc5885f863bcb78549faa9d9..efaf20a289005f51c80711af4f6735efb2e8196c 100644 --- a/lib/libstereo/src/algorithms/stablesgm.cu +++ b/lib/libstereo/src/algorithms/stablesgm.cu @@ -16,7 +16,7 @@ StereoStableSgm::StereoStableSgm() : impl_(nullptr) { void StereoStableSgm::compute(cv::InputArray l, cv::InputArray r, cv::OutputArray disparity) { - cudaSetDevice(0); + //cudaSetDevice(0); if (l.rows() != impl_->cost.height() || r.cols() != impl_->cost.width()) { delete impl_; impl_ = nullptr; diff --git a/lib/libstereo/src/algorithms/tcensussgm.cu b/lib/libstereo/src/algorithms/tcensussgm.cu index 131405107a6fe2a92b69cb1c57dc99ff329ae101..6a449937a13936b0a3d7f141cf36ac5ef44e4ad1 100644 --- a/lib/libstereo/src/algorithms/tcensussgm.cu +++ b/lib/libstereo/src/algorithms/tcensussgm.cu @@ -16,7 +16,7 @@ StereoTCensusSgm::StereoTCensusSgm() : impl_(nullptr) { void StereoTCensusSgm::compute(cv::InputArray l, cv::InputArray r, cv::OutputArray disparity) { - cudaSetDevice(0); + //cudaSetDevice(0); if (l.rows() != impl_->cost.height() || r.cols() != impl_->cost.width()) { delete impl_; impl_ = nullptr;