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:
- ginkgo/core/base/executor.hpp
Generated by