Skip to content

Commit 893bb25

Browse files
committed
move code from modelSelector to baseHessian
1 parent aff8ea6 commit 893bb25

4 files changed

Lines changed: 7 additions & 70 deletions

File tree

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ NVCC := /usr/local/cuda/bin/nvcc
1010
ODIR = bin
1111
dummy_build_folder := $(shell mkdir -p $(ODIR))
1212

13-
bin/mascot: classificationKernel_cu.o commandLineParser.o cvFunction.o fileOps.o gpu_global_utility.o initCuda_cu.o modelSelector_cu.o smoGPUHelper_cu.o smoSolver_cu.o svmMain.o svmPredictor_cu.o svmTrainer_cu.o trainingFunction_cu.o cacheGS.o cacheLRU.o cacheMLRU.o cacheMRU.o DataIO.o ReadHelper.o accessHessian.o baseHessian.o parAccessor.o seqAccessor.o deviceHessian_cu.o LinearCalculater_cu.o LinearCalGPUHelper_cu.o PolynomialCalGPUHelper_cu.o PolynomialCalculater_cu.o RBFCalculater_cu.o RBFCalGPUHelper_cu.o SigmoidCalculater_cu.o SigmoidCalGPUHelper_cu.o storageManager_cu.o hostStorageManager.o smoSharedSolver_cu.o svmSharedTrainer_cu.o baseLibsvmReader.o devUtility_cu.o
14-
$(NVCC) $(LASTFLAG) $(LDFLAGS) -o bin/mascot cacheGS.o cacheLRU.o cacheMLRU.o cacheMRU.o DataIO.o baseLibsvmReader.o ReadHelper.o baseHessian.o accessHessian.o parAccessor.o seqAccessor.o deviceHessian_cu.o LinearCalculater_cu.o LinearCalGPUHelper_cu.o PolynomialCalGPUHelper_cu.o PolynomialCalculater_cu.o RBFCalculater_cu.o RBFCalGPUHelper_cu.o SigmoidCalculater_cu.o SigmoidCalGPUHelper_cu.o devUtility_cu.o storageManager_cu.o hostStorageManager.o classificationKernel_cu.o commandLineParser.o cvFunction.o fileOps.o gpu_global_utility.o initCuda_cu.o smoGPUHelper_cu.o smoSharedSolver_cu.o smoSolver_cu.o svmMain.o svmPredictor_cu.o svmSharedTrainer_cu.o svmTrainer_cu.o modelSelector_cu.o trainingFunction_cu.o
13+
bin/mascot: classificationKernel_cu.o commandLineParser.o cvFunction.o fileOps.o gpu_global_utility.o initCuda_cu.o modelSelector_cu.o smoGPUHelper_cu.o smoSolver_cu.o svmMain.o svmPredictor_cu.o svmTrainer_cu.o trainingFunction_cu.o cacheGS.o cacheLRU.o cacheMLRU.o cacheMRU.o DataIO.o ReadHelper.o accessHessian.o baseHessian_cu.o parAccessor.o seqAccessor.o deviceHessian_cu.o LinearCalculater_cu.o LinearCalGPUHelper_cu.o PolynomialCalGPUHelper_cu.o PolynomialCalculater_cu.o RBFCalculater_cu.o RBFCalGPUHelper_cu.o SigmoidCalculater_cu.o SigmoidCalGPUHelper_cu.o storageManager_cu.o hostStorageManager.o smoSharedSolver_cu.o svmSharedTrainer_cu.o baseLibsvmReader.o devUtility_cu.o
14+
$(NVCC) $(LASTFLAG) $(LDFLAGS) -o bin/mascot cacheGS.o cacheLRU.o cacheMLRU.o cacheMRU.o DataIO.o baseLibsvmReader.o ReadHelper.o baseHessian_cu.o accessHessian.o parAccessor.o seqAccessor.o deviceHessian_cu.o LinearCalculater_cu.o LinearCalGPUHelper_cu.o PolynomialCalGPUHelper_cu.o PolynomialCalculater_cu.o RBFCalculater_cu.o RBFCalGPUHelper_cu.o SigmoidCalculater_cu.o SigmoidCalGPUHelper_cu.o devUtility_cu.o storageManager_cu.o hostStorageManager.o classificationKernel_cu.o commandLineParser.o cvFunction.o fileOps.o gpu_global_utility.o initCuda_cu.o smoGPUHelper_cu.o smoSharedSolver_cu.o smoSolver_cu.o svmMain.o svmPredictor_cu.o svmSharedTrainer_cu.o svmTrainer_cu.o modelSelector_cu.o trainingFunction_cu.o
1515
cvFunction.o: mascot/cvFunction.cpp
1616
g++ $(CCFLAGS) $(LDFLAGS) -o cvFunction.o -c mascot/cvFunction.cpp
1717

