Skip to content

Revert "[GPU] Keep RMS normalization nodes in FP32 to prevent NaN from FP16 overflow (#36504)"#36888

Merged
geunhwan merged 1 commit into
openvinotoolkit:releases/2026/3from
jade-cho:revert_rms_f32
Jul 16, 2026
Merged

Revert "[GPU] Keep RMS normalization nodes in FP32 to prevent NaN from FP16 overflow (#36504)"#36888
geunhwan merged 1 commit into
openvinotoolkit:releases/2026/3from
jade-cho:revert_rms_f32

Conversation

@jade-cho

@jade-cho jade-cho commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Details:

Root Cause

PR #36504 was introduced to fix NaN in ParlerTTS Mini (CVS-187992) by keeping RMS nodes in FP32. However, it unconditionally marks ALL RMS nodes across all models, adding FP16↔FP32 conversion overhead on every transformer layer.

Tickets:

  • 190812

@jade-cho jade-cho requested a review from a team as a code owner July 15, 2026 03:42
@github-actions github-actions Bot added the category: transformations OpenVINO Runtime library - Transformations label Jul 15, 2026
@geunhwan geunhwan added this pull request to the merge queue Jul 16, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 16, 2026
@geunhwan geunhwan added this pull request to the merge queue Jul 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

CI Doctor — Merge Queue failure on this PR

Pipeline: Windows (VS 2022, Python 3.11, Release)
Failure: JS API E2E Electron cleanup fails on Windows - Permission denied removing locked electron.exe/dll
Automatic restart: ✅ Re-run of failed jobs requested (reason: Windows file-locking flaky test — all E2E tests passed; only the Mocha after-all cleanup hook failed because electron.exe/DLLs were locked on the Windows runner at cleanup time)

Possible remedy

  1. Fix the Mocha after all hook in electron-app.test.js to explicitly kill/wait for the Electron process before attempting rm -rf
  2. Replace bare rm -rf with rimraf (has built-in Windows retry logic) for the cleanup step
  3. Alternatively, add taskkill /f /im electron.exe (Windows) or a process kill step before directory removal

What happened

Both E2E tests passed (2 passing). The failure occurred only in the cleanup hook: rm -rf demo-electron-app-project was blocked by Windows file locking on electron.exe, d3dcompiler_47.dll, libEGL.dll, and libGLESv2.dll — the Electron process or its loaded DLLs were still held by the OS at cleanup time.

This is a known recurring flaky issue (5th occurrence since 2026-07-09, same pattern on PRs #36887, #36796, #36763, #36780). It is unrelated to the GPU RMS normalization revert in this PR.

Generated by CI Failure Doctor — Merge Queue · 157.1 AIC · ⌖ 9.42 AIC · ⊞ 18.6K ·

@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 16, 2026
@geunhwan geunhwan added this pull request to the merge queue Jul 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

CI Doctor — Merge Queue failure on this PR

Pipeline: Windows (VS 2022, Python 3.11, Release)
Failure: JS API E2E Electron cleanup fails on Windows - Permission denied removing locked electron.exe/dll
Automatic restart: ❌ Not triggered — run is already at attempt 2; re-running would risk a restart loop.

Possible remedy

  1. This is a known transient flaky test (pattern seen 5 times since 2026-07-09). The actual E2E tests pass — only the "after all" cleanup hook fails.
  2. Re-queue this PR in the merge queue to get a fresh CI run.
  3. To fix permanently: replace rm -rf with rimraf (v4+) in src/bindings/js/node/tests/e2e/electron-app.test.js — it has built-in Windows retry logic for file-lock errors.
  4. See prior occurrences: Run 29450212856 (PR [NPUW]MoE optimization - RoPE cache and unfold infer request. #36887), Run 29072781821 (PR [core] Add helpers for common operations in mmap tests #36763).

What happened

The JS API (22) job failed in the Mocha "after all" cleanup hook: rm -rf demo-electron-app-project could not delete node_modules/electron/dist/electron.exe because Windows held a file lock after the Electron process exited. Both functional E2E tests (should install dependencies, should run electron package and verify output) passed — only teardown failed.

This is a recurring Windows file-lock race (5 occurrences). It is unrelated to the GPU RMS normalization changes in this PR.

Generated by CI Failure Doctor — Merge Queue · 108.3 AIC · ⌖ 6 AIC · ⊞ 18.6K ·

@github-actions

Copy link
Copy Markdown
Contributor

CI Doctor — Merge Queue failure on this PR

Pipeline: Linux (Ubuntu 22.04, ARM64 cross-compilation, Python 3.11)
Failure: smoke_ConvertCPULayerTest - primType is unexpected : unknown_i32 Expected : acl_i32
Automatic restart: ❌ Not triggered — deterministic test assertion failure that a restart cannot fix.

Possible remedy

  1. Check whether this test was already failing on the releases/2026/3 base before this PR — a similar failure was seen on 2026-07-08 (run 28957097935) against a different PR, suggesting a pre-existing issue.
  2. Inspect ACL Convert kernel type registration in src/plugins/intel_cpu/src/nodes/convert.cpp to confirm i32 is listed as a supported input type for the ACL path.
  3. If pre-existing, add the failing test variant to tests/functional_test_utils/layer_tests_summary/github/skip_configs/CPU/expected_failures_OP.csv for the ARM64/ACL configuration.
  4. If introduced by this revert, identify whether the reverted PR [GPU] Keep RMS normalization nodes in FP32 to prevent NaN from FP16 overflow #36504 incidentally enabled ACL i32 support and ensure that support is preserved separately.

What happened

The CPU functional test smoke_ConvertCPULayerTest_4D_Dynamic failed on the ARM64 runner: the test expects the ARM Compute Library (ACL) backend to handle an i32-to-i8 Convert op with primitive type acl_i32, but the runtime returned unknown_i32 (src/plugins/intel_cpu/tests/functional/utils/cpu_test_utils.cpp:248). This PR reverts a GPU-only change (RMS normalization FP32), so the failing CPU/ACL test is likely a pre-existing issue surfacing independently in the merge queue.

Generated by CI Failure Doctor — Merge Queue · 93.5 AIC · ⌖ 6.32 AIC · ⊞ 18.6K ·

Merged via the queue into openvinotoolkit:releases/2026/3 with commit 1785c8c Jul 16, 2026
264 of 272 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: transformations OpenVINO Runtime library - Transformations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants