From 5abc10059eb36844a123dab9a0c66cbb98fc6508 Mon Sep 17 00:00:00 2001 From: "Daniel J. Magee" Date: Tue, 5 Dec 2023 09:37:47 -0700 Subject: [PATCH] Modified dgemm build instructions for cmake. --- .../09_Microbenchmarks/M5_DGEMM/DGEMM.rst | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/doc/sphinx/09_Microbenchmarks/M5_DGEMM/DGEMM.rst b/doc/sphinx/09_Microbenchmarks/M5_DGEMM/DGEMM.rst index 75adfe4c..ffdb4858 100644 --- a/doc/sphinx/09_Microbenchmarks/M5_DGEMM/DGEMM.rst +++ b/doc/sphinx/09_Microbenchmarks/M5_DGEMM/DGEMM.rst @@ -40,31 +40,34 @@ Run Rules Building ======== -Makefiles are provided for the intel and gcc compilers. Before building, load the compiler and blas libraries into the PATH and LD_LIBRARY_PATH. +Load the compiler; make and enter a build directory. .. code-block:: bash - cd src - make CFLAGS=-I + cmake -DBLAS_NAME= .. + make .. -If using a different compiler, copy and modify the simple makefiles to apply the appropriate flags. - -If using a different blas library than mkl or openblas, modify the C source file to use the correct header and dgemm command. +Current `BLAS_NAME` options are mkl, cblas (openblas), essl, or the raw coded (OpenMP threaded) dgemm. +The `BLAS_NAME` argument is required. +If the headers or libraries aren't found provide `BLAS_LIB_DIR`, `BLAS_INCLUDE_DIR`, or `BLAS_ROOT` to cmake. +If using a different blas library, modify the C source file to use the correct header and dgemm command. Running ======= DGEMM uses OpenMP but does not use MPI. -Set the number of OpenMP threads before running. +Set the number of OpenMP threads and other OMP characteristics with export. +The following were used for the Crossroads (:ref:`GlobalSystemATS3`) system. .. code-block:: bash - export OPENBLAS_NUM_THREADS= + export OPENBLAS_NUM_THREADS= #MKL INHERITS FROM OMP_NUM_THREADS. export OMP_NUM_THREADS= export OMP_PLACES=cores + export OMP_PROC_BIND=close ..