Class GPUContextPool
- java.lang.Object
-
- org.apache.sysds.runtime.instructions.gpu.context.GPUContextPool
-
public class GPUContextPool extends Object
-
-
Field Summary
Fields Modifier and Type Field Description static String
AVAILABLE_GPUS
GPUs to use, can specify -1 to use all, comma separated list of GPU numbers, a specific GPU or a range
-
Constructor Summary
Constructors Constructor Description GPUContextPool()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
freeAllGPUContexts()
Unreserves all GPUContextsstatic int
getAvailableCount()
Get the number of free GPUContextsstatic int
getDeviceCount()
Number of available devices on this machinestatic long
initialGPUMemBudget()
Gets the initial GPU memory budget.static void
initializeGPU()
Static initialization of the number of devices Also sets behaviour for J{Cuda, Cudnn, Cublas, Cusparse} in case of error Initializes the CUDA driver All these need be done once, and not per GPUstatic ArrayList<Integer>
parseListString(String str, int max)
Parses a string into a list.static List<GPUContext>
reserveAllGPUContexts()
Reserves and gets an initialized list of GPUContexts
-
-
-
Field Detail
-
AVAILABLE_GPUS
public static String AVAILABLE_GPUS
GPUs to use, can specify -1 to use all, comma separated list of GPU numbers, a specific GPU or a range
-
-
Method Detail
-
initializeGPU
public static void initializeGPU()
Static initialization of the number of devices Also sets behaviour for J{Cuda, Cudnn, Cublas, Cusparse} in case of error Initializes the CUDA driver All these need be done once, and not per GPU
-
parseListString
public static ArrayList<Integer> parseListString(String str, int max)
Parses a string into a list. The string can be of these forms: 1. "-1" : all integers from range 0 to max - [0,1,2,3....max] 2. "2,3,0" : comma separated list of integers - [0,2,3] 3. "4" : a specific integer - [4] 4. "0-4" : a range of integers - [0,1,2,3,4] In ranges and comma separated lists, all values must be positive. Anything else is invalid.- Parameters:
str
- input stringmax
- maximum range of integers- Returns:
- the list of integers in the parsed string
-
reserveAllGPUContexts
public static List<GPUContext> reserveAllGPUContexts()
Reserves and gets an initialized list of GPUContexts- Returns:
- null if no GPUContexts in pool, otherwise a valid list of GPUContext
-
getAvailableCount
public static int getAvailableCount()
Get the number of free GPUContexts- Returns:
- number of free GPUContexts
-
getDeviceCount
public static int getDeviceCount()
Number of available devices on this machine- Returns:
- number of available GPUs on this machine
-
freeAllGPUContexts
public static void freeAllGPUContexts()
Unreserves all GPUContexts
-
initialGPUMemBudget
public static long initialGPUMemBudget() throws RuntimeException
Gets the initial GPU memory budget. This is the minimum of the available memories across all the GPUs on the machine(s)- Returns:
- minimum available memory
- Throws:
RuntimeException
- if error initializing the GPUs
-
-