docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::gpu::cuda Namespace Reference

Classes

struct  CudaComputeCapability
 A CUDA compute capability together with the name(s) of the device(s) that report it. More...
struct  CudaMmaSupport
class  CudaArch
class  CudaMmaFragmentStrategy
 Classic rocwmma fragment-based emit strategy (load/store/mma_sync/fill_fragment). More...
class  CudaWmmaLibDependency

Functions

std::vector< CudaComputeCapability > query_cuda_compute_capabilities ()
 Queries the CUDA compute capabilities of the GPUs available on this machine.
const CudaArch * cuda_arch_from_schedule_type (const structured_control_flow::ScheduleType &schedule)
 Wrapper, that allows us to store this inside the ScheduleType in the future.
const CudaArch * cuda_arch_from_env ()
const CudaArch * cuda_arch_from_available_hardware ()
const CudaArch * cuda_arch_parse (const std::string &name)
data_flow::ImplementationType ImplementationType_CUDA_MMA_FRAGMENT ("CUDA_MMA")

Variables

CudaArch CUDA_ARCH_SM70
CudaArch CUDA_ARCH_SM75
CudaArch CUDA_ARCH_SM80
CudaArch CUDA_ARCH_SM86
CudaArch CUDA_ARCH_SM87
CudaArch CUDA_ARCH_SM89
CudaArch CUDA_ARCH_SM90
CudaArch CUDA_ARCH_SM100
CudaArch CUDA_ARCH_SM103
CudaArch CUDA_ARCH_SM107
CudaArch CUDA_ARCH_SM110
CudaArch CUDA_ARCH_SM120

Function Documentation

◆ cuda_arch_from_available_hardware()

const CudaArch * sdfg::gpu::cuda::cuda_arch_from_available_hardware ( )

◆ cuda_arch_from_env()

const CudaArch * sdfg::gpu::cuda::cuda_arch_from_env ( )

◆ cuda_arch_from_schedule_type()

const CudaArch * sdfg::gpu::cuda::cuda_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

◆ cuda_arch_parse()

const CudaArch * sdfg::gpu::cuda::cuda_arch_parse ( const std::string & name)

◆ ImplementationType_CUDA_MMA_FRAGMENT()

data_flow::ImplementationType sdfg::gpu::cuda::ImplementationType_CUDA_MMA_FRAGMENT ( "CUDA_MMA" )
inline

◆ query_cuda_compute_capabilities()

std::vector< CudaComputeCapability > sdfg::gpu::cuda::query_cuda_compute_capabilities ( )

Queries the CUDA compute capabilities of the GPUs available on this machine.

Internally this invokes nvidia-smi --query-gpu=name,compute_cap and parses its output. Each device's compute capability is reported as an integer using the same convention as clang (e.g. 8.6 -> 86, 12.0 -> 120).

The returned list is uniqued by compute capability (the names of all devices sharing a capability are collected together) and sorted from the highest to the lowest compute capability.

Returns
A descending, duplicate-free list of the available compute capabilities, or an empty vector if no CUDA device could be queried (e.g. nvidia-smi is not available).

Variable Documentation

◆ CUDA_ARCH_SM100

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM100
extern

◆ CUDA_ARCH_SM103

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM103
extern

◆ CUDA_ARCH_SM107

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM107
extern

◆ CUDA_ARCH_SM110

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM110
extern

◆ CUDA_ARCH_SM120

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM120
extern

◆ CUDA_ARCH_SM70

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM70
extern

◆ CUDA_ARCH_SM75

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM75
extern

◆ CUDA_ARCH_SM80

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM80
extern

◆ CUDA_ARCH_SM86

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM86
extern

◆ CUDA_ARCH_SM87

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM87
extern

◆ CUDA_ARCH_SM89

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM89
extern

◆ CUDA_ARCH_SM90

CudaArch sdfg::gpu::cuda::CUDA_ARCH_SM90
extern