create_nvrtc_module Subroutine

public subroutine create_nvrtc_module(ndims, kernel_type, base_storage, configs, props)

Creates and adds a new nvrtc module to the cache if it does not already exist

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: ndims

Number of dimensions (2 or 3)

type(kernel_type_t), intent(in) :: kernel_type

Type of kernel to build

integer(kind=int64), intent(in) :: base_storage

Number of bytes needed to store single element

type(kernel_config), intent(in) :: configs(:)

Array of kernel configurations to build

type(device_props), intent(in) :: props

GPU architecture properties


Calls

proc~~create_nvrtc_module~~CallsGraph proc~create_nvrtc_module create_nvrtc_module interface~to_str to_str proc~create_nvrtc_module->interface~to_str none~check nvrtc_module%check proc~create_nvrtc_module->none~check proc~add nvrtc_module_cache%add proc~create_nvrtc_module->proc~add proc~create~13 nvrtc_module%create proc~create_nvrtc_module->proc~create~13 proc~get_conf_log_enabled get_conf_log_enabled proc~create_nvrtc_module->proc~get_conf_log_enabled proc~get_kernel_string get_kernel_string proc~create_nvrtc_module->proc~get_kernel_string proc~write_message write_message proc~create_nvrtc_module->proc~write_message proc~double_to_string double_to_string interface~to_str->proc~double_to_string proc~float_to_string float_to_string interface~to_str->proc~float_to_string proc~int32_to_string int32_to_string interface~to_str->proc~int32_to_string proc~int64_to_string int64_to_string interface~to_str->proc~int64_to_string proc~int8_to_string int8_to_string interface~to_str->proc~int8_to_string proc~check_instance nvrtc_module%check_instance none~check->proc~check_instance proc~check_module nvrtc_module%check_module none~check->proc~check_module proc~add->interface~to_str proc~add->proc~get_conf_log_enabled proc~add->proc~write_message proc~create~9 nvrtc_module_cache%create proc~add->proc~create~9 proc~create~13->proc~get_conf_log_enabled proc~create~13->proc~write_message fname fname proc~create~13->fname interface~mem_free_host mem_free_host proc~create~13->interface~mem_free_host mpi_abort mpi_abort proc~create~13->mpi_abort proc~compile_program compile_program proc~create~13->proc~compile_program proc~cudageterrorstring cudaGetErrorString proc~create~13->proc~cudageterrorstring proc~destroy~11 nvrtc_module%destroy proc~create~13->proc~destroy~11 proc~get_code get_code proc~create~13->proc~get_code proc~mem_alloc_host mem_alloc_host proc~create~13->proc~mem_alloc_host proc~nvrtcgeterrorstring nvrtcGetErrorString proc~create~13->proc~nvrtcgeterrorstring proc~pop_nvtx_domain_range pop_nvtx_domain_range proc~create~13->proc~pop_nvtx_domain_range proc~push_nvtx_domain_range push_nvtx_domain_range proc~create~13->proc~push_nvtx_domain_range interface~get_conf_internal get_conf_internal proc~get_conf_log_enabled->interface~get_conf_internal mpi_comm_rank mpi_comm_rank proc~write_message->mpi_comm_rank mpi_finalized mpi_finalized proc~write_message->mpi_finalized proc~get_conf_internal_int32 get_conf_internal_int32 interface~get_conf_internal->proc~get_conf_internal_int32 proc~get_conf_internal_logical get_conf_internal_logical interface~get_conf_internal->proc~get_conf_internal_logical proc~check_instance->none~check proc~compile_program->interface~to_str proc~compile_program->fname proc~compile_program->mpi_abort proc~compile_program->proc~mem_alloc_host proc~compile_program->proc~nvrtcgeterrorstring proc~astring_f2c astring_f2c proc~compile_program->proc~astring_f2c proc~destroy_strings destroy_strings proc~compile_program->proc~destroy_strings proc~set_name_expression set_name_expression proc~compile_program->proc~set_name_expression proc~string_c2f string_c2f proc~compile_program->proc~string_c2f interface~cudageterrorstring_c cudaGetErrorString_c proc~cudageterrorstring->interface~cudageterrorstring_c proc~cudageterrorstring->proc~string_c2f proc~destroy~11->fname proc~destroy~11->mpi_abort proc~destroy~11->proc~cudageterrorstring proc~destroy~11->proc~nvrtcgeterrorstring is_null_ptr is_null_ptr proc~destroy~11->is_null_ptr proc~add_line codegen_t%add_line proc~get_code->proc~add_line proc~is_unpack_kernel is_unpack_kernel proc~get_code->proc~is_unpack_kernel interface~aligned_alloc aligned_alloc proc~mem_alloc_host->interface~aligned_alloc proc~nvrtcgeterrorstring->proc~string_c2f interface~nvtxdomainrangepop_c nvtxDomainRangePop_c proc~pop_nvtx_domain_range->interface~nvtxdomainrangepop_c interface~nvtxdomainrangepushex_c nvtxDomainRangePushEx_c proc~push_nvtx_domain_range->interface~nvtxdomainrangepushex_c proc~push_nvtx_domain_range->proc~astring_f2c proc~create_nvtx_domain create_nvtx_domain proc~push_nvtx_domain_range->proc~create_nvtx_domain proc~string_f2c string_f2c proc~astring_f2c->proc~string_f2c proc~create_nvtx_domain->proc~astring_f2c interface~nvtxdomaincreate_c nvtxDomainCreate_c proc~create_nvtx_domain->interface~nvtxdomaincreate_c proc~destroy_string string%destroy_string proc~destroy_strings->proc~destroy_string proc~set_name_expression->fname proc~set_name_expression->mpi_abort proc~set_name_expression->proc~nvrtcgeterrorstring proc~get_name_expression get_name_expression proc~set_name_expression->proc~get_name_expression interface~is_null_ptr is_null_ptr proc~string_c2f->interface~is_null_ptr interface~is_null_ptr->interface~is_null_ptr proc~is_null_funptr is_null_funptr interface~is_null_ptr->proc~is_null_funptr proc~get_name_expression->interface~to_str proc~get_name_expression->proc~astring_f2c

Called by

proc~~create_nvrtc_module~~CalledByGraph proc~create_nvrtc_module create_nvrtc_module proc~get_kernel get_kernel proc~get_kernel->proc~create_nvrtc_module proc~create~8 kernel_device%create proc~create~8->proc~get_kernel