Package com.jogamp.opencl
Class CLPlatform
- java.lang.Object
-
- com.jogamp.opencl.CLPlatform
-
public class CLPlatform extends Object
CLPlatfrorm representing a OpenCL implementation (e.g. graphics driver). optional eager initialization:if( !CLPlatform.isAvailable() ) { return; // abort } try{ CLPlatform.initialize(); }catch(JogampRuntimeException ex) { throw new RuntimeException("could not load Java OpenCL Binding"); }
Example initialization:if( !CLPlatform.isAvailable() ) { return; // abort } CLPlatform platform = CLPlatform.getDefault(type(GPU)); if(platform == null) { throw new RuntimeException("please update your graphics drivers"); } CLContext context = CLContext.create(platform.getMaxFlopsDevice()); try { // use it }finally{ context.release(); }
concurrency:
CLPlatform is threadsafe.- Author:
- Michael Bien, et al.
- See Also:
isAvailable()
,initialize()
,getDefault()
,listCLPlatforms()
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
CLPlatform(long id, CLAccessorFactory factory)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected CLDevice
createDevice(long id)
boolean
equals(Object obj)
CLPlatformInfoAccessor
getCLAccessor()
protected CL
getCLBinding()
static CLPlatform
getDefault()
Returns the default OpenCL platform or null when no platform found.static CLPlatform
getDefault(Filter<CLPlatform>... filter)
Returns the default OpenCL platform or null when no platform found.Set<String>
getExtensions()
Returns all platform extension names as unmodifiable Set.String
getICDSuffix()
Returns the ICD suffix.String
getInfoString(int key)
Returns a info string in exchange for a key (CL_PLATFORM_*).static CL
getLowLevelCLInterface()
Returns the low level binding interface to the OpenCL APIs.static CL
getLowLevelCLInterfaceForDevice(long device)
Returns the low level binding interface to the OpenCL APIs for the specified device.CLDevice
getMaxFlopsDevice()
Returns the device with maximal FLOPS from this platform.CLDevice
getMaxFlopsDevice(CLDevice.Type... types)
Returns the device with maximal FLOPS and the specified type from this platform.CLDevice
getMaxFlopsDevice(Filter<CLDevice>... filter)
Returns the device with maximal FLOPS and the specified type from this platform.String
getName()
Returns the platform name.String
getProfile()
Returns the platform profile.Map<String,String>
getProperties()
Returns a Map of platform properties with the enum names as keys.String
getSpecVersion()
Returns the OpenCL Specification version supported by this platform.String
getVendor()
Returns the platform vendor.CLVersion
getVersion()
Returns the OpenCL version supported by this platform.int
hashCode()
static void
initialize()
Eagerly initializes JOCL.boolean
isAtLeast(int major, int minor)
boolean
isAtLeast(CLVersion other)
static boolean
isAvailable()
boolean
isExtensionAvailable(String extension)
Returns true if the extension is supported on this platform.boolean
isVendorAMD()
boolean
isVendorIntel()
CLDevice[]
listCLDevices()
Lists all physical devices available on this platform.CLDevice[]
listCLDevices(CLDevice.Type... types)
Lists all physical devices available on this platform matching the givenCLDevice.Type
.CLDevice[]
listCLDevices(Filter<CLDevice>... filters)
Lists all physical devices available on this platform matching the givenFilter
.static CLPlatform[]
listCLPlatforms()
Lists all available OpenCL implementations.static CLPlatform[]
listCLPlatforms(Filter<CLPlatform>... filter)
Lists all available OpenCL implementations.String
toString()
static void
unloadCompiler()
Hint to allow the implementation to release the resources allocated by the OpenCL compiler.
-
-
-
Field Detail
-
ID
public final long ID
OpenCL platform id for this platform.
-
version
public final CLVersion version
Version of this OpenCL platform.
-
cl
protected static CL cl
-
info
protected final CLPlatformInfoAccessor info
-
-
Constructor Detail
-
CLPlatform
protected CLPlatform(long id, CLAccessorFactory factory)
-
-
Method Detail
-
isAvailable
public static boolean isAvailable()
-
initialize
public static void initialize() throws JogampRuntimeException
Eagerly initializes JOCL. Subsequent calls do nothing.- Throws:
JogampRuntimeException
- if something went wrong in the initialization (e.g. OpenCL lib not found).- See Also:
isAvailable()
-
getDefault
public static CLPlatform getDefault()
Returns the default OpenCL platform or null when no platform found.
-
getDefault
public static CLPlatform getDefault(Filter<CLPlatform>... filter)
Returns the default OpenCL platform or null when no platform found.
-
listCLPlatforms
public static CLPlatform[] listCLPlatforms()
Lists all available OpenCL implementations.- Throws:
CLException
- if something went wrong initializing OpenCL
-
listCLPlatforms
public static CLPlatform[] listCLPlatforms(Filter<CLPlatform>... filter)
Lists all available OpenCL implementations. The platforms returned must pass all filters.- Parameters:
filter
- Acceptance filter for the returned platforms.- Throws:
CLException
- if something went wrong initializing OpenCL
-
getLowLevelCLInterface
public static CL getLowLevelCLInterface()
Returns the low level binding interface to the OpenCL APIs. This interface is always for OpenCL 1.1.
-
getLowLevelCLInterfaceForDevice
public static CL getLowLevelCLInterfaceForDevice(long device)
Returns the low level binding interface to the OpenCL APIs for the specified device. This interface is the newest one the device supports.
-
unloadCompiler
public static void unloadCompiler()
Hint to allow the implementation to release the resources allocated by the OpenCL compiler. Calls toCLProgram.build()
after unloadCompiler will reload the compiler if necessary.
-
listCLDevices
public CLDevice[] listCLDevices()
Lists all physical devices available on this platform.
-
listCLDevices
public CLDevice[] listCLDevices(CLDevice.Type... types)
Lists all physical devices available on this platform matching the givenCLDevice.Type
.
-
listCLDevices
public CLDevice[] listCLDevices(Filter<CLDevice>... filters)
Lists all physical devices available on this platform matching the givenFilter
.
-
createDevice
protected CLDevice createDevice(long id)
-
getMaxFlopsDevice
public CLDevice getMaxFlopsDevice()
Returns the device with maximal FLOPS from this platform. The device speed is estimated by calculating the product of MAX_COMPUTE_UNITS and MAX_CLOCK_FREQUENCY.
-
getMaxFlopsDevice
public CLDevice getMaxFlopsDevice(CLDevice.Type... types)
Returns the device with maximal FLOPS and the specified type from this platform. The device speed is estimated by calculating the product of MAX_COMPUTE_UNITS and MAX_CLOCK_FREQUENCY.
-
getMaxFlopsDevice
public CLDevice getMaxFlopsDevice(Filter<CLDevice>... filter)
Returns the device with maximal FLOPS and the specified type from this platform. The device speed is estimated by calculating the product of MAX_COMPUTE_UNITS and MAX_CLOCK_FREQUENCY.
-
getName
public String getName()
Returns the platform name.
-
getVersion
public CLVersion getVersion()
Returns the OpenCL version supported by this platform.
-
getSpecVersion
public String getSpecVersion()
Returns the OpenCL Specification version supported by this platform.
-
isAtLeast
public boolean isAtLeast(CLVersion other)
-
isAtLeast
public boolean isAtLeast(int major, int minor)
- See Also:
CLVersion.isAtLeast(int, int)
-
getProfile
public String getProfile()
Returns the platform profile.
-
getVendor
public String getVendor()
Returns the platform vendor.
-
isVendorAMD
public boolean isVendorAMD()
- Returns:
- true if the vendor is AMD.
-
isVendorIntel
public boolean isVendorIntel()
- Returns:
- true if the vendor is Intel.
-
getICDSuffix
public String getICDSuffix()
Returns the ICD suffix.
-
isExtensionAvailable
public boolean isExtensionAvailable(String extension)
Returns true if the extension is supported on this platform.
-
getExtensions
public Set<String> getExtensions()
Returns all platform extension names as unmodifiable Set.
-
getProperties
public Map<String,String> getProperties()
Returns a Map of platform properties with the enum names as keys.
-
getInfoString
public final String getInfoString(int key)
Returns a info string in exchange for a key (CL_PLATFORM_*).
-
getCLAccessor
public final CLPlatformInfoAccessor getCLAccessor()
-
getCLBinding
protected CL getCLBinding()
-
-