[Chapel Merge] Add a compiler flag to report time spent on GPU tr

Branch: refs/heads/main
Revision: 7a8c53b
Author: e-kayrakli
Link: Unavailable
Log Message:

Merge pull request #20335 from e-kayrakli/gpu-perf-tests

Add a compiler flag to report time spent on GPU transformations, add new GPU perf tests

This PR adds --report-gpu-transform-time developer flag to the compiler.

Then, adds the following GPU performance plots:

  • One that measures GPU transform time in the compiler
    • This compiles jacobi.chpl and math.chpl where the second one has a ton
      of gpuized loops
  • One that measures end-to-end compilation time for those two tests with --fast
  • An empty kernel launch plot
    • This is supported by a new test that measures sustained kernel launch
      performance for an empty foreach
    • The test's correctness mode ensures we launch expected number of kernels
  • Finally, a plot for the stream prototype we wrote quite some time ago

[Reviewed by @stonea]

Test:

  • new plots are generated with -perflabel gpu-

  • gpu/native correctness

  • standard linux64 correctness

    Modified Files:
    A test/gpu/native/streamPrototype/stream.gpu-compopts
    A test/gpu/native/streamPrototype/stream.gpu-execopts
    A test/gpu/native/streamPrototype/stream.gpu-keys
    A test/gpu/native/streamPrototype/stream.graph
    A test/gpu/native/studies/compiler-performance/GPU-COMPOPTS
    A test/gpu/native/studies/compiler-performance/end-to-end.graph
    A test/gpu/native/studies/compiler-performance/jacobi.chpl
    A test/gpu/native/studies/compiler-performance/jacobi.good
    A test/gpu/native/studies/compiler-performance/jacobi.gpu-keys
    A test/gpu/native/studies/compiler-performance/math.chpl
    A test/gpu/native/studies/compiler-performance/math.good
    A test/gpu/native/studies/compiler-performance/math.gpu-keys
    A test/gpu/native/studies/compiler-performance/transform.graph
    A test/gpu/native/studies/kernelLaunch/emptyKernelLaunch.chpl
    A test/gpu/native/studies/kernelLaunch/emptyKernelLaunch.compopts
    A test/gpu/native/studies/kernelLaunch/emptyKernelLaunch.execopts
    A test/gpu/native/studies/kernelLaunch/emptyKernelLaunch.good
    A test/gpu/native/studies/kernelLaunch/emptyKernelLaunch.gpu-execopts
    A test/gpu/native/studies/kernelLaunch/emptyKernelLaunch.gpu-keys
    A test/gpu/native/studies/kernelLaunch/emptyKernelLaunch.graph
    M compiler/include/driver.h
    M compiler/main/driver.cpp
    M compiler/optimizations/gpuTransforms.cpp
    M test/GPU-GRAPHFILES
    M util/chpl-completion.bash

    Compare: Comparing fb8c75df9d89...7a8c53b4e95d · chapel-lang/chapel · GitHub