@@ -2837,6 +2837,156 @@ BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_2x4_acc3)
28372837BENCHMARK_DWCONV(dwconv2d_chw_5x5s2p2__wasmsimd_x86_splat_3x4_acc2)
28382838#endif // XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD
28392839
2840+ #if XNN_ENABLE_RISCV_VECTOR && XNN_ARCH_RISCV
2841+ static void dwconv2d_chw_3x3p1__rvv_5x1v (benchmark::State& state,
2842+ const char * net) {
2843+ f32_dwconv2d_chw (state,
2844+ xnn_f32_dwconv2d_chw_ukernel_3x3p1__rvv_5x1v,
2845+ xnn_init_f32_minmax_scalar_params,
2846+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2847+ /* stride=*/ 1 );
2848+ }
2849+ static void dwconv2d_chw_3x3p1__rvv_6x1v (benchmark::State& state,
2850+ const char * net) {
2851+ f32_dwconv2d_chw (state,
2852+ xnn_f32_dwconv2d_chw_ukernel_3x3p1__rvv_6x1v,
2853+ xnn_init_f32_minmax_scalar_params,
2854+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2855+ /* stride=*/ 1 );
2856+ }
2857+ static void dwconv2d_chw_3x3p1__rvv_7x1v (benchmark::State& state,
2858+ const char * net) {
2859+ f32_dwconv2d_chw (state,
2860+ xnn_f32_dwconv2d_chw_ukernel_3x3p1__rvv_7x1v,
2861+ xnn_init_f32_minmax_scalar_params,
2862+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2863+ /* stride=*/ 1 );
2864+ }
2865+ static void dwconv2d_chw_3x3p1__rvv_8x1v (benchmark::State& state,
2866+ const char * net) {
2867+ f32_dwconv2d_chw (state,
2868+ xnn_f32_dwconv2d_chw_ukernel_3x3p1__rvv_8x1v,
2869+ xnn_init_f32_minmax_scalar_params,
2870+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2871+ /* stride=*/ 1 );
2872+ }
2873+ static void dwconv2d_chw_3x3p1__rvv_1x2v (benchmark::State& state,
2874+ const char * net) {
2875+ f32_dwconv2d_chw (state,
2876+ xnn_f32_dwconv2d_chw_ukernel_3x3p1__rvv_1x2v,
2877+ xnn_init_f32_minmax_scalar_params,
2878+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2879+ /* stride=*/ 1 );
2880+ }
2881+ static void dwconv2d_chw_3x3p1__rvv_2x2v (benchmark::State& state,
2882+ const char * net) {
2883+ f32_dwconv2d_chw (state,
2884+ xnn_f32_dwconv2d_chw_ukernel_3x3p1__rvv_2x2v,
2885+ xnn_init_f32_minmax_scalar_params,
2886+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2887+ /* stride=*/ 1 );
2888+ }
2889+ static void dwconv2d_chw_3x3p1__rvv_3x2v (benchmark::State& state,
2890+ const char * net) {
2891+ f32_dwconv2d_chw (state,
2892+ xnn_f32_dwconv2d_chw_ukernel_3x3p1__rvv_3x2v,
2893+ xnn_init_f32_minmax_scalar_params,
2894+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2895+ /* stride=*/ 1 );
2896+ }
2897+ static void dwconv2d_chw_3x3p1__rvv_4x2v (benchmark::State& state,
2898+ const char * net) {
2899+ f32_dwconv2d_chw (state,
2900+ xnn_f32_dwconv2d_chw_ukernel_3x3p1__rvv_4x2v,
2901+ xnn_init_f32_minmax_scalar_params,
2902+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2903+ /* stride=*/ 1 );
2904+ }
2905+
2906+ static void dwconv2d_chw_3x3s2p1__rvv_5x1v (benchmark::State& state,
2907+ const char * net) {
2908+ f32_dwconv2d_chw (state,
2909+ xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__rvv_5x1v,
2910+ xnn_init_f32_minmax_scalar_params,
2911+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2912+ /* stride=*/ 2 );
2913+ }
2914+ static void dwconv2d_chw_3x3s2p1__rvv_6x1v (benchmark::State& state,
2915+ const char * net) {
2916+ f32_dwconv2d_chw (state,
2917+ xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__rvv_6x1v,
2918+ xnn_init_f32_minmax_scalar_params,
2919+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2920+ /* stride=*/ 2 );
2921+ }
2922+ static void dwconv2d_chw_3x3s2p1__rvv_7x1v (benchmark::State& state,
2923+ const char * net) {
2924+ f32_dwconv2d_chw (state,
2925+ xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__rvv_7x1v,
2926+ xnn_init_f32_minmax_scalar_params,
2927+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2928+ /* stride=*/ 2 );
2929+ }
2930+ static void dwconv2d_chw_3x3s2p1__rvv_8x1v (benchmark::State& state,
2931+ const char * net) {
2932+ f32_dwconv2d_chw (state,
2933+ xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__rvv_8x1v,
2934+ xnn_init_f32_minmax_scalar_params,
2935+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2936+ /* stride=*/ 2 );
2937+ }
2938+ static void dwconv2d_chw_3x3s2p1__rvv_1x2v (benchmark::State& state,
2939+ const char * net) {
2940+ f32_dwconv2d_chw (state,
2941+ xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__rvv_1x2v,
2942+ xnn_init_f32_minmax_scalar_params,
2943+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2944+ /* stride=*/ 2 );
2945+ }
2946+ static void dwconv2d_chw_3x3s2p1__rvv_2x2v (benchmark::State& state,
2947+ const char * net) {
2948+ f32_dwconv2d_chw (state,
2949+ xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__rvv_2x2v,
2950+ xnn_init_f32_minmax_scalar_params,
2951+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2952+ /* stride=*/ 2 );
2953+ }
2954+ static void dwconv2d_chw_3x3s2p1__rvv_3x2v (benchmark::State& state,
2955+ const char * net) {
2956+ f32_dwconv2d_chw (state,
2957+ xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__rvv_3x2v,
2958+ xnn_init_f32_minmax_scalar_params,
2959+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2960+ /* stride=*/ 2 );
2961+ }
2962+ static void dwconv2d_chw_3x3s2p1__rvv_4x2v (benchmark::State& state,
2963+ const char * net) {
2964+ f32_dwconv2d_chw (state,
2965+ xnn_f32_dwconv2d_chw_ukernel_3x3s2p1__rvv_4x2v,
2966+ xnn_init_f32_minmax_scalar_params,
2967+ /* kernel_height=*/ 3 , /* kernel_width=*/ 3 , /* padding_width=*/ 1 ,
2968+ /* stride=*/ 2 );
2969+ }
2970+
2971+ BENCHMARK_DWCONV (dwconv2d_chw_3x3p1__rvv_5x1v)
2972+ BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__rvv_6x1v)
2973+ BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__rvv_7x1v)
2974+ BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__rvv_8x1v)
2975+ BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__rvv_1x2v)
2976+ BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__rvv_2x2v)
2977+ BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__rvv_3x2v)
2978+ BENCHMARK_DWCONV(dwconv2d_chw_3x3p1__rvv_4x2v)
2979+
2980+ BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__rvv_5x1v)
2981+ BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__rvv_6x1v)
2982+ BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__rvv_7x1v)
2983+ BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__rvv_8x1v)
2984+ BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__rvv_1x2v)
2985+ BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__rvv_2x2v)
2986+ BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__rvv_3x2v)
2987+ BENCHMARK_DWCONV(dwconv2d_chw_3x3s2p1__rvv_4x2v)
2988+ #endif // XNN_ENABLE_RISCV_VECTOR && XNN_ARCH_RISCV
2989+
28402990static void dwconv2d_chw_3x3p1__scalar_1x1 (benchmark::State& state,
28412991 const char * net) {
28422992 f32_dwconv2d_chw (state, xnn_f32_dwconv2d_chw_ukernel_3x3p1__scalar_1x1,
0 commit comments