\doxysection{gko::\+machine\+\_\+topology Class Reference}
\hypertarget{classgko_1_1machine__topology}{}\label{classgko_1_1machine__topology}\index{gko::machine\_topology@{gko::machine\_topology}}


The machine topology class represents the hierarchical topology of a machine, including NUMA nodes, cores and PCI Devices.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+base/\+machine\+\_\+topology.\+hpp$>$}

\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \doxymbox{\hyperlink{classgko_1_1machine__topology_aa63dcb3e4080720109cf9e48bfc97f42}{bind\+\_\+to\+\_\+cores}} (const std::\+vector$<$ int $>$ \&ids, const bool singlify=true) const
\begin{DoxyCompactList}\small\item\em Bind the calling process to the CPU cores associated with the ids. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1machine__topology_a9a18cb07c0fcc866997c727abfac52d9}{bind\+\_\+to\+\_\+core}} (const int \&id) const
\begin{DoxyCompactList}\small\item\em Bind to a single core. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1machine__topology_a6c1579ec42001ec51ecb7102578bd932}{bind\+\_\+to\+\_\+pus}} (const std::\+vector$<$ int $>$ \&ids, const bool singlify=true) const
\begin{DoxyCompactList}\small\item\em Bind the calling process to PUs associated with the ids. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1machine__topology_a9788d302561048fa91257f71ca9fa4be}{bind\+\_\+to\+\_\+pu}} (const int \&id) const
\begin{DoxyCompactList}\small\item\em Bind to a Processing unit (PU). \end{DoxyCompactList}\item 
const normal\+\_\+obj\+\_\+info \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1machine__topology_ae864a73979eab71c483a1fa98f06e40e}{get\+\_\+pu}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} id) const
\begin{DoxyCompactList}\small\item\em Get the object of type PU associated with the id. \end{DoxyCompactList}\item 
const normal\+\_\+obj\+\_\+info \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1machine__topology_ad858b0c51fc5f1b52e30a99eead96195}{get\+\_\+core}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} id) const
\begin{DoxyCompactList}\small\item\em Get the object of type core associated with the id. \end{DoxyCompactList}\item 
const io\+\_\+obj\+\_\+info \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1machine__topology_a418532af26120076cf61ffe885e8af9e}{get\+\_\+pci\+\_\+device}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} id) const
\begin{DoxyCompactList}\small\item\em Get the object of type pci device associated with the id. \end{DoxyCompactList}\item 
const io\+\_\+obj\+\_\+info \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1machine__topology_a362ec0a57033790a9ce4612eba164a57}{get\+\_\+pci\+\_\+device}} (const std::\+string \&pci\+\_\+bus\+\_\+id) const
\begin{DoxyCompactList}\small\item\em Get the object of type pci device associated with the PCI bus id. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1machine__topology_a5da1e2bca0ff43d4c11f95fadd8b9fbd}{get\+\_\+num\+\_\+pus}} () const
\begin{DoxyCompactList}\small\item\em Get the number of PU objects stored in this Topology tree. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1machine__topology_a7bf12a293f262450787591c656973191}{get\+\_\+num\+\_\+cores}} () const
\begin{DoxyCompactList}\small\item\em Get the number of core objects stored in this Topology tree. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1machine__topology_afd8db0ad172e7aa0727a2f22c6f6eb51}{get\+\_\+num\+\_\+pci\+\_\+devices}} () const
\begin{DoxyCompactList}\small\item\em Get the number of PCI device objects stored in this Topology tree. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1machine__topology_a58f01249d4e688c8cf412d7f97388317}{get\+\_\+num\+\_\+numas}} () const
\begin{DoxyCompactList}\small\item\em Get the number of NUMA objects stored in this Topology tree. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1machine__topology_a0f14524ac34b04a2a0770974aaeb710d}\label{classgko_1_1machine__topology_a0f14524ac34b04a2a0770974aaeb710d} 
void {\bfseries hwloc\+\_\+binding\+\_\+helper} (const std::\+vector$<$ machine\+\_\+topology::\+normal\+\_\+obj\+\_\+info $>$ \&obj, const std::\+vector$<$ int $>$ \&ids, const bool singlify=true) const
\item 
\Hypertarget{classgko_1_1machine__topology_a46e2842809549a56be8e49bb2b93361b}\label{classgko_1_1machine__topology_a46e2842809549a56be8e49bb2b93361b} 
void {\bfseries load\+\_\+objects} (\doxymbox{\hyperlink{structhwloc__obj__type__t}{hwloc\+\_\+obj\+\_\+type\+\_\+t}} type, std::\+vector$<$ normal\+\_\+obj\+\_\+info $>$ \&objects) const
\item 
\Hypertarget{classgko_1_1machine__topology_ae3b3447421dc3f4b5c716e76984f8398}\label{classgko_1_1machine__topology_ae3b3447421dc3f4b5c716e76984f8398} 
void {\bfseries load\+\_\+objects} (\doxymbox{\hyperlink{structhwloc__obj__type__t}{hwloc\+\_\+obj\+\_\+type\+\_\+t}} type, std::\+vector$<$ io\+\_\+obj\+\_\+info $>$ \&vector) const
\item 
\Hypertarget{classgko_1_1machine__topology_adb8576a1962500766029755466543966}\label{classgko_1_1machine__topology_adb8576a1962500766029755466543966} 
int {\bfseries get\+\_\+obj\+\_\+id\+\_\+by\+\_\+os\+\_\+index} (const std::\+vector$<$ normal\+\_\+obj\+\_\+info $>$ \&objects, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} os\+\_\+index) const
\item 
\Hypertarget{classgko_1_1machine__topology_aa81d23d2b4986ec168e46576f96decbb}\label{classgko_1_1machine__topology_aa81d23d2b4986ec168e46576f96decbb} 
int {\bfseries get\+\_\+obj\+\_\+id\+\_\+by\+\_\+gp\+\_\+index} (const std::\+vector$<$ normal\+\_\+obj\+\_\+info $>$ \&objects, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} gp\+\_\+index) const
\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static machine\+\_\+topology \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1machine__topology_a78ca968f9890a1e3d6758136ead05982}{get\+\_\+instance}} ()
\begin{DoxyCompactList}\small\item\em Returns an instance of the \doxylink{classgko_1_1machine__topology}{machine\+\_\+topology} object. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The machine topology class represents the hierarchical topology of a machine, including NUMA nodes, cores and PCI Devices. 

