Skip to content

Conversation

@stanleytsang-amd
Copy link
Collaborator

The current googlebenchmark integration PR is having a build failure with the Windows CI. I changed the override compiler for windows to be the visual studio compiler - that seems to resolve the build failure in CI, see #293. I wanted to run the change by you guys first to make sure this change doesn't break things on your Windows dev environment. Once the fix is in we can finally merge in the googlebenchmark integration PR.

@nolmoonen
Copy link
Collaborator

@stanleytsang-amd Thank you for giving us time to check this, I have confirmed that this change also works on our end.

@stanleytsang-amd stanleytsang-amd merged commit 2784899 into googlebenchmark-integration Sep 27, 2022
stanleytsang-amd added a commit that referenced this pull request Sep 27, 2022
* Fix CI

* add clang format file and ci lint stage

* Use googlebenchmark for the generate benchmark

Instead of an ad-hoc reporting format, use the googlebenchmark library to define, filter and execute benchmarks.
Custom context information is also added to the benchmark for archival reasons similar to rocPRIM.
Googlebenchmark is automatically downloaded if not found when benchmarks are enabled.

* Workaround broken hip headers included from host compiler in package test

The hip headers have device only code visible to the host compiler on
the nvcc path. Package test is compiled with just the host compiler
because its only using the host api of rocrand. This workaround sets it
to CUDA mode in the nvcc path until the fix for hip headers is released.

Modernize to CUDA language instead of FindCuda.cmake.

* Revert workaround for `ROCM_SYMLINK_LIBS`

The underlying issue has been fixed in latest rocm-cmake.

* Fix shebang of check-format.sh using env

On some distributions (notable ones include alpine and nixos) `bash`
is not part of the base installation, therefore its not installed in `/bin`.
Use `env` to find bash in the `PATH` which is portable on most *nix
systems.

* Separate new and legacy benchmarks with a cmake option

Restore the old `bencmark_rocrand_generate` for backwards compatibility.
Add the googlebenchmark based version as `benchmark_rocrand_host_api`.
Building the old benchmark can be enabled by setting `BUILD_LEGACY_BENCHMARK`
to `ON` (on by default).
A later change can change the default and then finally remove the old
benchmarks giving users time to adjust to the changes.

* Use the new benchmark name for the host api benchmark

* Add deprecation for BUILD_LEGACY_BENCHMARK

* Drop googlebenchmark compiler override

The underlying issue has been fixed in v1.5.5 with
google/benchmark#1174. The workaround is no
longer needed.

* Fixes to enable benchmark build on Windows (#282)

* add new generators to changed benchmarks

* Windows googlebench ci fix (#294)

* Update windows compiler for googlebenchmark

* Fix line indentations

Co-authored-by: Lőrinc Serfőző <lorinc@streamhpc.com>
Co-authored-by: Nol Moonen <nol@streamhpc.com>
Co-authored-by: Bibrak Qamar <bibrak@streamhpc.com>
Co-authored-by: Máté Ferenc Nagy-Egri <mate@streamhpc.com>
Co-authored-by: Stanley Tsang <stanley.tsang@amd.com>
ammallya pushed a commit that referenced this pull request Oct 28, 2025
* Fix CI

* add clang format file and ci lint stage

* Use googlebenchmark for the generate benchmark

Instead of an ad-hoc reporting format, use the googlebenchmark library to define, filter and execute benchmarks.
Custom context information is also added to the benchmark for archival reasons similar to rocPRIM.
Googlebenchmark is automatically downloaded if not found when benchmarks are enabled.

* Workaround broken hip headers included from host compiler in package test

The hip headers have device only code visible to the host compiler on
the nvcc path. Package test is compiled with just the host compiler
because its only using the host api of rocrand. This workaround sets it
to CUDA mode in the nvcc path until the fix for hip headers is released.

Modernize to CUDA language instead of FindCuda.cmake.

* Revert workaround for `ROCM_SYMLINK_LIBS`

The underlying issue has been fixed in latest rocm-cmake.

* Fix shebang of check-format.sh using env

On some distributions (notable ones include alpine and nixos) `bash`
is not part of the base installation, therefore its not installed in `/bin`.
Use `env` to find bash in the `PATH` which is portable on most *nix
systems.

* Separate new and legacy benchmarks with a cmake option

Restore the old `bencmark_rocrand_generate` for backwards compatibility.
Add the googlebenchmark based version as `benchmark_rocrand_host_api`.
Building the old benchmark can be enabled by setting `BUILD_LEGACY_BENCHMARK`
to `ON` (on by default).
A later change can change the default and then finally remove the old
benchmarks giving users time to adjust to the changes.

* Use the new benchmark name for the host api benchmark

* Add deprecation for BUILD_LEGACY_BENCHMARK

* Drop googlebenchmark compiler override

The underlying issue has been fixed in v1.5.5 with
google/benchmark#1174. The workaround is no
longer needed.

* Fixes to enable benchmark build on Windows (#282)

* add new generators to changed benchmarks

* Windows googlebench ci fix (#294)

* Update windows compiler for googlebenchmark

* Fix line indentations

Co-authored-by: Lőrinc Serfőző <lorinc@streamhpc.com>
Co-authored-by: Nol Moonen <nol@streamhpc.com>
Co-authored-by: Bibrak Qamar <bibrak@streamhpc.com>
Co-authored-by: Máté Ferenc Nagy-Egri <mate@streamhpc.com>
Co-authored-by: Stanley Tsang <stanley.tsang@amd.com>

[ROCm/rocRAND commit: 622e20e]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants