Updated RO builds script and functional test driver for multi-node support

Cette révision appartient à :
Yiltan Hassan Temucin
2025-01-22 08:16:50 -06:00
Parent bacced0cc3
révision 3a8b0d4647
2 fichiers modifiés avec 341 ajouts et 562 suppressions
+3 -1
Voir le fichier
@@ -19,10 +19,12 @@ cmake \
-DPROFILE=OFF \
-DUSE_GPU_IB=OFF \
-DUSE_DC=OFF \
-DUSE_COHERENT_HEAP=ON \
-DUSE_MANAGED_HEAP=OFF \
-DUSE_RO=ON \
-DUSE_IPC=ON \
-DUSE_THREADS=ON \
-DUSE_WF_COAL=OFF \
-DUSE_COHERENT_HEAP=OFF \
$src_path
cmake --build . --parallel 8
cmake --install .
+338 -561
Voir le fichier
@@ -20,577 +20,354 @@
#!/bin/bash
driver_return_status=0
# This names/values should match the TestType enum in rocSHMEM/tests/functional_tests/tester.hpp
declare -A TEST_NUMBERS=(
["get"]="0"
["getnbi"]="1"
["put"]="2"
["putnbi"]="3"
["getswarm"]="4"
["amo_fadd"]="5"
["amo_finc"]="6"
["amo_fetch"]="7"
["amo_fcswap"]="8"
["amo_add"]="9"
["amo_inc"]="10"
["amo_cswap"]="11"
["init"]="12"
["pingpong"]="13"
["randomaccess"]="14"
["barrierall"]="15"
["syncall"]="16"
["sync"]="17"
["collect"]="18"
["fcollect"]="19"
["alltoall"]="20"
["alltoalls"]="21"
["shmemptr"]="22"
["p"]="23"
["g"]="24"
["wgget"]="25"
["wggetnbi"]="26"
["wgput"]="27"
["wgputnbi"]="28"
["waveget"]="29"
["wavegetnbi"]="30"
["waveput"]="31"
["waveputnbi"]="32"
["teambroadcast"]="33"
["teamreduction"]="34"
["teamctxget"]="35"
["teamctxgetnbi"]="36"
["teamctxput"]="37"
["teamctxputnbi"]="38"
["teamctxinfra"]="39"
["putnbimr"]="40"
["amo_set"]="41"
["amo_swap"]="42"
["amo_fetchand"]="43"
["amo_fetchor"]="44"
["amo_fetchxor"]="45"
["amo_and"]="46"
["amo_or"]="47"
["amo_xor"]="48"
["pingall"]="49"
["putsignal"]="50"
["wgputsignal"]="51"
["waveputsignal"]="52"
["putsignalnbi"]="53"
["wgputsignalnbi"]="54"
["waveputsignalnbi"]="55"
["signalfetch"]="56"
["wgsignalfetch"]="57"
["wavesignalfetch"]="58"
)
if [ $# -eq 0 ] ; then
ExecTest() {
TEST_NAME=$1
NUM_RANKS=$2
NUM_WG=$3
NUM_THREADS=$4
MAX_MSG_SIZE=$5
TEST_NUM=${TEST_NUMBERS[$TEST_NAME]}
if [[ "" == "$TEST_NUM" ]]
then
echo "Test $TEST_NAME does not exist" >&2
DRIVER_RETURN_STATUS=1
return
fi
if [[ "" == "$ROCSHMEM_MAX_NUM_CONTEXTS" ]]
then
ROCSHMEM_MAX_NUM_CONTEXTS=$NUM_WG
fi
# MPI Parameters
LAUNCHER=mpirun
OPTIONS=" -n $NUM_RANKS -mca pml ucx -x ROCSHMEM_MAX_NUM_CONTEXTS=$ROCSHMEM_MAX_NUM_CONTEXTS"
if [[ "" != "$HOSTFILE" ]]
then
OPTIONS+=" --hostfile $HOSTFILE"
fi
# Construct Test Command
TEST_LOG_NAME="$TEST_NAME"_n"$NUM_RANKS"_w"$NUM_WG"_z"$NUM_THREADS"
CMD="$LAUNCHER $OPTIONS $APP -a $TEST_NUM -w $NUM_WG -z $NUM_THREADS"
if [[ "" != "$MAX_MSG_SIZE" ]]
then
CMD+=" -s $MAX_MSG_SIZE"
TEST_LOG_NAME+=_"$MAX_MSG_SIZE"B
fi
CMD+=" > $LOG_DIR/$TEST_LOG_NAME.log"
# Run Test
echo $TEST_LOG_NAME
eval $CMD
# Validate Test
if [ $? -ne 0 ]
then
echo "Failed $TEST_CONFIG" >&2
DRIVER_RETURN_STATUS=1
fi
unset ROCSHMEM_MAX_NUM_CONTEXTS
}
TestRMA() {
##############################################################################
# | Name | Ranks | Workgroups | Threads | Max Message Size #
##############################################################################
ExecTest "put" 2 1 1 1048576
ExecTest "put" 2 1 1024 512
ExecTest "put" 2 8 1 1048576
ExecTest "put" 2 16 128 8
ExecTest "put" 2 32 256 512
ExecTest "put" 2 64 1024 8
ExecTest "wgput" 2 1 64 1048576
ExecTest "wgput" 2 2 64 1048576
ExecTest "wgput" 2 16 64 8
ExecTest "waveput" 2 1 64 1048576
ExecTest "waveput" 2 2 64 1048576
ExecTest "waveput" 2 2 128 1048576
ExecTest "waveput" 2 16 128 8
ExecTest "teamctxput" 2 1 1 1048576
ExecTest "get" 2 1 1 1048576
ExecTest "get" 2 1 1024 512
ExecTest "get" 2 8 1 1048576
ExecTest "get" 2 16 128 8
ExecTest "get" 2 32 256 512
ExecTest "get" 2 64 1024 8
ExecTest "wgget" 2 1 64 1048576
ExecTest "wgget" 2 2 64 1048576
ExecTest "wgget" 2 16 64 8
ExecTest "waveget" 2 1 64 1048576
ExecTest "waveget" 2 2 64 1048576
ExecTest "waveget" 2 2 128 1048576
ExecTest "waveget" 2 16 128 8
ExecTest "teamctxget" 2 1 1 1048576
################################ Non-Blocking ################################
ExecTest "putnbi" 2 1 1 1048576
ExecTest "putnbi" 2 1 1024 512
ExecTest "putnbi" 2 8 1 1048576
ExecTest "putnbi" 2 16 128 8
ExecTest "putnbi" 2 32 256 512
ExecTest "putnbi" 2 64 1024 8
ExecTest "wgputnbi" 2 1 64 1048576
ExecTest "wgputnbi" 2 2 64 1048576
ExecTest "wgputnbi" 2 16 64 8
ExecTest "waveputnbi" 2 1 64 1048576
ExecTest "waveputnbi" 2 2 64 1048576
ExecTest "waveputnbi" 2 2 128 1048576
ExecTest "waveputnbi" 2 16 128 8
ExecTest "teamctxputnbi" 2 1 1 1048576
ExecTest "getnbi" 2 1 1 1048576
ExecTest "getnbi" 2 1 1024 512
ExecTest "getnbi" 2 8 1 1048576
ExecTest "getnbi" 2 16 128 8
ExecTest "getnbi" 2 32 256 512
ExecTest "getnbi" 2 64 1024 8
ExecTest "wggetnbi" 2 1 64 1048576
ExecTest "wggetnbi" 2 2 64 1048576
ExecTest "wggetnbi" 2 16 64 8
ExecTest "wavegetnbi" 2 1 64 1048576
ExecTest "wavegetnbi" 2 2 64 1048576
ExecTest "wavegetnbi" 2 2 128 1048576
ExecTest "wavegetnbi" 2 16 128 8
ExecTest "teamctxgetnbi" 2 1 1 1048576
}
TestAMO() {
##############################################################################
# | Name | Ranks | Workgroups | Threads | Max Message Size #
##############################################################################
ExecTest "amo_fetch" 2 1 1
ExecTest "amo_fetch" 2 1 1024
ExecTest "amo_fetch" 2 8 1
ExecTest "amo_fetch" 2 32 128
ExecTest "amo_set" 2 1 1
ExecTest "amo_set" 2 8 1
ExecTest "amo_set" 2 32 1
ExecTest "amo_fcswap" 2 1 1
ExecTest "amo_fcswap" 2 32 1
ExecTest "amo_fcswap" 2 8 1
ExecTest "amo_finc" 2 1 1
ExecTest "amo_finc" 2 1 1024
ExecTest "amo_finc" 2 8 1
ExecTest "amo_finc" 2 32 128
ExecTest "amo_inc" 2 1 1
ExecTest "amo_inc" 2 1 1024
ExecTest "amo_inc" 2 8 1
ExecTest "amo_inc" 2 32 128
ExecTest "amo_fadd" 2 1 1
ExecTest "amo_fadd" 2 1 1024
ExecTest "amo_fadd" 2 8 1
ExecTest "amo_fadd" 2 32 128
ExecTest "amo_add" 2 1 1
ExecTest "amo_add" 2 1 1024
ExecTest "amo_add" 2 8 1
ExecTest "amo_add" 2 32 128
ExecTest "amo_fetchand" 2 1 1
ExecTest "amo_and" 2 1 1
ExecTest "amo_xor" 2 1 1
}
TestSigOps() {
##############################################################################
# | Name | Ranks | Workgroups | Threads | Max Message Size #
##############################################################################
ExecTest "putsignal" 2 1 1 1048576
ExecTest "putsignal" 2 2 32 1048576
ExecTest "wgputsignal" 2 2 32 1048576
ExecTest "waveputsignal" 2 1 32 1048576
ExecTest "putsignalnbi" 2 1 1 1048576
ExecTest "putsignalnbi" 2 2 32 1048576
ExecTest "wgputsignalnbi" 2 2 32 1048576
ExecTest "waveputsignalnbi" 2 1 32 1048576
ExecTest "signalfetch" 2 1 1
ExecTest "wgsignalfetch" 2 2 32
ExecTest "wavesignalfetch" 2 1 32
}
TestColl() {
##############################################################################
# | Name | Ranks | Workgroups | Threads | Max Message Size #
##############################################################################
ExecTest "barrierall" 2 1 1
ExecTest "sync" 2 1 1
ExecTest "syncall" 2 1 1
ExecTest "alltoall" 2 1 1 512
ExecTest "teambroadcast" 2 1 1 32768
ExecTest "fcollect" 2 1 1 512
ExecTest "fcollect" 2 1 1 32768
ExecTest "teamreduction" 2 1 1 32768
}
TestOther() {
##############################################################################
# | Name | Ranks | Workgroups | Threads | Max Message Size #
##############################################################################
ExecTest "init" 2 1 1
ExecTest "pingpong" 2 1 1
ExecTest "pingpong" 2 8 1
ExecTest "pingpong" 2 32 1
# This test requires more contexts than workgroups
export ROCSHMEM_MAX_NUM_CONTEXTS=1024
ExecTest "teamctxinfra" 2 1 1
unset ROCSHMEM_MAX_NUM_CONTEXTS
}
ValidateInput() {
INPUT_COUNT=$1
if [ $INPUT_COUNT -eq 0 ] ; then
echo "This script must be run with at least 2 arguments."
echo 'Usage: ${0} argument1 argument2 [argument3]'
echo 'Usage: ${0} argument1 argument2 [argument3] [argument4]'
echo " argument1 : path to the tester driver"
echo " argument2 : test type to run, e.g put"
echo " argument3 : directory to put the output logs"
echo " argument4 : path to hostfile"
exit 1
fi
echo "Test Name ${2}"
check() {
if [ $? -ne 0 ]
then
echo "Failed $1" >&2
driver_return_status=1
fi
fi
}
case $2 in
###########################################################################
############################## SERIAL TESTS ###############################
###########################################################################
*"serial")
echo "get_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 0 > $3/get_n2_w1_z1_1MB.log
check get_n2_w1_z1_1MB
echo "getnbi_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 1 > $3/getnbi_n2_w1_z1_1MB.log
check getnbi_n2_w1_z1_1MB
echo "put_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 2 > $3/put_n2_w1_z1_1MB.log
check put_n2_w1_z1_1MB
echo "putnbi_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 3 > $3/putnbi_n2_w1_z1_1MB.log
check putnbi_n2_w1_z1_1MB
echo "wg_get_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 1048576 -a 25 > $3/wg_get_n2_w1_z64_1MB.log
check wg_get_n2_w1_z1_1MB
echo "wg_getnbi_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 1048576 -a 26 > $3/wg_getnbi_n2_w1_z64_1MB.log
check wg_getnbi_n2_w1_z1_1MB
echo "wg_put_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 1048576 -a 27 > $3/wg_put_n2_w1_z64_1MB.log
check wg_put_n2_w1_z1_1MB
echo "wg_putnbi_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 1048576 -a 28 > $3/wg_putnbi_n2_w1_z64_1MB.log
check wg_putnbi_n2_w1_z1_1MB
echo "wg_get_tiled_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 64 -s 1048576 -a 25 > $3/wg_get_tiled_n2_w2_z64_1MB.log
check wg_get_tiled_n2_w1_z1_1MB
echo "wg_getnbi_tiled_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 64 -s 1048576 -a 26 > $3/wg_getnbi_tiled_n2_w2_z64_1MB.log
check wg_getnbi_tiled_n2_w1_z1_1MB
echo "wg_put_tiled_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 64 -s 1048576 -a 27 > $3/wg_put_tiled_n2_w2_z64_1MB.log
check wg_put_tiled_n2_w1_z1_1MB
echo "wg_putnbi_tiled_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 64 -s 1048576 -a 28 > $3/wg_putnbi_tiled_n2_w2_z64_1MB.log
check wg_putnbi_tiled_n2_w1_z1_1MB
echo "wave_get_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 1048576 -a 29 > $3/wave_get_n2_w1_z64_1MB.log
check wave_get_n2_w1_z1_1MB
echo "wave_getnbi_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 1048576 -a 30 > $3/wave_getnbi_n2_w1_z64_1MB.log
check wave_getnbi_n2_w1_z1_1MB
echo "wave_put_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 1048576 -a 31 > $3/wave_put_n2_w1_z64_1MB.log
check wave_put_n2_w1_z1_1MB
echo "wave_putnbi_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 1048576 -a 32 > $3/wave_putnbi_n2_w1_z64_1MB.log
check wave_putnbi_n2_w1_z1_1MB
echo "wave_get_tiled_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 128 -s 1048576 -a 29 > $3/wave_get_tiled_n2_w2_z128_1MB.log
check wave_get_tiled_n2_w1_z1_1MB
echo "wave_getnbi_tiled_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 128 -s 1048576 -a 30 > $3/wave_getnbi_tiled_n2_w2_z128_1MB.log
check wave_getnbi_tiled_n2_w1_z1_1MB
echo "wave_put_tiled_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 128 -s 1048576 -a 31 > $3/wave_put_tiled_n2_w2_z128_1MB.log
check wave_put_tiled_n2_w1_z1_1MB
echo "wave_putnbi_tiled_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 128 -s 1048576 -a 32 > $3/wave_putnbi_tiled_n2_w2_z128_1MB.log
check wave_putnbi_tiled_n2_w1_z1_1MB
echo "amofadd_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 5 > $3/amofadd_n2_w1_z1.log
check amofadd_n2_w1_z1
echo "amofinc_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 6 > $3/amofinc_n2_w1_z1.log
check amofinc_n2_w1_z1
echo "amofetch_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 7 > $3/amofetch_n2_w1_z1.log
check amofetch_n2_w1_z1
echo "amofcswap_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 8 > $3/amofcswap_n2_w1_z1.log
check amofcswap_n2_w1_z1
echo "amoadd_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 9 > $3/amoadd_n2_w1_z1.log
check amoadd_n2_w1_z1
echo "amoinc_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 10 > $3/amoinc_n2_w1_z1.log
check amoinc_n2_w1_z1
echo "pingpong_n2_w1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -a 13 > $3/pingpong_n2_w1.log
check pingpong_n2_w1
echo "amoset_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 41 > $3/amoset_n2_w1_z1.log
check amoset_n2_w1_z1
;;
APP=$1
TEST=$2
LOG_DIR=$3
HOSTFILE=$4
###########################################################################
############################### SHORT TESTS ###############################
###########################################################################
*"short")
echo "get_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 0 > $3/get_n2_w16_z128_8B.log
check get_n2_w16_z128_8B
echo "getnbi_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 1 > $3/getnbi_n2_w16_z128_8B.log
check getnbi_n2_w16_z128_8B
echo "put_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 2 > $3/put_n2_w16_z128_8B.log
check put_n2_w16_z128_8B
echo "putnbi_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 3 > $3/putnbi_n2_w16_z128_8B.log
check putnbi_n2_w16_z128_8B
echo "wg_get_n2_w1_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 8 -a 25 > $3/wg_get_n2_w1_z64_8B.log
check wg_get_n2_w1_z64_8B
echo "wg_getnbi_n2_w1_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 8 -a 26 > $3/wg_getnbi_n2_w1_z64_8B.log
check wg_getnbi_n2_w1_z64_8B
echo "wg_put_n2_w1_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 8 -a 27 > $3/wg_put_n2_w1_z64_8B.log
check wg_put_n2_w1_z64_8B
echo "wg_putnbi_n2_w1_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 8 -a 28 > $3/wg_putnbi_n2_w1_z64_8B.log
check wg_putnbi_n2_w1_z64_8B
echo "wg_get_tiled_n2_w16_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 64 -s 8 -a 25 > $3/wg_get_tiled_n2_w16_z64_8B.log
check wg_get_tiled_n2_w16_z64_8B
echo "wg_getnbi_tiled_n2_w16_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 64 -s 8 -a 26 > $3/wg_getnbi_tiled_n2_w16_z64_8B.log
check wg_getnbi_tiled_n2_w16_z64_8B
echo "wg_put_tiled_n2_w16_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 64 -s 8 -a 27 > $3/wg_put_tiled_n2_w16_z64_8B.log
check wg_put_tiled_n2_w16_z64_8B
echo "wg_putnbi_tiled_n2_w16_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 64 -s 8 -a 28 > $3/wg_putnbi_tiled_n2_w16_z64_8B.log
check wg_putnbi_tiled_n2_w16_z64_8B
echo "wave_get_n2_w1_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 8 -a 29 > $3/wave_get_n2_w1_z64_8B.log
check wave_get_n2_w1_z64_8B
echo "wave_getnbi_n2_w1_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 8 -a 30 > $3/wave_getnbi_n2_w1_z64_8B.log
check wave_getnbi_n2_w1_z64_8B
echo "wave_put_n2_w1_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 8 -a 31 > $3/wave_put_n2_w1_z64_8B.log
check wave_put_n2_w1_z64_8B
echo "wave_putnbi_n2_w1_z64_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 64 -s 8 -a 32 > $3/wave_putnbi_n2_w1_z64_8B.log
check wave_putnbi_n2_w1_z64_8B
echo "wave_get_tiled_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 29 > $3/wave_get_tiled_n2_w16_z128_8B.log
check wave_get_tiled_n2_w16_z128_8B
echo "wave_getnbi_tiled_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 30 > $3/wave_getnbi_tiled_n2_w16_z128_8B.log
check wave_getnbi_tiled_n2_w16_z128_8B
echo "wave_put_tiled_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 31 > $3/wave_put_tiled_n2_w16_z128_8B.log
check wave_put_tiled_n2_w16_z128_8B
echo "wave_putnbi_tiled_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 32 > $3/wave_putnbi_tiled_n2_w16_z128_8B.log
check wave_putnbi_tiled_n2_w16_z128_8B
echo "amofadd_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 5 > $3/amofadd_n2_w8_z1.log
check amofadd_n2_w8_z1
echo "amofinc_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 6 > $3/amofinc_n2_w8_z1.log
check amofinc_n2_w8_z1
echo "amofetch_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 7 > $3/amofetch_n2_w8_z1.log
check amofetch_n2_w8_z1
echo "amofcswap_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 8 > $3/amofcswap_n2_w8_z1.log
check amofcswap_n2_w8_z1
echo "amoadd_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 9 > $3/amoadd_n2_w8_z1.log
check amoadd_n2_w8_z1
echo "amoinc_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 10 > $3/amoinc_n2_w8_z1.log
check amoinc_n2_w8_z1
echo "pingpong_n2_w1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -a 13 > $3/pingpong_n2_w1.log
check pingpong_n2_w1
echo "amoset_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 41 > $3/amoset_n2_w8_z1.log
check amoset_n2_w8_z1
echo "putsignal_n2_w1_z1"
mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 50 > $3/putsignal_n2_w1_z1.log
check putsignal_n2_w1_z1
echo "putsignalwg_n2_w2_z32"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 32 -s 1048576 -a 52 > $3/putsignalwg_n2_w2_z32.log
check putsignalwg_n2_w2_z32
echo "putsignalwave_n2_w1_z32"
mpirun -np 2 $1 -w 1 -z 32 -s 1048576 -a 52 > $3/putsignalwave_n2_w1_z32.log
check putsignalwave_n2_w1_z32
echo "putsignalnbi"
mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 53 > $3/putsignalnbi_n2_w1_z1.log
check putsignalnbi_n2_w1_z1
echo "putsignalnbiwg"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 32 -s 1048576 -a 54 > $3/putsignalnbiwg_n2_w2_z32.log
check putsignalnbiwg_n2_w2_z32
echo "putsignalnbiwave"
mpirun -np 2 $1 -w 1 -z 32 -s 1048576 -a 55 > $3/putsignalnbiwave_n2_w1_z32.log
check putsignalnbiwave_n2_w1_z32
echo "signalfetch"
mpirun -np 2 $1 -w 1 -z 1 -a 56 > $3/signalfetch_n2_w1_z1.log
check signalfetch_n2_w1_z1
echo "signalfetchwg"
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 32 -a 57 > $3/signalfetchwg_n2_w2_z32.log
check signalfetchwg_n2_w2_z32
echo "signalfetchwave"
mpirun -np 2 $1 -w 1 -z 32 -a 57 > $3/signalfetchwave_n2_w2_z32.log
check signalfetchwave_n2_w2_z32
;;
DRIVER_RETURN_STATUS=0
###########################################################################
############################# EXHAUSTIVE TESTS ############################
###########################################################################
*"exhaustive")
############################### GET ###################################
echo "get_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 0 > $3/get_n2_w1_z1_1MB.log
check get_n2_w1_z1_1MB
echo "get_n2_w1_z1024_512B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1024 -s 512 -a 0 > $3/get_n2_w1_z1024_512B.log
check get_n2_w1_z1024_512B
echo "get_n2_w8_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -s 1048576 -a 0 > $3/get_n2_w8_z1_1MB.log
check get_n2_w8_z1_1MB
echo "get_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 0 > $3/get_n2_w16_z128_8B.log
check get_n2_w16_z128_8B
echo "get_n2_w32_z256_512B"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 256 -s 512 -a 0 > $3/get_n2_w32_z256_512B.log
check get_n2_w32_z256_512B
echo "get_n2_w64_z1024_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=64 mpirun -np 2 $1 -w 64 -z 1024 -s 8 -a 0 > $3/get_n2_w64_z1024_8B.log
check get_n2_w64_z1024_8B
############################### GETNBI ################################
echo "getnbi_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 1 > $3/getnbi_n2_w1_z1_1MB.log
check getnbi_n2_w1_z1_1MB
echo "getnbi_n2_w1_z1024_512B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1024 -s 512 -a 1 > $3/getnbi_n2_w1_z1024_512B.log
check getnbi_n2_w1_z1024_512B
echo "getnbi_n2_w8_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -s 1048576 -a 1 > $3/getnbi_n2_w8_z1_1MB.log
check getnbi_n2_w8_z1_1MB
echo "getnbi_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 1 > $3/getnbi_n2_w16_z128_8B.log
check getnbi_n2_w16_z128_8B
echo "getnbi_n2_w32_z256_512B"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 256 -s 512 -a 1 > $3/getnbi_n2_w32_z256_512B.log
check getnbi_n2_w32_z256_512B
echo "getnbi_n2_w64_z1024_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=64 mpirun -np 2 $1 -w 64 -z 1024 -s 8 -a 1 > $3/getnbi_n2_w64_z1024_8B.log
check getnbi_n2_w64_z1024_8B
############################### PUT ###################################
echo "put_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 2 > $3/put_n2_w1_z1_1MB.log
check put_n2_w1_z1_1MB
echo "put_n2_w1_z1024_512B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1024 -s 512 -a 2 > $3/put_n2_w1_z1024_512B.log
check put_n2_w1_z1024_512B
echo "put_n2_w8_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -s 1048576 -a 2 > $3/put_n2_w8_z1_1MB.log
check put_n2_w8_z1_1MB
echo "put_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 2 > $3/put_n2_w16_z128_8B.log
check put_n2_w16_z128_8B
echo "put_n2_w32_z256_512B"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 256 -s 512 -a 2 > $3/put_n2_w32_z256_512B.log
check put_n2_w32_z256_512B
echo "put_n2_w64_z1024_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=64 mpirun -np 2 $1 -w 64 -z 1024 -s 8 -a 2 > $3/put_n2_w64_z1024_8B.log
check put_n2_w64_z1024_8B
############################### PUTNBI ################################
echo "putnbi_n2_w1_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 3 > $3/putnbi_n2_w1_z1_1MB.log
check putnbi_n2_w1_z1_1MB
echo "putnbi_n2_w1_z1024_512B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1024 -s 512 -a 3 > $3/putnbi_n2_w1_z1024_512B.log
check putnbi_n2_w1_z1024_512B
echo "putnbi_n2_w8_z1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -s 1048576 -a 3 > $3/putnbi_n2_w8_z1_1MB.log
check putnbi_n2_w8_z1_1MB
echo "putnbi_n2_w16_z128_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=16 mpirun -np 2 $1 -w 16 -z 128 -s 8 -a 3 > $3/putnbi_n2_w16_z128_8B.log
check putnbi_n2_w16_z128_8B
echo "putnbi_n2_w32_z256_512B"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 256 -s 512 -a 3 > $3/putnbi_n2_w32_z256_512B.log
check putnbi_n2_w32_z256_512B
echo "putnbi_n2_w64_z1024_8B"
ROCSHMEM_MAX_NUM_CONTEXTS=64 mpirun -np 2 $1 -w 64 -z 1024 -s 8 -a 3 > $3/putnbi_n2_w64_z1024_8B.log
check putnbi_n2_w64_z1024_8B
############################## AMOFADD ###############################
echo "amofadd_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 5 > $3/amofadd_n2_w1_z1.log
check amofadd_n2_w1_z1
echo "amofadd_n2_w1_z1024"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1024 -a 5 > $3/amofadd_n2_w1_z1024.log
check amofadd_n2_w1_z1024
echo "amofadd_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 5 > $3/amofadd_n2_w8_z1.log
check amofadd_n2_w8_z1
echo "amofadd_n2_w32_z128"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 128 -a 5 > $3/amofadd_n2_w32_z128.log
check amofadd_n2_w32_z128
############################## AMOFINC ###############################
echo "amofinc_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 6 > $3/amofinc_n2_w1_z1.log
check amofinc_n2_w1_z1
echo "amofinc_n2_w1_z1024"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1024 -a 6 > $3/amofinc_n2_w1_z1024.log
check amofinc_n2_w1_z1024
echo "amofinc_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 6 > $3/amofinc_n2_w8_z1.log
check amofinc_n2_w8_z1
echo "amofinc_n2_w32_z128"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 128 -a 6 > $3/amofinc_n2_w32_z128.log
check amofinc_n2_w32_z128
############################ AMOFETCH ################################
echo "amofetch_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 7 > $3/amofetch_n2_w1_z1.log
check amofetch_n2_w1_z1
echo "amofetch_n2_w1_z1024"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1024 -a 7 > $3/amofetch_n2_w1_z1024.log
check amofetch_n2_w1_z1024
echo "amofetch_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 7 > $3/amofetch_n2_w8_z1.log
check amofetch_n2_w8_z1
echo "amofetch_n2_w32_z128"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 128 -a 7 > $3/amofetch_n2_w32_z128.log
check amofetch_n2_w32_z128
########################### AMOFCSWAP ################################
echo "amofcswap_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 8 > $3/amofcswap_n2_w1_z1.log
check amofcswap_n2_w1_z1
echo "amofcswap_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 8 > $3/amofcswap_n2_w8_z1.log
check amofcswap_n2_w8_z1
echo "amofcswap_n2_w32_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 1 -a 8 > $3/amofcswap_n2_w32_z1.log
check amofcswap_n2_w32_z1
############################# AMOADD ################################
echo "amoadd_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 9 > $3/amoadd_n2_w1_z1.log
check amoadd_n2_w1_z1
echo "amoadd_n2_w1_z1024"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1024 -a 9 > $3/amoadd_n2_w1_z1024.log
check amoadd_n2_w1_z1024
echo "amoadd_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 9 > $3/amoadd_n2_w8_z1.log
check amoadd_n2_w8_z1
echo "amoadd_n2_w32_z128"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 128 -a 9 > $3/amoadd_n2_w32_z128.log
check amoadd_n2_w32_z128
############################# AMOINC ################################
echo "amoinc_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 10 > $3/amoinc_n2_w1_z1.log
check amoinc_n2_w1_z1
echo "amoinc_n2_w1_z1024"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1024 -a 10 > $3/amoinc_n2_w1_z1024.log
check amoinc_n2_w1_z1024
echo "amoinc_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 10 > $3/amoinc_n2_w8_z1.log
check amoinc_n2_w8_z1
echo "amoinc_n2_w32_z128"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 128 -a 10 > $3/amoinc_n2_w32_z128.log
check amoinc_n2_w32_z128
############################## INIT #################################
echo "init_n2"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -a 12 > $3/init_n2.log
check init_n2
########################### PINGPONG ################################
echo "pingpong_n2_w1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -a 13 > $3/pingpong_n2_w1.log
check pingpong_n2_w1
echo "pingpong_n2_w8"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -a 13 > $3/pingpong_n2_w8.log
check pingpong_n2_w8
echo "pingpong_n2_w32"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -a 13 > $3/pingpong_n2_w32.log
check pingpong_n2_w32
############################ BARRIER ################################
echo "barrier_n2_w1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -a 15 > $3/barrier_n2_w1.log
check barrier_n2_w1
############################ SYNCALL ################################
echo "syncall_n2_w1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -a 16 > $3/syncall_n2_w1.log
check syncall_n2_w1
############################# SYNC ##################################
echo "sync_n2_w1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -a 17 > $3/sync_n2_w1.log
check sync_n2_w1
########################### FCOLLECT ################################
echo "fcollect_n2_w1_512B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -s 512 -a 19 > $3/fcollect_n2_w1_512B.log
check fcollect_n2_w1_512B
########################### ALLTOALL ################################
echo "alltoall_n2_w1_512B"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -s 512 -a 20 > $3/alltoall_n2_w1_512B.log
check alltoall_n2_w1_512B
########################## TEAMGETNBI ###############################
echo "teamgetnbi_n2_w1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -s 1048576 -a 36 > $3/teamgetnbi_n2_w1_1MB.log
check teamgetnbi_n2_w1_1MB
########################## TEAMPUTNBI ###############################
echo "teamputnbi_n2_w1_1MB"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -s 1048576 -a 38 > $3/teamputnbi_n2_w1_1MB.log
check teamputnbi_n2_w1_1MB
############################ AMOSET #################################
echo "amoset_n2_w1_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=1 mpirun -np 2 $1 -w 1 -z 1 -a 41 > $3/amoset_n2_w1_z1.log
check amoset_n2_w1_z1
echo "amoset_n2_w8_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=8 mpirun -np 2 $1 -w 8 -z 1 -a 41 > $3/amoset_n2_w8_z1.log
check amoset_n2_w8_z1
echo "amoset_n2_w32_z1"
ROCSHMEM_MAX_NUM_CONTEXTS=32 mpirun -np 2 $1 -w 32 -z 1 -a 41 > $3/amoset_n2_w32_z1.log
check amoset_n2_w32_z1
;;
ValidateInput $#
###########################################################################
############################# INDIVIDUAL TESTS ############################
###########################################################################
*"get")
mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 0
;;
*"getnbi")
mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 1
;;
*"put")
mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 2
;;
*"putnbi")
mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 3
;;
*"reduction")
mpirun -np 2 $1 -w 1 -z 1 -s 32768 -a 5
;;
*"amofadd")
mpirun -np 2 $1 -w 1 -z 1 -a 5
;;
*"amofinc")
mpirun -np 2 $1 -w 1 -z 1 -a 6
;;
*"amofetch")
mpirun -np 2 $1 -w 1 -z 1 -a 7
;;
*"amofcswap")
mpirun -np 2 $1 -w 1 -z 1 -a 8
;;
*"amoadd")
mpirun -np 2 $1 -w 1 -z 1 -a 9
;;
*"amoinc")
mpirun -np 2 $1 -w 1 -z 1 -a 10
;;
*"init")
mpirun -np 2 $1 -a 12
;;
*"pingpong")
mpirun -np 2 $1 -w 1 -z 1 -a 13
;;
*"barrier")
mpirun -np 2 $1 -w 1 -z 1 -a 15
;;
*"syncall")
mpirun -np 2 $1 -w 1 -z 1 -a 16
;;
*"sync")
mpirun -np 2 $1 -w 1 -z 1 -s 8 -a 17
;;
*"fcollect")
mpirun -np 2 $1 -w 1 -z 1 -s 32768 -a 19
;;
*"alltoall")
mpirun -np 2 $1 -w 1 -z 1 -s 32768 -a 20
;;
*"team_broadcast")
mpirun -np 2 $1 -w 1 -z 1 -s 32768 -a 33
;;
*"team_reduction")
mpirun -np 2 $1 -w 1 -z 1 -s 32768 -a 34
;;
*"team_get")
mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 35
;;
*"team_getnbi")
mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 36
;;
*"team_put")
mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 37
;;
*"team_putnbi")
mpirun -np 2 $1 -w 1 -z 1 -s 1048576 -a 38
;;
*"ctx_infra")
mpirun -np 2 $1 -w 1 -z 1 -a 39
;;
*"amoset")
mpirun -np 2 $1 -w 1 -z 1 -a 41
;;
*"amoswap")
mpirun -np 2 $1 -w 1 -z 1 -a 42
;;
*"amofetchand")
mpirun -np 2 $1 -w 1 -z 1 -a 43
;;
*"amofetchor")
mpirun -np 2 $1 -w 1 -z 1 -a 44
;;
*"amofetchxor")
mpirun -np 2 $1 -w 1 -z 1 -a 45
;;
*"amoand")
mpirun -np 2 $1 -w 1 -z 1 -a 46
;;
*"amoor")
mpirun -np 2 $1 -w 1 -z 1 -a 47
;;
*"amoxor")
mpirun -np 2 $1 -w 1 -z 1 -a 48
;;
*"putsignal")
mpirun -np 2 $1 -w 1 -z 1 -a 50
;;
*"putsignalwg")
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 32 -a 52
;;
*"putsignalwave")
mpirun -np 2 $1 -w 1 -z 32 -a 52
;;
*"putsignalnbi")
mpirun -np 2 $1 -w 1 -z 1 -a 53
;;
*"putsignalnbiwg")
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 32 -a 54
;;
*"putsignalnbiwave")
mpirun -np 2 $1 -w 1 -z 32 -a 55
;;
*"signalfetch")
mpirun -np 2 $1 -w 1 -z 1 -a 56
;;
*"signalfetchwg")
ROCSHMEM_MAX_NUM_CONTEXTS=2 mpirun -np 2 $1 -w 2 -z 32 -a 57
;;
*"signalfetchwave")
mpirun -np 2 $1 -w 1 -z 32 -a 57
;;
*)
echo "UNKNOWN TEST TYPE: $2"
exit -1
;;
case $TEST in
*"all")
TestRMA
TestAMO
TestSigOps
TestColl
TestOther
;;
*"rma")
TestRMA
;;
*"amo")
TestAMO
;;
*"sigops")
TestSigOps
;;
*"coll")
TestColl
;;
*"other")
TestOther
;;
*)
##############################################################################
# | Name | Ranks | Workgroups | Threads | Max Message Size #
##############################################################################
ExecTest $TEST 2 1 1 8
;;
esac
exit $(($driver_return_status || $?))
exit $(($DRIVER_RETURN_STATUS || $?))