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 cudageterrorstring cudageterrorstring proc~export_field_to_device_cuda->cudageterrorstring 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~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 m_cuda_backend::resolve_field_t proc~export_field_to_device_cuda->proc~resolve_field_t 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~get_block proc~reorder_cuda->proc~get_padded_dims proc~reorder_cuda->proc~release_block proc~reorder_cuda->proc~resolve_field_t 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