From 5e26e5db73bab3d7b5ed00b5091b38cf10ae77df Mon Sep 17 00:00:00 2001 From: Berenger Bramas <Berenger.Bramas@inria.fr> Date: Wed, 23 Oct 2024 14:47:55 +0200 Subject: [PATCH] Update by puting a hard limite --- Benchmark/cholesky_gemm/gemm-mpi.cpp | 6 +++--- Benchmark/cholesky_gemm/gemm.cpp | 2 +- Src/Scheduler/SpMultiPrioScheduler.hpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Benchmark/cholesky_gemm/gemm-mpi.cpp b/Benchmark/cholesky_gemm/gemm-mpi.cpp index 6ce8348..a0a5a72 100644 --- a/Benchmark/cholesky_gemm/gemm-mpi.cpp +++ b/Benchmark/cholesky_gemm/gemm-mpi.cpp @@ -138,7 +138,7 @@ auto gemm(const int NbLoops, SpBlas::Block blocksC[], const SpBlas::Block blocks for(int k = 0 ; k < processBlockDim ; ++k){ for(int i = 0 ; i < processBlockDim ; ++i){ for(int j = 0 ; j < processBlockDim ; ++j){ - tg.task(SpPriority(1), SpCommutativeWrite(blocksC[i*processBlockDim+j]), + tg.task(SpPriority(1), SpWrite(blocksC[i*processBlockDim+j]), SpRead(blocksA[k*processBlockDim+j]), SpRead(blocksB[i*processBlockDim+k]), SpCpu([inBlockDim](SpBlas::Block& blockC, const SpBlas::Block& blockA, const SpBlas::Block& blockB){ SpBlas::gemm( SpBlas::Transa::NORMAL, SpBlas::Transa::NORMAL, @@ -186,7 +186,7 @@ auto gemm(const int NbLoops, SpBlas::Block blocksC[], const SpBlas::Block blocks for(int k = 0 ; k < processBlockDim ; ++k){ for(int i = 0 ; i < processBlockDim ; ++i){ for(int j = 0 ; j < processBlockDim ; ++j){ - tg.task(SpPriority(1), SpCommutativeWrite(blocksC[i*processBlockDim+j]), + tg.task(SpPriority(1), SpWrite(blocksC[i*processBlockDim+j]), SpRead(blocksA[k*processBlockDim+j]), SpRead(buffersB[i*processBlockDim+k]), SpCpu([inBlockDim](SpBlas::Block& blockC, const SpBlas::Block& blockA, const SpBlas::Block& blockB){ SpBlas::gemm( SpBlas::Transa::NORMAL, SpBlas::Transa::NORMAL, @@ -236,7 +236,7 @@ auto gemm(const int NbLoops, SpBlas::Block blocksC[], const SpBlas::Block blocks for(int k = 0 ; k < processBlockDim ; ++k){ for(int i = 0 ; i < processBlockDim ; ++i){ for(int j = 0 ; j < processBlockDim ; ++j){ - tg.task(SpPriority(1), SpCommutativeWrite(blocksC[i*processBlockDim+j]), + tg.task(SpPriority(1), SpWrite(blocksC[i*processBlockDim+j]), SpRead(buffersA[k*processBlockDim+j]), SpRead(blocksB[i*processBlockDim+k]), SpCpu([inBlockDim](SpBlas::Block& blockC, const SpBlas::Block& blockA, const SpBlas::Block& blockB){ SpBlas::gemm( SpBlas::Transa::NORMAL, SpBlas::Transa::NORMAL, diff --git a/Benchmark/cholesky_gemm/gemm.cpp b/Benchmark/cholesky_gemm/gemm.cpp index 06ed957..7c130cc 100644 --- a/Benchmark/cholesky_gemm/gemm.cpp +++ b/Benchmark/cholesky_gemm/gemm.cpp @@ -101,7 +101,7 @@ auto gemm(const int NbLoops, SpBlas::Block blocksC[], const SpBlas::Block blocks for(int i = 0 ; i < nbBlocks ; ++i){ for(int j = 0 ; j < nbBlocks ; ++j){ for(int k = 0 ; k < nbBlocks ; ++k){ - tg.task(SpPriority(1), SpCommutativeWrite(blocksC[i*nbBlocks+j]), + tg.task(SpPriority(1), SpWrite(blocksC[i*nbBlocks+j]), SpRead(blocksA[k*nbBlocks+j]), SpRead(blocksB[i*nbBlocks+k]), SpCpu([inBlockDim](SpBlas::Block& blockC, const SpBlas::Block& blockA, const SpBlas::Block& blockB){ SpBlas::gemm( SpBlas::Transa::NORMAL, SpBlas::Transa::NORMAL, diff --git a/Src/Scheduler/SpMultiPrioScheduler.hpp b/Src/Scheduler/SpMultiPrioScheduler.hpp index 7ff5458..31bd59a 100644 --- a/Src/Scheduler/SpMultiPrioScheduler.hpp +++ b/Src/Scheduler/SpMultiPrioScheduler.hpp @@ -69,7 +69,7 @@ class SpMultiPrioScheduler : public SpAbstractScheduler{ bool CpuCanTakeTask() const { #if defined(SPECX_COMPILE_WITH_CUDA) || defined(SPECX_COMPILE_WITH_HIP) - return nbCommonTasks > 40 * nbGpuWorkers + return nbCommonTasks > 80 * nbGpuWorkers || nbTasks[int(SpWorkerTypes::Type::CPU_WORKER)] != nbCommonTasks; #endif return true; -- GitLab