From 0cb81e5f50ab396726a334784db308025d74c2b7 Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Sun, 07 Jan 2018 17:44:04 +0000
Subject: [PATCH] Some stream fixes
---
src/yolo_v2_class.cpp | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/yolo_v2_class.cpp b/src/yolo_v2_class.cpp
index 4418ce9..88d2bc1 100644
--- a/src/yolo_v2_class.cpp
+++ b/src/yolo_v2_class.cpp
@@ -34,7 +34,7 @@
};
-YOLODLL_API Detector::Detector(std::string cfg_filename, std::string weight_filename, int gpu_id)
+YOLODLL_API Detector::Detector(std::string cfg_filename, std::string weight_filename, int gpu_id) : cur_gpu_id(gpu_id)
{
int old_gpu_index;
#ifdef GPU
@@ -54,7 +54,7 @@
char *cfgfile = const_cast<char *>(cfg_filename.data());
char *weightfile = const_cast<char *>(weight_filename.data());
- net = parse_network_cfg(cfgfile);
+ net = parse_network_cfg_custom(cfgfile, 1);
if (weightfile) {
load_weights(&net, weightfile);
}
@@ -109,11 +109,11 @@
#endif
}
-YOLODLL_API int Detector::get_net_width() {
+YOLODLL_API int Detector::get_net_width() const {
detector_gpu_t &detector_gpu = *reinterpret_cast<detector_gpu_t *>(detector_gpu_ptr.get());
return detector_gpu.net.w;
}
-YOLODLL_API int Detector::get_net_height() {
+YOLODLL_API int Detector::get_net_height() const {
detector_gpu_t &detector_gpu = *reinterpret_cast<detector_gpu_t *>(detector_gpu_ptr.get());
return detector_gpu.net.h;
}
@@ -178,7 +178,8 @@
int old_gpu_index;
#ifdef GPU
cudaGetDevice(&old_gpu_index);
- cudaSetDevice(net.gpu_index);
+ if(cur_gpu_id != old_gpu_index)
+ cudaSetDevice(net.gpu_index);
#endif
//std::cout << "net.gpu_index = " << net.gpu_index << std::endl;
@@ -242,7 +243,8 @@
free(sized.data);
#ifdef GPU
- cudaSetDevice(old_gpu_index);
+ if (cur_gpu_id != old_gpu_index)
+ cudaSetDevice(old_gpu_index);
#endif
return bbox_vec;
--
Gitblit v1.10.0