Skip to content

Commit

Permalink
Add device methods for issue #44
Browse files Browse the repository at this point in the history
  • Loading branch information
kenba committed Nov 20, 2021
1 parent 55c2ce0 commit 9f38713
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 5 deletions.
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ cl_arm_shared_virtual_memory = ["cl3/cl_arm_shared_virtual_memory"]
cl_intel_accelerator = ["cl3/cl_intel_accelerator"]
cl_intel_unified_shared_memory = ["cl3/cl_intel_unified_shared_memory"]
cl_intel_create_buffer_with_properties = ["cl3/cl_intel_create_buffer_with_properties"]
cl_khr_command_buffer = ["cl3/cl_khr_command_buffer"]

cl_khr_gl_sharing = ["cl3/cl_khr_gl_sharing"]
cl_khr_gl_event = ["cl3/cl_khr_gl_event"]
Expand Down
47 changes: 42 additions & 5 deletions src/device.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@ pub use cl3::ffi::cl_ext::{
cl_device_integer_dot_product_acceleration_properties_khr,
CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_4x8BIT_PACKED_KHR,
CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD, CL_DEVICE_BOARD_NAME_AMD,
CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV, CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV,
CL_DEVICE_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR, CL_DEVICE_FEATURE_CAPABILITIES_INTEL,
CL_DEVICE_GFXIP_MAJOR_AMD, CL_DEVICE_GFXIP_MINOR_AMD, CL_DEVICE_GLOBAL_FREE_MEMORY_AMD,
CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD,
CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD, CL_DEVICE_GPU_OVERLAP_NV, CL_DEVICE_ID_INTEL,
CL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR,
CL_DEVICE_COMMAND_BUFFER_REQUIRED_QUEUE_PROPERTIES_KHR, CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV,
CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV, CL_DEVICE_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR,
CL_DEVICE_FEATURE_CAPABILITIES_INTEL, CL_DEVICE_GFXIP_MAJOR_AMD, CL_DEVICE_GFXIP_MINOR_AMD,
CL_DEVICE_GLOBAL_FREE_MEMORY_AMD, CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD,
CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD,
CL_DEVICE_GPU_OVERLAP_NV, CL_DEVICE_ID_INTEL,
CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR,
CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR, CL_DEVICE_INTEGRATED_MEMORY_NV,
CL_DEVICE_IP_VERSION_INTEL, CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV, CL_DEVICE_LOCAL_MEM_BANKS_AMD,
Expand Down Expand Up @@ -912,6 +914,18 @@ impl Device {
Ok(get_device_info(self.id(), CL_DEVICE_SEMAPHORE_TYPES_KHR)?.into())
}

pub fn device_command_buffer_capabilities_khr(&self) -> Result<cl_ulong> {
Ok(get_device_info(self.id(), CL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR)?.into())
}

pub fn device_command_buffer_required_queue_properties_khr(&self) -> Result<cl_ulong> {
Ok(get_device_info(
self.id(),
CL_DEVICE_COMMAND_BUFFER_REQUIRED_QUEUE_PROPERTIES_KHR,
)?
.into())
}

/// Get data about an OpenCL device.
/// Calls clGetDeviceInfo to get the desired data about the device.
pub fn get_data(&self, param_name: cl_device_info) -> Result<Vec<u8>> {
Expand Down Expand Up @@ -2162,5 +2176,28 @@ mod tests {
e, e
),
};

match device.device_command_buffer_capabilities_khr() {
Ok(value) => {
println!("CL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR: {:?}", value)
}
Err(e) => println!(
"OpenCL error, CL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR: {:?}, {}",
e, e
),
};

match device.device_command_buffer_required_queue_properties_khr() {
Ok(value) => {
println!(
"CL_DEVICE_COMMAND_BUFFER_REQUIRED_QUEUE_PROPERTIES_KHR: {:?}",
value
)
}
Err(e) => println!(
"OpenCL error, CL_DEVICE_COMMAND_BUFFER_REQUIRED_QUEUE_PROPERTIES_KHR: {:?}, {}",
e, e
),
};
}
}

0 comments on commit 9f38713

Please sign in to comment.