Package com.aparapi.internal.kernel
Class KernelManager
java.lang.Object
com.aparapi.internal.kernel.KernelManager
Created by Barney on 24/08/2015.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate KernelPreferences
private static KernelManager
private LinkedHashMap
<Class<? extends Kernel>, PreferencesWrapper> private LinkedHashMap
<Class<? extends Kernel>, KernelProfile> private LinkedHashMap
<Class<? extends Kernel>, Kernel> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected KernelPreferences
protected LinkedHashSet
<Device> protected Comparator
<OpenCLDevice> NB, returns -ve for the better device.protected Comparator
<OpenCLDevice> NB, returns -ve for the better device.getPreferences
(Kernel kernel) protected List
<Device.TYPE> getProfile
(Class<? extends Kernel> kernelClass) private <T extends Kernel>
TgetSharedKernelInstance
(Class<T> kernelClass) static KernelManager
instance()
void
reportDeviceUsage
(StringBuilder builder, boolean withProfilingInfo) Append a report tobuilder
which contains information, per Kernel subclass, on which device is currently being used for the kernel class, and which (if any) devices failed to execute a given Kernel.void
reportProfilingSummary
(StringBuilder builder) protected static boolean
selectLhs
(OpenCLDevice _deviceLhs, OpenCLDevice _deviceRhs) private static boolean
selectLhsByType
(Device.TYPE lhs, Device.TYPE rhs) protected static boolean
selectLhsIfCUDA
(OpenCLDevice _deviceLhs, OpenCLDevice _deviceRhs) NVidia/CUDA architecture reports maxComputeUnits in a completely different context, i.e.void
setDefaultPreferredDevices
(LinkedHashSet<Device> _devices) static void
setKernelManager
(KernelManager manager) void
setPreferredDevices
(Kernel _kernel, LinkedHashSet<Device> _devices) protected void
setup()
Default KernelManager initialization.
Convenience method for being overridden to an empty implementation, so that derived KernelManager classes can provide non static parameters to their constructors.static <T extends Kernel>
TsharedKernelInstance
(Class<T> kernelClass) This method returns a shared instance of a given Kernel subclass.
-
Field Details
-
INSTANCE
-
preferences
-
profiles
-
defaultPreferences
-
-
Constructor Details
-
KernelManager
protected KernelManager()
-
-
Method Details
-
setup
protected void setup()Default KernelManager initialization.
Convenience method for being overridden to an empty implementation, so that derived KernelManager classes can provide non static parameters to their constructors. -
instance
-
setKernelManager
-
reportDeviceUsage
Append a report tobuilder
which contains information, per Kernel subclass, on which device is currently being used for the kernel class, and which (if any) devices failed to execute a given Kernel. -
reportProfilingSummary
-
getPreferences
-
setPreferredDevices
-
getDefaultPreferences
-
setDefaultPreferredDevices
-
createDefaultPreferences
-
createDefaultPreferredDevices
-
getPreferredDeviceTypes
-
getDefaultAcceleratorComparator
NB, returns -ve for the better device. -
getDefaultGPUComparator
NB, returns -ve for the better device. -
bestDevice
-
selectLhs
-
selectLhsIfCUDA
NVidia/CUDA architecture reports maxComputeUnits in a completely different context, i.e. maxComputeUnits is not same as (is much less than) the number of OpenCL cores available.Therefore when comparing an NVidia device we use different criteria.
-
selectLhsByType
-
getProfile
-