Files
TheRock/rocm-libraries/projects/rocsolver/scripts/perf
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00
..

rocSOLVER Performance Scripts

rocSOLVER/scripts/perf includes scripts to benchmark rocSOLVER functions and collects the results for analysis and display.

Building rocSOLVER for Benchmarking

To prepare rocSOLVER for benchmarking, follow the instructions from rocSOLVER API documentation to build and install the library and its clients.

Benchmarking rocSOLVER with perfoptim-suite

The perfoptim-suite script executes the specified rocSOLVER functions, precision, and size cases. The results are written to csv files which are saved in the rocsolver_customer01_benchmarks directory.

Calling the script without any arguments

./perfoptim-suite

runs the default configuration which executes all available functions with real double precision and all the size cases.

Options can be passed to the script as arguments to modify its behaviour. The available options are:

benchmark to run
valid options are: (default will run all of them)
syevd         -> eigensolver D&C + QR algorithm (heevd in complex precision)
syevdx        -> eigensolver D&C + bisection (heevdx in complex precision)
syevj         -> eigensolver Jacobi (heevj in complex precision)
syevjBatch    -> eigensolver Jacobi batch version (heevjBatch in complex precision)
gesvd         -> SVD QR algorithm
gesvdj        -> SVD Jacobi
gesvdjBatch   -> SVD Jacobi batch version
potrf         -> Cholesky factorization
potrfBatch    -> Cholesky factorization batch version
geqrf         -> Orthogonal factorization
(note: several can be selected)

precisions to use
valid options are: (default is d)
s -> real single precision
d -> real double precision
c -> complex single precision
z -> complex double precision
(note: several can be selected)

size cases to run
valid options are: (default is large)
small  -> see definitions in rocsolver-perfoptim-suite.py for included size values
medium -> see definitions in rocsolver-perfoptim-suite.py for included size values
large  -> see definitions in rocsolver-perfoptim-suite.py for included size values
(note: select only one as small is a sub-set of medium which is a sub-set of large)

For example, benchmarking geqrf with real single and real double precisions on the medium and small size cases would look like this:

./perfoptim-suite geqrf s d medium

After completion, the results of the benchmark will have been written to rocsolver_customer01_benchmarks/sgeqrf_benchmarks.csv and rocsolver_customer01_benchmarks/dgeqrf_benchmarks.csv for the real single precision case and the real double precision case, respectively.