-
Notifications
You must be signed in to change notification settings - Fork 343
Description
Is this a duplicate?
- I confirmed there appear to be no duplicate issues for this request and that I agree to the Code of Conduct
Overview
CI jobs for MSVC + CUB + CTK 13.X timeout regularly when sccache misses are high, due to the wide range of CUDA arch families tested in 13.X and the combined expense of MSVC and nvcc.
Details
Proposed Fix
Split the cub build jobs, similar to the test jobs. Each targeted test will only depend on the corresponding build:
build_nolid->test_nolidbuild_lid0->test_lid0build_lid1->test_lid1build_lid2->test_lid2
These are defined in ci/matrix.yaml.
- Each new test job will declare a dependency on the corresponding scoped build job.
- The CUB job map will map
test -> test_{nolid,lid{0,1,2}.
CMake
The CUB CMake will introduce new configuration options:
CUB_ENABLE_LAUNCH_NONE(nolid)CUB_ENABLE_LAUNCH_HOST(lid0)CUB_ENABLE_LAUNCH_DEVICE(lid1)CUB_ENABLE_LAUNCH_GRAPH(lid2)
These will all be set to ON by default.
The existing CUB_ENABLE_LAUNCH_VARIANTS variable will be deprecated (print an appropriate warning if set to OFF) and if set to off, the lid1/lid2 options will be disabled. Any usage of this flag in presets, etc, will be replaced with the new options (disabling device + graph).
New presets will be added for the nolid/lidX build variants, and these will be used from the CI scripts. The existing "build everything" preset will still exist, and the specialized presets will only update the relevant CUB_ENABLE_LAUNCH_* flags. This is similar to the approach we currently have for splitting CUB test presets.
All test / example executables that are specialized for a launch technique will filtered based on these new variables. If they make no reference to a launch ID (eg. are general purpose / non-device-algorithm-tests that do not test across multiple launchers) they are classified as nolid -- if they are specialized across host / device / graph launch, they will be assigned to the appropriate group. Only the CMake test/example executables that are required for the configured launchers will be added to the build. All others will be skipped/dropped.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status