From f0caa01b62f51c8b66b1f3fce9621e10d13e9bfa Mon Sep 17 00:00:00 2001 From: boufaras Date: Wed, 14 Sep 2011 13:50:16 +0000 Subject: [PATCH] clear src git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@2376 331e1502-861f-0410-8da2-ba01fb791d7f --- .../tutoriel/QAP/testSimpleTS.cu | 78 ++++++++----------- 1 file changed, 32 insertions(+), 46 deletions(-) diff --git a/branches/ParadisEO-GPU/tutoriel/QAP/testSimpleTS.cu b/branches/ParadisEO-GPU/tutoriel/QAP/testSimpleTS.cu index e89d38e81..928a8b08e 100644 --- a/branches/ParadisEO-GPU/tutoriel/QAP/testSimpleTS.cu +++ b/branches/ParadisEO-GPU/tutoriel/QAP/testSimpleTS.cu @@ -32,35 +32,37 @@ Contact: paradiseo-help@lists.gforge.inria.fr */ -//Init the number of threads per block -#define BLOCK_SIZE 256 #include #include #include using namespace std; +//Include GPU Config File +#include "moGPUConfig.h" + __device__ int * dev_a; __device__ int * dev_b; // The general include for eo #include #include -#include // Fitness function #include // Cuda Fitness function -#include +#include #include //Specific data to QAP problem #include // QAP solution -#include -// QAP neighbor -#include +#include +// Swap neighbor +#include //To compute execution time -#include -//Kswap neighborhood -#include +#include +//Utils to compute size Mapping of x-change position +#include +// Use an ordered neighborhood without mapping, with local copy of solution +#include // The Solution and neighbor comparator #include #include @@ -74,11 +76,11 @@ __device__ int * dev_b; #include #include #include -#include -typedef moCudaIntVector solution; -typedef moKswapNeighbor Neighbor; -typedef moCudaKswapNeighborhood Neighborhood; + +typedef moGPUPermutationVector solution; +typedef moGPUXSwapNeighbor Neighbor; +typedef moGPUXChangeNeighborhoodByCpy Neighborhood; int main(int argc, char **argv) @@ -101,21 +103,11 @@ int main(int argc, char **argv) parser.processParam( seedParam ); unsigned seed = seedParam.value(); - // Swap number - eoValueParam KSwapParam(1, "KSwap", "swap number", 'N'); - parser.processParam(KSwapParam, "KSwap" ); - unsigned KSwap = KSwapParam.value(); - // Iteration number eoValueParam nbIterationParam(1, "nbIteration", "TS Iteration number", 'I'); parser.processParam( nbIterationParam, "TS Iteration number" ); unsigned nbIteration = nbIterationParam.value(); - // size tabu list - eoValueParam sizeTabuListParam(7, "sizeTabuList", "size of the tabu list", 'T'); - parser.processParam( sizeTabuListParam, "Search Parameters" ); - unsigned sizeTabuList = sizeTabuListParam.value(); - // duration tabu list eoValueParam durationParam(7, "duration", "duration of the tabu list", 'D'); parser.processParam( durationParam, "Search Parameters" ); @@ -156,7 +148,6 @@ int main(int argc, char **argv) * ========================================================= */ QAPData _data(argv[1]); - unsigned vecSize=_data.sizeData; /* ========================================================= * @@ -164,20 +155,20 @@ int main(int argc, char **argv) * * ========================================================= */ - solution sol(vecSize); - _data.cudaObject.memCopyGlobalVariable(dev_a,_data.a_d); - _data.cudaObject.memCopyGlobalVariable(dev_b,_data.b_d); - + solution sol(_data.sizeData); + _data.GPUObject.memCopyGlobalVariable(dev_a,_data.a_d); + _data.GPUObject.memCopyGlobalVariable(dev_b,_data.b_d); + /*========================================================= * * Evaluation of a solution neighbor's * * ========================================================= */ - QAPEval eval(_data); - unsigned long int sizeMap=sizeMapping(vecSize,1); - QAPIncrEval incr_eval; - moCudaKswapEval > cueval(sizeMap,incr_eval); + QAPEval eval(_data); + unsigned long int sizeMap=sizeMapping(_data.sizeData,NB_POS); + QAPIncrEval incr_eval; + moGPUMappingEvalByCpy > cueval(sizeMap,incr_eval); /* ========================================================= * @@ -194,7 +185,7 @@ int main(int argc, char **argv) * * ========================================================= */ - Neighborhood neighborhood(vecSize,1,cueval); + Neighborhood neighborhood(sizeMap,NB_POS,cueval); /* ========================================================= * @@ -202,7 +193,7 @@ int main(int argc, char **argv) * * ========================================================= */ - moIterContinuator continuator(nbIteration); + moIterContinuator continuator(nbIteration); /* ========================================================= * @@ -210,10 +201,7 @@ int main(int argc, char **argv) * * ========================================================= */ - sizeTabuList=(vecSize*(vecSize-1))/2; - duration=sizeTabuList/8; - // tabu list - moIndexedVectorTabuList tl(sizeTabuList,duration); + moIndexedVectorTabuList tl(sizeMap,(sizeMap/8)); /* ========================================================= * @@ -243,19 +231,17 @@ int main(int argc, char **argv) eval(sol); std::cout << "initial: " << sol<< std::endl; - // Create timer for timing CUDA calculation - cudaFuncSetCacheConfig(kernelPermutation >, cudaFuncCachePreferL1); - moCudaTimer timer; + moGPUTimer timer; timer.start(); tabuSearch(sol); std::cout << "final: " << sol << std::endl; timer.stop(); - printf("CUDA execution time = %f ms\n",timer.getTime()); + printf("Execution time = %f ms\n",timer.getTime()); timer.deleteTimer(); - _data.cudaObject.free(dev_a); - _data.cudaObject.free(dev_b); + _data.GPUObject.free(dev_a); + _data.GPUObject.free(dev_b); return 0; -} \ No newline at end of file +}