mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-10-08 11:29:02 +00:00
58 lines
1.7 KiB
Plaintext
58 lines
1.7 KiB
Plaintext
//=============================================================================
|
|
//
|
|
// Copyright (c) Kitware, Inc.
|
|
// All rights reserved.
|
|
// See LICENSE.txt for details.
|
|
//
|
|
// This software is distributed WITHOUT ANY WARRANTY; without even
|
|
// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
// PURPOSE. See the above copyright notice for more information.
|
|
//
|
|
// Copyright 2015 Sandia Corporation.
|
|
// Copyright 2015 UT-Battelle, LLC.
|
|
// Copyright 2015 Los Alamos National Security.
|
|
//
|
|
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
|
|
// the U.S. Government retains certain rights in this software.
|
|
// Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National
|
|
// Laboratory (LANL), the U.S. Government retains certain rights in
|
|
// this software.
|
|
//
|
|
//=============================================================================
|
|
#include <cstdio>
|
|
#include <cuda.h>
|
|
#include <cuda_runtime.h>
|
|
int main()
|
|
{
|
|
int count = 0;
|
|
if (cudaSuccess != cudaGetDeviceCount(&count))
|
|
return 1;
|
|
if (count == 0)
|
|
return 1;
|
|
|
|
int prev_arch = 0;
|
|
for (int device = 0; device < count; ++device)
|
|
{
|
|
cudaDeviceProp prop;
|
|
if (cudaSuccess == cudaGetDeviceProperties(&prop, device))
|
|
{
|
|
int arch = (prop.major * 10) + prop.minor;
|
|
int compute_level = arch;
|
|
//arch 21 has no equivalent compute level.
|
|
if (compute_level == 21)
|
|
{
|
|
compute_level = 20;
|
|
}
|
|
|
|
//handle multiple cards of the same architecture
|
|
if (arch == prev_arch)
|
|
{
|
|
continue;
|
|
}
|
|
prev_arch = arch;
|
|
printf(" --generate-code=arch=compute_%d,code=sm_%d", compute_level, arch);
|
|
}
|
|
}
|
|
return 0;
|
|
}
|