version 1.4 | version 1.5 |
---|
| |
cudaDeviceProp deviceProp; | cudaDeviceProp deviceProp; |
cudaCheck(cudaGetDeviceProperties(&deviceProp, dev)); | cudaCheck(cudaGetDeviceProperties(&deviceProp, dev)); |
if ( deviceProp.computeMode != cudaComputeModeProhibited | if ( deviceProp.computeMode != cudaComputeModeProhibited |
&& (deviceProp.major > 1 || deviceProp.minor >= 1) | && (deviceProp.major >= 3) |
&& deviceProp.canMapHostMemory | && deviceProp.canMapHostMemory |
&& ( (deviceProp.multiProcessorCount > 2) || | && ( (deviceProp.multiProcessorCount > 2) || |
((ndevices==0)&&(CkNumNodes()==1)) ) // exclude weak cards | ((ndevices==0)&&(CkNumNodes()==1)) ) // exclude weak cards |
| |
} | } |
| |
if ( ! ndevices ) { | if ( ! ndevices ) { |
cudaDie("All CUDA devices are in prohibited mode, of compute capability 1.0, unable to map host memory, too small, or otherwise unusable."); | cudaDie("all devices are in prohibited mode, of compute capability < 3.0, unable to map host memory, too small, or otherwise unusable"); |
} | } |
| |
if ( devicesperreplica > 0 ) { | if ( devicesperreplica > 0 ) { |
| |
cudaCheck(cudaGetDeviceProperties(&deviceProp, dev)); | cudaCheck(cudaGetDeviceProperties(&deviceProp, dev)); |
if ( deviceProp.computeMode == cudaComputeModeProhibited ) | if ( deviceProp.computeMode == cudaComputeModeProhibited ) |
cudaDie("device in prohibited mode"); | cudaDie("device in prohibited mode"); |
if ( deviceProp.major < 2 && deviceProp.minor < 1 ) | if ( deviceProp.major < 3 ) |
cudaDie("device not of compute capability 1.1 or higher"); | cudaDie("device not of compute capability 3.0 or higher"); |
if ( ! deviceProp.canMapHostMemory ) | if ( ! deviceProp.canMapHostMemory ) |
cudaDie("device cannot map host memory"); | cudaDie("device cannot map host memory"); |
#ifndef DISABLE_CUDA_TEXTURE_OBJECTS | #ifndef DISABLE_CUDA_TEXTURE_OBJECTS |