From 3450f821622b577a51a384b951c3c8acef87c86d Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Tue, 13 Oct 2020 18:49:01 +0200
Subject: [PATCH] Add simulation extended option to allow non GPU kernels to be
 simulated on the GPU

---
 CMakeLists.txt                           | 4 ++++
 include/chameleon/config.h.in            | 1 +
 runtime/starpu/codelets/codelet_zpotrf.c | 6 +++++-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 939cc192d..f6bf03d05 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -224,6 +224,10 @@ if(CHAMELEON_SCHED_STARPU)
     if(CHAMELEON_ENABLE_PRUNING_STATS)
         add_definitions(-DCHAMELEON_ENABLE_PRUNING_STATS)
     endif(CHAMELEON_ENABLE_PRUNING_STATS)
+
+    cmake_dependent_option(CHAMELEON_SIMULATION_EXTENDED
+      "Enable non GPU kernels to be simulated on GPU" OFF
+      "CHAMELEON_SIMULATION" OFF)
 endif()
 
 # Initially we need to generate files for different precisions
diff --git a/include/chameleon/config.h.in b/include/chameleon/config.h.in
index 10eb91366..0ad3b485b 100644
--- a/include/chameleon/config.h.in
+++ b/include/chameleon/config.h.in
@@ -50,6 +50,7 @@
 
 /* Simulation */
 #cmakedefine CHAMELEON_SIMULATION
+#cmakedefine CHAMELEON_SIMULATION_EXTENDED
 
 /* getopt */
 #cmakedefine CHAMELEON_HAVE_GETOPT_H
diff --git a/runtime/starpu/codelets/codelet_zpotrf.c b/runtime/starpu/codelets/codelet_zpotrf.c
index 35edf5234..f99cd3ce6 100644
--- a/runtime/starpu/codelets/codelet_zpotrf.c
+++ b/runtime/starpu/codelets/codelet_zpotrf.c
@@ -52,7 +52,11 @@ static void cl_zpotrf_cpu_func(void *descr[], void *cl_arg)
 /*
  * Codelet definition
  */
-CODELETS_CPU(zpotrf, cl_zpotrf_cpu_func)
+#if defined(CHAMELEON_SIMULATION) && defined(CHAMELEON_SIMULATION_EXTENDED)
+CODELETS( zpotrf, cl_zpotrf_cpu_func, cl_zpotrf_cuda_func, STARPU_CUDA_ASYNC )
+#else
+CODELETS_CPU( zpotrf, cl_zpotrf_cpu_func )
+#endif
 
 /**
  *
-- 
GitLab