When build as part of VTK, we have a report[1] on Gentoo Linux that autodetection of the CUDA architecture fails in some cases, i.e. when -DVTKm_CUDA_Architecture=native is passed to cmake. If one the named architectures is used, e.g. turing, maxwell, etc., the configuration succeeds.
When VTKm_CUDA_Architecture is set to native, the CMake script attempts to build and run a small program named VTKmDetectCUDAVersion.cu to query the CUDA card attached to the build computer. Likely there is something going wrong with either the build or the execution of that program.
Try looking through the CMakeFiles/CMakeOutput.log file created by CMake when it is run and search for VTKmDetectCUDAVersion. The output of the compile and/or build might give a clue about what is going on.
The logfile doesn't contain the string VTKm or vtkm.
Grepping for CUDA however, outputs many lines of calls to some build tools (gcc, cc1plus, as, etc.) where -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 are passed along. No line passes any other arch id, only checks for CUDA compatibility 5.2 are used in the logfile. Would it be possible the check for this specific arch has some issues and drops out from the check early? If it's useful, I can upload the CMakeOutput.log file here.
In ${BUILD_DIR}/ThirdParty/vtkm/vtkvtkm/vtk-m there's an a.out binary, which when called outputs a string, which matches the printf statement in the VTKmDetectCUDAVersion.cu file. In my case it's --generate-code=arch=compute_75,code=sm_75; which is correct. So it looks like the build of the programm works and the program itself does work as well.
Yes, posting your CMakeOutput.log as well as your CMakeCache.txt here would help. It would be best if these came from a clean build attempt. That is, from calling cmake for the first time (with the -DVTKm_ENABLE_CUDA=ON-DVTKm_CUDA_Architecture=native flags). CMake will skip the whole test if it detects it has been run before.
Also, it would be helpful if you could report the version of CMake and the version of VTK-m you are using.