@Override public List<LwjglDevice> getDevices() { if (devices == null) { devices = new ArrayList<>(); for (long d : getDevices(CL10.CL_DEVICE_TYPE_ALL)) { devices.add(new LwjglDevice(d, this)); } } return devices; }
@Override public int getCompilerVersionMajor() { return Utils.getMajorVersion(getCompilerVersion(), "OpenCL C "); }
@Override public long getMaxWorkGroupSize(Device device) { CLDevice d = ((LwjglDevice) device).getDevice(); return kernel.getWorkGroupInfoSize(d, CL10.CL_KERNEL_WORK_GROUP_SIZE); }
private String Log() { StringBuilder str = new StringBuilder(); for (LwjglDevice device : context.getDevices()) { CLDevice d = device.getDevice(); str.append(device.getName()).append(":\n"); str.append(program.getBuildInfoString(d, CL10.CL_PROGRAM_BUILD_LOG)); str.append('\n'); } return str.toString(); }
LwjglDevice device = devices.get(j); platformInfos.append("\n * * Device ").append(j+1); platformInfos.append("\n * * Name: ").append(device.getName()); platformInfos.append("\n * * Vendor: ").append(device.getVendor()); platformInfos.append("\n * * Version: ").append(device.getVersion()); platformInfos.append("\n * * Profile: ").append(device.getProfile()); platformInfos.append("\n * * Compiler version: ").append(device.getCompilerVersion()); platformInfos.append("\n * * Device type: ").append(device.getDeviceType()); platformInfos.append("\n * * Compute units: ").append(device.getComputeUnits()); platformInfos.append("\n * * Work group size: ").append(device.getMaxiumWorkItemsPerGroup()); platformInfos.append("\n * * Global memory: ").append(device.getGlobalMemorySize()).append("B"); platformInfos.append("\n * * Local memory: ").append(device.getLocalMemorySize()).append("B"); platformInfos.append("\n * * Constant memory: ").append(device.getMaximumConstantBufferSize()).append("B"); platformInfos.append("\n * * Supports double: ").append(device.hasDouble()); platformInfos.append("\n * * Supports half floats: ").append(device.hasHalfFloat()); platformInfos.append("\n * * Supports writable 3d images: ").append(device.hasWritableImage3D()); platformInfos.append("\n * * Supports interop: ").append(device.hasOpenGLInterop()); platform = ld.getPlatform(); } else if (platform != ld.getPlatform()) { logger.severe("attempt to use devices from different platforms"); return; devices.add(ld.getDevice());
@Override public int getDriverVersionMinor() { return Utils.getMinorVersion(getDriverVersion(), ""); }
@Override public boolean hasExtension(String extension) { return getExtensions().contains(extension); }
LwjglDevice device = devices.get(j); platformInfos.append("\n * * Device ").append(j + 1); platformInfos.append("\n * * Name: ").append(device.getName()); platformInfos.append("\n * * Vendor: ").append(device.getVendor()); platformInfos.append("\n * * Version: ").append(device.getVersion()); platformInfos.append("\n * * Profile: ").append(device.getProfile()); platformInfos.append("\n * * Compiler version: ").append(device.getCompilerVersion()); platformInfos.append("\n * * Device type: ").append(device.getDeviceType()); platformInfos.append("\n * * Compute units: ").append(device.getComputeUnits()); platformInfos.append("\n * * Work group size: ").append(device.getMaxiumWorkItemsPerGroup()); platformInfos.append("\n * * Global memory: ").append(device.getGlobalMemorySize()).append("B"); platformInfos.append("\n * * Local memory: ").append(device.getLocalMemorySize()).append("B"); platformInfos.append("\n * * Constant memory: ").append(device.getMaximumConstantBufferSize()).append("B"); platformInfos.append("\n * * Supports double: ").append(device.hasDouble()); platformInfos.append("\n * * Supports half floats: ").append(device.hasHalfFloat()); platformInfos.append("\n * * Supports writable 3d images: ").append(device.hasWritableImage3D()); platformInfos.append("\n * * Supports interop: ").append(device.hasOpenGLInterop());
private String Log() { StringBuilder str = new StringBuilder(); for (LwjglDevice device : context.getDevices()) { long d = device.getDevice(); str.append(device.getName()).append(":\n"); //str.append(Info.clGetProgramBuildInfoStringASCII(program, d, CL10.CL_PROGRAM_BUILD_LOG)); //This throws an IllegalArgumentException in Buffer.limit() str.append(Log(d)); str.append('\n'); } return str.toString(); }
@Override public int getDriverVersionMajor() { return Utils.getMajorVersion(getDriverVersion(), ""); }
@Override public boolean hasExtension(String extension) { return getExtensions().contains(extension); }
LwjglDevice device = devices.get(j); platformInfos.append("\n * * Device ").append(j+1); platformInfos.append("\n * * Name: ").append(device.getName()); platformInfos.append("\n * * Vendor: ").append(device.getVendor()); platformInfos.append("\n * * Version: ").append(device.getVersion()); platformInfos.append("\n * * Profile: ").append(device.getProfile()); platformInfos.append("\n * * Compiler version: ").append(device.getCompilerVersion()); platformInfos.append("\n * * Device type: ").append(device.getDeviceType()); platformInfos.append("\n * * Compute units: ").append(device.getComputeUnits()); platformInfos.append("\n * * Work group size: ").append(device.getMaxiumWorkItemsPerGroup()); platformInfos.append("\n * * Global memory: ").append(device.getGlobalMemorySize()).append("B"); platformInfos.append("\n * * Local memory: ").append(device.getLocalMemorySize()).append("B"); platformInfos.append("\n * * Constant memory: ").append(device.getMaximumConstantBufferSize()).append("B"); platformInfos.append("\n * * Supports double: ").append(device.hasDouble()); platformInfos.append("\n * * Supports half floats: ").append(device.hasHalfFloat()); platformInfos.append("\n * * Supports writable 3d images: ").append(device.hasWritableImage3D()); platformInfos.append("\n * * Supports interop: ").append(device.hasOpenGLInterop()); platform = ld.getPlatform(); } else if (platform != ld.getPlatform()) { logger.severe("attempt to use devices from different platforms"); return; devices.add(ld.getDevice());
@Override public long getMaxWorkGroupSize(Device device) { long d = ((LwjglDevice) device).getDevice(); return Info.clGetKernelWorkGroupInfoPointer(kernel, d, CL10.CL_KERNEL_WORK_GROUP_SIZE); }
private String Log() { StringBuilder str = new StringBuilder(); for (LwjglDevice device : context.getDevices()) { long d = device.getDevice(); str.append(device.getName()).append(":\n"); //str.append(Info.clGetProgramBuildInfoStringASCII(program, d, CL10.CL_PROGRAM_BUILD_LOG)); //This throws an IllegalArgumentException in Buffer.limit() str.append(Log(d)); str.append('\n'); } return str.toString(); }
@Override public int getCompilerVersionMajor() { return Utils.getMajorVersion(getCompilerVersion(), "OpenCL C "); }
@Override public int getDriverVersionMinor() { return Utils.getMinorVersion(getDriverVersion(), ""); }
@Override public boolean hasExtension(String extension) { return getExtensions().contains(extension); }
@Override public List<LwjglDevice> getDevices() { if (devices == null) { devices = new ArrayList<>(); for (CLDevice d : platform.getDevices(CL10.CL_DEVICE_TYPE_ALL)) { devices.add(new LwjglDevice(d, this)); } } return devices; }
@Override @SuppressWarnings("element-type-mismatch") public CommandQueue createQueue(Device device) { assert (devices.contains(device)); //this also ensures that device is a LwjglDevice long d = ((LwjglDevice) device).getDevice(); long properties = 0; long q = CL10.clCreateCommandQueue(context, d, properties, Utils.errorBuffer); Utils.checkError(Utils.errorBuffer, "clCreateCommandQueue"); return new LwjglCommandQueue(q, device); }
@Override public int getCompilerVersionMinor() { return Utils.getMinorVersion(getCompilerVersion(), "OpenCL C "); }