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

Namespaces

namespace  blas
namespace  stdlib
namespace  tiles

Classes

class  RocmLibraryNodeRewriter
class  RocmLibraryNodeTransferExtractionVisitor
class  ROCMLanguageExtension
class  ScheduleType_ROCM_Offload
 ROCM schedule type inheriting shared GPU functionality Provides ROCM-specific value() and default block size (64 for wavefront size). More...
class  ScheduleType_ROCM
 ROCM schedule type inheriting shared GPU functionality Provides ROCM-specific value() and default block size (64 for wavefront size). More...
class  ROCMDataOffloadingNode
class  ROCMDataOffloadingNodeDispatcher
class  ROCMDataOffloadingNodeSerializer
class  ROCMMapDispatcher
class  ROCMOffloadDispatcherStrategy
 ROCm/HIP specialization of gpu::GPUOffloadMapDispatcher. More...
class  ROCMReduceDispatcher
 Atomics-based ROCm/HIP code generator for structured_control_flow::Reduce. More...
class  ROCBLASDataTransferExtraction
class  ROCMOffloadTransform
class  ROCMStdlibDataTransferExtraction
class  ROCMTransform
 Offloads a top-level loop to a ROCm/HIP kernel (X grid dimension). More...

Typedefs

typedef passes::VisitorPass< RocmLibraryNodeRewriter > RocmLibraryNodeRewriterPass
typedef passes::VisitorPass< RocmLibraryNodeTransferExtractionVisitor > RocmLibraryNodeTransferExtractionPass
using ROCMDimension = gpu::GPUDimension

Functions

void register_rocm_plugin (plugins::Context &context)
void register_rocm_plugin ()
void rocm_error_checking (codegen::PrettyPrinter &stream, const codegen::LanguageExtension &language_extension, const std::string &status_variable)
bool do_rocm_error_checking ()
int rocm_wavefront_size ()
 Wavefront width of the target device, queried once at codegen time.
void check_rocm_kernel_launch_errors (codegen::PrettyPrinter &stream, const codegen::LanguageExtension &language_extension)
data_flow::LibraryNodeCode LibraryNodeType_ROCM_Offloading ("ROCMOffloading")

Variables

std::string ROCM_DEVICE_PREFIX = "__daisy_hip_"
constexpr int ROCM_WARP_SIZE = 64
data_flow::ImplementationType ImplementationType_ROCM {"ROCM"}
 Generic ROCM implementation.
data_flow::ImplementationType ImplementationType_ROCMWithTransfers {"ROCMWithTransfers"}
 ROCM implementation with automatic memory transfers Used for ROCm BLAS, memset, and other ROCm-accelerated library nodes.
data_flow::ImplementationType ImplementationType_ROCMWithoutTransfers {"ROCMWithoutTransfers"}
 ROCM implementation without memory transfers Used for ROCm BLAS, memset, and other ROCm-accelerated library nodes assuming data is already on GPU.
codegen::TargetType TargetType_ROCM_Offload {ScheduleType_ROCM_Offload::value()}
codegen::TargetType TargetType_ROCM {ScheduleType_ROCM::value()}

Typedef Documentation

◆ ROCMDimension

◆ RocmLibraryNodeRewriterPass

◆ RocmLibraryNodeTransferExtractionPass

Function Documentation

◆ check_rocm_kernel_launch_errors()

void sdfg::rocm::check_rocm_kernel_launch_errors ( codegen::PrettyPrinter & stream,
const codegen::LanguageExtension & language_extension )

◆ do_rocm_error_checking()

bool sdfg::rocm::do_rocm_error_checking ( )

◆ LibraryNodeType_ROCM_Offloading()

data_flow::LibraryNodeCode sdfg::rocm::LibraryNodeType_ROCM_Offloading ( "ROCMOffloading" )
inline

◆ register_rocm_plugin() [1/2]

void sdfg::rocm::register_rocm_plugin ( )
inline
Deprecated
use the variant with explicit context

◆ register_rocm_plugin() [2/2]

void sdfg::rocm::register_rocm_plugin ( plugins::Context & context)

◆ rocm_error_checking()

void sdfg::rocm::rocm_error_checking ( codegen::PrettyPrinter & stream,
const codegen::LanguageExtension & language_extension,
const std::string & status_variable )

◆ rocm_wavefront_size()

int sdfg::rocm::rocm_wavefront_size ( )

Wavefront width of the target device, queried once at codegen time.

RDNA parts (gfx10xx/11xx/12xx) execute wave32 while CDNA/GCN (gfx9xx) execute wave64, so the value that drives warp-shuffle reductions and launch geometry cannot be a compile-time constant. Resolved from the DOCC_ROCM_WAVEFRONT_SIZE override, else the present device via rocminfo, falling back to ROCM_WARP_SIZE. The result is cached.

Variable Documentation

◆ ImplementationType_ROCM

data_flow::ImplementationType sdfg::rocm::ImplementationType_ROCM {"ROCM"}
inline

Generic ROCM implementation.

◆ ImplementationType_ROCMWithoutTransfers

data_flow::ImplementationType sdfg::rocm::ImplementationType_ROCMWithoutTransfers {"ROCMWithoutTransfers"}
inline

ROCM implementation without memory transfers Used for ROCm BLAS, memset, and other ROCm-accelerated library nodes assuming data is already on GPU.

◆ ImplementationType_ROCMWithTransfers

data_flow::ImplementationType sdfg::rocm::ImplementationType_ROCMWithTransfers {"ROCMWithTransfers"}
inline

ROCM implementation with automatic memory transfers Used for ROCm BLAS, memset, and other ROCm-accelerated library nodes.

◆ ROCM_DEVICE_PREFIX

std::string sdfg::rocm::ROCM_DEVICE_PREFIX = "__daisy_hip_"
inline

◆ ROCM_WARP_SIZE

int sdfg::rocm::ROCM_WARP_SIZE = 64
constexpr

◆ TargetType_ROCM

codegen::TargetType sdfg::rocm::TargetType_ROCM {ScheduleType_ROCM::value()}
inline

◆ TargetType_ROCM_Offload

codegen::TargetType sdfg::rocm::TargetType_ROCM_Offload {ScheduleType_ROCM_Offload::value()}
inline