LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Namespaces | Enumerations | Functions | Variables
lsst::afw::gpu Namespace Reference

Namespaces

 detail
 

Enumerations

enum  DevicePreference { AUTO, AUTO_WITH_CPU_FALLBACK, USE_CPU, USE_GPU }
 A type used to select whether to use CPU or GPU device. More...
 

Functions

void setGpuEnable (bool enable)
 Enables or disables GPU acceleration globally. More...
 
bool isGpuEnabled ()
 returns true if GPU acceleration is enabled More...
 
bool isGpuBuild ()
 Inline function which returns true only when GPU_BUILD macro is defined. More...
 

Variables

const DevicePreference DEFAULT_DEVICE_PREFERENCE = AUTO
 Default DevicePreference value. More...
 

Enumeration Type Documentation

A type used to select whether to use CPU or GPU device.

AUTO - If all conditions for GPU execution and performance conditions are satisfied (AFW built with GPU support, a suitable GPU is present, GPU execution limitations and performance conditions) the code will attempt to use a GPU. Otherwise, CPU code path will be used. If GPU execution results in a failure, an exception will be thrown. AUTO_WITH_CPU_FALLBACK - Same as AUTO, except that if the GPU code path throws an exception, it will fallback to CPU code path. USE_CPU - GPU will not be used. USE_GPU - code will always attempt to use a GPU (except when overriden by global settings). If a GPU can not be used, an exception will be thrown.

Note
To test whether a certain function call is GPU-accelerated, a dummy function call should be made, with the DevicePreference parameter set to USE_GPU. If it does not throw an exception, then the given function call is GPU-accelerated.
Enumerator
AUTO 
AUTO_WITH_CPU_FALLBACK 
USE_CPU 
USE_GPU 

Definition at line 61 of file DevicePreference.h.

Function Documentation

bool lsst::afw::gpu::isGpuBuild ( )
inline

Inline function which returns true only when GPU_BUILD macro is defined.

Used to determine whether compiling for GPU is enabled

Definition at line 45 of file IsGpuBuild.h.

46 {
47  #ifdef GPU_BUILD
48  return true;
49  #else
50  return false;
51  #endif
52 }
bool lsst::afw::gpu::isGpuEnabled ( )

returns true if GPU acceleration is enabled

Definition at line 81 of file DevicePreference.cc.

82 {
83  return globalIsGpuEnabled;
84 }
void lsst::afw::gpu::setGpuEnable ( bool  enable)

Enables or disables GPU acceleration globally.

Changes a global variable. When it is set to false, the GPU acceleration will be disabled. Initial value of the global variable is true (enabled).

Calls to GPU-accelerated functions with DevicePreference set to USE_GPU will be redirected to use CPU code path.

Note: When the value of environment variable DISABLE_GPU_ACCELERATION is set to 1, setting GPU acceleration to enabled by this function may not have any effect . Also, it will set the initial value of the global variable to false (GPU acceleration disabled).

Definition at line 70 of file DevicePreference.cc.

71 {
72  if (enable) {
73  if (!envVarDisableGpuAccelerationSingleton.val) {
74  globalIsGpuEnabled = true;
75  }
76  } else {
77  globalIsGpuEnabled = false;
78  }
79 }

Variable Documentation

const DevicePreference lsst::afw::gpu::DEFAULT_DEVICE_PREFERENCE = AUTO

Default DevicePreference value.

Used in all GPU-accelerated functions when DevicePreference is ommited by the caller.

Definition at line 68 of file DevicePreference.h.