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 KernelPreferencesprivate static KernelManagerprivate 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 KernelPreferencesprotected 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 KernelManagerinstance()voidreportDeviceUsage(StringBuilder builder, boolean withProfilingInfo) Append a report tobuilderwhich 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.voidreportProfilingSummary(StringBuilder builder) protected static booleanselectLhs(OpenCLDevice _deviceLhs, OpenCLDevice _deviceRhs) private static booleanselectLhsByType(Device.TYPE lhs, Device.TYPE rhs) protected static booleanselectLhsIfCUDA(OpenCLDevice _deviceLhs, OpenCLDevice _deviceRhs) NVidia/CUDA architecture reports maxComputeUnits in a completely different context, i.e.voidsetDefaultPreferredDevices(LinkedHashSet<Device> _devices) static voidsetKernelManager(KernelManager manager) voidsetPreferredDevices(Kernel _kernel, LinkedHashSet<Device> _devices) protected voidsetup()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 tobuilderwhich 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
-