annotate opencl/device.d @ 3:c78ffc9a7434 default tip

* corrected import declarations * fixed bug in Program
author Trass3r
date Thu, 15 Apr 2010 03:20:03 +0200
parents 3cea44337083
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3cea44337083 initial commit
Trass3r
parents:
diff changeset
1 /**
3cea44337083 initial commit
Trass3r
parents:
diff changeset
2 *
3cea44337083 initial commit
Trass3r
parents:
diff changeset
3 */
3cea44337083 initial commit
Trass3r
parents:
diff changeset
4 module opencl.device;
3cea44337083 initial commit
Trass3r
parents:
diff changeset
5
3
c78ffc9a7434 * corrected import declarations
Trass3r
parents: 0
diff changeset
6 import opencl.c.cl;
0
3cea44337083 initial commit
Trass3r
parents:
diff changeset
7 import opencl.platform;
3cea44337083 initial commit
Trass3r
parents:
diff changeset
8 import opencl.wrapper;
3cea44337083 initial commit
Trass3r
parents:
diff changeset
9
3cea44337083 initial commit
Trass3r
parents:
diff changeset
10 /// device class
3cea44337083 initial commit
Trass3r
parents:
diff changeset
11 class CLDevice : CLWrapper!(cl_device_id, clGetDeviceInfo)
3cea44337083 initial commit
Trass3r
parents:
diff changeset
12 {
3cea44337083 initial commit
Trass3r
parents:
diff changeset
13 private:
3cea44337083 initial commit
Trass3r
parents:
diff changeset
14 CLPlatform _platform;
3cea44337083 initial commit
Trass3r
parents:
diff changeset
15
3cea44337083 initial commit
Trass3r
parents:
diff changeset
16 public:
3
c78ffc9a7434 * corrected import declarations
Trass3r
parents: 0
diff changeset
17 /// need a constructor without platform, if we need to wrap a retrieved cl_device_id
c78ffc9a7434 * corrected import declarations
Trass3r
parents: 0
diff changeset
18 this(cl_device_id device)
c78ffc9a7434 * corrected import declarations
Trass3r
parents: 0
diff changeset
19 {
c78ffc9a7434 * corrected import declarations
Trass3r
parents: 0
diff changeset
20 super(device);
c78ffc9a7434 * corrected import declarations
Trass3r
parents: 0
diff changeset
21 // TODO: retrieve platform ID via CL call and set _platform
c78ffc9a7434 * corrected import declarations
Trass3r
parents: 0
diff changeset
22 }
c78ffc9a7434 * corrected import declarations
Trass3r
parents: 0
diff changeset
23
0
3cea44337083 initial commit
Trass3r
parents:
diff changeset
24 ///
3cea44337083 initial commit
Trass3r
parents:
diff changeset
25 this(CLPlatform platform, cl_device_id device)
3cea44337083 initial commit
Trass3r
parents:
diff changeset
26 {
3cea44337083 initial commit
Trass3r
parents:
diff changeset
27 super(device);
3cea44337083 initial commit
Trass3r
parents:
diff changeset
28 _platform = platform;
3cea44337083 initial commit
Trass3r
parents:
diff changeset
29 }
3cea44337083 initial commit
Trass3r
parents:
diff changeset
30
3cea44337083 initial commit
Trass3r
parents:
diff changeset
31 /// get the associated platform
3cea44337083 initial commit
Trass3r
parents:
diff changeset
32 CLPlatform platform() {return _platform;} // TODO: maybe check with GetDeviceInfo if IDs match
3cea44337083 initial commit
Trass3r
parents:
diff changeset
33
3cea44337083 initial commit
Trass3r
parents:
diff changeset
34 /// get device name
3cea44337083 initial commit
Trass3r
parents:
diff changeset
35 string name() {return getStringInfo(CL_DEVICE_NAME);}
3cea44337083 initial commit
Trass3r
parents:
diff changeset
36
3cea44337083 initial commit
Trass3r
parents:
diff changeset
37 /// get device vendor
3cea44337083 initial commit
Trass3r
parents:
diff changeset
38 string vendor() {return getStringInfo(CL_DEVICE_VENDOR);}
3cea44337083 initial commit
Trass3r
parents:
diff changeset
39
3cea44337083 initial commit
Trass3r
parents:
diff changeset
40 /// get device OpenCL driver version in the form major_number.minor_number
3cea44337083 initial commit
Trass3r
parents:
diff changeset
41 string driverVersion() {return getStringInfo(CL_DRIVER_VERSION);}
3cea44337083 initial commit
Trass3r
parents:
diff changeset
42
3cea44337083 initial commit
Trass3r
parents:
diff changeset
43 /**
3cea44337083 initial commit
Trass3r
parents:
diff changeset
44 * get OpenCL profile string
3cea44337083 initial commit
Trass3r
parents:
diff changeset
45 *
3cea44337083 initial commit
Trass3r
parents:
diff changeset
46 * Returns the profile name supported by the device.
3cea44337083 initial commit
Trass3r
parents:
diff changeset
47 * The profile name returned can be one of the following strings:
3cea44337083 initial commit
Trass3r
parents:
diff changeset
48 * FULL_PROFILE - if the device supports the OpenCL specification
3cea44337083 initial commit
Trass3r
parents:
diff changeset
49 * (functionality defined as part of the core specification and does not require
3cea44337083 initial commit
Trass3r
parents:
diff changeset
50 * any extensions to be supported).
3cea44337083 initial commit
Trass3r
parents:
diff changeset
51 *
3cea44337083 initial commit
Trass3r
parents:
diff changeset
52 * EMBEDDED_PROFILE - if the device supports the OpenCL embedded profile.
3cea44337083 initial commit
Trass3r
parents:
diff changeset
53 */
3cea44337083 initial commit
Trass3r
parents:
diff changeset
54 string profile() {return getStringInfo(CL_DEVICE_PROFILE);}
3cea44337083 initial commit
Trass3r
parents:
diff changeset
55
3cea44337083 initial commit
Trass3r
parents:
diff changeset
56 /**
3cea44337083 initial commit
Trass3r
parents:
diff changeset
57 * get OpenCL version string
3cea44337083 initial commit
Trass3r
parents:
diff changeset
58 *
3cea44337083 initial commit
Trass3r
parents:
diff changeset
59 * Returns:
3cea44337083 initial commit
Trass3r
parents:
diff changeset
60 * OpenCL version supported by the device.
3cea44337083 initial commit
Trass3r
parents:
diff changeset
61 * This version string has the following format:
3cea44337083 initial commit
Trass3r
parents:
diff changeset
62 * OpenCL<space><major_version.minor_version><space><vendor-specific information>
3cea44337083 initial commit
Trass3r
parents:
diff changeset
63 */
3cea44337083 initial commit
Trass3r
parents:
diff changeset
64 string clVersion() {return getStringInfo(CL_DEVICE_VERSION);}
3cea44337083 initial commit
Trass3r
parents:
diff changeset
65
3cea44337083 initial commit
Trass3r
parents:
diff changeset
66 /**
3cea44337083 initial commit
Trass3r
parents:
diff changeset
67 * get extensions supported by the device
3cea44337083 initial commit
Trass3r
parents:
diff changeset
68 *
3cea44337083 initial commit
Trass3r
parents:
diff changeset
69 * Returns:
3cea44337083 initial commit
Trass3r
parents:
diff changeset
70 * Returns a space separated list of extension names
3cea44337083 initial commit
Trass3r
parents:
diff changeset
71 * (the extension names themselves do not contain any spaces).
3cea44337083 initial commit
Trass3r
parents:
diff changeset
72 */
3cea44337083 initial commit
Trass3r
parents:
diff changeset
73 string extensions() {return getStringInfo(CL_DEVICE_EXTENSIONS);}
3cea44337083 initial commit
Trass3r
parents:
diff changeset
74
3cea44337083 initial commit
Trass3r
parents:
diff changeset
75
3cea44337083 initial commit
Trass3r
parents:
diff changeset
76 }