From ab823a52ce0e5dc0dde8799baef0a92cd865cf4c Mon Sep 17 00:00:00 2001
From: Florent Pruvost <florent.pruvost@inria.fr>
Date: Tue, 21 Mar 2023 11:34:56 +0100
Subject: [PATCH] Add gitlab-ci jobs to test compilation with HIP and HIP+CUDA

---
 .gitlab-ci-env.sh               | 12 ++++++++++++
 .gitlab-ci.yml                  |  2 +-
 .gitlab/build.yml               | 16 +++++++++++++++-
 .gitlab/test_starpu_simgrid.yml |  2 +-
 4 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci-env.sh b/.gitlab-ci-env.sh
index ba9cd4dcf..d3fce945c 100755
--- a/.gitlab-ci-env.sh
+++ b/.gitlab-ci-env.sh
@@ -19,6 +19,18 @@ export PKG_CONFIG_PATH=""
 if [ "$1" == "simu" ]; then
   export STARPU_DIR=$STARPUSIMGRID_DIR
   export PKG_CONFIG_PATH=$SIMGRID_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
+elif [ "$1" == "hip" ]; then
+  export STARPU_DIR=/home/gitlab/install/starpu-hip
+  export PKG_CONFIG_PATH=$STARPU_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
+  export CMAKE_PREFIX_PATH=$STARPU_DIR:/opt/rocm-5.4.2
+  export LD_LIBRARY_PATH=/opt/rocm/lib
+elif [ "$1" == "hipcuda" ]; then
+  export STARPU_DIR=/home/gitlab/install/starpu-hipcuda
+  export PKG_CONFIG_PATH=$STARPU_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
+  export CMAKE_PREFIX_PATH=$STARPU_DIR:$HIPCUDA_DIR
+  export LD_LIBRARY_PATH=$HIPCUDA_DIR/lib
+  export HIP_PLATFORM=nvidia
+  export HIP_PATH=$HIPCUDA_DIR
 fi
 
 # for build: better to rely on pkg-config than to guess libraries with the env. var.
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b8567fc1f..d8b822d39 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,7 +15,7 @@ before_script:
   - git config --global --add safe.directory $CI_PROJECT_DIR/hqr
   - git config --global --add safe.directory $CI_PROJECT_DIR/testing/test_fembem
   - git submodule update --init --recursive
-  - source .gitlab-ci-env.sh $SIMU
+  - source .gitlab-ci-env.sh $CHAM_CI_ENV_ARG
   - mkdir -p build-$VERSION
 
 include:
diff --git a/.gitlab/build.yml b/.gitlab/build.yml
index ad45a43e9..056e76e4c 100644
--- a/.gitlab/build.yml
+++ b/.gitlab/build.yml
@@ -29,10 +29,24 @@ build_starpu:
     BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON"
     VERSION: starpu
 
+build_starpu_hip:
+  extends: .build_script_template
+  variables:
+    CHAM_CI_ENV_ARG: hip
+    BUILD_OPTIONS: "-DCHAMELEON_USE_HIP_ROC=ON -DCHAMELEON_USE_MPI=ON"
+    VERSION: starpu_hip
+
+build_starpu_hipcuda:
+  extends: .build_script_template
+  variables:
+    CHAM_CI_ENV_ARG: hipcuda
+    BUILD_OPTIONS: "-DCHAMELEON_USE_HIP_CUDA=ON -DCHAMELEON_HIPBLAS_PATH=/home/gitlab/hipcuda/hipblas -DCHAMELEON_USE_MPI=ON"
+    VERSION: starpu_hipcuda
+
 build_starpu_simgrid:
   extends: .build_script_template
   variables:
-    SIMU: simu
+    CHAM_CI_ENV_ARG: simu
     BUILD_OPTIONS: "-DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF"
     VERSION: starpu_simgrid
 
diff --git a/.gitlab/test_starpu_simgrid.yml b/.gitlab/test_starpu_simgrid.yml
index 5c688dc94..7cf84967f 100644
--- a/.gitlab/test_starpu_simgrid.yml
+++ b/.gitlab/test_starpu_simgrid.yml
@@ -18,7 +18,7 @@ test_starpu_simgrid_simu_all:
   <<: *test_starpu_simgrid_branches
   variables:
     STARPU_WORKERS_NOBIND: 1
-    SIMU: simu
+    CHAM_CI_ENV_ARG: simu
     VERSION: starpu_simgrid
     CATEGORY: simu
     PRECISION: all
-- 
GitLab