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
56 lines
2.6 KiB
Markdown
56 lines
2.6 KiB
Markdown
# 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](https://rocm.docs.amd.com/projects/rocSOLVER/en/latest/installation/installlinux.html#install-linux) 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.
|