Commit 7fa99305 authored by Patrick McCormick's avatar Patrick McCormick
Browse files

Updates to build configuration details (including rolling in a

new module-based set of mechanisms that can be used).
parent 1ac8820b
Loading
Loading
Loading
Loading
+41 −41
Original line number Diff line number Diff line
@@ -1181,15 +1181,15 @@ void ToolChain::AddTapirRuntimeLibArgs(const ArgList &Args,
      CmdArgs.push_back("-Bdynamic");
    CmdArgs.push_back("-lpthread");

    if (KITSUNE_ENABLE_OPENCILK_TARGET) {
      CmdArgs.push_back("-L" OPENCILK_LIBRARY_DIR);
    if (KITSUNE_ENABLE_OPENCILKRTS_TARGET) {
      CmdArgs.push_back("-L" OPENCILKRTS_LIBRARY_DIR);
      if (Triple.isOSDarwin()) {
        CmdArgs.push_back("-rpath");
	CmdArgs.push_back(OPENCILK_LIBRARY_DIR);
        CmdArgs.push_back(OPENCILKRTS_LIBRARY_DIR);
      } else {
	CmdArgs.push_back("-rpath=" OPENCILK_LIBRARY_DIR);
        CmdArgs.push_back("-rpath=" OPENCILKRTS_LIBRARY_DIR);
      }
      ExtractArgsFromString(CILKRTS_EXTRA_LINK_LIBS, CmdArgs, Args);
      ExtractArgsFromString(OPENCILKRTS_EXTRA_LINK_LIBS, CmdArgs, Args);
      // This was done above...
      //CmdArgs.push_back("-lopencilk");
    } else {
+25 −4
Original line number Diff line number Diff line
#!/bin/bash
#
export KOKKOS_BASE_DIR=/projects/kitsune/x86_64
export OPENCILKRT_BASE_DIR=/projects/kitsune/x86_64
export QTHREADS_BASE_DIR=/projects/kitsune/x86_64
export REALM_BASE_DIR=/projects/kitsune/x86_64
#
# Set the location of the various runtimes base install directory.  From here the
# cache file will expand these variables inline to provide automatic search path
# and required libraries (see below for details on libraries).
#
[ ! -z "${KOKKOS_PATH}" ] && export KOKKOS_PATH=/projects/kitsune/x86_64
[ ! -z "${OPENCILKRTS_PATH}"] && export export OPENCILKRTS_PATH=/projects/kitsune/x86_64
[ ! -z "${QTHREADS_PATH}"] && export QTHREADS_PATH=/projects/kitsune/x86_64
[ ! -z "${REALM_PATH}"] && export REALM_PATH=/projects/kitsune/x86_64

#
# Depending upon how you build and configure each of these you can also provide some
# additional enviornment variables to control what libraries are automatically included
# in the mix when using Kitsune+Tapir.
#
# [ ! -z "${KOKKOS_LINK_LIBS}" ] && export KOKKOS_LINK_LIBS="-lkokkos-core -ldl -lrt"
# [ ! -z "${OPENCILKRTS_LINK_LIBS}" ] && export OPENCILKRTS_LINK_LIBS="-lopencilkrt -l..."
# [ ! -z "${QTHREADS_LINK_LIBS}" ] && export QTHREADS_LINK_LIBS="-lqhtread -l..."
# [ ! -z "${REALM_LINK_LIBS}" ] && export REALM_LINK_LIBS="-lrealm -ldl -l..."
#

# Base install of all libraries with minimal additions (e.g., hwloc, etc.)
[ ! -z "${KOKKOS_LINK_LIBS}" ] && export KOKKOS_LINK_LIBS="-lkokkos-core -ldl -lrt"
[ ! -z "${OPENCILKRTS_LINK_LIBS}" ] && export OPENCILKRTS_LINK_LIBS="-lopencilkrt -lopencilk-personality-cpp"
[ ! -z "${QTHREADS_LINK_LIBS}" ] && export QTHREADS_LINK_LIBS="-lqhtread"

######
# With these enviornment variables set you can then run cmake
+35 −33
Original line number Diff line number Diff line
@@ -19,19 +19,19 @@
#  2. This file uses a set of enviornment variables to configure runtime
#     targets for code generation in the mid-stage of the compiler (via Tapir
#     to llvm transformation).  Although there are several the runtime targets
#     will be enabled if the RT_BASE_DIR for each runtime is specified.  For
#     example:
#     will be enabled if the path for each runtime's base install location is
#     specified.  For example:
#
#         $ export OPENCILKRT_BASE_DIR=/projects/kitsune/x86_64/
#         $ export QTHREADS_BASE_DIR=/projects/kitsune/x86_64/
#         $ export REALM_BASE_DIR=/projects/kitsune/x86_64/
#         $ export OPENCILKRTS_PATH=/projects/kitsune/x86_64/
#         $ export QTHREADS_PATH=/projects/kitsune/x86_64/
#         $ export REALM_PATH=/projects/kitsune/x86_64/
#
#     in each of these cases the BASE_DIR is the base directory for the installed
#     in each of these cases the base dir is the base directory for the installed
#     location for each (i.e., includes header files, libraries, etc.).
#
#     Kokkos is handled in the same fashion:
#
#         $ export KOKKOS_BASE_DIR=/projects/kitsune/x86_64/
#         $ export KOKKOS_PATH=/projects/kitsune/x86_64/
#
#####
#
@@ -49,27 +49,15 @@ set(CMAKE_BUILD_TYPE
  RelWithDebInfo
  CACHE STRING "")


set(KITSUNE_ENABLED ON CACHE BOOL "") # not sure this is really needed these days...
set(KITSUNE_BUILD_EXAMPLES OFF CACHE BOOL "") # this is broken right now...

if (DEFINED ENV{OPENCILKRT_BASE_DIR})
  set(KITSUNE_ENABLE_OPENCILK ON CACHE BOOL "")
  set(OpenCilk_INCLUDE_DIR $ENV{OPENCILKRT_BASE_DIR}/include CACHE STRING "")
  set(OpenCilk_LIBRARY_DIR $ENV{OPENCILKRT_BASE_DIR}/lib CACHE STRING "")
  if (DEFINED ENV{OPENCILK_LINK_LIBS})
    set(OpenCilk_LINK_LIBS $ENV{OPENCILK_LINK_LIBS} CACHE STRING "")
  else()
    set(OpenCilk_LINK_LIBS "-lopencilk -lopencilk-personality-cpp" CACHE STRING "")
  endif()
else()
  set(KITSUNE_ENABLE_OPENCILK OFF CACHE BOOL "")
endif()
set(KITSUNE_BUILD_EXAMPLES ON CACHE BOOL "")


if (DEFINED ENV{KOKKOS_BASE_DIR})
if (DEFINED ENV{KOKKOS_PATH})
  set(KITSUNE_ENABLE_KOKKOS ON CACHE BOOL "")
  set(Kokkos_INCLUDE_DIR $ENV{KOKKOS_BASE_DIR}/include CACHE STRING "")
  set(Kokkos_LIBRARY_DIR $ENV{KOKKOS_BASE_DIR}/lib CACHE STRING "")
  set(Kokkos_INCLUDE_DIR $ENV{KOKKOS_PATH}/include CACHE STRING "")
  set(Kokkos_LIBRARY_DIR $ENV{KOKKOS_PATH}/lib CACHE STRING "")
  if (DEFINED ENV{KOKKOS_LINK_LIBS})
    set(Kokkos_LINK_LIBS $ENV{KOKKOS_LINK_LIBS} CACHE STRING "")
  else()
@@ -80,10 +68,24 @@ else()
endif()


if (DEFINED ENV{QTHREADS_BASE_DIR})
  set(KITSUNE_ENABLE_QTHREADS ON CACHE BOOL "")
  set(Qthreads_INCLUDE_DIR $ENV{QTHREADS_BASE_DIR}/include CACHE STRING "")
  set(Qthreads_LIBRARY_DIR $ENV{QTHREADS_BASE_DIR}/lib CACHE STRING "")
if (DEFINED ENV{OPENCILKRTS_PATH})
  set(KITSUNE_ENABLE_OPENCILKRTS_TARGET ON CACHE BOOL "")
  set(OpenCilkRTS_INCLUDE_DIR $ENV{OPENCILKRTS_PATH}/include CACHE STRING "")
  set(OpenCilkRTS_LIBRARY_DIR $ENV{OPENCILKRTS_PATH}/lib CACHE STRING "")
  if (DEFINED ENV{OPENCILKRTS_LINK_LIBS})
    set(OpenCilkRTS_LINK_LIBS $ENV{OPENCILKRTS_LINK_LIBS} CACHE STRING "")
  else()
    set(OpenCilkRTS_LINK_LIBS "-lopencilk -lopencilk-personality-cpp" CACHE STRING "")
  endif()
else()
  set(KITSUNE_ENABLE_OPENCILKRTS OFF CACHE BOOL "")
endif()


if (DEFINED ENV{QTHREADS_PATH})
  set(KITSUNE_ENABLE_QTHREADS_TARGET ON CACHE BOOL "")
  set(Qthreads_INCLUDE_DIR $ENV{QTHREADS_PATH}/include CACHE STRING "")
  set(Qthreads_LIBRARY_DIR $ENV{QTHREADS_PATH}/lib CACHE STRING "")
  if (DEFINED ENV{QTHREADS_LINK_LIBS})
    set(Qthreads_LINK_LIBS $ENV{QTHREADS_LINK_LIBS} CACHE STRING "")
  else()
@@ -94,17 +96,17 @@ else()
endif()


if (DEFINED ENV{REALM_BASE_DIR})
  set(KITSUNE_ENABLE_REALM ON CACHE BOOL "")
  set(Realm_INCLUDE_DIR $ENV{REALM_BASE_DIR}/include CACHE STRING "")
  set(Realm_LIBRARY_DIR $ENV{REALM_BASE_DIR}/lib CACHE STRING "")
if (DEFINED ENV{REALM_PATH})
  set(KITSUNE_ENABLE_REALM_TARGET ON CACHE BOOL "")
  set(Realm_INCLUDE_DIR $ENV{REALM_PATH}/include CACHE STRING "")
  set(Realm_LIBRARY_DIR $ENV{REALM_PATH}/lib CACHE STRING "")
  if (DEFINED ENV{REALM_LINK_LIBS})
    set(Realm_LINK_LIBS $ENV{REALM_LINK_LIBS} CACHE STRING "")
  else()
    set(Realm_LINK_LIBS "-lrealm -ldl -lpthread" CACHE STRING "")
  endif()
else()
  set(KITSUNE_ENABLE_REALM ON CACHE BOOL "")
  set(KITSUNE_ENABLE_REALM OFF CACHE BOOL "")
endif()

# Defaults for NVIDIA GPU targets are old...  Let's bump it up
+11 −11
Original line number Diff line number Diff line
@@ -143,8 +143,8 @@ macro(get_kitsune_tapir_rt_flags arglist)
  # The list of possible runtime targets for the compiler (via tapir).
  # These are expanded to match the ENABLE options in the kitsune cmake
  # configuration (and thus we match capitalization here).
  set(_kitsune_rt_names CILKRTS;OPENCILK;QTHREADS;REALM;OPENMP;CUDART;OPENCL)
  set(_kitsune_rt_flags cilk;opencilk;qthreads;realm;omp;cuda;opencl)  
  set(_kitsune_rt_names OPENCILKRTS;QTHREADS;REALM;OPENMP;CUDART;OPENCL)
  set(_kitsune_rt_flags opencilk;qthreads;realm;omp;cuda;opencl)
  foreach(rt IN ITEMS ${_kitsune_rt_names})
    set(_ENABLE_VAR "KITSUNE_ENABLE_${rt}_TARGET")
    if (${_ENABLE_VAR})
+13 −11
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ find_path(Kokkos_INCLUDE_DIR Kokkos_Core.hpp
  PATHS /usr/local/include
        /opt/include
	      /opt/local/include
        $ENV{KOKKOS_PATH}/include
)

find_library(Kokkos_LIBRARY kokkoscore
@@ -20,6 +21,8 @@ find_library(Kokkos_LIBRARY kokkoscore
        /opt/lib
	      /opt/local/lib64
	      /opt/local/lib
        $ENV{KOKKOS_PATH}/lib
        $ENV{KOKKOS_PATH}/lib64
)

include(FindPackageHandleStandardArgs)
@@ -52,4 +55,3 @@ else()
  message(STATUS "Could not find Kokkos.")

endif()
Loading