Other Traits#

The trait(s) below are derived from the function descriptor and provided for the purpose of cross-checking the selected parameters.

Trait

Description

is_supported<Description, Arch>

Verifies if a given descriptor is supported on the provided CUDA architecture Arch.

Is it a supported description? Trait#

// bool
nvcompdx::is_supported<Description, Arch>::value
nvcompdx::is_supported_v<Description, Arch>

The trait evaluates to true if the descriptor is a complete nvCOMPDx execution description (see Is it a complete execution description? Trait), with the exception of the SM Operator, and there is enough shared memory on the given architecture Arch to accommodate the problem’s shared memory scratch requirement.

Once this trait is true, it is safe to proceed with the described problem on the given architecture.

Note

This trait only verifies that the scratch buffer requirement of the problem can fit into shared memory. If one chooses to place the input or the output chunk in shared memory, then one needs to perform an additional check.

Specifying a problem with excessive shared memory needs will result in a non-zero cudaError (for CUDA Runtime API users) or CUresult (for CUDA Driver API users) upon kernel launch.