Last active
December 28, 2015 07:09
-
-
Save tl3shi/7462450 to your computer and use it in GitHub Desktop.
the code used to detect the cuda devices.
used in my blog tanglei.name to explain how to use remote desktop protocal to run cuda/opengl in a remote pc.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Copyright 1993-2010 NVIDIA Corporation. All rights reserved. | |
* | |
* NVIDIA Corporation and its licensors retain all intellectual property and | |
* proprietary rights in and to this software and related documentation. | |
* Any use, reproduction, disclosure, or distribution of this software | |
* and related documentation without an express license agreement from | |
* NVIDIA Corporation is strictly prohibited. | |
* | |
* Please refer to the applicable NVIDIA end user license agreement (EULA) | |
* associated with this source code for terms and conditions that govern | |
* your use of this NVIDIA software. | |
* | |
*/ | |
#include "common/book.h" | |
#include <iostream> | |
int main( void ) | |
{ | |
cudaDeviceProp prop; | |
int count; | |
HANDLE_ERROR( cudaGetDeviceCount( &count ) ); | |
for (int i=0; i< count; i++) { | |
HANDLE_ERROR( cudaGetDeviceProperties( &prop, i ) ); | |
printf( " --- General Information for device %d ---\n", i ); | |
printf( "Name: %s\n", prop.name ); | |
printf( "Compute capability: %d.%d\n", prop.major, prop.minor ); | |
printf( "Clock rate: %d\n", prop.clockRate ); | |
printf( "Device copy overlap: " ); | |
if (prop.deviceOverlap) | |
printf( "Enabled\n" ); | |
else | |
printf( "Disabled\n"); | |
printf( "Kernel execution timeout : " ); | |
if (prop.kernelExecTimeoutEnabled) | |
printf( "Enabled\n" ); | |
else | |
printf( "Disabled\n" ); | |
printf( " --- Memory Information for device %d ---\n", i ); | |
printf( "Total global mem: %ld\n", prop.totalGlobalMem ); | |
std::cout << "Total global mem: " << prop.totalGlobalMem << std::endl;; | |
printf( "Total constant Mem: %ld\n", prop.totalConstMem ); | |
printf( "Max mem pitch: %ld\n", prop.memPitch ); | |
printf( "Texture Alignment: %ld\n", prop.textureAlignment ); | |
printf( " --- MP Information for device %d ---\n", i ); | |
printf( "Multiprocessor count: %d\n", | |
prop.multiProcessorCount ); | |
printf( "Shared mem per mp: %ld\n", prop.sharedMemPerBlock ); | |
printf( "Registers per mp: %d\n", prop.regsPerBlock ); | |
printf( "Threads in warp: %d\n", prop.warpSize ); | |
printf( "Max threads per block: %d\n", | |
prop.maxThreadsPerBlock ); | |
printf( "Max thread dimensions: (%d, %d, %d)\n", | |
prop.maxThreadsDim[0], prop.maxThreadsDim[1], | |
prop.maxThreadsDim[2] ); | |
printf( "Max grid dimensions: (%d, %d, %d)\n", | |
prop.maxGridSize[0], prop.maxGridSize[1], | |
prop.maxGridSize[2] ); | |
printf( "\n" ); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment