create Subroutine

private subroutine create(self, comm, dims, base_storage, transpose_type, kernel_type, pointers)

Creates kernel

Type Bound

nvrtc_kernel

Arguments

Type IntentOptional Attributes Name
class(nvrtc_kernel), intent(inout) :: self

nvRTC Compiled kernel class

type(MPI_Comm), intent(in) :: comm

MPI Communicator

integer(kind=int32), intent(in), target :: dims(0:)

Global dimensions to process

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

Number of bytes needed to store single element

type(dtfft_transpose_t), intent(in) :: transpose_type

Type of transposition to perform

integer(kind=int8), intent(in) :: kernel_type

Type of kernel to build

integer(kind=int32), intent(in), optional :: pointers(:,:)

Optional pointers to unpack kernels


Calls

proc~~create~2~~CallsGraph proc~create~2 nvrtc_kernel%create mpi_comm_rank mpi_comm_rank proc~create~2->mpi_comm_rank mpi_comm_size mpi_comm_size proc~create~2->mpi_comm_size proc~compile_and_cache compile_and_cache proc~create~2->proc~compile_and_cache proc~create_device_pointer create_device_pointer proc~create~2->proc~create_device_pointer proc~destroy~3 nvrtc_kernel%destroy proc~create~2->proc~destroy~3 proc~get_contiguous_execution_blocks get_contiguous_execution_blocks proc~create~2->proc~get_contiguous_execution_blocks proc~get_tile_size get_tile_size proc~create~2->proc~get_tile_size proc~compile_and_cache->mpi_comm_rank interface~cudagetdevice cudaGetDevice proc~compile_and_cache->interface~cudagetdevice interface~get_cuda_architecture get_cuda_architecture proc~compile_and_cache->interface~get_cuda_architecture interface~int_to_str int_to_str proc~compile_and_cache->interface~int_to_str is_null_ptr is_null_ptr proc~compile_and_cache->is_null_ptr mpi_abort mpi_abort proc~compile_and_cache->mpi_abort mpi_allreduce mpi_allreduce proc~compile_and_cache->mpi_allreduce proc~astring_f2c astring_f2c proc~compile_and_cache->proc~astring_f2c proc~cudageterrorstring cudaGetErrorString proc~compile_and_cache->proc~cudageterrorstring proc~destroy_code kernel_code%destroy_code proc~compile_and_cache->proc~destroy_code proc~get_cached_kernel get_cached_kernel proc~compile_and_cache->proc~get_cached_kernel proc~get_transpose_kernel_code get_transpose_kernel_code proc~compile_and_cache->proc~get_transpose_kernel_code proc~get_true_transpose_type get_true_transpose_type proc~compile_and_cache->proc~get_true_transpose_type proc~get_unpack_kernel_code get_unpack_kernel_code proc~compile_and_cache->proc~get_unpack_kernel_code proc~get_unpack_pipelined_kernel_code get_unpack_pipelined_kernel_code proc~compile_and_cache->proc~get_unpack_pipelined_kernel_code proc~nvrtcgeterrorstring nvrtcGetErrorString proc~compile_and_cache->proc~nvrtcgeterrorstring proc~pop_nvtx_domain_range pop_nvtx_domain_range proc~compile_and_cache->proc~pop_nvtx_domain_range proc~push_nvtx_domain_range push_nvtx_domain_range proc~compile_and_cache->proc~push_nvtx_domain_range proc~string_c2f string_c2f proc~compile_and_cache->proc~string_c2f proc~to_cstr kernel_code%to_cstr proc~compile_and_cache->proc~to_cstr interface~cudamalloc cudaMalloc proc~create_device_pointer->interface~cudamalloc interface~cudamemcpy cudaMemcpy proc~create_device_pointer->interface~cudamemcpy proc~create_device_pointer->interface~int_to_str proc~create_device_pointer->mpi_abort proc~create_device_pointer->proc~cudageterrorstring interface~cudafree cudaFree proc~destroy~3->interface~cudafree proc~destroy~3->interface~int_to_str proc~destroy~3->mpi_abort proc~destroy~3->proc~cudageterrorstring proc~mark_unused mark_unused proc~destroy~3->proc~mark_unused proc~int_to_str_int32 int_to_str_int32 interface~int_to_str->proc~int_to_str_int32 proc~int_to_str_int64 int_to_str_int64 interface~int_to_str->proc~int_to_str_int64 proc~int_to_str_int8 int_to_str_int8 interface~int_to_str->proc~int_to_str_int8 proc~string_f2c string_f2c proc~astring_f2c->proc~string_f2c proc~cudageterrorstring->proc~string_c2f interface~cudageterrorstring_c cudaGetErrorString_c proc~cudageterrorstring->interface~cudageterrorstring_c proc~get_cached_kernel->proc~get_true_transpose_type proc~add_line kernel_code%add_line proc~get_transpose_kernel_code->proc~add_line proc~get_code_init get_code_init proc~get_transpose_kernel_code->proc~get_code_init proc~get_neighbor_function_code get_neighbor_function_code proc~get_transpose_kernel_code->proc~get_neighbor_function_code proc~get_unpack_kernel_code->proc~add_line proc~get_unpack_kernel_code->proc~get_code_init proc~get_unpack_kernel_code->proc~get_neighbor_function_code proc~get_unpack_pipelined_kernel_code->mpi_comm_rank proc~get_unpack_pipelined_kernel_code->proc~add_line proc~get_unpack_pipelined_kernel_code->proc~get_code_init proc~is_same_ptr is_same_ptr proc~mark_unused->proc~is_same_ptr proc~nvrtcgeterrorstring->proc~string_c2f interface~nvtxdomainrangepop_c nvtxDomainRangePop_c proc~pop_nvtx_domain_range->interface~nvtxdomainrangepop_c proc~push_nvtx_domain_range->proc~astring_f2c interface~nvtxdomainrangepushex_c nvtxDomainRangePushEx_c proc~push_nvtx_domain_range->interface~nvtxdomainrangepushex_c proc~create_nvtx_domain create_nvtx_domain proc~push_nvtx_domain_range->proc~create_nvtx_domain proc~to_cstr->proc~astring_f2c proc~create_nvtx_domain->proc~astring_f2c interface~nvtxdomaincreate_c nvtxDomainCreate_c proc~create_nvtx_domain->interface~nvtxdomaincreate_c proc~get_code_init->interface~int_to_str proc~get_code_init->proc~add_line proc~get_neighbor_function_code->proc~add_line

Called by

proc~~create~2~~CalledByGraph proc~create~2 nvrtc_kernel%create proc~create~7 transpose_handle_cuda%create proc~create~7->proc~create~2