onnxruntime icon indicating copy to clipboard operation
onnxruntime copied to clipboard

[js/webgpu] Optimize grouped conv

Open qjia7 opened this issue 1 year ago • 7 comments

Description

#21618

This PR optimizes grouped conv by 1) more sequential memory access in gpu 2) reusing input's data to reduce global memory access times.

See Conv|GroupedConv op in Wav2Vec2 becomes 92 ms from 1058 ms on iGPUs with 32 EU.

For the whole model on my iGPUs with 32 EU, wav2vec2 model becomes 982ms from 1942 ms. squeezebert-uncased model becomes 71.86ms from 431.77ms.

Motivation and Context

qjia7 avatar Aug 28 '24 08:08 qjia7

@guschmue @fs-eire @satyajandhyala Please take a look, thanks.

qjia7 avatar Aug 28 '24 08:08 qjia7

/azp run Windows ARM64 QNN CI Pipeline,Windows x64 QNN CI Pipeline,Windows CPU CI Pipeline,Windows GPU CUDA CI Pipeline,Windows GPU DML CI Pipeline,Windows GPU Doc Gen CI Pipeline,Windows GPU TensorRT CI Pipeline,ONNX Runtime Web CI Pipeline,Linux CPU CI Pipeline,Linux CPU Minimal Build E2E CI Pipeline

fs-eire avatar Aug 28 '24 08:08 fs-eire

/azp run Linux GPU CI Pipeline,Linux GPU TensorRT CI Pipeline,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

fs-eire avatar Aug 28 '24 08:08 fs-eire

/azp run Big Models,Linux Android Emulator QNN CI Pipeline,Android CI Pipeline,iOS CI Pipeline,ONNX Runtime React Native CI Pipeline

fs-eire avatar Aug 28 '24 08:08 fs-eire

Azure Pipelines successfully started running 1 pipeline(s).

azure-pipelines[bot] avatar Aug 28 '24 08:08 azure-pipelines[bot]

Azure Pipelines successfully started running 1 pipeline(s).

azure-pipelines[bot] avatar Aug 28 '24 08:08 azure-pipelines[bot]

Azure Pipelines successfully started running 1 pipeline(s).

azure-pipelines[bot] avatar Aug 28 '24 08:08 azure-pipelines[bot]

Ping @guschmue @fs-eire @satyajandhyala

qjia7 avatar Sep 03 '24 06:09 qjia7

/azp run Windows ARM64 QNN CI Pipeline,Windows x64 QNN CI Pipeline,Windows CPU CI Pipeline,Windows GPU CUDA CI Pipeline,Windows GPU DML CI Pipeline,Windows GPU Doc Gen CI Pipeline,Windows GPU TensorRT CI Pipeline,Linux CPU CI Pipeline,Linux CPU Minimal Build E2E CI Pipeline,Linux GPU CI Pipeline

fs-eire avatar Sep 03 '24 08:09 fs-eire

/azp run Linux GPU TensorRT CI Pipeline,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,Big Models,Linux Android Emulator QNN CI Pipeline

fs-eire avatar Sep 03 '24 08:09 fs-eire

/azp run Android CI Pipeline,iOS CI Pipeline,ONNX Runtime React Native CI Pipeline

fs-eire avatar Sep 03 '24 08:09 fs-eire

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

azure-pipelines[bot] avatar Sep 03 '24 08:09 azure-pipelines[bot]

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

azure-pipelines[bot] avatar Sep 03 '24 08:09 azure-pipelines[bot]

Azure Pipelines successfully started running 1 pipeline(s).

azure-pipelines[bot] avatar Sep 03 '24 08:09 azure-pipelines[bot]