exec_info Struct Reference

exec_info Struct Reference#

Reference API: gko::Executor::exec_info Struct Reference
Reference API
gko::Executor::exec_info Struct Reference

#include <ginkgo/core/base/executor.hpp>

Public Attributes

int device_id = -1
 
std::string device_type
 
int numa_node = -1
 
int num_computing_units = -1
 
int num_pu_per_cu = -1
 
std::vector< int > subgroup_sizes {}
 
int max_subgroup_size = -1
 
std::vector< int > max_workitem_sizes {}
 
int max_workgroup_size
 
int major = -1
 
int minor = -1
 
std::string pci_bus_id = std::string(13, 'x')
 
std::vector< int > closest_pu_ids {}
 

Detailed Description

A struct that abstracts the executor info for different executors classes.

Member Data Documentation

◆ closest_pu_ids

std::vector<int> gko::Executor::exec_info::closest_pu_ids {}

The host processing units closest to the device.

Note
Currently only relevant for CUDA, HIP and DPCPP executors. Definition from hwloc documentation: "The smallest processing element that can be represented by a hwloc object. It may be a single-core processor, a core of a multicore processor, or a single thread in a SMT processor"

◆ device_id

int gko::Executor::exec_info::device_id = -1

The id of the device.

◆ device_type

std::string gko::Executor::exec_info::device_type

The type of the device, relevant only for the dpcpp executor.

◆ major

int gko::Executor::exec_info::major = -1

The major version for CUDA/HIP device.

◆ max_subgroup_size

int gko::Executor::exec_info::max_subgroup_size = -1

The maximum subgroup size for the executor.

Note
In CPU executors this is invalid. In CUDA and HIP executors this is the warp size. In DPCPP, this is the maximum subgroup size for the device associated with the dpcpp executor.

◆ max_workgroup_size

int gko::Executor::exec_info::max_workgroup_size

The sizes of the work items for the executor.

Note
In CPU executors this is invalid. In CUDA and HIP executors this is the maximum number of threads in block. In DPCPP, this is the maximum number of workitems that are permitted in a workgroup.

◆ max_workitem_sizes

std::vector<int> gko::Executor::exec_info::max_workitem_sizes {}

The sizes of the work items for the executor.

Note
In CPU executors this is invalid. In CUDA and HIP executors this is the maximum number of threads in each dimension of a block (x, y, z). In DPCPP, this is the maximum number of workitems, in each direction of the workgroup for the device associated with the dpcpp executor.

◆ minor

int gko::Executor::exec_info::minor = -1

The minor version for CUDA/HIP device.

◆ num_computing_units

int gko::Executor::exec_info::num_computing_units = -1

The number of computing units in the executor.

Note
In CPU executors this is equivalent to the number of cores. In CUDA and HIP executors this is the number of Streaming Multiprocessors. In DPCPP, this is the number of computing units.

◆ num_pu_per_cu

int gko::Executor::exec_info::num_pu_per_cu = -1

The number of processing units per computing unit in the executor.

Note
In CPU executors this is equivalent to the number of SIMD units per core. In CUDA and HIP executors this is the number of warps per SM. In DPCPP, this is currently number of hardware threads per eu. If the device does not support, it will be set as 1. (TODO: check)

◆ numa_node

int gko::Executor::exec_info::numa_node = -1

The numa node of the executor.

◆ pci_bus_id

std::string gko::Executor::exec_info::pci_bus_id = std::string(13, 'x')

The PCI bus id of the device.

Note
Only relevant for I/O devices (GPUs).

◆ subgroup_sizes

std::vector<int> gko::Executor::exec_info::subgroup_sizes {}

The sizes of the subgroup for the executor.

Note
In CPU executors this is invalid. In CUDA and HIP executors this is invalid. In DPCPP, this is the subgroup sizes for the device associated with the dpcpp executor.

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