Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ jobs:
build-dir: build
options:
ENABLE_WARNINGS_AS_ERRORS=Off
BLT_CXX_STD=c++17
BLT_CXX_STD=c++20
CMAKE_BUILD_TYPE=Release
PERFSUITE_RUN_SHORT_TEST=On
${{ matrix.shared.args }}
Expand Down
17 changes: 9 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@ set(COMPILERS_KNOWN_TO_CMAKE33 AppleClang Clang GNU MSVC)

include(CheckCXXCompilerFlag)
if(NOT DEFINED BLT_CXX_STD)
if("cxx_std_20" IN_LIST CMAKE_CXX_KNOWN_FEATURES)
set(BLT_CXX_STD c++20 CACHE STRING "Version of C++ standard")
if("cxx_std_23" IN_LIST CMAKE_CXX_KNOWN_FEATURES)
set(BLT_CXX_STD c++23 CACHE STRING "Version of C++ standard")
message("Using C++ standard: ${BLT_CXX_STD}")
elseif("cxx_std_17" IN_LIST CMAKE_CXX_KNOWN_FEATURES)
set(BLT_CXX_STD c++17 CACHE STRING "Version of C++ standard")
elseif("cxx_std_20" IN_LIST CMAKE_CXX_KNOWN_FEATURES)
set(BLT_CXX_STD c++20 CACHE STRING "Version of C++ standard")
message("Using C++ standard: ${BLT_CXX_STD}")
elseif("${CMAKE_CXX_COMPILER_ID}" IN_LIST COMPILERS_KNOWN_TO_CMAKE33)
set(BLT_CXX_STD c++17 CACHE STRING "Version of C++ standard")
set(BLT_CXX_STD c++20 CACHE STRING "Version of C++ standard")
message("Using C++ standard: ${BLT_CXX_STD}")
else() #cmake has no idea what to do, do it ourselves...
set(flag_var "c++17")
set(flag_var "c++20")
CHECK_CXX_COMPILER_FLAG("-std=${flag_var}" COMPILER_SUPPORTS_${flag_var})
if(COMPILER_SUPPORTS_${flag_var})
set(BLT_CXX_STD ${flag_var} CACHE STRING "Version of C++ standard")
Expand All @@ -38,8 +38,9 @@ if(NOT DEFINED BLT_CXX_STD)
else() #check BLT_CXX_STD is high enough by disallowing the only invalid option
if(("${BLT_CXX_STD}" STREQUAL "c++98") OR
("${BLT_CXX_STD}" STREQUAL "c++11") OR
("${BLT_CXX_STD}" STREQUAL "c++14"))
message(FATAL_ERROR "RAJA requires minimum C++ standard of c++17")
("${BLT_CXX_STD}" STREQUAL "c++14") OR
("${BLT_CXX_STD}" STREQUAL "c++17"))
message(FATAL_ERROR "RAJA requires minimum C++ standard of c++20")
endif()
endif(NOT DEFINED BLT_CXX_STD)

Expand Down
2 changes: 1 addition & 1 deletion scripts/alcf-builds/sycl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ cmake \
-DENABLE_TARGET_OPENMP=Off \
-DENABLE_ALL_WARNINGS=Off \
-DENABLE_SYCL=On \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CXX_STANDARD=20 \
-DCMAKE_LINKER=icpx \
"$@" \
..
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/corona_sycl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ cmake \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_LINKER=clang++ \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-DENABLE_TESTS=On \
-DENABLE_EXAMPLES=On \
"$@" \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_amdclang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ cmake \
-DCMAKE_HIP_ARCHITECTURES="${COMP_ARCH}" \
-DGPU_TARGETS="${COMP_ARCH}" \
-DAMDGPU_TARGETS="${COMP_ARCH}" \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_HIP=ON \
-DENABLE_OPENMP=ON \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_amdclang_asan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ cmake \
-DCMAKE_CXX_FLAGS="-fsanitize=address -fsanitize=undefined -shared-libsan" \
-DCMAKE_HIP_FLAGS="-fsanitize=address -fsanitize=undefined -shared-libsan -fgpu-rdc --hip-version=${COMP_HIP_VER}" \
-DCMAKE_EXE_LINKER_FLAGS="-L/opt/rocm-${COMP_HIP_VER}/lib/asan/ -L/opt/rocm-${COMP_HIP_VER}/llvm/lib/asan -Wl,-rpath,/opt/rocm-${COMP_HIP_VER}/lib/asan/:/opt/rocm-${COMP_HIP_VER}/llvm/lib/asan:/opt/rocm-${COMP_HIP_VER}/lib/llvm/lib/clang/${COMP_CLANG_MAJOR_VER}/lib/linux -fgpu-rdc --hip-version=${COMP_HIP_VER}" \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_HIP=ON \
-DENABLE_OPENMP=ON \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_cce_hip.sh
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ cmake \
-DCMAKE_HIP_ARCHITECTURES=${HIP_ARCH} \
-DGPU_TARGETS=${HIP_ARCH} \
-DAMDGPU_TARGETS=${HIP_ARCH} \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_HIP=ON \
-DENABLE_OPENMP=ON \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_clang-mpi_caliper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ module load cmake/${CMAKE_VER}
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=/usr/tce/packages/clang/clang-${COMP_VER}/bin/clang++ \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_MPI=ON \
-DENABLE_OPENMP=On \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_clang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ module load cmake/${CMAKE_VER}
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=/usr/tce/packages/clang/clang-${COMP_VER}/bin/clang++ \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_OPENMP=On \
-DCMAKE_INSTALL_PREFIX=../install_${BUILD_SUFFIX} \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_clang_caliper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ module load cmake/${CMAKE_VER}
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=/usr/tce/packages/clang/clang-${COMP_VER}/bin/clang++ \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_OPENMP=On \
-DCMAKE_INSTALL_PREFIX=../install_${BUILD_SUFFIX} \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_cray-mpich_amdclang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ cmake \
-DCMAKE_HIP_ARCHITECTURES="${COMP_ARCH}" \
-DGPU_TARGETS="${COMP_ARCH}" \
-DAMDGPU_TARGETS="${COMP_ARCH}" \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_MPI=ON \
-DENABLE_HIP=ON \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_cray-mpich_amdclang_asan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ cmake \
-DCMAKE_CXX_FLAGS="-fsanitize=address -shared-libsan" \
-DCMAKE_HIP_FLAGS="-fsanitize=address -shared-libsan -fgpu-rdc --hip-version=${COMP_HIP_VER}" \
-DCMAKE_EXE_LINKER_FLAGS="-L/opt/rocm-${COMP_HIP_VER}/lib/asan/ -L/opt/rocm-${COMP_HIP_VER}/llvm/lib/asan -Wl,-rpath,/opt/rocm-${COMP_HIP_VER}/lib/asan/:/opt/rocm-${COMP_HIP_VER}/llvm/lib/asan:/opt/rocm-${COMP_HIP_VER}/lib/llvm/lib/clang/${COMP_CLANG_MAJOR_VER}/lib/linux -fgpu-rdc --hip-version=${COMP_HIP_VER}" \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_MPI=ON \
-DENABLE_HIP=ON \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_cray-mpich_amdclang_caliper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ cmake \
-DCMAKE_HIP_ARCHITECTURES="${COMP_ARCH}" \
-DGPU_TARGETS="${COMP_ARCH}" \
-DAMDGPU_TARGETS="${COMP_ARCH}" \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_MPI=ON \
-DENABLE_HIP=ON \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_gcc-mpi_caliper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=/usr/tce/packages/gcc/gcc-${COMP_VER}/bin/gcc \
-DCMAKE_CXX_COMPILER=/usr/tce/packages/gcc/gcc-${COMP_VER}/bin/g++ \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_MPI=ON \
-DENABLE_OPENMP=On \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_gcc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ module load cmake/${CMAKE_VER}
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=/usr/tce/packages/gcc/gcc-${COMP_VER}/bin/g++ \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_OPENMP=On \
-DCMAKE_INSTALL_PREFIX=../install_${BUILD_SUFFIX} \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_gcc_caliper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ module load cmake/${CMAKE_VER}
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=/usr/tce/packages/gcc/gcc-${COMP_VER}/bin/g++ \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_OPENMP=On \
-DCMAKE_INSTALL_PREFIX=../install_${BUILD_SUFFIX} \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_hipcc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ cmake \
-DCMAKE_HIP_ARCHITECTURES="${COMP_ARCH}" \
-DGPU_TARGETS="${COMP_ARCH}" \
-DAMDGPU_TARGETS="${COMP_ARCH}" \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_HIP=ON \
-DENABLE_OPENMP=ON \
Expand Down
2 changes: 1 addition & 1 deletion scripts/lc-builds/toss4_icpx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=icpx \
-DCMAKE_C_COMPILER=icx \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DRAJA_ENABLE_FORCEINLINE_RECURSIVE=Off \
-DENABLE_OPENMP=On \
Expand Down
4 changes: 2 additions & 2 deletions scripts/lc-builds/toss4_mvapich2_icpx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ if [[ $# -lt 2 ]]; then
echo "You must pass 2 or more arguments to the script (in this order): "
echo " 1) mvapich2 version number"
echo " 2) icpx compiler version number"
echo " 3) optional cmake version
echo " 3) optional cmake version"
echo
echo "You must pass a compiler version number to script. For example,"
echo " toss4_mvapich2_gcc.sh 2.3.7 2022.1.0 [3.27.4]"
Expand Down Expand Up @@ -65,7 +65,7 @@ cmake \
-DMPI_CXX_COMPILER="/usr/tce/packages/mvapich2/mvapich2-${MPI_VER}-intel-${COMP_VER}/bin/mpicxx" \
-DCMAKE_CXX_COMPILER=icpx \
-DCMAKE_C_COMPILER=icx \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_MPI=ON \
-DRAJA_ENABLE_FORCEINLINE_RECURSIVE=Off \
Expand Down
2 changes: 1 addition & 1 deletion scripts/ubuntu-builds/ubuntu_amdclang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ cmake \
-DCMAKE_HIP_ARCHITECTURES="${COMP_ARCH}" \
-DGPU_TARGETS="${COMP_ARCH}" \
-DAMDGPU_TARGETS="${COMP_ARCH}" \
-DBLT_CXX_STD=c++17 \
-DBLT_CXX_STD=c++20 \
-C ${RAJA_HOSTCONFIG} \
-DENABLE_HIP=ON \
-DENABLE_OPENMP=ON \
Expand Down
48 changes: 48 additions & 0 deletions src/algorithm/ATOMIC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,53 @@ void ATOMIC::tearDown(VariantID RAJAPERF_UNUSED_ARG(vid), size_t RAJAPERF_UNUSED

}


// Only define setCountedAttributes functions past this point
// BEWARE: data types (Index_type, Real_ptr, etc) become wrappers past this point
#include "common/CountingMacros.hpp"

void ATOMIC::setCountedAttributes()
{
const size_t replication = getActualProblemSize();

VariantID vid = VariantID::Base_Seq;
size_t tune_idx = 0;

RAJAPERF_COUNTERS_INITIALIZE();

RAJAPERF_COUNTERS_CODE_WRAPPER(
setUp(vid, tune_idx);
);

{
RAJAPERF_COUNTERS_CODE_WRAPPER(
const Index_type ibegin = 0;
const Index_type iend = getActualProblemSize();

ATOMIC_DATA_SETUP(replication);
);

RAJAPERF_COUNTERS_REP_SCOPE()
{

RAJAPERF_COUNTERS_PAR_LOOP(for (Index_type i = ibegin; i < iend; ++i )) {
RAJAPERF_COUNTERS_LOOP_BODY(ATOMIC_BODY(RAJAPERF_ATOMIC_ADD_COUNTING, i, ATOMIC_VALUE));
}

}

RAJAPERF_COUNTERS_CODE_WRAPPER(
ATOMIC_DATA_TEARDOWN(replication);
);

}

RAJAPERF_COUNTERS_CODE_WRAPPER(
tearDown(vid, tune_idx);
);

RAJAPERF_COUNTERS_FINALIZE();
}

} // end namespace algorithm
} // end namespace rajaperf
1 change: 1 addition & 0 deletions src/algorithm/ATOMIC.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ class ATOMIC : public KernelBase
void setUp(VariantID vid, size_t tune_idx);
void updateChecksum(VariantID vid, size_t tune_idx);
void tearDown(VariantID vid, size_t tune_idx);
void setCountedAttributes();

