diff --git a/Projet/CODE/apm/Makefile b/Projet/CODE/apm/Makefile index a605f6d616ad6f3a3e016ab5435e4966967d59f7..2b3cde15d79f8095b5f8690d205ccb3eff2abcb6 100644 --- a/Projet/CODE/apm/Makefile +++ b/Projet/CODE/apm/Makefile @@ -27,6 +27,9 @@ test: all ./apm 0 dna/test.fa test123 ./apm_omp 0 dna/test.fa test123 ./apm_gpu 0 dna/test.fa test123 + ./apm 0 dna/xenoRefMrna.fa ttggaa + ./apm_omp 0 dna/xenoRefMrna.fa ttggaa + ./apm_gpu 0 dna/xenoRefMrna.fa ttggaa .PHONY: clean clean: diff --git a/Projet/CODE/apm/src/apm_gpu.cu b/Projet/CODE/apm/src/apm_gpu.cu index a9eb4fe53d1a0098c44f544a1c2fc00d54e1e3b0..4c070a14afd0d2f2cdd2b952b7434b001cea1f5b 100644 --- a/Projet/CODE/apm/src/apm_gpu.cu +++ b/Projet/CODE/apm/src/apm_gpu.cu @@ -210,15 +210,10 @@ levenshtein_cu(char *find, char *buf, int len, int n_bytes, } } - int res = 0; - if (column[len] <= approx_factor) { - res = 1; + atomicAdd(result, 1); } - - //{result_vec[tId] = 1;}//its a match - atomicAdd(result, res); } int @@ -339,7 +334,7 @@ main(int argc, char **argv) int maxsharedmem; cudaDeviceGetAttribute(&maxsharedmem, cudaDevAttrMaxSharedMemoryPerBlock, 0); int NTBB = MIN2(maxsharedmem / ((size_pattern + 1) * sizeof(int)), - NUMBER_THREADS_BY_BLOCK); + NUMBER_THREADS_BY_BLOCK); int Nshared = (size_pattern + 1) * NTBB * sizeof(int); #if APM_DEBUG @@ -350,6 +345,7 @@ main(int argc, char **argv) #endif off_t offset = 0; + while (offset < filesize) { #if APM_DEBUG @@ -383,7 +379,7 @@ main(int argc, char **argv) //} levenshtein_cu <<< NB, NTBB, Nshared>>>( - pattern_dev, buf_dev, size_pattern, + pattern_dev, buf_dev, size_pattern, n_bytes, approx_factor, result_dev); __cudaCheckErrors("Kernel execution of levenshtein_cu failed");