int findGraphicsGPU(char *name) { int nGraphicsGPU = 0; int deviceCount = 0; bool bFoundGraphics = false; char firstGraphicsName[NAME_LEN], temp[NAME_LEN]; cudaError_t error_id = cudaGetDeviceCount(&deviceCount); if (error_id != cudaSuccess) { printf("cudaGetDeviceCount returned %d\n-> %s\n", (int)error_id, cudaGetErrorString(error_id)); exit(EXIT_FAILURE); } // This function call returns 0 if there are no CUDA capable devices. if (deviceCount == 0) { printf("> There are no device(s) supporting CUDA\n"); return false; } else { printf("> Found %d CUDA Capable Device(s)\n", deviceCount); } for (int dev = 0; dev < deviceCount; ++dev) { bool bGraphics = !checkHW(temp, "Tesla", dev); printf("> %s\t\tGPU %d: %s\n", (bGraphics ? "Graphics" : "Compute"), dev, temp); if (bGraphics) { if (!bFoundGraphics) { STRCPY(firstGraphicsName, NAME_LEN, temp); } nGraphicsGPU++; } } if (nGraphicsGPU) { STRCPY(name, NAME_LEN, firstGraphicsName); } else { STRCPY(name, NAME_LEN, "this hardware"); } return nGraphicsGPU; }
int findGraphicsGPU(char *name) { int nGraphicsGPU = 0; int deviceCount = 0; bool bFoundGraphics = false; char firstGraphicsName[256], temp[256]; CUresult err = cuInit(0); checkCudaErrors(cuDeviceGetCount(&deviceCount)); // This function call returns 0 if there are no CUDA capable devices. if (deviceCount == 0) { printf("> There are no device(s) supporting CUDA\n"); return false; } else { printf("> Found %d CUDA Capable Device(s)\n", deviceCount); } for (int dev = 0; dev < deviceCount; ++dev) { bool bGraphics = !checkHW(temp, "Tesla", dev); printf("> %s\t\tGPU %d: %s\n", (bGraphics ? "Graphics" : "Compute"), dev, temp); if (bGraphics) { if (!bFoundGraphics) { STRCPY(firstGraphicsName, strlen(temp), temp); } nGraphicsGPU++; } } if (nGraphicsGPU) { STRCPY(name, strlen(firstGraphicsName), firstGraphicsName); } else { STRCPY(name, strlen("this hardware"), "this hardware"); } return nGraphicsGPU; }