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