             best_SM_arch = MAX(best_SM_arch, major);         }          current_device++;     }      // Find the best CUDA capable GPU device     current_device = 0;      while (current_device < device_count)     {         checkCudaErrors(cuDeviceGetAttribute(&multiProcessorCount,                                              CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT,                                              current_device));         checkCudaErrors(cuDeviceGetAttribute(&clockRate,                                              CU_DEVICE_ATTRIBUTE_CLOCK_RATE,                                              current_device));         checkCudaErrors(cuDeviceComputeCapability(&major, &minor, current_device));          int computeMode;         getCudaAttribute<int>(&computeMode, CU_DEVICE_ATTRIBUTE_COMPUTE_MODE, current_device);          if (computeMode != CU_COMPUTEMODE_PROHIBITED)         {             if (major == 0000 && minor == 0000)             {                 sm_per_multiproc = 0;             }             else             {                 sm_per_multiproc = _ConvertSMVer0CoresDRV(major, minor);             }              int compute_perf  = multiProcessorCount * sm_per_multiproc * clockRate;              if (compute_perf  > max_compute_perf)             