diff --git a/Benchmark/particles_starpu/particles-simu-starpu.cpp b/Benchmark/particles_starpu/particles-simu-starpu.cpp index c3113669603095f496df6841d83a61e4820022b4..1407d650b00a40ee3ef20ef6c2791a64066a7dd7 100644 --- a/Benchmark/particles_starpu/particles-simu-starpu.cpp +++ b/Benchmark/particles_starpu/particles-simu-starpu.cpp @@ -376,7 +376,7 @@ static void p2p_inner_cpu_starpu_starpu(void *buffers[], void *cl_arg) { std::array<double*,ParticlesGroup::NB_VALUE_TYPES> values; values[0] = reinterpret_cast<double*>(STARPU_VECTOR_GET_PTR(buffers[0])); - const std::size_t nbParticles = STARPU_VECTOR_GET_NX(buffers[0]); + const std::size_t nbParticles = STARPU_VECTOR_GET_NX(buffers[0])/ParticlesGroup::NB_VALUE_TYPES; for(std::size_t idxValueType = 1 ; idxValueType < ParticlesGroup::NB_VALUE_TYPES ; ++idxValueType){ values[idxValueType] = values[idxValueType-1] + nbParticles; @@ -389,7 +389,7 @@ static void p2p_inner_cpu_starpu_starpu(void *buffers[], void *cl_arg) static void p2p_inner_gpu_starpu(void *buffers[], void *cl_arg) { double* values = reinterpret_cast<double*>(STARPU_VECTOR_GET_PTR(buffers[0])); - const std::size_t nbParticles = STARPU_VECTOR_GET_NX(buffers[0]); + const std::size_t nbParticles = STARPU_VECTOR_GET_NX(buffers[0])/ParticlesGroup::NB_VALUE_TYPES; p2p_inner_gpu<<<NbThreadBlocks, NbThreadsPerBlock, 0, starpu_cuda_get_local_stream()>>>(values, nbParticles*sizeof(double)*ParticlesGroup::NB_VALUE_TYPES); cudaStreamSynchronize(starpu_cuda_get_local_stream()); } @@ -399,7 +399,7 @@ static void p2p_neigh_cpu_starpu(void *buffers[], void *cl_arg) { double* values[ParticlesGroup::NB_VALUE_TYPES]; values[0] = reinterpret_cast<double*>(STARPU_VECTOR_GET_PTR(buffers[0])); - const std::size_t nbParticles = STARPU_VECTOR_GET_NX(buffers[0]); + const std::size_t nbParticles = STARPU_VECTOR_GET_NX(buffers[0])/ParticlesGroup::NB_VALUE_TYPES; for(std::size_t idxValueType = 1 ; idxValueType < ParticlesGroup::NB_VALUE_TYPES ; ++idxValueType){ values[idxValueType] = values[idxValueType-1] + nbParticles; @@ -407,7 +407,7 @@ static void p2p_neigh_cpu_starpu(void *buffers[], void *cl_arg) double* other_values[ParticlesGroup::NB_VALUE_TYPES]; other_values[0] = reinterpret_cast<double*>(STARPU_VECTOR_GET_PTR(buffers[1])); - const std::size_t other_nbParticles = STARPU_VECTOR_GET_NX(buffers[1]); + const std::size_t other_nbParticles = STARPU_VECTOR_GET_NX(buffers[1])/ParticlesGroup::NB_VALUE_TYPES; for(std::size_t idxValueType = 1 ; idxValueType < ParticlesGroup::NB_VALUE_TYPES ; ++idxValueType){ other_values[idxValueType] = other_values[idxValueType-1] + other_nbParticles; @@ -421,10 +421,10 @@ static void p2p_neigh_cpu_starpu(void *buffers[], void *cl_arg) static void p2p_neigh_gpu_starpu(void *buffers[], void *cl_arg) { double* values = reinterpret_cast<double*>(STARPU_VECTOR_GET_PTR(buffers[0])); - const std::size_t nbParticles = STARPU_VECTOR_GET_NX(buffers[0]); + const std::size_t nbParticles = STARPU_VECTOR_GET_NX(buffers[0])/ParticlesGroup::NB_VALUE_TYPES; double* other_values = reinterpret_cast<double*>(STARPU_VECTOR_GET_PTR(buffers[1])); - const std::size_t other_nbParticles = STARPU_VECTOR_GET_NX(buffers[1]); + const std::size_t other_nbParticles = STARPU_VECTOR_GET_NX(buffers[1])/ParticlesGroup::NB_VALUE_TYPES; p2p_neigh_gpu<<<NbThreadBlocks, NbThreadsPerBlock, 0, starpu_cuda_get_local_stream()>>>(values, nbParticles*sizeof(double)*ParticlesGroup::NB_VALUE_TYPES, other_values, other_nbParticles*sizeof(double)*ParticlesGroup::NB_VALUE_TYPES);