@@ -87,8 +87,8 @@ DataIO.o: mascot/DataIOOps/DataIO.h mascot/DataIOOps/DataIO.cpp
8787
ReadHelper.o: mascot/DataIOOps/ReadHelper.cpp
8888
g++ $(CCFLAGS) -o ReadHelper.o -c mascot/DataIOOps/ReadHelper.cpp
8989

90-
baseHessian.o: svm-shared/HessianIO/baseHessian.h svm-shared/HessianIO/baseHessian.cpp svm-shared/host_constant.h
91-
$(NVCC) $(NVCCFLAGS) $(LDFLAGS) -o baseHessian.o -c svm-shared/HessianIO/baseHessian.cpp
90+
baseHessian_cu.o: svm-shared/HessianIO/baseHessian.h svm-shared/HessianIO/baseHessian.cu svm-shared/host_constant.h
91+
$(NVCC) $(NVCCFLAGS) $(LDFLAGS) -o baseHessian_cu.o -c svm-shared/HessianIO/baseHessian.cu
9292

9393
accessHessian.o: svm-shared/HessianIO/accessHessian.h svm-shared/HessianIO/accessHessian.cpp
9494
$(NVCC) $(NVCCFLAGS) $(LDFLAGS) -o accessHessian.o -c svm-shared/HessianIO/accessHessian.cpp
@@ -99,7 +99,7 @@ parAccessor.o: svm-shared/HessianIO/parAccessor.h svm-shared/HessianIO/parAccess
9999
seqAccessor.o: svm-shared/HessianIO/seqAccessor.h svm-shared/HessianIO/seqAccessor.cpp svm-shared/HessianIO/accessHessian.h
100100
$(NVCC) $(NVCCFLAGS) $(LDFLAGS) -o seqAccessor.o -c svm-shared/HessianIO/seqAccessor.cpp
101101

102-
deviceHessian_cu.o: svm-shared/HessianIO/baseHessian.h svm-shared/HessianIO/baseHessian.cpp svm-shared/HessianIO/deviceHessian.h svm-shared/HessianIO/deviceHessian.cu
102+
deviceHessian_cu.o: svm-shared/HessianIO/baseHessian.h svm-shared/HessianIO/deviceHessian.h svm-shared/HessianIO/deviceHessian.cu
103103
$(NVCC) $(NVCCFLAGS) $(LDFLAGS) -o deviceHessian_cu.o -c svm-shared/HessianIO/deviceHessian.cu
104104

105105
LinearCalculater_cu.o: svm-shared/kernelCalculater/kernelCalculater.h svm-shared/kernelCalculater/LinearCalculater.cu

mascot/modelSelector.cu

