@@ -70,11 +70,22 @@ static int (*gemv_thread[])(BLASLONG, BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT
70
70
71
71
#if defined(DYNAMIC_ARCH ) || defined(NEOVERSEV1 )
72
72
static inline int get_gemv_optimal_nthreads_neoversev1 (BLASLONG MN , int ncpu ) {
73
- return
74
- MN < 25600L ? 1
75
- : MN < 63001L ? MIN (ncpu , 4 )
76
- : MN < 459684L ? MIN (ncpu , 16 )
77
- : ncpu ;
73
+ #ifdef DOUBLE
74
+ return (MN < 8100L ) ? 1
75
+ : (MN < 12100L ) ? MIN (ncpu , 2 )
76
+ : (MN < 36100L ) ? MIN (ncpu , 4 )
77
+ : (MN < 84100L ) ? MIN (ncpu , 8 )
78
+ : (MN < 348100L ) ? MIN (ncpu , 16 )
79
+ : (MN < 435600L ) ? MIN (ncpu , 24 )
80
+ : (MN < 810000L ) ? MIN (ncpu , 32 )
81
+ : (MN < 1050625L ) ? MIN (ncpu , 40 )
82
+ : ncpu ;
83
+ #else
84
+ return (MN < 25600L ) ? 1
85
+ : (MN < 63001L ) ? MIN (ncpu , 4 )
86
+ : (MN < 459684L ) ? MIN (ncpu , 16 )
87
+ : ncpu ;
88
+ #endif
78
89
}
79
90
#endif
80
91
@@ -96,11 +107,11 @@ static inline int get_gemv_optimal_nthreads(BLASLONG MN) {
96
107
return num_cpu_avail (4 );
97
108
return 1 ;
98
109
#endif
99
- #if defined(NEOVERSEV1 ) && !defined(COMPLEX ) && !defined(DOUBLE ) && !defined( BFLOAT16 )
110
+ #if defined(NEOVERSEV1 ) && !defined(COMPLEX ) && !defined(BFLOAT16 )
100
111
return get_gemv_optimal_nthreads_neoversev1 (MN , ncpu );
101
112
#elif defined(NEOVERSEV2 ) && !defined(COMPLEX ) && !defined(DOUBLE ) && !defined(BFLOAT16 )
102
113
return get_gemv_optimal_nthreads_neoversev2 (MN , ncpu );
103
- #elif defined(DYNAMIC_ARCH ) && !defined(COMPLEX ) && !defined(DOUBLE ) && !defined( BFLOAT16 )
114
+ #elif defined(DYNAMIC_ARCH ) && !defined(COMPLEX ) && !defined(BFLOAT16 )
104
115
if (strcmp (gotoblas_corename (), "neoversev1" ) == 0 ) {
105
116
return get_gemv_optimal_nthreads_neoversev1 (MN , ncpu );
106
117
}
0 commit comments