1 package net.bmahe.genetics4j.gpu.opencl.model; 2 3 import java.util.Set; 4 5 import org.immutables.value.Value; 6 import org.jocl.cl_device_id; 7 8 @Value.Immutable 9 public interface Device { 10 11 cl_device_id deviceId(); 12 13 String name(); 14 15 String vendor(); 16 17 String deviceVersion(); 18 19 String driverVersion(); 20 21 int maxClockFrequency(); 22 23 Set<DeviceType> deviceType(); 24 25 Set<String> builtInKernels(); 26 27 int maxComputeUnits(); 28 29 int maxWorkItemDimensions(); 30 31 long maxWorkGroupSize(); 32 33 long[] maxWorkItemSizes(); 34 35 boolean imageSupport(); 36 37 int preferredVectorWidthFloat(); 38 39 static ImmutableDevice.Builder builder() { 40 return ImmutableDevice.builder(); 41 } 42 }