Skip to content

[GPU] GroupNormalization opt kernels #25417

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Jul 8, 2024

Conversation

e-ddykim
Copy link
Contributor

@e-ddykim e-ddykim commented Jul 7, 2024

Details:

  • This PR adds two group_normalization opt kernels, group_normalization_bfyx and group_normalization_b_fs_yx_fsv16.

Tickets:

  • 144094

@e-ddykim e-ddykim requested review from a team as code owners July 7, 2024 19:11
@github-actions github-actions bot added the category: GPU OpenVINO GPU plugin label Jul 7, 2024
@geunhwan geunhwan added this to the 2024.3 milestone Jul 8, 2024
@e-ddykim e-ddykim force-pushed the gpu-sd_group_norm branch 3 times, most recently from 236ed6b to bd8702a Compare July 8, 2024 14:11
@e-ddykim e-ddykim force-pushed the gpu-sd_group_norm branch from bd8702a to 98bd39c Compare July 8, 2024 16:40
@@ -294,6 +296,8 @@ void TransformationsPipeline::apply(std::shared_ptr<ov::Model> func) {
return !is_type<ov::op::v0::MatMul>(next_node);
});

manager.register_pass<ov::intel_gpu::GroupNormComposition>();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GroupNormDecomposition is being disabled, but still need Composition too?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current OV stable diffusion models does not have group_normalization layers. They have decomposed group_normalization layers instead. So we need a composition pass to apply group_normalization in the current OV SD models.

@yeonbok yeonbok enabled auto-merge July 8, 2024 17:40
@yeonbok yeonbok added this pull request to the merge queue Jul 8, 2024
Merged via the queue into openvinotoolkit:master with commit 64f22d9 Jul 8, 2024
106 checks passed
namespace ov {
namespace intel_gpu {

GroupNormComposition::GroupNormComposition() {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. That can be a common pass.
  2. Are new IRs generated w/ decomposed GroupNorm?
  3. Rename to GroupNormFusion to be aligned with other passes

Copy link
Contributor Author

@e-ddykim e-ddykim Jul 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Okay, I'll do it in a separate PR.
  2. Yes, new IRs have decomposed GroupNorm layers.
  3. Okay, I'll apply it too.

spran180 pushed a commit to spran180/openvino that referenced this pull request Jul 27, 2024
### Details:
- This PR adds two group_normalization opt kernels,
group_normalization_bfyx and group_normalization_b_fs_yx_fsv16.

### Tickets:
 - 144094
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: GPU OpenVINO GPU plugin Code Freeze
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants