gpu_astaroth
Module
Description
$Id$
MODULE_DOC: This module contains GPU related types and functions to be used with the ASTAROTH nucleus.
CPARAM logical, parameter :: lgpu = .true.
Quick access
- Variables:
before_boundary_gpu_c,copy_farray_c,finalize_gpu_c,get_farray_ptr_gpu_c,get_gpu_reduced_vars_c,gpu_prepare_for_first_substep_c,initialize_gpu_c,it_test_rhs,lac_sparse_autotuning,lac_sparse_autotuning_always,lcpu_timestep_on_gpu,lcumulative_df_on_gpu,load_farray_c,lonly_default_stream_for_taskgraphs,lread_all_vars_from_device,lsingle_precision_timestep,lskip_rtime_compilation,ltest_bcs,ltest_rhs,pfarr_gpu_in,pfarr_gpu_out,pos_real_ptr_c,print_snapshot_c,radtransfer_gpu_c,register_gpu_c,reload_gpu_config_c,rhs_gpu_c,split_update_gpu_c,test_bcs_c,tf_create_model_c,tf_load_model_c,tf_load_model_checkpoint_c,tf_save_checkpoint_c,tf_save_model_c,thread_block_loop_factors,torchinfer_c,torchtrain_c,update_after_substep_gpu_c,update_on_gpu_arr_by_ind_c,update_on_gpu_arr_by_name_c,update_on_gpu_scal_by_ind_c,update_on_gpu_scal_by_name_c,update_on_gpu_vec_by_ind_c,update_on_gpu_vec_by_name_c- Routines:
before_boundary_gpu(),copy_farray_from_gpu(),finalize_gpu(),get_farray_ptr_gpu(),get_gpu_reduced_vars(),get_ptr_gpu(),get_ptr_gpu_training(),gpu_prepare_for_first_substep(),infer_gpu(),initialize_gpu(),load_farray_to_gpu(),radtransfer_gpu(),read_gpu_run_pars(),register_gpu(),reload_gpu_config(),rhs_gpu(),split_update_gpu(),tau_snapshots(),test_gpu_bcs(),tf_create_model(),tf_load_model(),tf_load_model_checkpoint(),tf_save_checkpoint(),tf_save_model(),train_gpu(),update_after_substep_gpu(),update_on_gpu(),update_on_gpu_vec(),write_gpu_run_pars()
Needed modules
cdata: $Id$general(keep_compiler_quiet(),lpointer(),ioptest(),loptest()): $Id$messages: $Id$iso_c_binding
Variables
- gpu/before_boundary_gpu_c [private/external]
- gpu/copy_farray_c [private/external]
- gpu/finalize_gpu_c [private/external]
- gpu/get_farray_ptr_gpu_c [private/external]
- gpu/get_gpu_reduced_vars_c [private/external]
- gpu/gpu_prepare_for_first_substep_c [private/external]
- gpu/initialize_gpu_c [private/external]
- gpu/it_test_rhs [integer,public/optional/default=1]
- gpu/lac_sparse_autotuning [logical,private/optional/default=.true.]
- gpu/lac_sparse_autotuning_always [logical,private/optional/default=.false.]
- gpu/lcpu_timestep_on_gpu [logical,private/optional/default=.false.]
- gpu/lcumulative_df_on_gpu [logical,private/optional/default=.false.]
- gpu/load_farray_c [private/external]
- gpu/lonly_default_stream_for_taskgraphs [logical,private/optional/default=.false.]
- gpu/lread_all_vars_from_device [logical,private/optional/default=.false.]
- gpu/lsingle_precision_timestep [logical,private/optional/default=.true.]
- gpu/lskip_rtime_compilation [logical,private/optional/default=.false.]
- gpu/ltest_bcs [logical,public/optional/default=.false.]
- gpu/ltest_rhs [logical,public/optional/default=.false.]
- gpu/pfarr_gpu_in [c_ptr,private]
- gpu/pfarr_gpu_out [c_ptr,private]
- gpu/pos_real_ptr_c [private/external]
- gpu/print_snapshot_c [private/external]
- gpu/radtransfer_gpu_c [private/external]
- gpu/register_gpu_c [private/external]
- gpu/reload_gpu_config_c [private/external]
- gpu/rhs_gpu_c [private/external]
- gpu/split_update_gpu_c [private/external]
- gpu/test_bcs_c [private/external]
- gpu/tf_create_model_c [private/external]
- gpu/tf_load_model_c [private/external]
- gpu/tf_load_model_checkpoint_c [private/external]
- gpu/tf_save_checkpoint_c [private/external]
- gpu/tf_save_model_c [private/external]
- gpu/thread_block_loop_factors (3) [integer,private/optional/default=(/1,1,1/)]
- gpu/torchinfer_c [private/external]
- gpu/torchtrain_c [private/external]
- gpu/update_after_substep_gpu_c [private/external]
- gpu/update_on_gpu_arr_by_ind_c [private/external]
- gpu/update_on_gpu_arr_by_name_c [integer,private/external]
- gpu/update_on_gpu_scal_by_ind_c [private/external]
- gpu/update_on_gpu_scal_by_name_c [integer,private/external]
- gpu/update_on_gpu_vec_by_ind_c [private/external]
- gpu/update_on_gpu_vec_by_name_c [integer,private/external]
Subroutines and functions
- subroutine gpu/train_gpu(loss, itsub, t)
- Parameters:
loss [real]
itsub [integer]
t [real,in]
- Call to:
fatal_error(),load_farray_to_gpu(),get_farray_ptr_gpu(),get_ptr_gpu(),get_ptr_gpu_training()
- subroutine gpu/infer_gpu(flag)
- Parameters:
flag [integer]
- Call to:
fatal_error(),load_farray_to_gpu(),get_farray_ptr_gpu(),get_ptr_gpu(),get_ptr_gpu_training()
- subroutine gpu/tf_create_model(model_name, config_file_path, lmpicomm)
- Parameters:
model_name [character,in]
config_file_path [character,in]
lmpicomm [logical]
- Use :
- Call to:
fatal_error(),load_farray_to_gpu(),get_farray_ptr_gpu(),get_ptr_gpu(),get_ptr_gpu_training()
- subroutine gpu/tau_snapshots()
- subroutine gpu/tf_load_model(model_name, fname)
- Parameters:
model_name [character,in]
fname [character,in]
- Call to:
fatal_error(),load_farray_to_gpu(),get_farray_ptr_gpu(),get_ptr_gpu(),get_ptr_gpu_training()
- subroutine gpu/tf_load_model_checkpoint(model_name, checkpoint_dir)
- Parameters:
model_name [character,in]
checkpoint_dir [character,in]
- Call to:
fatal_error(),load_farray_to_gpu(),get_farray_ptr_gpu(),get_ptr_gpu(),get_ptr_gpu_training()
- subroutine gpu/tf_save_model(model_name, fname)
- Parameters:
model_name [character,in]
fname [character,in]
- Call to:
fatal_error(),load_farray_to_gpu(),get_farray_ptr_gpu(),get_ptr_gpu(),get_ptr_gpu_training()
- subroutine gpu/tf_save_checkpoint(model_name, checkpoint_dir)
- Parameters:
model_name [character,in]
checkpoint_dir [character,in]
- Call to:
fatal_error(),load_farray_to_gpu(),get_farray_ptr_gpu(),get_ptr_gpu(),get_ptr_gpu_training()
- subroutine gpu/initialize_gpu(f)
- Parameters:
f (,,*,*) [real,in]
- Use :
- Call to:
fatal_error(),load_farray_to_gpu(),get_farray_ptr_gpu(),get_ptr_gpu(),get_ptr_gpu_training()
- subroutine gpu/read_gpu_run_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
- subroutine gpu/write_gpu_run_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
- subroutine gpu/register_gpu()
- Call to:
- subroutine gpu/finalize_gpu()
- Call to:
- subroutine gpu/get_farray_ptr_gpu()
- Call to:
- subroutine gpu/rhs_gpu(f, isubstep)
- Parameters:
- Use :
- Call to:
- subroutine gpu/before_boundary_gpu(f, lrmv, isubstep, t)
- Parameters:
- Use :
- Call to:
- subroutine gpu/update_after_substep_gpu()
- Call to:
- subroutine gpu/gpu_prepare_for_first_substep()
- Call to:
- function gpu/get_ptr_gpu([ind1[, ind2[, lout]]])
Fetches the address of the f-array counterpart on the GPU for slots from ind1 to ind2 and transforms it to a Fortran pointer.
- Parameters:
ind1 [integer]
ind2 [integer]
lout [logical]
- Return:
pfarr (,,*,*) [real,pointer]
- Call to:
- function gpu/get_ptr_gpu_training(ind1[, ind2[, lout]])
- Parameters:
ind1 [integer]
ind2 [integer]
lout [logical]
- Return:
pfarr (,,*,*,*) [real,pointer]
- Use :
cparam,iso_c_binding- Call to:
- subroutine gpu/copy_farray_from_gpu(f[, nowait_])
- Parameters:
- Call to:
- subroutine gpu/load_farray_to_gpu(f)
- Parameters:
- Call to:
- subroutine gpu/reload_gpu_config()
- Call to:
- subroutine gpu/update_on_gpu_vec(index[, varname[, value]])
Updates an element of the Astaroth configuration, identified by name or index, on the GPU.
- Parameters:
index [integer,inout]
varname [character]
value (3) [real]
- Call to:
- subroutine gpu/update_on_gpu(index[, varname[, value]])
Updates an element of the Astaroth configuration, identified by name or index, on the GPU.
- Parameters:
index [integer,inout]
varname [character]
value [real]
- Call to:
- subroutine gpu/radtransfer_gpu()
- subroutine gpu/get_gpu_reduced_vars(dst)
- Parameters:
dst (10) [real]
- subroutine gpu/test_gpu_bcs()
- subroutine gpu/pushpars2c(p_par)
- Parameters:
p_par (50) [integer]
- Use :
syscalls(copy_addr()),general(pos_in_array(),string_to_enum())