1. 04 Apr, 2022 1 commit
  2. 15 Dec, 2021 1 commit
    • Allison Vacanti's avatar
      Overhaul CUB test suite. · 2f450143
      Allison Vacanti authored
      Issue #399 reported that we were missing several test cases in CUB
      that were ifdef'd out. This patch enables most of those tests, though
      CDP tests are not added here.
      
      Some other deficiencies were addressed as they were noticed, for instance,
      adding value_types other than unsigned char to test_block_histogram.
      
      The way we split up tests into "BENCHMARK", "MINIMAL", and "THOROUGH"
      variants wasn't well suited for regression testing, as a lot of
      redundant code paths were generated between the various test
      executables. These have been removed, leaving only the "THOROUGH" tests,
      which should capture all test cases.
      
      Benchmarks should go into the new `thrust_benchmark` project.
      
      Some tests also took an excessively long time to build, especially after
      enabling the missing test cases from #399. This patch adds a new
      mechanism that allows a test to include a comment such as:
      
      ```
      // %PARAM% TEST_FOO foo 0:1:2
      // %PARAM% TEST_BAR bar 4:8
      ```
      
      CMake will parse these out, and generate multiple test executables for
      each combination of parameters, e.g:
      
      ```
      cub.test.baz.foo_0.bar_4 -DTEST_FOO=0 -DTEST_BAR=4
      cub.test.baz.foo_0.bar_8 -DTEST_FOO=0 -DTEST_BAR=8
      cub.test.baz.foo_1.bar_4 -DTEST_FOO=1 -DTEST_BAR=4
      cub.test.baz.foo_1.bar_8 -DTEST_FOO=1 -DTEST_BAR=8
      cub.test.baz.foo_2.bar_4 -DTEST_FOO=2 -DTEST_BAR=4
      cub.test.baz.foo_2.bar_8 -DTEST_FOO=2 -DTEST_BAR=8
      ```
      
      This can be used to quickly split up problematically large tests. See
      the note at the top of cub/test/CMakeLists.txt for more details.
      
      The PrintNinjaBuildTimes.cmake file from Thrust was used to identify
      tests that needed to be split.
      
      Several tests were testing Thrust APIs. This isn't necessary, as Thrust
      has it's own test suite. These tests have been removed.
      
      This isn't needed for regression testing and has been removed. Some
      of the other command line options could also be removed now that
      benchmarking isn't handled by these regression tests, but this is a start.
      
      Extended testing revealed that the cub::BlockHistogram algorithm's
      behavior is undefined when input values are outside of [0, BINS). Added
      this info to the algorithm docs.
      
      * test_device_histogram from 15m -> 35s.
      * test_device_run_length_encode from 7m -> 3s.
      * test_device_scan tests from <3m  -> <4s.
      
      # Conflicts:
      #	test/test_device_radix_sort.cu
      
      # Conflicts:
      #	test/test_device_radix_sort.cu
      2f450143
  3. 12 May, 2021 1 commit
    • Allison Vacanti's avatar
      Refer to Thrust's build instructions. · bf098819
      Allison Vacanti authored
      Thrust and CUB are tightly coupled, and just pulling CUB will cause
      issues when an incompatible version of Thrust is located in a toolchain's
      SDK. To avoid this, it's best to clone both to ensure that compatible
      versions are used.
      bf098819
  4. 11 Dec, 2020 1 commit
    • Bryce Adelstein Lelbach aka wash's avatar
      CMake, tests: · 9757e60a
      Bryce Adelstein Lelbach aka wash authored
      * Rename "quicker" test variants to "minimal" and "quick" test variants to
        "benchmark".
      * Add `CUB_TEST_VARIANT_*` options which controls which test variants are built.
      * Reduce the problem size for the `test_device_radix_sort` minimal variant to
        minimize execution time.
      * Remove old Makefiles.
      9757e60a
  5. 19 Oct, 2020 1 commit
    • Allison Vacanti's avatar
      Update CUB CMake to match recent changes to Thrust. · ea48955f
      Allison Vacanti authored
      Specifically, this ports the following PRs to CUB:
      
      - NVIDIA/thrust#1297 Add install rule option for add_subdirectory users.
      - NVIDIA/thrust#1298 Enforce semantic versioning in CMake version configs.
      - NVIDIA/thrust#1300 Use FindPackageHandleStandardArgs in CMake config.
      ea48955f
  6. 25 Sep, 2020 1 commit
  7. 23 Sep, 2020 1 commit
  8. 14 Jul, 2020 1 commit