Skip to content

Thrust benchmark targets are confusing #1882

@bernhardmgruber

Description

@bernhardmgruber

For benchmarking CUB and Thrust, I configure (based on an internal benchmarking guide) with:

cmake -DCCCL_ENABLE_BENCHMARKS=YES\
      -DCMAKE_CUDA_ARCHITECTURES='90'\
      -DCMAKE_BUILD_TYPE=Release\
      -DCCCL_ENABLE_CUB=YES\
      -DCCCL_ENABLE_THRUST=YES\
      -DCCCL_ENABLE_LIBCUDACXX=NO\
      -GNinja ..

This gives me, among others, the following targets:

cub.all.benches: phony
cub.bench.adjacent_difference.subtract_left.base: phony
cub.bench.copy.memcpy.base: phony
...
thrust.all.bench: phony
thrust.bench: phony
thrust.bench.adjacent_difference.basic.base: phony
thrust.bench.adjacent_difference.custom.base: phony
thrust.bench.adjacent_difference.in_place.base: phony
thrust.bench.copy.basic.base: phony
thrust.bench.copy.if.base: phony
...

I can build all CUB benchmarks using the meta target cub.all.benches.

However, the target thrust.all.bench seems to build a single target executable containing a quick benchmark of several thrust algorithms. It also seems to not use nvbench and generally appears to be a bit dated, so I wonder whether it is just a legacy, given the nvbench-based thrust benchmarks.

To improve the situation I would like to at least:

  • Have a meta target to build all thrust benchmarks, ideally called thrust.all.benches to mimic the CUB target
  • Rename the thrust.all.bench to something that reflects its current statues.

Metadata

Metadata

Assignees

No one assigned

    Labels

    thrustFor all items related to Thrust.

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions