export_field_to_device_cuda Subroutine

public subroutine export_field_to_device_cuda(self, buffer, f, dims, to_sp)

DIR_X fields are reordered and unpadded by a single kernel. DIR_C fields are unpadded directly, and DIR_Y/DIR_Z fields are reordered to DIR_C first. Precision conversion happens in the same kernel.

Type Bound

cuda_backend_t

Arguments

Type IntentOptional Attributes Name
class(cuda_backend_t) :: self
type(c_ptr), intent(in) :: buffer
class(field_t), intent(in) :: f
integer, intent(in) :: dims(3)
logical, intent(in) :: to_sp

Calls

proc~~export_field_to_device_cuda~~CallsGraph proc~export_field_to_device_cuda m_cuda_backend::cuda_backend_t%export_field_to_device_cuda c_devptr c_devptr proc~export_field_to_device_cuda->c_devptr cudaforgetdefaultstream cudaforgetdefaultstream proc~export_field_to_device_cuda->cudaforgetdefaultstream cudagetlasterror cudagetlasterror proc~export_field_to_device_cuda->cudagetlasterror cudastreamsynchronize cudastreamsynchronize proc~export_field_to_device_cuda->cudastreamsynchronize dim3 dim3 proc~export_field_to_device_cuda->dim3 proc~abort_run m_logger::abort_run proc~export_field_to_device_cuda->proc~abort_run proc~check_cuda m_cuda_errors::check_cuda proc~export_field_to_device_cuda->proc~check_cuda proc~get_block m_allocator::allocator_t%get_block proc~export_field_to_device_cuda->proc~get_block proc~get_padded_dims m_allocator::allocator_t%get_padded_dims proc~export_field_to_device_cuda->proc~get_padded_dims proc~get_rdr_from_dirs m_common::get_rdr_from_dirs proc~export_field_to_device_cuda->proc~get_rdr_from_dirs proc~pack_c_dp m_cuda_kernels_reorder::pack_c_dp proc~export_field_to_device_cuda->proc~pack_c_dp proc~pack_c_sp m_cuda_kernels_reorder::pack_c_sp proc~export_field_to_device_cuda->proc~pack_c_sp proc~pack_x2c_dp m_cuda_kernels_reorder::pack_x2c_dp proc~export_field_to_device_cuda->proc~pack_x2c_dp proc~pack_x2c_sp m_cuda_kernels_reorder::pack_x2c_sp proc~export_field_to_device_cuda->proc~pack_x2c_sp proc~release_block m_allocator::allocator_t%release_block proc~export_field_to_device_cuda->proc~release_block proc~reorder_cuda m_cuda_backend::cuda_backend_t%reorder_cuda proc~export_field_to_device_cuda->proc~reorder_cuda proc~resolve_field_t~2 m_cuda_backend::resolve_field_t proc~export_field_to_device_cuda->proc~resolve_field_t~2 interface~str m_logger::str proc~abort_run->interface~str mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier mpi_comm_rank mpi_comm_rank proc~abort_run->mpi_comm_rank mpi_comm_size mpi_comm_size proc~abort_run->mpi_comm_size mpi_finalized mpi_finalized proc~abort_run->mpi_finalized mpi_initialized mpi_initialized proc~abort_run->mpi_initialized proc~check_cuda->proc~abort_run cudageterrorstring cudageterrorstring proc~check_cuda->cudageterrorstring proc~check_cuda->interface~str proc~create_block m_allocator::allocator_t%create_block proc~get_block->proc~create_block proc~set_shape m_field::field_t%set_shape proc~get_block->proc~set_shape syncthreads syncthreads proc~pack_x2c_dp->syncthreads proc~pack_x2c_sp->syncthreads proc~reorder_cuda->dim3 proc~reorder_cuda->proc~abort_run proc~reorder_cuda->proc~get_block proc~reorder_cuda->proc~get_padded_dims proc~reorder_cuda->proc~release_block proc~reorder_cuda->proc~resolve_field_t~2 proc~reorder_c2x m_cuda_kernels_reorder::reorder_c2x proc~reorder_cuda->proc~reorder_c2x proc~reorder_x2c m_cuda_kernels_reorder::reorder_x2c proc~reorder_cuda->proc~reorder_x2c proc~reorder_x2y m_cuda_kernels_reorder::reorder_x2y proc~reorder_cuda->proc~reorder_x2y proc~reorder_x2z m_cuda_kernels_reorder::reorder_x2z proc~reorder_cuda->proc~reorder_x2z proc~reorder_y2x m_cuda_kernels_reorder::reorder_y2x proc~reorder_cuda->proc~reorder_y2x proc~reorder_y2z m_cuda_kernels_reorder::reorder_y2z proc~reorder_cuda->proc~reorder_y2z proc~reorder_z2x m_cuda_kernels_reorder::reorder_z2x proc~reorder_cuda->proc~reorder_z2x proc~reorder_z2y m_cuda_kernels_reorder::reorder_z2y proc~reorder_cuda->proc~reorder_z2y proc~set_data_loc m_field::field_t%set_data_loc proc~reorder_cuda->proc~set_data_loc proc~reorder_c2x->syncthreads proc~reorder_x2c->syncthreads proc~reorder_x2y->syncthreads proc~reorder_y2x->syncthreads proc~reorder_y2z->syncthreads proc~reorder_z2y->syncthreads