void defineSeqVariantTunings();
void defineOpenMPVariantTunings();
Expand Down
58 changes: 58 additions & 0 deletions src/algorithm/HISTOGRAM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,5 +145,63 @@ void HISTOGRAM::tearDown(VariantID vid, size_t RAJAPERF_UNUSED_ARG(tune_idx))
deallocData(DataSpace::Host, m_counts_final);
}


// // Only define setCountedAttributes functions past this point
// // BEWARE: data types (Index_type, Real_ptr, etc) become wrappers past this point
#include "common/CountingMacros.hpp"

void HISTOGRAM::setCountedAttributes()
{
VariantID vid = VariantID::Base_Seq;
size_t tune_idx = 0;

RAJAPERF_COUNTERS_INITIALIZE();

RAJAPERF_COUNTERS_CODE_WRAPPER(
setUp(vid, tune_idx);
);

{
RAJAPERF_COUNTERS_CODE_WRAPPER(
const Index_type ibegin = 0;
const Index_type iend = getActualProblemSize();

HISTOGRAM_DATA_SETUP;
);

RAJAPERF_COUNTERS_CODE_WRAPPER(
HISTOGRAM_SETUP_COUNTS;
);

RAJAPERF_COUNTERS_REP_SCOPE()
{

RAJAPERF_COUNTERS_CODE_WRAPPER(
HISTOGRAM_INIT_COUNTS;
);

RAJAPERF_COUNTERS_PAR_LOOP(for (Index_type i = ibegin; i < iend; ++i )) {
RAJAPERF_COUNTERS_LOOP_BODY(HISTOGRAM_BODY(RAJAPERF_ATOMIC_ADD_COUNTING));
}

RAJAPERF_COUNTERS_CODE_WRAPPER(
HISTOGRAM_FINALIZE_COUNTS;
);

}

RAJAPERF_COUNTERS_CODE_WRAPPER(
HISTOGRAM_TEARDOWN_COUNTS;
);

}

RAJAPERF_COUNTERS_CODE_WRAPPER(
tearDown(vid, 0);
);

RAJAPERF_COUNTERS_FINALIZE();
}

} // end namespace algorithm
} // end namespace rajaperf
1 change: 1 addition & 0 deletions src/algorithm/HISTOGRAM.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ class HISTOGRAM : public KernelBase
void setUp(VariantID vid, size_t tune_idx);
void updateChecksum(VariantID vid, size_t tune_idx);
void tearDown(VariantID vid, size_t tune_idx);
void setCountedAttributes();

