Commit 5ea8591c362bee4b1fce73b1bda682582e20c8bf

Authored by Colin Heinzmann
1 parent b17fcc31

fixded PCA issues

openbr/plugins/cuda/cudapca.cpp
... ... @@ -33,6 +33,7 @@ using namespace cv;
33 33 // definitions from the CUDA source file
34 34 namespace br { namespace cuda { namespace pca {
35 35 void initializeWrapper(float* evPtr, int evRows, int evCols, float* meanPtr, int meanElems);
  36 + void trainWrapper(void* cudaSrc, float* dst, int rows, int cols);
36 37 void wrapper(void* src, void** dst);
37 38 }}}
38 39  
... ... @@ -94,6 +95,7 @@ private:
94 95 int type = *((int*)srcDataPtr[3]);
95 96  
96 97 Mat mat = Mat(rows, cols, type);
  98 + br::cuda::pca::trainWrapper(cudaMemPtr, mat.ptr<float>(), rows, cols);
97 99 trainingQlist.append(Template(mat));
98 100 }
99 101  
... ...
openbr/plugins/cuda/cudapca.cu
... ... @@ -111,6 +111,11 @@ namespace br { namespace cuda { namespace pca {
111 111 CUDA_SAFE_MALLOC(&intermediaryBuffer, _numSteps*_evCols*sizeof(float), &err);
112 112 }
113 113  
  114 + void trainWrapper(void* cudaSrc, float* data, int rows, int cols) {
  115 + cudaError_t err;
  116 + CUDA_SAFE_MEMCPY(data, cudaSrc, rows*cols*sizeof(float), cudaMemcpyDeviceToHost, &err);
  117 + }
  118 +
114 119 void wrapper(void* src, void** dst) {
115 120 cudaError_t err;
116 121 CUDA_SAFE_MALLOC(dst, _evCols*sizeof(float), &err);
... ...