pub struct CpuRuntime { /* private fields */ }Expand description
Built-in single-rank CPU runtime.
Implementations§
Source§impl CpuRuntime
impl CpuRuntime
Sourcepub fn new(threads: usize) -> Result<Self>
pub fn new(threads: usize) -> Result<Self>
Construct a local CPU runtime with a positive worker count.
Sourcepub fn from_profile(profile: ExecutionProfile) -> Result<Self>
pub fn from_profile(profile: ExecutionProfile) -> Result<Self>
Resolve a profile against the built-in runtime.
Unsupported profiles fail explicitly so a requested GPU or MPI run cannot be mistaken for a successful serial CPU calculation.
Sourcepub const fn profile(self) -> ExecutionProfile
pub const fn profile(self) -> ExecutionProfile
Return the validated profile used to construct this runtime.
Sourcepub fn map_ordered<T, U, F>(&self, items: &[T], operation: F) -> Result<Vec<U>>
pub fn map_ordered<T, U, F>(&self, items: &[T], operation: F) -> Result<Vec<U>>
Apply an independent operation with bounded shared-memory parallelism.
Results and errors are returned in input order regardless of worker scheduling. A one-thread profile executes through the same contract.
Trait Implementations§
Source§impl Clone for CpuRuntime
impl Clone for CpuRuntime
Source§fn clone(&self) -> CpuRuntime
fn clone(&self) -> CpuRuntime
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CpuRuntime
impl Debug for CpuRuntime
Source§impl PartialEq for CpuRuntime
impl PartialEq for CpuRuntime
Source§fn eq(&self, other: &CpuRuntime) -> bool
fn eq(&self, other: &CpuRuntime) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Runtime for CpuRuntime
impl Runtime for CpuRuntime
Source§fn capabilities(&self) -> RuntimeCapabilities
fn capabilities(&self) -> RuntimeCapabilities
Report the execution resources supplied by this runtime.
Source§fn upload(&self, values: &[Complex64]) -> Result<Self::Buffer>
fn upload(&self, values: &[Complex64]) -> Result<Self::Buffer>
Copy a host slice into backend-owned storage.
Source§fn to_host(&self, buffer: &Self::Buffer) -> Result<Vec<Complex64>>
fn to_host(&self, buffer: &Self::Buffer) -> Result<Vec<Complex64>>
Copy backend-owned storage to the host.
Source§fn fill(&self, buffer: &mut Self::Buffer, value: Complex64) -> Result<()>
fn fill(&self, buffer: &mut Self::Buffer, value: Complex64) -> Result<()>
Fill a backend buffer with one complex value.
Source§fn axpy(
&self,
alpha: Complex64,
input: &Self::Buffer,
output: &mut Self::Buffer,
) -> Result<()>
fn axpy( &self, alpha: Complex64, input: &Self::Buffer, output: &mut Self::Buffer, ) -> Result<()>
Compute
output += alpha * input.Source§fn scale(&self, alpha: Complex64, buffer: &mut Self::Buffer) -> Result<()>
fn scale(&self, alpha: Complex64, buffer: &mut Self::Buffer) -> Result<()>
Scale a vector in place.
impl Copy for CpuRuntime
impl Eq for CpuRuntime
impl StructuralPartialEq for CpuRuntime
Auto Trait Implementations§
impl Freeze for CpuRuntime
impl RefUnwindSafe for CpuRuntime
impl Send for CpuRuntime
impl Sync for CpuRuntime
impl Unpin for CpuRuntime
impl UnsafeUnpin for CpuRuntime
impl UnwindSafe for CpuRuntime
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<O> RuntimeAdjointLinearOperator<CpuRuntime> for Owhere
O: LinearOperator + ?Sized,
impl<O> RuntimeAdjointLinearOperator<CpuRuntime> for Owhere
O: LinearOperator + ?Sized,
Source§fn apply_adjoint_on(
&self,
_runtime: &CpuRuntime,
input: &CpuBuffer,
output: &mut CpuBuffer,
) -> Result<(), QmbedError>
fn apply_adjoint_on( &self, _runtime: &CpuRuntime, input: &CpuBuffer, output: &mut CpuBuffer, ) -> Result<(), QmbedError>
Compute
output = A† * input in runtime-owned storage.Source§impl<O> RuntimeLinearOperator<CpuRuntime> for Owhere
O: LinearOperator + ?Sized,
impl<O> RuntimeLinearOperator<CpuRuntime> for Owhere
O: LinearOperator + ?Sized,
Source§fn runtime_shape(&self) -> (usize, usize)
fn runtime_shape(&self) -> (usize, usize)
Return
(rows, columns) in runtime coordinates.Source§fn apply_on(
&self,
_runtime: &CpuRuntime,
input: &CpuBuffer,
output: &mut CpuBuffer,
) -> Result<(), QmbedError>
fn apply_on( &self, _runtime: &CpuRuntime, input: &CpuBuffer, output: &mut CpuBuffer, ) -> Result<(), QmbedError>
Apply this map to backend-owned buffers.
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.