|
| template<typename ScheduleT> |
| symbolic::Expression | sdfg::gpu::find_nested_gpu_blocksize (structured_control_flow::Map &node, analysis::AnalysisManager &analysis_manager, GPUDimension dimension) |
| | GPU map utility functions shared between CUDA and ROCm.
|
| template<typename ScheduleT> |
| symbolic::Expression | sdfg::gpu::find_nested_gpu_iterations (structured_control_flow::Map &node, analysis::AnalysisManager &analysis_manager, GPUDimension dimension) |
| | Find the number of iterations for nested GPU maps in a given dimension.
|
| template<typename ScheduleT> |
| bool | sdfg::gpu::is_outermost_gpu_map (structured_control_flow::Map &node, analysis::AnalysisManager &analysis_manager) |
| | Check if a map is the outermost GPU map in the loop tree.
|
| template<typename ScheduleT> |
| symbolic::SymbolSet | sdfg::gpu::get_gpu_indvars (structured_control_flow::Map &node, analysis::AnalysisManager &analysis_manager, GPUDimension dimension) |
| | Get all induction variables for GPU maps in a given dimension.
|
| bool | sdfg::gpu::is_gpu_schedule (const structured_control_flow::ScheduleType &schedule) |
| | Check if a schedule type is a GPU schedule (CUDA or ROCM).
|
| template<typename GPUType> |
| int64_t | sdfg::gpu::gpu_warp_size () |
| template<> |
| int64_t | sdfg::gpu::gpu_warp_size< sdfg::cuda::ScheduleType_CUDA_Offload > () |
| template<> |
| int64_t | sdfg::gpu::gpu_warp_size< sdfg::rocm::ScheduleType_ROCM_Offload > () |
| int64_t | sdfg::gpu::gpu_warp_size (const structured_control_flow::ScheduleType &schedule) |
| template<typename ScheduleT> |
| std::vector< structured_control_flow::Map * > | sdfg::gpu::get_gpu_maps (structured_control_flow::Map &node, analysis::AnalysisManager &analysis_manager, GPUDimension dimension) |
| | Get all GPU Map nodes in a given dimension (in tree traversal order).
|
| bool | sdfg::gpu::nested_parallelization_is_unsafe (structured_control_flow::StructuredLoop &loop, analysis::AnalysisManager &analysis_manager) |
| | Whether parallelizing loop to a new GPU grid dimension would race on a shared container.
|
| NestedFoldPlan | sdfg::gpu::analyze_nested_fold (structured_control_flow::StructuredLoop &loop, TargetLevel target_level, analysis::AnalysisManager &analysis_manager) |
| symbolic::Expression | sdfg::gpu::get_target_level_dim (TargetLevel target_level, int warp_size) |
| symbolic::Expression | sdfg::gpu::get_target_level_idx (TargetLevel target_level) |
| bool | sdfg::gpu::is_grid_level (TargetLevel target_level) |
| bool | sdfg::gpu::is_block_level (TargetLevel target_level) |
| bool | sdfg::gpu::is_warp_level (TargetLevel target_level) |
| symbolic::SymbolSet | sdfg::gpu::target_level_indvars (structured_control_flow::StructuredLoop &node, analysis::AnalysisManager &analysis_manager, TargetLevel target_level) |
| void | sdfg::gpu::get_nested_schedule_types (structured_control_flow::StructuredLoop &node, analysis::AnalysisManager &analysis_manager, std::unordered_map< TargetLevel, structured_control_flow::ScheduleType > &output) |
| void | sdfg::gpu::get_nested_level_maps (structured_control_flow::StructuredLoop &node, analysis::AnalysisManager &analysis_manager, std::unordered_map< TargetLevel, structured_control_flow::StructuredLoop * > &output) |
| bool | sdfg::gpu::nested_warp_dim (structured_control_flow::StructuredLoop &loop, analysis::AnalysisManager &analysis_manager) |
| void | sdfg::gpu::validate_wave_maps (structured_control_flow::StructuredLoop &node, analysis::AnalysisManager &analysis_manager, int64_t warp_size) |
| structured_control_flow::StructuredLoop * | sdfg::gpu::find_x_block_owning_warp_level (structured_control_flow::StructuredLoop &node, analysis::AnalysisManager &analysis_manager) |
| size_t | sdfg::gpu::perfectly_nested_depth (structured_control_flow::StructuredLoop *loop) |
| template symbolic::Expression | sdfg::gpu::find_nested_gpu_blocksize< sdfg::cuda::ScheduleType_CUDA > (structured_control_flow::Map &, analysis::AnalysisManager &, GPUDimension) |
| template symbolic::Expression | sdfg::gpu::find_nested_gpu_blocksize< sdfg::rocm::ScheduleType_ROCM > (structured_control_flow::Map &, analysis::AnalysisManager &, GPUDimension) |
| template symbolic::Expression | sdfg::gpu::find_nested_gpu_iterations< sdfg::cuda::ScheduleType_CUDA > (structured_control_flow::Map &, analysis::AnalysisManager &, GPUDimension) |
| template symbolic::Expression | sdfg::gpu::find_nested_gpu_iterations< sdfg::rocm::ScheduleType_ROCM > (structured_control_flow::Map &, analysis::AnalysisManager &, GPUDimension) |
| template bool | sdfg::gpu::is_outermost_gpu_map< sdfg::cuda::ScheduleType_CUDA > (structured_control_flow::Map &, analysis::AnalysisManager &) |
| template bool | sdfg::gpu::is_outermost_gpu_map< sdfg::rocm::ScheduleType_ROCM > (structured_control_flow::Map &, analysis::AnalysisManager &) |
| template symbolic::SymbolSet | sdfg::gpu::get_gpu_indvars< sdfg::cuda::ScheduleType_CUDA > (structured_control_flow::Map &, analysis::AnalysisManager &, GPUDimension) |
| template symbolic::SymbolSet | sdfg::gpu::get_gpu_indvars< sdfg::rocm::ScheduleType_ROCM > (structured_control_flow::Map &, analysis::AnalysisManager &, GPUDimension) |
| template std::vector< structured_control_flow::Map * > | sdfg::gpu::get_gpu_maps< sdfg::cuda::ScheduleType_CUDA > (structured_control_flow::Map &, analysis::AnalysisManager &, GPUDimension) |
| template std::vector< structured_control_flow::Map * > | sdfg::gpu::get_gpu_maps< sdfg::rocm::ScheduleType_ROCM > (structured_control_flow::Map &, analysis::AnalysisManager &, GPUDimension) |