MemCheck/CUDA: Missing docs and potential implementation inconsistencies for compute-sanitizer
CMake 3.19 adds support for cuda-memcheck
. It seems that the formal name for this was recently (?) changed to account for expanded capabilities and it is also known as compute-sanitizer
. The lack of CUDA in the name for the latter makes this harder for CMake and CTest to handle in a user-friendly way, but both are going to be supported with the CMake 3.19 release.
The documentation (at least) appears to have missed some things. In !4952 (merged), the initial support for cuda-memcheck
was added and it was extended by !5305 (merged) to also support compute-sanitizer
. The documentation for the CTEST_MEMORYCHECK_TYPE
variable mentions neither. There is also no mention of either in the ctest(1)
manual in the CTest MemCheck Step
section.
As far as implementation goes, in cmCTestMemCheckHandler.cxx
, there are places were strings like CudaMemcheckCommandOptions
and CudaMemcheck
are tested or set in different places. Since we already know this is a deprecated name, is it wise to use this going forward? The alternative of ComputeSanitizer
is suboptimal because it doesn't explicitly mention CUDA. The CudaMemcheck
naming also seems inconsistent in terms of upper/lower case, it probably should be CudaMemCheck
to be consistent with the rest of the code, but this is a fairly trivial point (except maybe CDash expects a particular casing in the XML files it receives).
Someone more familiar with CUDA and/or CDash should probably make a pass through the code to see if other similar inconsistencies exist or haven't been documented.