Commit 728e43f51e3b073a79c0c3dcd0d2be3e366c3f72

Authored by boolli
1 parent 4efed3e0

Change input parameter of MatManager::reserve from Mat* to Mat&

openbr/plugins/cuda/MatManager.cu
@@ -41,7 +41,7 @@ namespace br { namespace cuda { @@ -41,7 +41,7 @@ namespace br { namespace cuda {
41 sem_init(_matSemaphore, 0, _numMats); 41 sem_init(_matSemaphore, 0, _numMats);
42 } 42 }
43 43
44 - MatManager::matindex MatManager::reserve(Mat *mat) { 44 + MatManager::matindex MatManager::reserve(Mat &mat) {
45 int reservedMatIndex = 0; 45 int reservedMatIndex = 0;
46 //std::cout << "Reserving" << std::endl << std::flush; 46 //std::cout << "Reserving" << std::endl << std::flush;
47 47
@@ -66,16 +66,11 @@ namespace br { namespace cuda { @@ -66,16 +66,11 @@ namespace br { namespace cuda {
66 66
67 // reallocate if size does not match 67 // reallocate if size does not match
68 pthread_mutex_lock(_matsDimensionLock); 68 pthread_mutex_lock(_matsDimensionLock);
69 - if (*_matsDimension[reservedMatIndex] != mat->rows * mat->cols) {  
70 - //printSizeChangingMat(reservedMat);  
71 - //reservedMat->release();  
72 - //reservedMat->create(mat->size(), mat->type());  
73 - //std::cout << "Size mismatch" << std::endl << std::flush;  
74 - // re malloc 69 + if (*_matsDimension[reservedMatIndex] != mat.rows * mat.cols) {
75 cudaFree(_mats[reservedMatIndex]); // free the previous memory first 70 cudaFree(_mats[reservedMatIndex]); // free the previous memory first
76 - cudaMalloc(&_mats[reservedMatIndex], mat->rows * mat->cols * sizeof(uint8_t)); 71 + cudaMalloc(&_mats[reservedMatIndex], mat.rows * mat.cols * sizeof(uint8_t));
77 // change the dimension of that matrix 72 // change the dimension of that matrix
78 - *_matsDimension[reservedMatIndex] = mat->rows * mat->cols; 73 + *_matsDimension[reservedMatIndex] = mat.rows * mat.cols;
79 74
80 } 75 }
81 pthread_mutex_unlock(_matsDimensionLock); 76 pthread_mutex_unlock(_matsDimensionLock);
openbr/plugins/cuda/MatManager.hpp
@@ -28,7 +28,7 @@ namespace br { namespace cuda { @@ -28,7 +28,7 @@ namespace br { namespace cuda {
28 typedef int matindex; 28 typedef int matindex;
29 MatManager(int num); 29 MatManager(int num);
30 30
31 - int reserve(Mat *mat); 31 + int reserve(Mat &mat);
32 void upload(matindex reservedMatIndex, Mat& mat); 32 void upload(matindex reservedMatIndex, Mat& mat);
33 void download(matindex reservedMatIndex, Mat& dstMat); 33 void download(matindex reservedMatIndex, Mat& dstMat);
34 void release(matindex matIndex); 34 void release(matindex matIndex);
openbr/plugins/cuda/cudalbp.cpp
@@ -156,13 +156,13 @@ class CUDALBPTransform : public UntrainableTransform @@ -156,13 +156,13 @@ class CUDALBPTransform : public UntrainableTransform
156 Mat& m = (Mat&)src.m(); 156 Mat& m = (Mat&)src.m();
157 cuda::MatManager::matindex a; 157 cuda::MatManager::matindex a;
158 cuda::MatManager::matindex b; 158 cuda::MatManager::matindex b;
159 - a = matManager->reserve(&m); 159 + a = matManager->reserve(m);
160 // std::cout << "m: " << m.size() << ", " << m.type() << std::endl << std::flush; 160 // std::cout << "m: " << m.size() << ", " << m.type() << std::endl << std::flush;
161 // std::cout << "a: " << a->size() << ", " << a->type() << std::endl << std::flush; 161 // std::cout << "a: " << a->size() << ", " << a->type() << std::endl << std::flush;
162 matManager->upload(a, m); 162 matManager->upload(a, m);
163 163
164 // reserve the second mat and check the dimensiosn 164 // reserve the second mat and check the dimensiosn
165 - b = matManager->reserve(&m); 165 + b = matManager->reserve(m);
166 //matManager->matchDimensions(b, a); 166 //matManager->matchDimensions(b, a);
167 167
168 //std::cout << "Coming to here" << std::endl << std::flush; 168 //std::cout << "Coming to here" << std::endl << std::flush;