Source: emel/kernel/vulkan/sm.hpp
stateDiagram-v2
direction TB
[*] --> ready
ready --> ready : dispatch_request [always] / dispatch_request__
ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__
ready --> ready : dispatch_op_dup [dispatch_op_dup__] / dispatch_op_dup__
ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__
ready --> ready : dispatch_op_add [dispatch_op_add__] / dispatch_op_add__
ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__
ready --> ready : dispatch_op_add_id [dispatch_op_add_id__] / dispatch_op_add_id__
ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__
ready --> ready : dispatch_op_add1 [dispatch_op_add1__] / dispatch_op_add1__
ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__
ready --> ready : dispatch_op_acc [dispatch_op_acc__] / dispatch_op_acc__
ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__
ready --> ready : dispatch_op_sub [dispatch_op_sub__] / dispatch_op_sub__
ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__
ready --> ready : dispatch_op_mul [dispatch_op_mul__] / dispatch_op_mul__
ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__
ready --> ready : dispatch_op_div [dispatch_op_div__] / dispatch_op_div__
ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__
ready --> ready : dispatch_op_sqr [dispatch_op_sqr__] / dispatch_op_sqr__
ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__
ready --> ready : dispatch_op_sqrt [dispatch_op_sqrt__] / dispatch_op_sqrt__
ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__
ready --> ready : dispatch_op_log [dispatch_op_log__] / dispatch_op_log__
ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__
ready --> ready : dispatch_op_sin [dispatch_op_sin__] / dispatch_op_sin__
ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__
ready --> ready : dispatch_op_cos [dispatch_op_cos__] / dispatch_op_cos__
ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__
ready --> ready : dispatch_op_sum [dispatch_op_sum__] / dispatch_op_sum__
ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__
ready --> ready : dispatch_op_sum_rows [dispatch_op_sum_rows__] / dispatch_op_sum_rows__
ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__
ready --> ready : dispatch_op_cumsum [dispatch_op_cumsum__] / dispatch_op_cumsum__
ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__
ready --> ready : dispatch_op_mean [dispatch_op_mean__] / dispatch_op_mean__
ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__
ready --> ready : dispatch_op_argmax [dispatch_op_argmax__] / dispatch_op_argmax__
ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__
ready --> ready : dispatch_op_count_equal [dispatch_op_count_equal__] / dispatch_op_count_equal__
ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__
ready --> ready : dispatch_op_repeat [dispatch_op_repeat__] / dispatch_op_repeat__
ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__
ready --> ready : dispatch_op_repeat_back [dispatch_op_repeat_back__] / dispatch_op_repeat_back__
ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__
ready --> ready : dispatch_op_concat [dispatch_op_concat__] / dispatch_op_concat__
ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__
ready --> ready : dispatch_op_silu_back [dispatch_op_silu_back__] / dispatch_op_silu_back__
ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__
ready --> ready : dispatch_op_norm [dispatch_op_norm__] / dispatch_op_norm__
ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__
ready --> ready : dispatch_op_rms_norm [dispatch_op_rms_norm__] / dispatch_op_rms_norm__
ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__
ready --> ready : dispatch_op_rms_norm_back [dispatch_op_rms_norm_back__] / dispatch_op_rms_norm_back__
ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__
ready --> ready : dispatch_op_group_norm [dispatch_op_group_norm__] / dispatch_op_group_norm__
ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__
ready --> ready : dispatch_op_l2_norm [dispatch_op_l2_norm__] / dispatch_op_l2_norm__
ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__
ready --> ready : dispatch_op_mul_mat [dispatch_op_mul_mat__] / dispatch_op_mul_mat__
ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__
ready --> ready : dispatch_op_mul_mat_id [dispatch_op_mul_mat_id__] / dispatch_op_mul_mat_id__
ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__
ready --> ready : dispatch_op_out_prod [dispatch_op_out_prod__] / dispatch_op_out_prod__
ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__
ready --> ready : dispatch_op_scale [dispatch_op_scale__] / dispatch_op_scale__
ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__
ready --> ready : dispatch_op_set [dispatch_op_set__] / dispatch_op_set__
ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__
ready --> ready : dispatch_op_cpy [dispatch_op_cpy__] / dispatch_op_cpy__
ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__
ready --> ready : dispatch_op_cont [dispatch_op_cont__] / dispatch_op_cont__
ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__
ready --> ready : dispatch_op_reshape [dispatch_op_reshape__] / dispatch_op_reshape__
ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__
ready --> ready : dispatch_op_view [dispatch_op_view__] / dispatch_op_view__
ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__
ready --> ready : dispatch_op_permute [dispatch_op_permute__] / dispatch_op_permute__
ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__
ready --> ready : dispatch_op_transpose [dispatch_op_transpose__] / dispatch_op_transpose__
ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__
ready --> ready : dispatch_op_get_rows [dispatch_op_get_rows__] / dispatch_op_get_rows__
ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__
ready --> ready : dispatch_op_get_rows_back [dispatch_op_get_rows_back__] / dispatch_op_get_rows_back__
ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__
ready --> ready : dispatch_op_set_rows [dispatch_op_set_rows__] / dispatch_op_set_rows__
ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__
ready --> ready : dispatch_op_diag [dispatch_op_diag__] / dispatch_op_diag__
ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__
ready --> ready : dispatch_op_diag_mask_inf [dispatch_op_diag_mask_inf__] / dispatch_op_diag_mask_inf__
ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__
ready --> ready : dispatch_op_diag_mask_zero [dispatch_op_diag_mask_zero__] / dispatch_op_diag_mask_zero__
ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__
ready --> ready : dispatch_op_soft_max [dispatch_op_soft_max__] / dispatch_op_soft_max__
ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__
ready --> ready : dispatch_op_soft_max_back [dispatch_op_soft_max_back__] / dispatch_op_soft_max_back__
ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__
ready --> ready : dispatch_op_rope [dispatch_op_rope__] / dispatch_op_rope__
ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__
ready --> ready : dispatch_op_rope_back [dispatch_op_rope_back__] / dispatch_op_rope_back__
ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__
ready --> ready : dispatch_op_clamp [dispatch_op_clamp__] / dispatch_op_clamp__
ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__
ready --> ready : dispatch_op_conv_transpose_1d [dispatch_op_conv_transpose_1d__] / dispatch_op_conv_transpose_1d__
ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__
ready --> ready : dispatch_op_im2col [dispatch_op_im2col__] / dispatch_op_im2col__
ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__
ready --> ready : dispatch_op_im2col_back [dispatch_op_im2col_back__] / dispatch_op_im2col_back__
ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__
ready --> ready : dispatch_op_im2col_3d [dispatch_op_im2col_3d__] / dispatch_op_im2col_3d__
ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__
ready --> ready : dispatch_op_conv_2d [dispatch_op_conv_2d__] / dispatch_op_conv_2d__
ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__
ready --> ready : dispatch_op_conv_3d [dispatch_op_conv_3d__] / dispatch_op_conv_3d__
ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__
ready --> ready : dispatch_op_conv_2d_dw [dispatch_op_conv_2d_dw__] / dispatch_op_conv_2d_dw__
ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__
ready --> ready : dispatch_op_conv_transpose_2d [dispatch_op_conv_transpose_2d__] / dispatch_op_conv_transpose_2d__
ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__
ready --> ready : dispatch_op_pool_1d [dispatch_op_pool_1d__] / dispatch_op_pool_1d__
ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__
ready --> ready : dispatch_op_pool_2d [dispatch_op_pool_2d__] / dispatch_op_pool_2d__
ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__
ready --> ready : dispatch_op_pool_2d_back [dispatch_op_pool_2d_back__] / dispatch_op_pool_2d_back__
ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__
ready --> ready : dispatch_op_upscale [dispatch_op_upscale__] / dispatch_op_upscale__
ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__
ready --> ready : dispatch_op_pad [dispatch_op_pad__] / dispatch_op_pad__
ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__
ready --> ready : dispatch_op_pad_reflect_1d [dispatch_op_pad_reflect_1d__] / dispatch_op_pad_reflect_1d__
ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__
ready --> ready : dispatch_op_roll [dispatch_op_roll__] / dispatch_op_roll__
ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__
ready --> ready : dispatch_op_arange [dispatch_op_arange__] / dispatch_op_arange__
ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__
ready --> ready : dispatch_op_timestep_embedding [dispatch_op_timestep_embedding__] / dispatch_op_timestep_embedding__
ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__
ready --> ready : dispatch_op_argsort [dispatch_op_argsort__] / dispatch_op_argsort__
ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__
ready --> ready : dispatch_op_top_k [dispatch_op_top_k__] / dispatch_op_top_k__
ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__
ready --> ready : dispatch_op_leaky_relu [dispatch_op_leaky_relu__] / dispatch_op_leaky_relu__
ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__
ready --> ready : dispatch_op_tri [dispatch_op_tri__] / dispatch_op_tri__
ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__
ready --> ready : dispatch_op_fill [dispatch_op_fill__] / dispatch_op_fill__
ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__
ready --> ready : dispatch_op_flash_attn_ext [dispatch_op_flash_attn_ext__] / dispatch_op_flash_attn_ext__
ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__
ready --> ready : dispatch_op_flash_attn_back [dispatch_op_flash_attn_back__] / dispatch_op_flash_attn_back__
ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__
ready --> ready : dispatch_op_ssm_conv [dispatch_op_ssm_conv__] / dispatch_op_ssm_conv__
ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__
ready --> ready : dispatch_op_ssm_scan [dispatch_op_ssm_scan__] / dispatch_op_ssm_scan__
ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__
ready --> ready : dispatch_op_win_part [dispatch_op_win_part__] / dispatch_op_win_part__
ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__
ready --> ready : dispatch_op_win_unpart [dispatch_op_win_unpart__] / dispatch_op_win_unpart__
ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__
ready --> ready : dispatch_op_get_rel_pos [dispatch_op_get_rel_pos__] / dispatch_op_get_rel_pos__
ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__
ready --> ready : dispatch_op_add_rel_pos [dispatch_op_add_rel_pos__] / dispatch_op_add_rel_pos__
ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__
ready --> ready : dispatch_op_rwkv_wkv6 [dispatch_op_rwkv_wkv6__] / dispatch_op_rwkv_wkv6__
ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__
ready --> ready : dispatch_op_gated_linear_attn [dispatch_op_gated_linear_attn__] / dispatch_op_gated_linear_attn__
ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__
ready --> ready : dispatch_op_rwkv_wkv7 [dispatch_op_rwkv_wkv7__] / dispatch_op_rwkv_wkv7__
ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__
ready --> ready : dispatch_op_solve_tri [dispatch_op_solve_tri__] / dispatch_op_solve_tri__
ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__
ready --> ready : dispatch_op_unary [dispatch_op_unary__] / dispatch_op_unary__
ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__
ready --> ready : dispatch_op_map_custom1 [dispatch_op_map_custom1__] / dispatch_op_map_custom1__
ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__
ready --> ready : dispatch_op_map_custom2 [dispatch_op_map_custom2__] / dispatch_op_map_custom2__
ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__
ready --> ready : dispatch_op_map_custom3 [dispatch_op_map_custom3__] / dispatch_op_map_custom3__
ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__
ready --> ready : dispatch_op_custom [dispatch_op_custom__] / dispatch_op_custom__
ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__
ready --> ready : dispatch_op_cross_entropy_loss [dispatch_op_cross_entropy_loss__] / dispatch_op_cross_entropy_loss__
ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__
ready --> ready : dispatch_op_cross_entropy_loss_back [dispatch_op_cross_entropy_loss_back__] / dispatch_op_cross_entropy_loss_back__
ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__
ready --> ready : dispatch_op_opt_step_adamw [dispatch_op_opt_step_adamw__] / dispatch_op_opt_step_adamw__
ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__
ready --> ready : dispatch_op_opt_step_sgd [dispatch_op_opt_step_sgd__] / dispatch_op_opt_step_sgd__
ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__
ready --> ready : dispatch_op_glu [dispatch_op_glu__] / dispatch_op_glu__
ready --> ready : _ [always] / on_unexpected_