Allow to specify or determine CUDA arch by CMake
This MR replaces the assumed cuda arch that is built for (3.0) with auto detection or manual specification. A new CMake option has been added: CUDA_ARCH, which can be set to:
- MIN: minimum required 3.0, will check if this is available in a device
- MAX: highest compute capability in any devices
- COMP: highest compute capability that all devices support
- anything else is passed directly, should be of the format sm_XY (format is not checked by CMake)
For exammple:
$> cmake -DCUDA_ARCH=MAX ..
...
-- Detecting MAX CUDA architecture
-- Detecting MAX CUDA architecture - sm_61
...
While trying to get some annotated assembly and source in nsight, I found that that works only with compute capability 5.2 and higher, so I added a way to specify this when running CMake.