# SPDX-FileCopyrightText: Copyright (c) 2017 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NvidiaProprietary
#
# NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
# property and proprietary rights in and to this material, related
# documentation and any modifications thereto. Any use, reproduction,
# disclosure or distribution of this material and related documentation
# without an express license agreement from NVIDIA CORPORATION or
# its affiliates is strictly prohibited.

TEST = tncclall2allftn
MPIFC = mpif90
MPIRUN = mpirun
EXE = exe

NGPUMAX ?= $(shell nvidia-smi -L | wc -l)
NGPU ?= $(shell expr $$(( $(NGPUMAX) > 4 ? 4 : $(NGPUMAX) )))
FCFLAGS ?= -fast -cudalib=nccl
MPIRUNFLAGS ?= -np $(NGPU)

########## Make rule for test $(TEST)  ########
all: build run verify

build: $(TEST).cuf
	-$(MPIFC) $(FCFLAGS) -o $(TEST).$(EXE) $<

run:
	$(MPIRUN) $(MPIRUNFLAGS) ./$(TEST).$(EXE)

verify:

clean:
	@echo 'Cleaning up...'
	@rm -rf *.$(EXE) *.dwf *.pdb *.mod prof
