Skip to content

Support for FLUX.2-klein-4B#36483

Closed
mpaulitsch wants to merge 33 commits into
openvinotoolkit:masterfrom
mpaulitsch:mpa/flux-glu-fusion
Closed

Support for FLUX.2-klein-4B#36483
mpaulitsch wants to merge 33 commits into
openvinotoolkit:masterfrom
mpaulitsch:mpa/flux-glu-fusion

Conversation

@mpaulitsch

Copy link
Copy Markdown

Details:

  • Align Mark Rope Inputs To Keep In Mixed Precision
  • Enable GLUFusion for FLUX.2 SwiGLU
  • Port RoPE mixed-precision marking for FLUX.2 GPU compile
  • ...

Tickets:

  • ticket-id

AI Assistance:

  • AI assistance used: yes
  • If yes, summarize how AI was used and what human validation was performed (build/tests/manual checks).
    yes, created and checked output aligning with expectations, created extensive performance tests, code review.

dmatveev and others added 30 commits May 13, 2026 17:33
…inotoolkit#35844)

### Details:
- Pick openvinotoolkit#35817 to the `releases/2026/2`

### Tickets:
 - EISW-215960

### AI Assistance:
 - *AI assistance used: no*
Nightly documentation currently has built errors and need to resolve in
master and 2026.2 branches.

Updating formatting in document that is causing the error.
…nvinotoolkit#35925)

### Details:
Duplicate openvinotoolkit#35875

