summaryrefslogtreecommitdiffstats
path: root/Modules/CMakeCUDACompilerABI.cu
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/CMakeCUDACompilerABI.cu')
-rw-r--r--Modules/CMakeCUDACompilerABI.cu25
1 files changed, 2 insertions, 23 deletions
diff --git a/Modules/CMakeCUDACompilerABI.cu b/Modules/CMakeCUDACompilerABI.cu
index 8463e86..b04d0ec 100644
--- a/Modules/CMakeCUDACompilerABI.cu
+++ b/Modules/CMakeCUDACompilerABI.cu
@@ -2,11 +2,8 @@
# error "A C or C++ compiler has been selected for CUDA"
#endif
-#include <cstdio>
-
-#include <cuda_runtime.h>
-
#include "CMakeCompilerABI.h"
+#include "CMakeCompilerCUDAArch.h"
int main(int argc, char* argv[])
{
@@ -19,25 +16,7 @@ int main(int argc, char* argv[])
#endif
static_cast<void>(argv);
- int count = 0;
- if (cudaGetDeviceCount(&count) != cudaSuccess || count == 0) {
- std::fprintf(stderr, "No CUDA devices found.\n");
- return -1;
- }
-
- int found = 0;
- const char* sep = "";
- for (int device = 0; device < count; ++device) {
- cudaDeviceProp prop;
- if (cudaGetDeviceProperties(&prop, device) == cudaSuccess) {
- std::printf("%s%d%d", sep, prop.major, prop.minor);
- sep = ";";
- found = 1;
- }
- }
-
- if (!found) {
- std::fprintf(stderr, "No CUDA architecture detected from any devices.\n");
+ if (!cmakeCompilerCUDAArch()) {
// Convince the compiler that the non-zero return value depends
// on the info strings so they are not optimized out.
return require ? -1 : 1;