-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Parse CALI_CONFIG for Configuration Parameters #501
base: develop
Are you sure you want to change the base?
Conversation
@MrBurmark we have a matching PR on the benchpark side (), and I want to make sure we get all of the cases working, and have @daboehme's approval for both as well. So, hang tight, we want to get this right. If you are aware of pending release dates, please let us know what we want to aim for. |
LLNL/benchpark#618 Enables unsetting the |
Summary
This PR is a bugfix, preventing an issue where two caliper files are generated from a single run of RAJAPerf.
It does the following:
src/common/KernelBase.cpp
to parse theCALI_CONFIG
, removing any provided filename, and passing the other variables correctly into the config manager.CALI_CONFIG
environment variable, disabling the default config manger.Explanation
The
CALI_CONFIG
environment variable enables activating one (or more) of Caliper's built-in performance profiling configurations. For the Caliper implementation in RAJAPerf, we manage the configuration separately for each variant-tuning combination. This means we generate a separate Caliper file for each variant-tuning combination. AllowingCALI_CONFIG
to be set, means allowing usage such asCALI_CONFIG="spot(output=my_file.cali)" raja-perf --variants Base_CUDA --tunings block_128 block 256
, resulting in 3 Caliper filesBase_CUDA-block_128.cali
,Base_CUDA-block_256.cali
, andmy_file.cali
, which does not make sense.We allow modification of the Caliper configuration through the
--add-to-spot-config
and--add-to-cali-config
arguments, while this PR essentially passes the parameters in theCALI_CONFIG
through the same channels as these arguments.Example
Example 1 - many parameters
When there are configuration parameters provided in both
CALI_CONFIG
and through the command line arguments,--add-to-cali-config
and--add-to-spot-config
, the parameters are merged into one configProfile: spot(output=/g/g20/mckinsey/tmp/nvhpc_rajaperf/RAJAPerf/scripts/bin/lassen_scripts/1/131072/data/RAJA_CUDA-block_256.cali,profile.cuda,time.exclusive,mem.highwatermark),profile.mpi
results in:
Example 2 - No command line arguments
If only
output=my_file.cali
is provided, theCALI_CONFIG
will be ignored.Example 3 - multiple tunings in benchpark
Running RAJAPerf without the
--variant
and--tuning
arguments automatically runs all available variant/tuning combinations, which results in a cali file per combination. We can see that providing a single file name does not make sense in this case.