Trait ocl_extras::full_device_info::FullDeviceInfo
source · pub trait FullDeviceInfo {
Show 76 methods
fn device_type(&self) -> OclResult<DeviceType>;
fn vendor_id(&self) -> OclResult<u32>;
fn max_compute_units(&self) -> OclResult<u32>;
fn max_work_item_dimensions(&self) -> OclResult<u32>;
fn max_work_group_size(&self) -> OclResult<usize>;
fn max_work_item_sizes(&self) -> OclResult<Vec<usize>>;
fn preferred_vector_width_char(&self) -> OclResult<u32>;
fn preferred_vector_width_short(&self) -> OclResult<u32>;
fn preferred_vector_width_int(&self) -> OclResult<u32>;
fn preferred_vector_width_long(&self) -> OclResult<u32>;
fn preferred_vector_width_float(&self) -> OclResult<u32>;
fn preferred_vector_width_double(&self) -> OclResult<u32>;
fn max_clock_frequency(&self) -> OclResult<u32>;
fn address_bits(&self) -> OclResult<u32>;
fn max_read_image_args(&self) -> OclResult<u32>;
fn max_write_image_args(&self) -> OclResult<u32>;
fn max_mem_alloc_size(&self) -> OclResult<u64>;
fn image2d_max_width(&self) -> OclResult<usize>;
fn image2d_max_height(&self) -> OclResult<usize>;
fn image3d_max_width(&self) -> OclResult<usize>;
fn image3d_max_height(&self) -> OclResult<usize>;
fn image3d_max_depth(&self) -> OclResult<usize>;
fn image_support(&self) -> OclResult<bool>;
fn max_parameter_size(&self) -> OclResult<usize>;
fn max_samplers(&self) -> OclResult<u32>;
fn mem_base_addr_align(&self) -> OclResult<u32>;
fn min_data_type_align_size(&self) -> OclResult<u32>;
fn single_fp_config(&self) -> OclResult<DeviceFpConfig>;
fn global_mem_cache_type(&self) -> OclResult<DeviceMemCacheType>;
fn global_mem_cacheline_size(&self) -> OclResult<u32>;
fn global_mem_cache_size(&self) -> OclResult<u64>;
fn global_mem_size(&self) -> OclResult<u64>;
fn max_constant_buffer_size(&self) -> OclResult<u64>;
fn max_constant_args(&self) -> OclResult<u32>;
fn local_mem_type(&self) -> OclResult<DeviceLocalMemType>;
fn local_mem_size(&self) -> OclResult<u64>;
fn error_correction_support(&self) -> OclResult<bool>;
fn profiling_timer_resolution(&self) -> OclResult<usize>;
fn endian_little(&self) -> OclResult<bool>;
fn available(&self) -> OclResult<bool>;
fn compiler_available(&self) -> OclResult<bool>;
fn execution_capabilities(&self) -> OclResult<DeviceExecCapabilities>;
fn queue_properties(&self) -> OclResult<CommandQueueProperties>;
fn name(&self) -> OclResult<String>;
fn vendor(&self) -> OclResult<String>;
fn driver_version(&self) -> OclResult<String>;
fn profile(&self) -> OclResult<String>;
fn version(&self) -> OclResult<OpenclVersion>;
fn extensions(&self) -> OclResult<String>;
fn platform(&self) -> OclResult<PlatformId>;
fn double_fp_config(&self) -> OclResult<DeviceFpConfig>;
fn half_fp_config(&self) -> OclResult<DeviceFpConfig>;
fn preferred_vector_width_half(&self) -> OclResult<u32>;
fn host_unified_memory(&self) -> OclResult<bool>;
fn native_vector_width_char(&self) -> OclResult<u32>;
fn native_vector_width_short(&self) -> OclResult<u32>;
fn native_vector_width_int(&self) -> OclResult<u32>;
fn native_vector_width_long(&self) -> OclResult<u32>;
fn native_vector_width_float(&self) -> OclResult<u32>;
fn native_vector_width_double(&self) -> OclResult<u32>;
fn native_vector_width_half(&self) -> OclResult<u32>;
fn opencl_c_version(&self) -> OclResult<String>;
fn linker_available(&self) -> OclResult<bool>;
fn built_in_kernels(&self) -> OclResult<String>;
fn image_max_buffer_size(&self) -> OclResult<usize>;
fn image_max_array_size(&self) -> OclResult<usize>;
fn parent_device(&self) -> OclResult<Option<DeviceId>>;
fn partition_max_sub_devices(&self) -> OclResult<u32>;
fn partition_properties(&self) -> OclResult<Vec<DevicePartitionProperty>>;
fn partition_affinity_domain(&self) -> OclResult<DeviceAffinityDomain>;
fn partition_type(&self) -> OclResult<Vec<DevicePartitionProperty>>;
fn reference_count(&self) -> OclResult<u32>;
fn preferred_interop_user_sync(&self) -> OclResult<bool>;
fn printf_buffer_size(&self) -> OclResult<usize>;
fn image_pitch_alignment(&self) -> OclResult<u32>;
fn image_base_address_alignment(&self) -> OclResult<u32>;
}
Expand description
Provides a more convenient and safe interface to access less commonly used device information.
The methods return the appropriate type for the given device info, rather than a
DeviceInfoResult
which must then be manually converted. This saves a significant amount of
boilerplate when querying multiple different types of device information or using ones which
don’t already have a method on Device
.
Examples
Instead of using device.info
like this…
let compute_units = match device.info(DeviceInfo::MaxComputeUnits)? {
DeviceInfoResult::MaxComputeUnits(c) => c,
_ => panic!("...")
};
…you can use the trait and then call the method for whichever device information you need:
use ocl-extras::full_device_info::FullDeviceInfo;
let compute_units = device.max_compute_units()?;