blob: dc3c72790aef9475d8238f0d918aea50e3401b2e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package com.mbien.opencl;
import com.mbien.opencl.impl.CLImpl;
/**
*
* @author Michael Bien
*/
public class CLContext {
private final static CL cl;
static{
System.loadLibrary("gluegen-rt");
System.loadLibrary("jocl");
cl = new CLImpl();
}
/**
* Lists all available OpenCL implementaitons.
* @throws CLException if something went wrong initializing OpenCL
*/
public static CLPlatform[] listCLPlatforms() {
int[] intBuffer = new int[1];
// find all available OpenCL platforms
int ret = cl.clGetPlatformIDs(0, null, 0, intBuffer, 0);
if(CL.CL_SUCCESS != ret)
throw new CLException(ret, "can not enumerate platforms");
// receive platform ids
long[] platformId = new long[intBuffer[0]];
ret = cl.clGetPlatformIDs(platformId.length, platformId, 0, null, 0);
if(CL.CL_SUCCESS != ret)
throw new CLException(ret, "can not enumerate platforms");
CLPlatform[] platforms = new CLPlatform[platformId.length];
for (int i = 0; i < platformId.length; i++)
platforms[i] = new CLPlatform(cl, platformId[i]);
return platforms;
}
}
|