void defineSeqVariantTunings();
void defineOpenMPVariantTunings();
Expand Down
42 changes: 42 additions & 0 deletions src/algorithm/MEMCPY.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,47 @@ void MEMCPY::tearDown(VariantID vid, size_t RAJAPERF_UNUSED_ARG(tune_idx))
deallocData(m_y, vid);
}


// Only define setCountedAttributes functions past this point
// BEWARE: data types (Index_type, Real_ptr, etc) become wrappers past this point
#include "common/CountingMacros.hpp"

void MEMCPY::setCountedAttributes()
{
VariantID vid = VariantID::Base_Seq;
size_t tune_idx = 0;

RAJAPERF_COUNTERS_INITIALIZE();

RAJAPERF_COUNTERS_CODE_WRAPPER(
setUp(vid, tune_idx);
);

{
RAJAPERF_COUNTERS_CODE_WRAPPER(
const Index_type ibegin = 0;
const Index_type iend = getActualProblemSize();

MEMCPY_DATA_SETUP;
);

RAJAPERF_COUNTERS_REP_SCOPE()
{

RAJAPERF_COUNTERS_PAR_LOOP(for (Index_type i = ibegin; i < iend; ++i )) {
RAJAPERF_COUNTERS_LOOP_BODY(MEMCPY_BODY);
}

}

}

RAJAPERF_COUNTERS_CODE_WRAPPER(
tearDown(vid, tune_idx);
);

RAJAPERF_COUNTERS_FINALIZE();
}

} // end namespace algorithm
} // end namespace rajaperf
Loading
Loading