File tree 4 files changed +399
-1
lines changed
onnxruntime/core/mlas/lib
4 files changed +399
-1
lines changed Original file line number Diff line number Diff line change @@ -982,6 +982,8 @@ struct MLAS_GEMM_QUANT_DISPATCH;
982
982
983
983
extern const MLAS_GEMM_QUANT_DISPATCH MlasGemmU8X8DispatchSse;
984
984
extern const MLAS_GEMM_QUANT_DISPATCH MlasGemmU8X8DispatchLSX;
985
+ extern const MLAS_GEMM_QUANT_DISPATCH MlasGemmS8S8DispatchLSX;
986
+ extern const MLAS_GEMM_QUANT_DISPATCH MlasGemmS8U8DispatchLSX;
985
987
extern const MLAS_GEMM_QUANT_DISPATCH MlasGemmU8S8DispatchSse41;
986
988
extern const MLAS_GEMM_QUANT_DISPATCH MlasGemmU8S8DispatchAvx2;
987
989
extern const MLAS_GEMM_QUANT_DISPATCH MlasGemmU8U8DispatchAvx2;
@@ -1150,6 +1152,8 @@ struct MLAS_PLATFORM {
1150
1152
#if defined(MLAS_TARGET_LARCH64)
1151
1153
const MLAS_GEMM_QUANT_DISPATCH* GemmU8S8Dispatch;
1152
1154
const MLAS_GEMM_QUANT_DISPATCH* GemmU8U8Dispatch;
1155
+ const MLAS_GEMM_QUANT_DISPATCH* GemmS8S8Dispatch;
1156
+ const MLAS_GEMM_QUANT_DISPATCH* GemmS8U8Dispatch;
1153
1157
MLAS_GEMM_FLOAT_KERNEL* GemmFloatKernel;
1154
1158
MLAS_GEMM_DOUBLE_KERNEL* GemmDoubleKernel;
1155
1159
MLAS_CONV_FLOAT_KERNEL* ConvNchwFloatKernel;
Original file line number Diff line number Diff line change @@ -658,10 +658,14 @@ Return Value:
658
658
659
659
this ->GemmU8S8Dispatch = &MlasGemmU8X8DispatchLSX;
660
660
this ->GemmU8U8Dispatch = &MlasGemmU8X8DispatchLSX;
661
+ this ->GemmS8S8Dispatch = &MlasGemmS8S8DispatchLSX;
662
+ this ->GemmS8U8Dispatch = &MlasGemmS8U8DispatchLSX;
661
663
}else if ( cap_lsx ){
662
664
this ->GemmFloatKernel = MlasGemmFloatKernelLSX;
663
665
this ->GemmU8S8Dispatch = &MlasGemmU8X8DispatchLSX;
664
666
this ->GemmU8U8Dispatch = &MlasGemmU8X8DispatchLSX;
667
+ this ->GemmS8S8Dispatch = &MlasGemmS8S8DispatchLSX;
668
+ this ->GemmS8U8Dispatch = &MlasGemmS8U8DispatchLSX;
665
669
this ->TransposePackB16x4Routine = MlasSgemmTransposePackB16x4LSX;
666
670
this ->GemmDoubleKernel = MlasGemmDoubleKernelLSX;
667
671
this ->ConvNchwFloatKernel = MlasConvNchwFloatKernelLSX;
Original file line number Diff line number Diff line change @@ -905,7 +905,10 @@ MlasGemmQuantGetDispatch(
905
905
GemmQuantDispatch = GetMlasPlatform ().GemmU8X8Dispatch ;
906
906
}
907
907
#elif defined(MLAS_TARGET_LARCH64)
908
- if (!AIsSigned) {
908
+ if (AIsSigned) {
909
+ GemmQuantDispatch =
910
+ BIsSigned ? GetMlasPlatform ().GemmS8S8Dispatch : GetMlasPlatform ().GemmS8U8Dispatch ;
911
+ } else { // !AIsSigned
909
912
GemmQuantDispatch =
910
913
BIsSigned ? GetMlasPlatform ().GemmU8S8Dispatch : GetMlasPlatform ().GemmU8U8Dispatch ;
911
914
}
You can’t perform that action at this time.
0 commit comments