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 |
---|---|
Verifies if a given descriptor is supported on the provided CUDA architecture |
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.