Scripts for a compiler matrix#656
Conversation
| @@ -0,0 +1,352 @@ | |||
| #!/usr/bin/env bash | |||
There was a problem hiding this comment.
I think this script should have a more descriptive name. Not sure what it could be, but worth thinking a bit about.
There was a problem hiding this comment.
Hi @rhornung67 , what if we call it the compiler matrix, since that is what we are building?
|
Consider that we may want different MPI variants |
|
Consider throughput comparisons for different compilers |
|
To compare compiler performance consider putting together a ratio plot between a base compiler |
|
|
||
| usage() { | ||
| cat <<'EOF' | ||
| Usage: |
There was a problem hiding this comment.
Is there a reason to prefer a shell script over a python script here? I thought maybe it would dovetail better with our burgeoning analysis scripts to do Python
There was a problem hiding this comment.
My thoughts are that since there the workflow is environment dependent, it would be more fitting to use a shell script. For example its consistent with the lc-build scripts, handles stuff like srun, cmake, module a bit more naturally
| log_dir="${2:-}" | ||
| shift 2 | ||
| ;; | ||
| -h|--help) |
There was a problem hiding this comment.
i.e. we could do an argparse here instead of this
|
|
||
| echo "==> [${entry_id}] line ${line_no}: $(basename -- "${entry_build_script}") ${script_args[*]}" | ||
|
|
||
| # Execute each matrix entry in a fresh login shell so module operations and |
There was a problem hiding this comment.
Is this why it's easier to handle this with a shell script?
|
@artv3 would you please add a short section to the RAJAPerf User Guide explaining how to use this? |
…artv3/compiler-sweep
Use different colors for compilers, line styles for variants and markers for tunings.
|
@artv3 I updated the script to also output a basic html landing page and per kernel html pages in addition to what it was outputting before. This makes it easier to navigate through the output files. |
| # Pick a default C++ standard compatible with the CUDA toolchain. | ||
| # CUDA 11.x does not support C++20 in NVCC mode (BLT enforces this). | ||
| NVCC_MAJOR="${NVCC_COMP_VER%%.*}" | ||
| BLT_CXX_STD="c++17" |
There was a problem hiding this comment.
Not sure this is relevant anymore.
There was a problem hiding this comment.
No, it is not. We can't use CUDA < 12 when we require C++20
Summary
Sample run:
See: data/compiler_sweeps/tier1_base_raja_hip_repro.txt
Folks, these scripts are AI generated. But I spent time looking over the code and it looks solid to me. I would like to invite the team to review.