alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind > Struct Template Reference

Concept for a combination of an API and device kind. More...

#include <DeviceSpec.hpp>

Public Member Functions

constexpr DeviceSpec ()=default
constexpr DeviceSpec (T_Api api, T_DeviceKind deviceType)
template<alpaka::concepts::DeviceSpec T_DeviceSpec>
constexpr DeviceSpec (T_DeviceSpec any)
constexpr T_Api getApi () const
constexpr T_DeviceKind getDeviceKind () const
std::string getName () const

Static Public Member Functions

static constexpr bool isValid ()
 Checks if the device kind and api combination is valid.

Private Attributes

T_Api m_api
T_DeviceKind m_deviceType

Detailed Description

template<alpaka::concepts::Api T_Api, alpaka::concepts::DeviceKind T_DeviceKind>
struct alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind >

Concept for a combination of an API and device kind.

A device specification means the combination of an API and a device kind. Multiple instances of alpaka::onHost::Device can exist for the same device specification, for example in the form of multiple GPUs of the same type in one system.

To check whether a specific combination is valid, i.e., whether an API can target a device kind, the static isValid() method can be used.

Definition at line 28 of file DeviceSpec.hpp.

Constructor & Destructor Documentation

◆ DeviceSpec() [1/3]

template<alpaka::concepts::Api T_Api, alpaka::concepts::DeviceKind T_DeviceKind>
alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind >::DeviceSpec ( T_Api api,
T_DeviceKind deviceType )
inlineconstexpr

Definition at line 31 of file DeviceSpec.hpp.

◆ DeviceSpec() [2/3]

template<alpaka::concepts::Api T_Api, alpaka::concepts::DeviceKind T_DeviceKind>
template<alpaka::concepts::DeviceSpec T_DeviceSpec>
alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind >::DeviceSpec ( T_DeviceSpec< T_Api, T_DeviceKind > any)
inlineconstexpr

Definition at line 36 of file DeviceSpec.hpp.

◆ DeviceSpec() [3/3]

template<alpaka::concepts::Api T_Api, alpaka::concepts::DeviceKind T_DeviceKind>
alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind >::DeviceSpec ( )
constexprdefault

Member Function Documentation

◆ getApi()

template<alpaka::concepts::Api T_Api, alpaka::concepts::DeviceKind T_DeviceKind>
T_Api alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind >::getApi ( ) const
inlineconstexpr

Definition at line 49 of file DeviceSpec.hpp.

◆ getDeviceKind()

template<alpaka::concepts::Api T_Api, alpaka::concepts::DeviceKind T_DeviceKind>
T_DeviceKind alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind >::getDeviceKind ( ) const
inlineconstexpr

Definition at line 44 of file DeviceSpec.hpp.

◆ getName()

template<alpaka::concepts::Api T_Api, alpaka::concepts::DeviceKind T_DeviceKind>
std::string alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind >::getName ( ) const
inline

Definition at line 54 of file DeviceSpec.hpp.

◆ isValid()

template<alpaka::concepts::Api T_Api, alpaka::concepts::DeviceKind T_DeviceKind>
constexpr bool alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind >::isValid ( )
inlinestaticconstexpr

Checks if the device kind and api combination is valid.

Reasons why a combination is valid can be that the api does not know how to talk to a device or that the required dependencies e.g. CUDA, HIP, or OneApi are not fulfilled.

Returns
true if the device kind and api combination is valid, else false

Definition at line 66 of file DeviceSpec.hpp.

Member Data Documentation

◆ m_api

template<alpaka::concepts::Api T_Api, alpaka::concepts::DeviceKind T_DeviceKind>
T_Api alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind >::m_api
private

Definition at line 75 of file DeviceSpec.hpp.

◆ m_deviceType

template<alpaka::concepts::Api T_Api, alpaka::concepts::DeviceKind T_DeviceKind>
T_DeviceKind alpaka::onHost::DeviceSpec< T_Api, T_DeviceKind >::m_deviceType
private

Definition at line 76 of file DeviceSpec.hpp.


The documentation for this struct was generated from the following file: