Device

Struct Device 

Source
pub struct Device(/* private fields */);
Expand description

The Device struct encapsulates a single SYCL device on which kernels can be executed.

The Device struct provides the common reference semantics.

Implementations§

Source§

impl Device

Source

pub fn get_devices() -> Vec<Self>

Returns a Vec containing all the root devices from all SYCL backends available in the system which have the device type encapsulated by DeviceType.

Source

pub fn get_platform(&self) -> Platform

Returns the associated SYCL platform.

Source

pub fn has(&self, aspect: Aspect) -> bool

Returns whether this device has the requested aspect.

Source

pub fn can_access_peer(&mut self, peer: &Device, value: PeerAccess) -> bool

Queries the peer access status between this device and peer according to the query value.

PeerAccess::AccessSupported: Returns true only if it is possible for this device to enable peer access to USM device memory allocations located on the peer device.

PeerAccess::AtomicsSupported: When this query returns true, it indicates that this device may concurrently access and atomically modify USM device memory allocations located on the peer device when peer access is enabled to that device.

Source

pub fn enable_peer_access(&mut self, peer: &Device) -> Result<()>

Enables this device to access USM device allocations located on the peer device. This does not permit the peer device to access this device’s memory.

Once this access is enabled, SYCL kernel functions and the explicit memory functions may access USM device allocations on the peer device subject to the normal rules about context as described in the core SYCL specification.

Source

pub fn disable_peer_access(&mut self, peer: &Device) -> Result<()>

Disables access to the peer device’s memory from this device.

Trait Implementations§

Source§

impl Clone for Device

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl From<&Device> for Queue

Source§

fn from(value: &Device) -> Self

Converts to this type from the input type.
Source§

impl From<UniquePtr<Device>> for Device

Source§

fn from(value: UniquePtr<Device>) -> Self

Converts to this type from the input type.
Source§

impl InfoTarget for Device

Source§

fn get_info<T: Info<Target = Self>>(&self) -> T::Item

Queries this object for information requested by given generic parameter.

Auto Trait Implementations§

§

impl Freeze for Device

§

impl RefUnwindSafe for Device

§

impl Send for Device

§

impl Sync for Device

§

impl Unpin for Device

§

impl UnwindSafe for Device

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.