|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Classes | |
| struct | RocmMmaSupport |
| class | RocmArch |
| struct | RocmDeviceInfo |
| A ROCm/HIP GPU device as reported by rocminfo: its LLVM/ROCm ISA (gfx) name together with the marketing name(s) of the device(s) that report it and the wavefront size. More... | |
| class | RocmMmaBareStrategy |
| Raw v_mfma_f32_32x32x8f16 emit strategy (see RocmMfma32Support). More... | |
| class | RocmMmaFragmentStrategy |
| Classic rocwmma fragment-based emit strategy (load/store/mma_sync/fill_fragment). More... | |
| class | RocmWmmaLibDependency |
| class | GpuMmaTransform |
Enumerations | |
| enum class | RocmMmaVariant { Fragment = 1 , Bare = 2 } |
Functions | |
| const std::vector< RocmDeviceInfo > & | query_rocm_devices () |
| Queries the ROCm GPUs available on this machine via rocminfo. | |
| const RocmArch * | rocm_arch_for_device (const RocmDeviceInfo &device) |
| Resolves a queried device to a RocmArch. | |
| const RocmArch * | rocm_arch_from_schedule_type (const structured_control_flow::ScheduleType &schedule) |
| Wrapper, that allows us to store this inside the ScheduleType in the future. | |
| const RocmArch * | rocm_arch_from_env () |
| Use the DOCC_ROCM_ARCH env var or if unset, query the available cards. | |
| const RocmArch * | rocm_arch_from_available_hardware () |
| const RocmArch * | rocm_arch_parse (const std::string &name) |
| data_flow::ImplementationType | ImplementationType_ROCM_MMA_BARE ("ROCM_MMA_BARE") |
| data_flow::ImplementationType | ImplementationType_ROCM_MMA_FRAGMENT ("ROCM_MMA") |
Variables | |
| RocmArch | ROCM_ARCH_GFX1201 |
| RocmArch | ROCM_ARCH_GFX90A |
| RocmArch | ROCM_ARCH_GFX942 |
|
strong |
| Enumerator | |
|---|---|
| Fragment | rocwmma fragment path (RocmMmaFragmentStrategy) |
| Bare | raw MFMA builtin path (RocmMmaBareStrategy) |
|
inline |
|
inline |
| const std::vector< RocmDeviceInfo > & sdfg::gpu::rocm::query_rocm_devices | ( | ) |
Queries the ROCm GPUs available on this machine via rocminfo.
Internally this invokes rocminfo and parses its per-agent report, keeping only GPU agents and matching their gfx… ISA name. The list is uniqued by gfx name (marketing names sharing a target are collected together).
The result is cached on first call, so rocminfo is spawned at most once per process. Returns an empty list if no ROCm device could be queried (e.g. rocminfo is not available).
| const RocmArch * sdfg::gpu::rocm::rocm_arch_for_device | ( | const RocmDeviceInfo & | device | ) |
Resolves a queried device to a RocmArch.
Prefers a curated arch (with correct MMA capabilities) when the gfx target is recognised; otherwise synthesises a custom arch from the fields rocminfo reports (name + wavefront, MMA disabled). The returned pointer has static lifetime.
| const RocmArch * sdfg::gpu::rocm::rocm_arch_from_available_hardware | ( | ) |
| const RocmArch * sdfg::gpu::rocm::rocm_arch_from_env | ( | ) |
Use the DOCC_ROCM_ARCH env var or if unset, query the available cards.
| const RocmArch * sdfg::gpu::rocm::rocm_arch_from_schedule_type | ( | const structured_control_flow::ScheduleType & | schedule | ) |
Wrapper, that allows us to store this inside the ScheduleType in the future.
For now, we look at the env-vars or query the local system
| const RocmArch * sdfg::gpu::rocm::rocm_arch_parse | ( | const std::string & | name | ) |
|
extern |
|
extern |
|
extern |