Lines changed: 1 addition & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ bool CModelSelector::GridSearch(const grid &SGrid, vector<vector<float_point> >
4545

4646
CSVMPredictor svmPredicter(&hessianIOOps);
4747

48-
PrecomputeKernelMatrix(v_vDocVector, &hessianIOOps);
48+
hessianIOOps.PrecomputeKernelMatrix(v_vDocVector, &hessianIOOps);
4949

5050
//start n-fold-cross-validation, by changing C for SVM
5151
for(int k = 0; k < nNumofC; k++)
@@ -89,69 +89,6 @@ bool CModelSelector::GridSearch(const grid &SGrid, vector<vector<float_point> >
8989
return bReturn;
9090
}
9191

92-
/**
93-
* @brief: kernel matrix precomputation
94-
*/
95-
void CModelSelector::PrecomputeKernelMatrix(vector<vector<float_point> > &v_vDocVector, BaseHessian *hessianIOOps)
96-
{
97-
//compute Hessian Matrix
98-
string strHessianMatrixFileName = HESSIAN_FILE;
99-
string strDiagHessianFileName = HESSIAN_DIAG_FILE;
100-
101-
int nNumofSample = v_vDocVector.size();
102-
103-
//initialize Hessian IO operator
104-
//CLinearKernel RBF(pfGamma[j]);
105-
106-
int nNumofRowsOfHessianMatrix = v_vDocVector.size();
107-
//space of row-index-in-file is for improving reading performace
108-
BaseHessian::m_nNumofDim = v_vDocVector.front().size();
109-
BaseHessian::m_nTotalNumofInstance = nNumofRowsOfHessianMatrix;
110-
111-
StorageManager *manager = StorageManager::getManager();
112-
int nNumofHessianRow = manager->RowInRAM(BaseHessian::m_nNumofDim, BaseHessian::m_nTotalNumofInstance, nNumofSample);
113-
114-
cout << nNumofHessianRow << " rows cached in RAM" << endl;
115-
long long lSizeofCachedHessian = sizeof(float_point) * (long long)nNumofHessianRow * nNumofSample;
116-
117-
118-
cout << "numRow " << nNumofHessianRow << "; numIns " << nNumofSample << "; numBytes " << lSizeofCachedHessian << endl;
119-
if(lSizeofCachedHessian < 0)
120-
{
121-
cerr << "locate negative amount of host memory" << endl;
122-
exit(-1);
123-
}
124-
125-
checkCudaErrors(cudaMallocHost((void**)&(BaseHessian::m_pfHessianRowsInHostMem), lSizeofCachedHessian));
126-
127-
memset(BaseHessian::m_pfHessianRowsInHostMem, 0, lSizeofCachedHessian);
128-
BaseHessian::m_nNumofCachedHessianRow = nNumofHessianRow;
129-
BaseHessian::m_pfHessianDiag = new float_point[hessianIOOps->m_nTotalNumofInstance];
130-
//hessianIOOps->m_pfHessianDiagTest = new float_point[hessianIOOps->m_nTotalNumofInstance];
131-
132-
//pre-compute Hessian Matrix and store the result into a file
133-
cout << "precomputing kernel matrix...";
134-
cout.flush();
135-
136-
timeval t1, t2;
137-
float_point elapsedTime;
138-
gettimeofday(&t1, NULL);
139-
bool bWriteHessian = hessianIOOps->PrecomputeHessian(strHessianMatrixFileName, strDiagHessianFileName, v_vDocVector);
140-
hessianIOOps->ReadDiagFromHessianMatrix();
141-
142-
gettimeofday(&t2, NULL);
143-
elapsedTime = (t2.tv_sec - t1.tv_sec) * 1000.0;
144-
elapsedTime += (t2.tv_usec - t1.tv_usec) / 1000.0;
145-
//cout << "Done" << elapsedTime << " ms.\n";
146-
cout << " Done" << endl;
147-
148-
if(bWriteHessian == false)
149-
{
150-
cerr << "write matrix to file failed" << endl;
151-
exit(0);
152-
}
153-
}
154-
15592
/*
15693
* @brief: n fold cross validation
15794
* @param: nFold: the number of fold for the cross validation

mascot/modelSelector.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ class CModelSelector
3636

3737
bool GridSearch(const grid&, vector<vector<float_point> >&, vector<int> &vnLabel);
3838
bool CrossValidation(const int&, vector<int> &vnLabel, int *&);
39-
void PrecomputeKernelMatrix(vector<vector<float_point> > &v_vDocVector, BaseHessian *hessianIOOps);
4039

4140
private:
4241
bool DestroySVMModel(svm_model&);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <sys/sysinfo.h>
1313
#include "../gpu_global_utility.h"
1414
#include "../constant.h"
15+
#include "../storageManager.h"
1516

1617
using std::endl;
1718

0 commit comments

Comments
 (0)