### Tickets:
 - *[EISW-216237](https://jira.devtools.intel.com/browse/EISW-216237)*

### AI Assistance:
 - *AI assistance used: no / yes*
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*

Signed-off-by: intelgaoxiong <xiong.gao@intel.com>
…oolkit#35950)

### Details:
 - Pick openvinotoolkit#35856 

### Tickets:
  - EISW-176128
  - EISW-214507

### AI Assistance:
  - AI assistance used: no, picked it myself
openvinotoolkit#35951)

### Details:
 - Picks openvinotoolkit#35910 

### Tickets:
 - EISW-216649

### AI Assistance:
 - *AI assistance used: no*
 - Picked it myself
…n (GatedDeltaNet) models (openvinotoolkit#35965)

Backport of (openvinotoolkit#35961) to
releases/2026/2

---------

Signed-off-by: Andrew Park <andrew.park@intel.com>
…of warning for older drivers (openvinotoolkit#35977)

### Details:
- *Forbids compilation for older drivers if user sets encryption
callback e.g.
`ov::cache_encryption_callbacks(ov::EncryptionCallbacks{ov::codec_xor,
nullptr})`*
 - Applies to all ze graph extensions lower than version `1.17`

### Tickets:
 - *C148679*

### AI Assistance:
 - *AI assistance used: no / yes*
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*
### Details
- Fixes FP16 overflow in `mvn_gpu_b_fs_yx_fsv16` by using F32 for
`MEAN_TYPE` and variance-related intermediate buffers.
- The previous implementation used the activation type for mean/variance
accumulation. For FP16 inputs, large spatial reductions can overflow
during `sum((x - mean)^2)` accumulation before variance normalization.
- The issue was observed with Torchvision RAFT Large FP16 on GPU, where
blocked `b_fs_yx_fsv16` MVN was selected for large-spatial instance
normalization nodes.
- The regression test uses shape `{1, 16, 257, 256}`. Its spatial
reduction size is `257 * 256 = 65792`, which exceeds the FP16 finite max
value `65504` when squared deviations are accumulated with values of
order 1 or larger.
- Keeps fused-op behavior consistent by converting the final normalized
value back to `ACTIVATION_TYPE` before passing it to fused ops.
- Adds a GPU unit test that forces the `mvn_gpu_b_fs_yx_fsv16`
implementation.


```mermaid
%%{init: {"flowchart": {"htmlLabels": true}}}%%
flowchart TB
  classDef conv fill:#e8f1ff,stroke:#2b6cb0,stroke-width:1px,color:openvinotoolkit#111
  classDef reorder fill:#fff4df,stroke:#b7791f,stroke-width:1px,color:openvinotoolkit#111
  classDef mvn fill:#e8f7ee,stroke:#2f855a,stroke-width:1px,color:openvinotoolkit#111

  subgraph GOOD["Good dump: 2026.2.0 / ffa272d"]
    direction TB
    GConv1["<div style='min-width: 420px; text-align: left; white-space: nowrap;'>type: Convolution<br/>layout: b_fs_yx_fsv16<br/>shape: dynamic [2, 64, -1, -1]<br/>runtime shape: [2, 64, 260, 480]<br/>primitive: undef</div>"]
    GReorder1["<div style='min-width: 420px; text-align: left; white-space: nowrap;'>type: Reorder<br/>layout: bfyx<br/>shape: dynamic [2, 64, -1, -1]<br/>runtime shape: [2, 64, 260, 480]<br/>primitive: reorder_data__f16</div>"]
    GMVN["<div style='min-width: 420px; text-align: left; white-space: nowrap;'>type: MVN<br/>layout: bfyx<br/>shape: dynamic [2, 64, -1, -1]<br/>runtime shape: [2, 64, 260, 480]<br/>primitive: mvn_gpu_bfyx_opt__f16</div>"]
    GReorder2["<div style='min-width: 420px; text-align: left; white-space: nowrap;'>type: Reorder<br/>layout: b_fs_yx_fsv16<br/>shape: dynamic [2, 64, -1, -1]<br/>runtime shape: [2, 64, 260, 480]<br/>primitive: reorder_data__f16</div>"]
    GConv2["<div style='min-width: 420px; text-align: left; white-space: nowrap;'>type: Convolution<br/>layout: b_fs_yx_fsv16<br/>shape: dynamic [2, 64, -1, -1]<br/>runtime shape: [2, 64, 260, 480]<br/>primitive: undef</div>"]

    GConv1 --> GReorder1 --> GMVN --> GReorder2 --> GConv2
  end

  subgraph BAD["Bad dump: 2026.3.0 / 48b684f"]
    direction TB
    BConv1["<div style='min-width: 420px; text-align: left; white-space: nowrap;'>type: Convolution<br/>layout: b_fs_yx_fsv16<br/>shape: dynamic [2, 64, -1, -1]<br/>runtime shape: [2, 64, 260, 480]<br/>primitive: undef</div>"]
    BMVN["<div style='min-width: 420px; text-align: left; white-space: nowrap;'>type: MVN<br/>layout: b_fs_yx_fsv16<br/>shape: dynamic [2, 64, -1, -1]<br/>runtime shape: [2, 64, 260, 480]<br/>primitive: mvn_gpu_b_fs_yx_fsv16__f16</div>"]
    BConv2["<div style='min-width: 420px; text-align: left; white-space: nowrap;'>type: Convolution<br/>layout: b_fs_yx_fsv16<br/>shape: dynamic [2, 64, -1, -1]<br/>runtime shape: [2, 64, 260, 480]<br/>primitive: undef</div>"]

    BConv1 --> BMVN --> BConv2
  end

  class GConv1,GConv2,BConv1,BConv2 conv
  class GReorder1,GReorder2 reorder
  class GMVN,BMVN mvn
```

### Validation:
- Passed: (new test-case for ticket issue)
`bin\intel64\Release\ov_gpu_unit_tests.exe
--gtest_filter="*mvn_fsv16_f16_large_spatial*" --device_suffix=1`

### Tests:
- `mvn_fsv16_f16_large_spatial/mvn_random_test_bsv32.random/0`
- `mvn_fsv16_f16_large_spatial/mvn_random_test_bsv32.random_cached/0`

### Tickets:
 - 186526

### AI Assistance:
 - AI assistance used: yes
 - AI: find a root-cause, fix issue, add tests
 - User: validation, code review

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
…olkit#36040)

### Details:
Duplicate of
[PR#36009](openvinotoolkit#36009)

### Tickets:
 - *C-186974*

### AI Assistance:
 - *AI assistance used: no / yes*
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*
### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*

### AI Assistance:
 - *AI assistance used: no / yes*
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*
Initial formatting and install docs updates
Last min updates to models

### Details:
 - *item1*
 - *...*

### Tickets:
 - *ticket-id*

### AI Assistance:
 - *AI assistance used: no / yes*
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*
## Summary
This PR adds the Physical AI documentation to OpenVINO.

## Changes
- Added new documentation section: Physical AI Framework
- Integrated full documentation structure:
  - getting-started
  - how-to
  - explanation
  - reference
- Added entry to documentation navigation (new top-level section)
- Added homepage tile linking to Physical AI section

## Motivation
This documentation introduces workflows for deploying VLA models on
robots,
expanding OpenVINO usage in robotics and physical AI scenarios.

## Notes
- Documentation is integrated directly (no external dependencies)
- Structure follows OpenVINO documentation guidelines
- Links updated to comply with Sphinx linking rules

## Testing
- Verified documentation locally (Sphinx build)
- Checked navigation and links

## Checklist
- [x] Changes are focused on documentation only
- [x] PR follows naming conventions
- [x] Documentation structure is consistent
### Details:
add release notes for physical ai

### Tickets:
 - *ticket-id*

### AI Assistance:
 - *AI assistance used: no / yes*
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*
### Details:
 - *new hardware added to system descriptions, WCL-7-350*
 - *new models: yolo26n, ltx-video, qwen3.6-27b and gpt-oss-120b*
 - *updated accuracy table*

### Tickets:
 - *na*

### AI Assistance:
 - *AI assistance used: no
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*
…vinotoolkit#36136) (openvinotoolkit#36204)

### Details:
After `kernels` got an update on PyPI, we started to have failures in
PyTorch Models Tests job at PyTorch LLM Model Tests. This PR should fix
it

### Tickets:
 - *CVS-187808*

### AI Assistance:
 - *AI assistance used: no*

Co-authored-by: Andrey Babushkin <andrey.babushkin@intel.com>
…tachment on cache import. (openvinotoolkit#36196)

### Details:
Duplicated openvinotoolkit#36195 and
openvinotoolkit#36252

### Tickets:
 - *[EISW-219826](https://jira.devtools.intel.com/browse/EISW-219826)*
 - *[EISW-220018](https://jira.devtools.intel.com/browse/EISW-220018)*

### AI Assistance:
 - *AI assistance used: no / yes*
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*

---------

Signed-off-by: intelgaoxiong <xiong.gao@intel.com>
…36003) (openvinotoolkit#36276)

### Description
- **Symptom:** yolo26n model fails to compile on GPU with `[GPU]
ProgramBuilder build failed! — Requested activation is not supported for
integer type` at the `Sign` node (`node_Sign_1348`, i64 input)
- **Root cause:** `activations_int8` allowlist in
`activation_inst::calc_output_layout()` did not include
`activation_func::sign`. The list guards `i8/u8/i32` types, and the GPU
plugin internally converts the model's `i64` Sign input to `i32`. Since
`sign` was absent from the allowlist, it was unconditionally rejected.
The Sign OCL kernel itself correctly handles integer types via a
ternary/select expression (`input > 0 ? 1 : (input == 0 ? 0 : -1)`)
without any type mismatch — the omission was an oversight.
- **Resolution:** Added `activation_func::sign` to the
`activations_int8` allowlist. Unlike the similar PR openvinotoolkit#29099 (`abs`), no
change to activation_kernel_opt.cpp is needed because the Sign macro
returns the same signed integer type as the input (no `int4 → uint4`
mismatch).

#### The code and line that caused this issue
- `intel_gpu/src/graph/activation.cpp` —
`activation_inst::calc_output_layout()`, `activations_int8` vector (line
~23)

#### Reproduction step and snapshot
 - Model: `yolo26n-pytorch` FP16 (OMZ public)
 ```bash
 python -c "
 import openvino as ov
 core = ov.Core()
 model = core.read_model('yolo26n/openvino_model.xml')
core.compile_model(model, 'GPU') # RuntimeError: sign:node_Sign_1348 —
Requested activation is not supported for integer type
 "
 ```

#### Problematic graph
- Single `Sign` node with `int64` input/output shape `[1, 300]`, fed
from a `TopK` index output
- GPU plugin converts `i64 → i32` internally, then the `i32` Sign hits
the allowlist check and fails

#### Checklist
 - [x] Is it a proper fix? (not a workaround)
 - [x] Did you include test case for this fix, if necessary?
- [x] Did you review existing test that can be extended to cover this
scenario? Which test did you review?
- Extended `activation_i32_fw_gpu.basic_yxfb_i32_funcs` in
activation_simple_gpu_test.cpp — added `activation_func::sign` to the
tested functions list and its corresponding assertion (`val > 0 ? 1 :
val == 0 ? 0 : -1`)
 
### Tickets
 - *187077*

### master PR
  - openvinotoolkit#36003
### Details:
 - *Disable shared command queue feature as default*
- *Update workload type for current command queue immediately if shared
command queue is disabled*

### Tickets:
 - *CVS-188132*

### AI Assistance:
 - *AI assistance used: yes*
 - *tests*

---------

Signed-off-by: Bogdan Pereanu <bogdan.pereanu@intel.com>
…les (openvinotoolkit#36306)

Summary
Updates the main documentation index page to reflect the addition of the
Physical AI Framework.
Changes

Updated text to reflect the increase from three to four models on the
homepage
Reordered existing tiles/boxes based on updated layout guidance
Adjusted links to match the new ordering

Motivation
This change ensures the main documentation page accurately represents
the
current number of available models and aligns the layout with the
updated
structure and guidance.
Notes

Changes are limited to index.rst (homepage content)
No new tiles were added as part of this change
Update focuses on text accuracy and layout ordering

Testing

Verified changes in local Sphinx build
Confirmed correct rendering and link navigation

---------

Co-authored-by: whitneyfoster <whitney.foster@intel.com>
…ce doesn't support it (openvinotoolkit#36309)

### Details:
- *Remove npu_enable_strides_for from supported properties if device
doesn't support it*

### Tickets:
 - *ticket-id*

### AI Assistance:
 - *AI assistance used: no / yes*
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*

Signed-off-by: Bogdan Pereanu <bogdan.pereanu@intel.com>
… (openvinotoolkit#36311)

### Details:
- *Fix dynamic quantization large group case. Add reduction between
Sub_Groups, which handle the same quantization group.*
- *cherry pick openvinotoolkit#36147 to
release branch*

### Tickets:
 - *CVS-187724*

### AI Assistance:
 - *AI assistance used: no / yes*
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*
…penvinotoolkit#36029) (openvinotoolkit#36274)

This PR enhances the UnsqueezeBroadcastReshapeSDPAFusion pass to capture
more flexible attention topologies, specifically targeting MQA and GQA
patterns.

Key Enhancements:
1) 3D Input Support: The pass now successfully intercepts and reshapes
3D Key/Value tensors feeding into Unsqueeze or Reshape nodes.

2) GQA Implicit Broadcasting: Previously, the fusion aborted if the
model required expanding KV heads to match a larger number of Query
heads. This PR introduces dynamic shape extraction to bypass explicit
Broadcast nodes. The SDPA kernel will now perform an implicit broadcast
in the registers—for example, natively mapping 2 KV heads across 32
Query heads (a 1:16 ratio)—saving massive memory bandwidth.

### Tickets:
 - CVS-186566, CVS-187072

### AI Assistance:
 - *AI assistance used: yes
 - Debug and test generation
### Details:
Minor product version bump

### AI Assistance:
- *AI assistance used: yes, for creation of connected PRs to different
repositories*
…oolkit#36128)

### Details:
- With latest transformers (v5) LongRope pattern failed to match for
Phi-3.5/Phi-4 models, updated pass according to new pattern
 - Port of openvinotoolkit#35981 from the master branch

### Tickets:
 - EISW-214108

### AI Assistance:
 - *AI assistance used: yes*
 - Used for adding tests, after that checked them manually

---------

Co-authored-by: Dmitry Matveev <dmitry.matveev@intel.com>
### Details:
 - *Fixed MoE sym-quant issue*
- *Cherry pick the fix commit from
openvinotoolkit#35901 to 26.2 release
branch*

### Tickets:
 - *CVS-187724*

### AI Assistance:
 - *AI assistance used: no / yes*
- *If yes, summarize how AI was used and what human validation was
performed (build/tests/manual checks).*
…penvinotoolkit#36377)

## Summary

Adds a reusable "Explore on GitHub" button to documentation pages  
and enables it for the Physical AI article.

## Changes

* Added a new **"Explore on GitHub"** button to
`docs/articles_en/physical-ai.md`
  * Displays in the right-hand sidebar
  * Links to the Physical AI GitHub repository

* Extended Sphinx theme template:  

`docs/openvino_sphinx_theme/openvino_sphinx_theme/templates/edit-this-page.html`
* Introduced a reusable HTML component that conditionally renders the
"Explore on GitHub" button when `explore_github_url` is defined in page
metadata
  * Preserved existing functionality by keeping the  
    **"Edit on GitHub"** button rendered after the new component

## Implementation Notes

* The new component checks:
  ```jinja2
  meta.get("explore_github_url")
  ```
  and renders the button only when the metadata field is present

* The component is designed to be **reusable across documentation
pages**,
  enabling easy linkage to corresponding GitHub repositories

* Existing behavior remains unchanged when the metadata field is not
provided

## Motivation

This change improves discoverability of related GitHub repositories
directly
from documentation pages and introduces a reusable pattern that can be
applied
consistently across OpenVINO documentation.

## Testing

* Verified rendering locally in Sphinx build
* Confirmed:
  * button appears only when metadata is defined
  * correct placement in sidebar
  * existing "Edit on GitHub" button remains functional

## Checklist

* [x] Changes are focused and scoped to documentation/theme
* [x] Existing functionality preserved
* [x] Reusable solution implemented
* [x] Verified locally
openvinotoolkit#36429)

### Details:
The PR https://github.com/openvinotoolkit/openvino/pull/36324/changes,
made to the master branch, was reviewed and is awaiting merging.
However, we also need those changes on the 2026/2 version of the page,
and this PR is bringing them.

Note: one change to
docs/articles_en/get-started/install-openvino/install-openvino-windows.rst
will be added in the next commit since it's missing from this PR.
### Details:
 - *Added WCL-5-330 AI-PC results and removed MTL-7-165H results*
 - *Updated results for PTL-7-368H and LNL-7-258V*
 - *Updated system descriptions*
 - *Updated date and release version on landing page for AI-PC results*

### Tickets:
 - **

### AI Assistance:
 - *AI assistance used: no*
 - *-*

---------

Co-authored-by: whitneyfoster <whitney.foster@intel.com>
Align MarkRopeInputsToKeepInMixedPrecision with disable_conversion(f16),
add DisablePrecisionConversion rt_info (backed by legacy disable_fp16_compression
wrappers), and run the pass on the GPU plugin after RoPEFusion so cos/sin
subgraphs stay in FP32 under f16 compression.

Co-authored-by: Cursor <cursoragent@cursor.com>
@mpaulitsch mpaulitsch requested review from a team as code owners June 19, 2026 15:38
@mpaulitsch mpaulitsch requested review from cavusmustafa, mfhansen and mmikolajcz and removed request for a team June 19, 2026 15:38
@github-actions github-actions Bot added category: inference OpenVINO Runtime library - Inference category: Core OpenVINO Core (aka ngraph) category: GPU OpenVINO GPU plugin category: build OpenVINO cmake script / infra category: Python API OpenVINO Python bindings category: transformations OpenVINO Runtime library - Transformations category: docs OpenVINO documentation category: CPP API OpenVINO CPP API bindings category: packaging OpenVINO packaging / distribution category: PyTorch FE OpenVINO PyTorch Frontend category: NPU OpenVINO NPU plugin category: NPUW NPUW plugin labels Jun 19, 2026
@mlukasze

Copy link
Copy Markdown
Contributor

this PR contains changes that are not a result of model enablement.
please cleanup your master, rebase branch and update PR first

@mpaulitsch

Copy link
Copy Markdown
Author

addressed comment.

created new pull request (flux.2-klein-4b enablement #36544) with clean baseline and essential files.

close this PR as it is not needed anymore.

@mpaulitsch mpaulitsch closed this Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: build OpenVINO cmake script / infra category: Core OpenVINO Core (aka ngraph) category: CPP API OpenVINO CPP API bindings category: docs OpenVINO documentation category: GPU OpenVINO GPU plugin category: inference OpenVINO Runtime library - Inference category: NPU OpenVINO NPU plugin category: NPUW NPUW plugin category: packaging OpenVINO packaging / distribution category: Python API OpenVINO Python bindings category: PyTorch FE OpenVINO PyTorch Frontend category: transformations OpenVINO Runtime library - Transformations

Projects

None yet

Development

Successfully merging this pull request may close these issues.