-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dycore in mixed-precision #301
Conversation
f3171c2
to
f6bfb27
Compare
f6bfb27
to
331b7d7
Compare
cscs-ci run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did not look in detail at ICON and double-checked if the precision level of those variables correspond to the ones here, but other than that it looks good to me. I do think it would be useful to add a unit test to test this new option in icon4pygen
though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has been a huge effort and is quite an achievement. Congrats. The code is very solid.
I only have some minor suggestions.
- One recurring thing is that I would cast all double literals, which is right now not a problem. But might cause a problem once we want to run in all single precession.
- I have two suggestion that I would check before merging if they have an impact on the validation.
I focused in the review on the field_operators specially on their casting of literals and intermediate results. I didnot look on the interfaces. The unittests I reviewed only very briefly.
...sion/src/icon4py/model/atmosphere/diffusion/stencils/calculate_diagnostics_for_turbulence.py
Outdated
Show resolved
Hide resolved
...icon4py/model/atmosphere/diffusion/stencils/calculate_nabla2_and_smag_coefficients_for_vn.py
Outdated
Show resolved
Hide resolved
model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_solve_nonhydro_stencil_08.py
Outdated
Show resolved
Hide resolved
model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_solve_nonhydro_stencil_13.py
Outdated
Show resolved
Hide resolved
...core/src/icon4py/model/atmosphere/dycore/mo_solve_nonhydro_stencil_16_fused_btraj_traj_o1.py
Outdated
Show resolved
Hide resolved
model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_velocity_advection_stencil_20.py
Outdated
Show resolved
Hide resolved
model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_velocity_advection_stencil_20.py
Outdated
Show resolved
Hide resolved
model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_18.py
Outdated
Show resolved
Hide resolved
model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_18.py
Outdated
Show resolved
Hide resolved
model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_solve_nonhydro_stencil_39.py
Outdated
Show resolved
Hide resolved
Conflicts: model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/stencils/calculate_diagnostics_for_turbulence.py model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/stencils/calculate_nabla2_and_smag_coefficients_for_vn.py model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/stencils/calculate_nabla4.py model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_to_w.py model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_diagnostics_for_turbulence.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla2_for_w.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla2_for_z.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla2_of_theta.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla4.py model/atmosphere/diffusion/tests/stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py model/atmosphere/diffusion/tests/stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py model/atmosphere/diffusion/tests/stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py model/atmosphere/diffusion/tests/stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py model/atmosphere/diffusion/tests/stencil_tests/test_update_theta_and_exner.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_solve_nonhydro_stencil_21.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_solve_nonhydro_stencil_36.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_solve_nonhydro_stencil_66.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_velocity_advection_stencil_14.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_velocity_advection_stencil_18.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_velocity_advection_stencil_20.py model/atmosphere/dycore/tests/stencil_tests/test_compute_airmass.py model/atmosphere/dycore/tests/stencil_tests/test_fused_solve_nonhydro_stencil_39_40.py model/atmosphere/dycore/tests/stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py model/atmosphere/dycore/tests/stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py model/atmosphere/dycore/tests/stencil_tests/test_mo_math_gradients_grad_green_gauss_cell_dsl.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_4th_order_divdamp.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_01.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_02.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_03.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_04.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_05.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_06.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_07.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_08.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_09.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_10.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_11_lower.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_11_upper.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_12.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_13.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_14.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_15.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_16_fused_btraj_traj_o1.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_17.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_18.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_19.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_20.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_21.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_22.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_23.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_24.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_25.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_26.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_27.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_28.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_29.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_30.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_31.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_32.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_33.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_34.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_35.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_36.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_37.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_38.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_39.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_40.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_41.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_42.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_43.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_44.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_45.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_46.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_47.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_48.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_49.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_50.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_52.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_53.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_54.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_55.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_56_63.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_57.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_58.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_59.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_60.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_61.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_62.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_64.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_65.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_66.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_67.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_68.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_01.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_02.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_03.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_04.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_05.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_06.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_07.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_08.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_09.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_10.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_11.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_12.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_13.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_14.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_15.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_16.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_17.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_18.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_19.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_20.py model/common/src/icon4py/model/common/test_utils/helpers.py model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py
Conflicts: model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/stencils/calculate_diagnostics_for_turbulence.py model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/stencils/calculate_nabla2_and_smag_coefficients_for_vn.py model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/stencils/calculate_nabla4.py model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_to_w.py model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_diagnostics_for_turbulence.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla2_for_w.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla2_for_z.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla2_of_theta.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla4.py model/atmosphere/diffusion/tests/stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py model/atmosphere/diffusion/tests/stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py model/atmosphere/diffusion/tests/stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py model/atmosphere/diffusion/tests/stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py model/atmosphere/diffusion/tests/stencil_tests/test_update_theta_and_exner.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_solve_nonhydro_stencil_21.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_solve_nonhydro_stencil_36.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_solve_nonhydro_stencil_66.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_velocity_advection_stencil_14.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_velocity_advection_stencil_18.py model/atmosphere/dycore/src/icon4py/model/atmosphere/dycore/mo_velocity_advection_stencil_20.py model/atmosphere/dycore/tests/stencil_tests/test_compute_airmass.py model/atmosphere/dycore/tests/stencil_tests/test_fused_solve_nonhydro_stencil_39_40.py model/atmosphere/dycore/tests/stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py model/atmosphere/dycore/tests/stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py model/atmosphere/dycore/tests/stencil_tests/test_mo_math_gradients_grad_green_gauss_cell_dsl.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_4th_order_divdamp.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_01.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_02.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_03.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_04.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_05.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_06.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_07.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_08.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_09.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_10.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_11_lower.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_11_upper.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_12.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_13.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_14.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_15.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_16_fused_btraj_traj_o1.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_17.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_18.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_19.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_20.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_21.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_22.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_23.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_24.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_25.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_26.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_27.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_28.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_29.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_30.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_31.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_32.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_33.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_34.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_35.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_36.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_37.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_38.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_39.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_40.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_41.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_42.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_43.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_44.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_45.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_46.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_47.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_48.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_49.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_50.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_52.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_53.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_54.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_55.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_56_63.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_57.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_58.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_59.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_60.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_61.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_62.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_64.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_65.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_66.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_67.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_68.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_01.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_02.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_03.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_04.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_05.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_06.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_07.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_08.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_09.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_10.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_11.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_12.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_13.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_14.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_15.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_16.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_17.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_18.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_19.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_20.py model/common/src/icon4py/model/common/test_utils/helpers.py model/common/tests/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py
… mixed_precision_dycore Conflicts: model/atmosphere/diffusion/tests/stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py model/atmosphere/diffusion/tests/stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_01.py
cscs-ci run |
…ycore Conflicts: model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py model/atmosphere/diffusion/tests/stencil_tests/test_calculate_nabla4.py model/atmosphere/dycore/tests/stencil_tests/test_mo_solve_nonhydro_stencil_16_fused_btraj_traj_o1.py model/atmosphere/dycore/tests/stencil_tests/test_mo_velocity_advection_stencil_19.py
cscs-ci run |
3 similar comments
cscs-ci run |
cscs-ci run |
cscs-ci run |
launch jenkins spack |
launch jenkins spack |
cscs-ci run |
launch jenkins spack |
cscs-ci run |
launch jenkins spack |
…ycore Conflicts: model/common/src/icon4py/model/common/test_utils/helpers.py
Mandatory Tests Please make sure you run these tests via comment before you merge!
Optional Tests In case your change might affect downstream icon-exclaim, please consider running
For more detailed information please look at CI in the EXCLAIM universe. |
cscs-ci run |
launch jenkins spack |
This PR enables to use the gt4py ICON dycore in mixed-precision. Parts of the variables are mixed e.g. single or double precision (typed in ICON as
vpfloat = variable precision
) which depends on whether the --enable-mixed-precision compilation option has been set and some are always in double precision (wpfloat = working precision
). This mode has been transfered to the gt4py dycore which is currently all in double-precision.The key changes include:
--enable-mixed-precision
option in the command-line interface (CLI) for compiling stencils, enabling mixed-precision computation.wpfloat
andvpfloat
incommon/type_alias.py
to be imported in stencils, providing flexibility in specifying precision.astype
in dycore stencils to allow mixed-precision computations.--enable-mixed-precision
flag to ensure comprehensive testing in mixed-precision mode.dtype
argument in therandom_field
testing helpers function to control data types.To test the stencils in mixed precision:
--enable-mixed-precision
option to thepytest
command :pytest -v --enable-mixed-precision