onnxruntime
onnxruntime copied to clipboard
Improvements to the INT8 GEMM portion of the code for Power
These are changes to improve GEMM portion of the code for Power.
There are 2 main code changes :
- Changing a function to a template parameter so that operations that add/sub zero are eliminated at compile time. Plus reuse a vector that has the mask instead of rebuilding each time.
- Add processing 16 columns at a time in MlasGemmQuantCopyPackB8x8 - this should reduce potential page faults by a factor of 4 and also be faster.
- Unroll MlasQgemmStoreVectorMMA and vectorize other variables.
Cc: @chenfucn
Questions about the lint warnings. Do all lines have to be less than 120 characters? And for statements that span multiple lines, how are they written?
Typically, we employ clangformat. I use a visual cue in the IDE and break them manually, then run the formatter again.
Which style should I be using for clang-format? microsoft?
It seems the formatter wants to change a lot of code that I did not alter.
Which
styleshould I be using for clang-format? microsoft?It seems the formatter wants to change a lot of code that I did not alter.
Your editor should pick this up automatically. https://github.com/microsoft/onnxruntime/blob/main/.clang-format
/azp run Windows ARM64 QNN CI Pipeline,Windows x64 QNN CI Pipeline,Windows CPU CI Pipeline,Windows GPU CI Pipeline,Windows GPU TensorRT CI Pipeline,ONNX Runtime Web CI Pipeline,Linux CPU CI Pipeline,Linux CPU Minimal Build E2E CI Pipeline,Linux GPU CI Pipeline,Linux GPU TensorRT CI Pipeline
/azp run Linux OpenVINO CI Pipeline,Linux QNN CI Pipeline,MacOS CI Pipeline,orttraining-amd-gpu-ci-pipeline,orttraining-linux-ci-pipeline,orttraining-linux-gpu-ci-pipeline,orttraining-ortmodule-distributed,onnxruntime-binary-size-checks-ci-pipeline,Big Models,Android CI Pipeline
/azp run iOS CI Pipeline,ONNX Runtime React Native CI Pipeline
Azure Pipelines successfully started running 2 pipeline(s).
Azure Pipelines successfully started running 10 pipeline(s).
Azure Pipelines successfully started running 10 pipeline(s).
I use vim as my editor. I'm not sure it will pickup lint formatting.
I use
vimas my editor. I'm not sure it will pickup lint formatting.
Most of the failures about extra space. Lots of editors show non-visible characters.
I'm seeing about a 2.6-4X improvement for PackB
/azp run Windows ARM64 QNN CI Pipeline,Windows x64 QNN CI Pipeline,Windows CPU CI Pipeline,Windows GPU CI Pipeline,Windows GPU TensorRT CI Pipeline,ONNX Runtime Web CI Pipeline,Linux CPU CI Pipeline,Linux CPU Minimal Build E2E CI Pipeline,Linux GPU CI Pipeline,Linux GPU TensorRT CI Pipeline
/azp run Linux OpenVINO CI Pipeline,Linux QNN CI Pipeline,MacOS CI Pipeline,orttraining-amd-gpu-ci-pipeline,orttraining-linux-ci-pipeline,orttraining-linux-gpu-ci-pipeline,orttraining-ortmodule-distributed,onnxruntime-binary-size-checks-ci-pipeline,Big Models,Android CI Pipeline
Azure Pipelines successfully started running 10 pipeline(s).
Azure Pipelines successfully started running 10 pipeline(s).
Can we move forward with this PR?
/azp run Windows ARM64 QNN CI Pipeline,Windows x64 QNN CI Pipeline,Windows CPU CI Pipeline,Windows GPU CI Pipeline,Windows GPU TensorRT CI Pipeline,ONNX Runtime Web CI Pipeline,Linux CPU CI Pipeline,Linux CPU Minimal Build E2E CI Pipeline,Linux GPU CI Pipeline,Linux GPU TensorRT CI Pipeline
/azp run Linux OpenVINO CI Pipeline,Linux QNN CI Pipeline,MacOS CI Pipeline,orttraining-amd-gpu-ci-pipeline,orttraining-linux-ci-pipeline,orttraining-linux-gpu-ci-pipeline,orttraining-ortmodule-distributed,onnxruntime-binary-size-checks-ci-pipeline,Big Models,Android CI Pipeline
Azure Pipelines successfully started running 10 pipeline(s).
Azure Pipelines successfully started running 10 pipeline(s).
Can we merge this?
/azp run orttraining-ortmodule-distributed,
Azure Pipelines successfully started running 1 pipeline(s).
/azp run Linux Android Emulator QNN CI Pipeline
Azure Pipelines successfully started running 1 pipeline(s).
Can we merge this?
Thanks @ChipKerchner !