Various information of the machine are gathered with the help of the Hardware Locality library (hwloc).

This class also provides functionalities to bind objects in the topology to the execution objects. Binding can enhance performance by allowing data to be closer to the executing object.

See the hwloc documentation (\href{https://www.open-mpi.org/projects/hwloc/doc/}{\texttt{https:\+/\+/\+www.\+open-\/mpi.\+org/\+projects/\+hwloc/\+doc/\+}}) for more detailed information on topology detection and binding interfaces.

\begin{DoxyNote}{Note}
A global object of \doxylink{classgko_1_1machine__topology}{machine\+\_\+topology} type is created in a thread safe manner and only destroyed at the end of the program. This means that any subsequent queries will be from the same global object and hence use an extra atomic read. 
\end{DoxyNote}


\label{doc-func-members}
\Hypertarget{classgko_1_1machine__topology_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1machine__topology_a9a18cb07c0fcc866997c727abfac52d9}\index{gko::machine\_topology@{gko::machine\_topology}!bind\_to\_core@{bind\_to\_core}}
\index{bind\_to\_core@{bind\_to\_core}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{bind\_to\_core()}{bind\_to\_core()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_a9a18cb07c0fcc866997c727abfac52d9} 
void gko::\+machine\+\_\+topology::\+bind\+\_\+to\+\_\+core (\begin{DoxyParamCaption}\item[{const int \&}]{id}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Bind to a single core. 


\begin{DoxyParams}{Parameters}
{\em ids} & The ids of the core to be bound to the calling process. \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{classgko_1_1machine__topology_aa63dcb3e4080720109cf9e48bfc97f42}{bind\+\_\+to\+\_\+cores()}}, and \doxymbox{\hyperlink{classgko_1_1machine__topology_a78ca968f9890a1e3d6758136ead05982}{get\+\_\+instance()}}.

\Hypertarget{classgko_1_1machine__topology_aa63dcb3e4080720109cf9e48bfc97f42}\index{gko::machine\_topology@{gko::machine\_topology}!bind\_to\_cores@{bind\_to\_cores}}
\index{bind\_to\_cores@{bind\_to\_cores}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{bind\_to\_cores()}{bind\_to\_cores()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_aa63dcb3e4080720109cf9e48bfc97f42} 
void gko::\+machine\+\_\+topology::\+bind\+\_\+to\+\_\+cores (\begin{DoxyParamCaption}\item[{const std::\+vector$<$ int $>$ \&}]{ids}{, }\item[{const bool}]{singlify}{ = {\ttfamily true}}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Bind the calling process to the CPU cores associated with the ids. 


\begin{DoxyParams}{Parameters}
{\em ids} & The ids of cores to be bound. \\
\hline
{\em singlify} & The ids of PUs are singlified to prevent possibly expensive migrations by the OS. This means that the binding is performed for only one of the ids in the set of ids passed in. See hwloc doc for \href{https://www.open-mpi.org/projects/hwloc/doc/v2.4.0/a00175.php\#gaa611a77c092e679246afdf9a60d5db8b}{\texttt{singlify}} \\
\hline
\end{DoxyParams}


Referenced by \doxymbox{\hyperlink{classgko_1_1machine__topology_a9a18cb07c0fcc866997c727abfac52d9}{bind\+\_\+to\+\_\+core()}}.

\Hypertarget{classgko_1_1machine__topology_a9788d302561048fa91257f71ca9fa4be}\index{gko::machine\_topology@{gko::machine\_topology}!bind\_to\_pu@{bind\_to\_pu}}
\index{bind\_to\_pu@{bind\_to\_pu}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{bind\_to\_pu()}{bind\_to\_pu()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_a9788d302561048fa91257f71ca9fa4be} 
void gko::\+machine\+\_\+topology::\+bind\+\_\+to\+\_\+pu (\begin{DoxyParamCaption}\item[{const int \&}]{id}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Bind to a Processing unit (PU). 


\begin{DoxyParams}{Parameters}
{\em ids} & The ids of PUs to be bound to the calling process. \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{classgko_1_1machine__topology_a6c1579ec42001ec51ecb7102578bd932}{bind\+\_\+to\+\_\+pus()}}, and \doxymbox{\hyperlink{classgko_1_1machine__topology_a78ca968f9890a1e3d6758136ead05982}{get\+\_\+instance()}}.

\Hypertarget{classgko_1_1machine__topology_a6c1579ec42001ec51ecb7102578bd932}\index{gko::machine\_topology@{gko::machine\_topology}!bind\_to\_pus@{bind\_to\_pus}}
\index{bind\_to\_pus@{bind\_to\_pus}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{bind\_to\_pus()}{bind\_to\_pus()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_a6c1579ec42001ec51ecb7102578bd932} 
void gko::\+machine\+\_\+topology::\+bind\+\_\+to\+\_\+pus (\begin{DoxyParamCaption}\item[{const std::\+vector$<$ int $>$ \&}]{ids}{, }\item[{const bool}]{singlify}{ = {\ttfamily true}}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Bind the calling process to PUs associated with the ids. 


\begin{DoxyParams}{Parameters}
{\em ids} & The ids of PUs to be bound. \\
\hline
{\em singlify} & The ids of PUs are singlified to prevent possibly expensive migrations by the OS. This means that the binding is performed for only one of the ids in the set of ids passed in. See hwloc doc for \href{https://www.open-mpi.org/projects/hwloc/doc/v2.4.0/a00175.php\#gaa611a77c092e679246afdf9a60d5db8b}{\texttt{singlify}} \\
\hline
\end{DoxyParams}


Referenced by \doxymbox{\hyperlink{classgko_1_1machine__topology_a9788d302561048fa91257f71ca9fa4be}{bind\+\_\+to\+\_\+pu()}}.

\Hypertarget{classgko_1_1machine__topology_ad858b0c51fc5f1b52e30a99eead96195}\index{gko::machine\_topology@{gko::machine\_topology}!get\_core@{get\_core}}
\index{get\_core@{get\_core}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{get\_core()}{get\_core()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_ad858b0c51fc5f1b52e30a99eead96195} 
const normal\+\_\+obj\+\_\+info \texorpdfstring{$\ast$}{*} gko::\+machine\+\_\+topology::\+get\+\_\+core (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{id}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the object of type core associated with the id. 


\begin{DoxyParams}{Parameters}
{\em id} & The id of the core \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the core object struct. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1machine__topology_a78ca968f9890a1e3d6758136ead05982}\index{gko::machine\_topology@{gko::machine\_topology}!get\_instance@{get\_instance}}
\index{get\_instance@{get\_instance}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{get\_instance()}{get\_instance()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_a78ca968f9890a1e3d6758136ead05982} 
machine\+\_\+topology \texorpdfstring{$\ast$}{*} gko::\+machine\+\_\+topology::\+get\+\_\+instance (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Returns an instance of the \doxylink{classgko_1_1machine__topology}{machine\+\_\+topology} object. 

\begin{DoxyReturn}{Returns}
the \doxylink{classgko_1_1machine__topology}{machine\+\_\+topology} instance 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1machine__topology_a9a18cb07c0fcc866997c727abfac52d9}{bind\+\_\+to\+\_\+core()}}, \doxymbox{\hyperlink{classgko_1_1machine__topology_a9788d302561048fa91257f71ca9fa4be}{bind\+\_\+to\+\_\+pu()}}, and \doxymbox{\hyperlink{classgko_1_1OmpExecutor_a157fbc623333a1658f8a3915e7b2da2d}{gko::\+\+Omp\+Executor::\+get\+\_\+description()}}.

\Hypertarget{classgko_1_1machine__topology_a7bf12a293f262450787591c656973191}\index{gko::machine\_topology@{gko::machine\_topology}!get\_num\_cores@{get\_num\_cores}}
\index{get\_num\_cores@{get\_num\_cores}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{get\_num\_cores()}{get\_num\_cores()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_a7bf12a293f262450787591c656973191} 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} gko::\+machine\+\_\+topology::\+get\+\_\+num\+\_\+cores (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the number of core objects stored in this Topology tree. 

\begin{DoxyReturn}{Returns}
the number of cores. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1machine__topology_a58f01249d4e688c8cf412d7f97388317}\index{gko::machine\_topology@{gko::machine\_topology}!get\_num\_numas@{get\_num\_numas}}
\index{get\_num\_numas@{get\_num\_numas}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{get\_num\_numas()}{get\_num\_numas()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_a58f01249d4e688c8cf412d7f97388317} 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} gko::\+machine\+\_\+topology::\+get\+\_\+num\+\_\+numas (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the number of NUMA objects stored in this Topology tree. 

\begin{DoxyReturn}{Returns}
the number of NUMA objects. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1machine__topology_afd8db0ad172e7aa0727a2f22c6f6eb51}\index{gko::machine\_topology@{gko::machine\_topology}!get\_num\_pci\_devices@{get\_num\_pci\_devices}}
\index{get\_num\_pci\_devices@{get\_num\_pci\_devices}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{get\_num\_pci\_devices()}{get\_num\_pci\_devices()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_afd8db0ad172e7aa0727a2f22c6f6eb51} 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} gko::\+machine\+\_\+topology::\+get\+\_\+num\+\_\+pci\+\_\+devices (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the number of PCI device objects stored in this Topology tree. 

\begin{DoxyReturn}{Returns}
the number of PCI devices. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1machine__topology_a5da1e2bca0ff43d4c11f95fadd8b9fbd}\index{gko::machine\_topology@{gko::machine\_topology}!get\_num\_pus@{get\_num\_pus}}
\index{get\_num\_pus@{get\_num\_pus}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{get\_num\_pus()}{get\_num\_pus()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_a5da1e2bca0ff43d4c11f95fadd8b9fbd} 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} gko::\+machine\+\_\+topology::\+get\+\_\+num\+\_\+pus (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the number of PU objects stored in this Topology tree. 

\begin{DoxyReturn}{Returns}
the number of PUs. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1machine__topology_a362ec0a57033790a9ce4612eba164a57}\index{gko::machine\_topology@{gko::machine\_topology}!get\_pci\_device@{get\_pci\_device}}
\index{get\_pci\_device@{get\_pci\_device}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{get\_pci\_device()}{get\_pci\_device()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_a362ec0a57033790a9ce4612eba164a57} 
const io\+\_\+obj\+\_\+info \texorpdfstring{$\ast$}{*} gko::\+machine\+\_\+topology::\+get\+\_\+pci\+\_\+device (\begin{DoxyParamCaption}\item[{const std::\+string \&}]{pci\+\_\+bus\+\_\+id}{}\end{DoxyParamCaption}) const}



Get the object of type pci device associated with the PCI bus id. 


\begin{DoxyParams}{Parameters}
{\em pci\+\_\+bus\+\_\+id} & The PCI bus id of the pci device \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the PCI object struct. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1machine__topology_a418532af26120076cf61ffe885e8af9e}\index{gko::machine\_topology@{gko::machine\_topology}!get\_pci\_device@{get\_pci\_device}}
\index{get\_pci\_device@{get\_pci\_device}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{get\_pci\_device()}{get\_pci\_device()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_a418532af26120076cf61ffe885e8af9e} 
const io\+\_\+obj\+\_\+info \texorpdfstring{$\ast$}{*} gko::\+machine\+\_\+topology::\+get\+\_\+pci\+\_\+device (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{id}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the object of type pci device associated with the id. 


\begin{DoxyParams}{Parameters}
{\em id} & The id of the pci device \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the PCI object struct. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1machine__topology_ae864a73979eab71c483a1fa98f06e40e}\index{gko::machine\_topology@{gko::machine\_topology}!get\_pu@{get\_pu}}
\index{get\_pu@{get\_pu}!gko::machine\_topology@{gko::machine\_topology}}
\doxysubsubsection{\texorpdfstring{get\_pu()}{get\_pu()}}
{\footnotesize\ttfamily \label{classgko_1_1machine__topology_ae864a73979eab71c483a1fa98f06e40e} 
const normal\+\_\+obj\+\_\+info \texorpdfstring{$\ast$}{*} gko::\+machine\+\_\+topology::\+get\+\_\+pu (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{id}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the object of type PU associated with the id. 


\begin{DoxyParams}{Parameters}
{\em id} & The id of the PU \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the PU object struct. 
\end{DoxyReturn}


The documentation for this class was generated from the following file:\+\begin{DoxyCompactItemize}
\item 
ginkgo/\+core/\+base/\+machine\+\_\+topology.\+hpp\end{DoxyCompactItemize}
