From d2313bb4e61e68baef50a179a07f1af03b425774 Mon Sep 17 00:00:00 2001 From: Dipal M Zambare Date: Tue, 29 Jun 2021 12:02:11 +0530 Subject: [PATCH] Update show config to include missing info. -- Ignore aocl dynamic configuration if multithreading is disabled. AOCL Dynamic will also be disabled in this case. -- Added following configuration settings in showconfig output 1. Complex return scheme 2. TRSM preinversion status 3. AOCL dynamic active status AOCL-Internal: [CPUPL-1565] Change-Id: Id5a31b233fc08dcd871de4a693aab0b2a5d9f1c4 --- Makefile | 48 +++++++++++++++++++++++++--------------------- build/config.mk.in | 9 +++++++++ configure | 33 +++++++++++++++++++++---------- 3 files changed, 58 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index 6a1117013..99b43b2bb 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ # # -# BLIS +# BLIS # An object-based framework for developing high-performance BLAS-like # libraries. # @@ -36,7 +36,7 @@ # Makefile # # Field G. Van Zee -# +# # Top-level makefile for libflame linear algebra library. # # @@ -720,7 +720,7 @@ endif # --- BLAS test suite rules --- -testblas: blastest-run +testblas: blastest-run blastest-f2c: check-env $(BLASTEST_F2C_LIB) @@ -903,7 +903,7 @@ endif # Check results of BLIS CPP Template tests checkbliscpp: - $(MAKE) -C $(CPP_TEST_DIR) + $(MAKE) -C $(CPP_TEST_DIR) # Check the results of the BLIS testsuite. checkblis: testsuite-run @@ -1091,24 +1091,28 @@ endif # ifeq ($(IS_WIN),no) # --- Query current configuration --- showconfig: check-env - @echo "configuration family: $(CONFIG_NAME)" - @echo "sub-configurations: $(CONFIG_LIST)" - @echo "requisite kernels sets: $(KERNEL_LIST)" - @echo "kernel-to-config map: $(KCONFIG_MAP)" + @echo "configuration family: $(CONFIG_NAME)" + @echo "sub-configurations: $(CONFIG_LIST)" + @echo "requisite kernels sets: $(KERNEL_LIST)" + @echo "kernel-to-config map: $(KCONFIG_MAP)" @echo "-------------------------" - @echo "BLIS version string: $(VERSION)" - @echo ".so major version: $(SO_MAJOR)" - @echo ".so minor.build vers: $(SO_MINORB)" - @echo "install libdir: $(INSTALL_LIBDIR)" - @echo "install includedir: $(INSTALL_INCDIR)" - @echo "install sharedir: $(INSTALL_SHAREDIR)" - @echo "debugging status: $(DEBUG_TYPE)" - @echo "multithreading status: $(THREADING_MODEL)" - @echo "enable BLAS API? $(MK_ENABLE_BLAS)" - @echo "enable CBLAS API? $(MK_ENABLE_CBLAS)" - @echo "build static library? $(MK_ENABLE_STATIC)" - @echo "build shared library? $(MK_ENABLE_SHARED)" - @echo "ARG_MAX hack enabled? $(ARG_MAX_HACK)" + @echo "BLIS version string: $(VERSION)" + @echo ".so major version: $(SO_MAJOR)" + @echo ".so minor.build vers: $(SO_MINORB)" + @echo "install libdir: $(INSTALL_LIBDIR)" + @echo "install includedir: $(INSTALL_INCDIR)" + @echo "install sharedir: $(INSTALL_SHAREDIR)" + @echo "debugging status: $(DEBUG_TYPE)" + @echo "multithreading status: $(THREADING_MODEL)" + @echo "enable BLAS API? $(MK_ENABLE_BLAS)" + @echo "enable CBLAS API? $(MK_ENABLE_CBLAS)" + @echo "build static library? $(MK_ENABLE_STATIC)" + @echo "build shared library? $(MK_ENABLE_SHARED)" + @echo "ARG_MAX hack enabled? $(ARG_MAX_HACK)" + @echo "complex return scheme: $(MK_COMPLEX_RETURN_SCHEME)" + @echo "enable trsm preinversion: $(MK_ENABLE_TRSM_PREINVERSION)" + @echo "enable AOCL dynamic threads: $(MK_ENABLE_AOCL_DYNAMIC)" + # --- Clean rules --- @@ -1282,7 +1286,7 @@ endif changelog: @echo "Updating '$(DIST_PATH)/$(CHANGELOG)' via '$(GIT_LOG)'" - @$(GIT_LOG) > $(DIST_PATH)/$(CHANGELOG) + @$(GIT_LOG) > $(DIST_PATH)/$(CHANGELOG) # --- Uninstall rules --- diff --git a/build/config.mk.in b/build/config.mk.in index 1ed626d1d..da8b3ad28 100644 --- a/build/config.mk.in +++ b/build/config.mk.in @@ -191,5 +191,14 @@ SANDBOX := @sandbox@ # variable is set to the empty value. LIBPTHREAD := @libpthread@ +# Complex return scheme configuration +MK_ENABLE_TRSM_PREINVERSION := @enable_trsm_preinversion@ + +# Complex return scheme configuration +MK_COMPLEX_RETURN_SCHEME := @complex_return@ + +# Status of aocl dynamic configuration +MK_ENABLE_AOCL_DYNAMIC := @enable_aocl_dynamic@ + # end of ifndef CONFIG_MK_INCLUDED conditional block endif diff --git a/configure b/configure index 880a88810..4858f5aa6 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# BLIS +# BLIS # An object-based framework for developing high-performance BLAS-like # libraries. # @@ -337,7 +337,7 @@ print_usage() echo " " echo " --enable-aocl-dynamic, --disable-aocl-dynamic" echo " " - echo " Disable (Enabled by default) dynamic selection of number of" + echo " Disable (Enabled by default) dynamic selection of number of" echo " threads used to solve the given problem." echo " Range of optimum number of threads will be [1, num_threads]," echo " where \"num_threads\" is number of threads set by the application." @@ -840,7 +840,7 @@ build_kconfig_registry() assign_key_value "kconfig_registry" "${kernel}" "${newvalue}" done - + done } @@ -1941,7 +1941,7 @@ main() # The root directory of the BLIS framework. aocldtl_dir='aocl_dtl' aocldtl_dirpath="${dist_path}/${aocldtl_dir}" - + # The name of the sandbox directory. sandbox_dir='sandbox' sandbox_dirpath="${dist_path}/${sandbox_dir}" @@ -3101,11 +3101,20 @@ main() echo "${script_name}: trsm diagonal element pre-inversion is disabled." enable_trsm_preinversion_01=0 fi + + # Check aocl dynamic threading configuration and enable it only if + # multi-threading is enabled if [ "x${enable_aocl_dynamic}" = "xyes" ]; then - echo "${script_name}: Dynamic selection of number of threads is enabled" - enable_aocl_dynamic_01=1 + if [ "x${threading_model}" != "xoff" ]; then + echo "${script_name}: dynamic selection of number of threads is enabled" + enable_aocl_dynamic_01=1 + else + enable_aocl_dynamic_01=0 + enable_aocl_dynamic="no" + echo "${script_name}: dynamic threading is disabled as multithreading is disabled" + fi else - echo "${script_name}: Dynamic selection of number of threads is disabled" + echo "${script_name}: dynamic selection of number of threads is disabled" enable_aocl_dynamic_01=0 fi @@ -3154,7 +3163,7 @@ main() enable_sandbox_01=0 fi - + # Check the method used for returning complex numbers if [ "x${complex_return}" = "xdefault" ]; then if [ -n "${FC}" ]; then @@ -3185,7 +3194,7 @@ main() complex_return='gnu' fi fi - + if [ "x${complex_return}" = "xgnu" ]; then complex_return_intel01='0' elif [ "x${complex_return}" = "xintel" ]; then @@ -3196,6 +3205,7 @@ main() exit 1 fi + echo "${script_name}: configuring complex return type as \"${complex_return}\"." # Variables that may contain forward slashes, such as paths, need extra @@ -3356,8 +3366,11 @@ main() | sed -e "s/@enable_memkind@/${enable_memkind}/g" \ | sed -e "s/@pragma_omp_simd@/${pragma_omp_simd}/g" \ | sed -e "s/@sandbox@/${sandbox}/g" \ + | sed -e "s/@enable_trsm_preinversion@/${enable_trsm_preinversion}/g" \ + | sed -e "s/@enable_aocl_dynamic@/${enable_aocl_dynamic}/g" \ + | sed -e "s/@complex_return@/${complex_return}/g" \ > "${config_mk_out_path}" - + # Begin substituting information into the bli_config_h_in file, outputting # to bli_config_h_out. NOTE: We use perl instead of sed because the version