Skip to content

Commit 85d4ddc

Browse files
Merge branch 'master' into paged_attention_2nd_token_fp32_acc
2 parents f9dd9fd + 494d645 commit 85d4ddc

File tree

807 files changed

+4186
-4535
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

807 files changed

+4186
-4535
lines changed

.gitattributes

+2
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,5 @@
6767
*.svg filter=lfs diff=lfs merge=lfs -text
6868
.github/scripts/workflow_rerun/tests/data/log_archive_with_error.zip filter=lfs diff=lfs merge=lfs -text
6969
.github/scripts/workflow_rerun/tests/data/log_archive_wo_error.zip filter=lfs diff=lfs merge=lfs -text
70+
*.pdf filter=lfs diff=lfs merge=lfs -text
71+
*.xlsx filter=lfs diff=lfs merge=lfs -text

.github/workflows/build_doc.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ permissions: read-all
1414

1515
jobs:
1616
Build_Doc:
17-
runs-on: ubuntu-20.04
17+
runs-on: ubuntu-22.04
1818
if: ${{ github.repository_owner == 'openvinotoolkit' }}
1919
steps:
2020
- name: Clone OpenVINO

.github/workflows/coverage.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ jobs:
9292
run: ${{ github.workspace }}/bin/intel64/${{ env.CMAKE_BUILD_TYPE }}/ov_proxy_plugin_tests
9393

9494
- name: Run OV Hetero Func tests
95-
run: ${{ github.workspace }}/bin/intel64/${{ env.CMAKE_BUILD_TYPE }}/ov_hetero_func_tests --gtest_filter="*smoke*"
95+
run: ${{ github.workspace }}/bin/intel64/${{ env.CMAKE_BUILD_TYPE }}/ov_hetero_func_tests --gtest_filter="*smoke*" --gtest_filter=-"nightly*"
9696

9797
- name: Run IR frontend tests
9898
run: ${{ github.workspace }}/bin/intel64/${{ env.CMAKE_BUILD_TYPE }}/ov_ir_frontend_tests

.github/workflows/job_build_linux.yml

+21-8
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,20 @@ jobs:
9090
MANIFEST_PATH: '/__w/openvino/openvino/manifest.yml'
9191
PRODUCT_TYPE: public_linux_${{ inputs.os }}_${{ inputs.arch }}_release
9292
steps:
93+
- name: Clone OpenVINO (with trace)
94+
if: ${{ inputs.os == 'fedora_29' }} # to debug ticket 160901
95+
env:
96+
GIT_TRACE: 1
97+
GIT_TRACE_PERFORMANCE: 1
98+
GIT_CURL_VERBOSE: 1
99+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
100+
timeout-minutes: 15
101+
with:
102+
path: ${{ env.OPENVINO_REPO }}
103+
submodules: 'true'
104+
93105
- name: Clone OpenVINO
106+
if: ${{ inputs.os != 'fedora_29' }}
94107
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
95108
timeout-minutes: 15
96109
with:
@@ -182,23 +195,23 @@ jobs:
182195
cmake --install . --config ${{ env.CMAKE_BUILD_TYPE }} --prefix ${INSTALL_TEST_DIR} --component tests
183196
cmake --install . --config ${{ env.CMAKE_BUILD_TYPE }} --prefix ${DEVELOPER_PACKAGE_DIR} --component developer_package
184197
working-directory: ${{ env.BUILD_DIR }}
185-
198+
186199
- name: Pack openvino_package
187200
run: tar -cvf - * | pigz > ${BUILD_DIR}/openvino_package.tar.gz
188201
working-directory: ${{ env.INSTALL_DIR }}
189-
202+
190203
- name: Pack openvino_developer_package
191204
run: tar -cvf - * | pigz > ${BUILD_DIR}/openvino_developer_package.tar.gz
192205
working-directory: ${{ env.DEVELOPER_PACKAGE_DIR }}
193-
206+
194207
- name: Pack openvino_tests
195208
run: tar -cvf - * | pigz > ${BUILD_DIR}/openvino_tests.tar.gz
196209
working-directory: ${{ env.INSTALL_TEST_DIR }}
197-
210+
198211
- name: Build Debian packages
199212
if: ${{ inputs.build-debian-packages }}
200213
run: |
201-
# Ubuntu 24 does not allow using the system Python directly so
214+
# Ubuntu 24 does not allow using the system Python directly so
202215
# we have to use Python from the virtual environment created in Docker
203216
[[ ${{ inputs.os }} == "ubuntu_24_04" ]] && python_exec=/venv/bin/python3 || python_exec=/usr/bin/python3
204217
$python_exec -m pip install -U pip
@@ -234,7 +247,7 @@ jobs:
234247
-DENABLE_WHEEL=OFF
235248
cmake --build ${BUILD_DIR} --parallel $(nproc)
236249
cmake --install ${BUILD_DIR} --prefix ${INSTALL_DIR_JS}
237-
250+
238251
- name: Pack openvino_js_package
239252
if: ${{ fromJSON(inputs.affected-components).JS_API && inputs.build-js }}
240253
run: tar -cvf - * | pigz > ${BUILD_DIR}/openvino_js_package.tar.gz
@@ -270,15 +283,15 @@ jobs:
270283
name: openvino_package
271284
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
272285
if-no-files-found: 'error'
273-
286+
274287
- name: Upload openvino wheels
275288
if: ${{ inputs.os != 'debian_10' && inputs.arch != 'arm' }}
276289
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
277290
with:
278291
name: openvino_wheels
279292
path: ${{ env.INSTALL_WHEELS_DIR }}/wheels/*.whl
280293
if-no-files-found: 'error'
281-
294+
282295
- name: Upload openvino js package
283296
if: ${{ fromJSON(inputs.affected-components).JS_API && inputs.build-js }}
284297
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0

.github/workflows/job_build_windows.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -312,17 +312,16 @@ jobs:
312312

313313
- name: Store artifacts to a shared drive
314314
id: store_artifacts
315-
if: ${{ always() }}
315+
if: always()
316316
uses: ./openvino/.github/actions/store_artifacts
317317
with:
318318
artifacts: |
319319
${{ env.BUILD_DIR }}/openvino_package.zip
320320
${{ env.BUILD_DIR }}/openvino_tests.zip
321321
${{ env.MANIFEST_PATH }}
322-
${{ env.STORE_JS == 'true' && format('{0}/openvino_js_package.zip', env.BUILD_DIR) || '' }}
322+
${{ fromJSON(inputs.affected-components).JS_API && format('{0}/openvino_js_package.zip', env.BUILD_DIR) || '' }}
323323
${{ env.STORE_WHEELS == 'true' && format('{0}/wheels', env.INSTALL_WHEELS_DIR) || '' }}
324324
storage_dir: ${{ env.PRODUCT_TYPE }}
325325
storage_root: ${{ env.ARTIFACTS_SHARE }}
326326
env:
327-
STORE_WHEELS: ${{ inputs.build-type != 'Debug' }}
328-
STORE_JS: ${{ fromJSON(inputs.affected-components).JS_API && inputs.build-js }}
327+
STORE_WHEELS: ${{ inputs.build-type != 'Debug' }}

.github/workflows/job_cxx_unit_tests.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ jobs:
272272
if: ${{ fromJSON(inputs.affected-components).HETERO.test && inputs.os != 'debian_10' && inputs.build-type != 'debug' }} # Ticket: 153170
273273
run: |
274274
${{ env.SETUPVARS_COMMAND }}
275-
${{ env.INSTALL_TEST_DIR }}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroFuncTests.xml --gtest_filter="*smoke*"
275+
${{ env.INSTALL_TEST_DIR }}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroFuncTests.xml --gtest_filter="*smoke*" --gtest_filter=-"nightly*"
276276
277277
- name: Upload Test Results
278278
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0

.github/workflows/job_pytorch_models_tests.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ permissions: read-all
2222
jobs:
2323
PyTorch_Models_Tests:
2424
name: PyTorch Models tests
25-
timeout-minutes: ${{ inputs.model_scope == 'precommit' && 45 || 400 }}
25+
timeout-minutes: ${{ inputs.model_scope == 'precommit' && 60 || 400 }}
2626
runs-on: ${{ inputs.runner }}
2727
container: ${{ fromJSON(inputs.container) }}
2828
defaults:

.github/workflows/linux_sanitizers.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ jobs:
477477
if: ${{ 'false' }} # Ticket: 134425
478478
run: |
479479
source ${INSTALL_DIR}/setupvars.sh
480-
${INSTALL_TEST_DIR}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVHeteroFuncTests.xml --gtest_filter="*smoke*"
480+
${INSTALL_TEST_DIR}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVHeteroFuncTests.xml --gtest_filter="*smoke*" --gtest_filter=-"nightly*"
481481
482482
- name: Upload Test Results
483483
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0

.github/workflows/py_checks.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ permissions: read-all
2424

2525
jobs:
2626
linters:
27-
runs-on: ubuntu-20.04
27+
runs-on: ubuntu-22.04
2828
if: ${{ github.repository_owner == 'openvinotoolkit' }}
2929
steps:
3030
- name: Clone OpenVINO

cmake/developer_package/compile_flags/os_flags.cmake

-1
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,6 @@ endfunction()
674674
# ov_target_link_libraries_as_system(<TARGET NAME> <PUBLIC | PRIVATE | INTERFACE> <target1 target2 ...>)
675675
#
676676
function(ov_target_link_libraries_as_system TARGET_NAME LINK_TYPE)
677-
message("Link to ${TARGET_NAME} using ${LINK_TYPE} the following ${ARGN}")
678677
target_link_libraries(${TARGET_NAME} ${LINK_TYPE} ${ARGN})
679678

680679
# include directories as SYSTEM

cmake/developer_package/ncc_naming_style/openvino.style

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# custom OpenVINO values
2-
CppMethod: '^(operator\W+|[a-z_\d]+|signaling_NaN|quiet_NaN|OPENVINO_OP)$'
2+
CppMethod: '^(operator\W+|[a-z_\d]+|signaling_NaN|quiet_NaN|OPENVINO_OP|OPENVINO_RTTI)$'
33
ClassName: '^([A-Z][\w]+|b?float16|float8_e4m3|float8_e5m2|float4_e2m1|float8_e8m0|numeric_limits|ngraph_error|stopwatch|unsupported_op)$'
44
StructName: '^([A-Z][\w]+|element_type_traits|hash|oi_pair|stat)$'
55
FunctionName: '^(operator\W+|[a-z_\d]+)|PrintTo$'
6-
Namespace: '^([a-z\d_]*|InferenceEngine)$'
7-
NamespaceAlias: '^([a-z\d_]+|InferenceEngine)$'
6+
Namespace: '^([a-z\d_]*)$'
7+
NamespaceAlias: '^([a-z\d_]+)$'
88
UnionName: '[A-Z][\w]+$'
99
TemplateTemplateParameter: '[A-Z][\w]+'
10-
NamespaceReference: '^([a-z\d_]+|InferenceEngine|GPUContextParams)$'
10+
NamespaceReference: '^([a-z\d_]+)$'
1111
TemplateNonTypeParameter: '^\w*$'
1212
ClassTemplate: '^([A-Z][\w]+|element_type_traits)$'
1313
TemplateTypeParameter: '^\w*$'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
SegmentMax
2+
==========
3+
4+
5+
.. meta::
6+
:description: Learn about SegmentMax-16 - an arithmetic operation which computes the maximum values along segments of a tensor.
7+
8+
**Versioned name**: *SegmentMax-16*
9+
10+
**Category**: *Arithmetic*
11+
12+
**Short description**: *SegmentMax-16* operation finds the maximum value in each specified segment of the ``input`` tensor.
13+
14+
**Detailed description**
15+
16+
For each index in ``segment_ids`` the operator gets values from ``data`` input tensor and calculates the maximum value for each segment.
17+
18+
For example ``segments_ids`` with value ``[0,0,0,1,1,3,5,5]`` defines 4 non-empty segments. ``num_segments`` is not given. When coupled with a 1D data tensor ``data``, the segments are as follows:
19+
20+
* Segment_0: ``[data[0], data[1], data[2]]``
21+
* Segment_1: ``[data[3], data[4]]``
22+
* Segment_2: ``[]``
23+
* Segment_3: ``[data[5]]``
24+
* Segment_4: ``[]``
25+
* Segment_5: ``[data[6], data[7]]``
26+
27+
When there are no values in a segment, ``output[segment]`` is defined by ``fill_mode`` attribute.
28+
29+
For ``fill_mode`` equal to ``ZERO`` , the operation output would be ``[max(Segment_0), max(Segment_1), 0, max(Segment_3), 0, max(Segment_5)]``.
30+
31+
**Attributes**:
32+
33+
* **1**: *fill_mode*
34+
35+
* **Description**: Responsible for the value assigned to segments which are empty. **Required.**
36+
* **Range of values**: Name of the mode in string format:
37+
38+
* ``ZERO`` - the empty segments are filled with zeros.
39+
* ``LOWEST`` - the empty segments are filled with the lowest value of the data type *T*.
40+
* **Type**: ``string``
41+
42+
**Inputs**
43+
44+
* **1**: ``data`` - ND tensor of type *T*, the numerical data on which SegmentMax operation will be performed. **Required.**
45+
46+
* **2**: ``segment_ids`` - 1D Tensor of sorted non-negative numbers of type *T_IDX1*. Its size is equal to the size of the first dimension of the ``data`` input tensor. **Required.**
47+
48+
* **3**: ``num_segments`` - A scalar value of type *T_IDX2* representing the segments count. If ``num_segments < max(segment_ids) + 1`` then the extra segments defined in ``segment_ids`` are not included in the output. If If ``num_segments > max(segment_ids) + 1`` then the output is padded with empty segments. Defaults to ``max(segment_ids) + 1``. **Optional.**
49+
50+
**Outputs**
51+
52+
* **1**: The output tensor has same rank and dimensions as the ``data`` input tensor except for the first dimension which is equal to the value of ``num_segments``.
53+
54+
**Types**
55+
56+
* *T*: any supported numerical data type.
57+
* *T_IDX1*, *T_IDX2*: ``int64`` or ``int32``.
58+
59+
**Examples**
60+
61+
*Example 1: num_segments < max(segment_ids) + 1*
62+
63+
.. code-block:: xml
64+
:force:
65+
66+
<layer ... type="SegmentMax" ... >
67+
<data empty_segment_value="ZERO">
68+
<input>
69+
<port id="0" precision="F32"> <!-- data -->
70+
<dim>5</dim>
71+
</port>
72+
<port id="1" precision="I32"> <!-- segment_ids with 4 segments: [0, 0, 2, 3, 3] -->
73+
<dim>5</dim>
74+
</port>
75+
<port id="2" precision="I64"> <!-- number of segments: 2 -->
76+
<dim>0</dim>
77+
</port>
78+
</input>
79+
<output>
80+
<port id="3" precision="F32">
81+
<dim>2</dim>
82+
</port>
83+
</output>
84+
</layer>
85+
86+
*Example 2: num_segments > max(segment_ids) + 1*
87+
88+
.. code-block:: xml
89+
:force:
90+
91+
<layer ... type="SegmentMax" ... >
92+
<data empty_segment_value="ZERO">
93+
<input>
94+
<port id="0" precision="F32"> <!-- data -->
95+
<dim>5</dim>
96+
</port>
97+
<port id="1" precision="I32"> <!-- segment_ids with 4 segments: [0, 0, 2, 3, 3] -->
98+
<dim>5</dim>
99+
</port>
100+
<port id="2" precision="I64"> <!-- number of segments: 8 -->
101+
<dim>0</dim>
102+
</port>
103+
</input>
104+
<output>
105+
<port id="3" precision="F32">
106+
<dim>8</dim>
107+
</port>
108+
</output>
109+
</layer>
110+
111+
*Example 3: 2D input data, no num_segments*
112+
113+
.. code-block:: xml
114+
:force:
115+
116+
<layer ... type="SegmentMax" ... >
117+
<data empty_segment_value="LOWEST">
118+
<input>
119+
<port id="0" precision="I32"> <!-- data -->
120+
<dim>3</dim>
121+
<dim>4</dim>
122+
</port>
123+
<port id="1" precision="I64"> <!-- segment_ids with 2 segments: [0, 1, 1] -->
124+
<dim>3</dim>
125+
</port>
126+
</input>
127+
<output>
128+
<port id="2" precision="I32">
129+
<dim>2</dim>
130+
<dim>4</dim>
131+
</port>
132+
</output>
133+
</layer>

docs/articles_en/openvino-workflow/model-optimization-guide/compressing-models-during-training.rst

+1-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@ quantization errors part of the overall training loss and tries to minimize thei
4545

4646
To learn more, see:
4747

48-
* guide on quantization for :doc:`PyTorch <./compressing-models-during-training/quantization-aware-training-pytorch>`.
49-
* guide on quantization for :doc:`Tensorflow <./compressing-models-during-training/quantization-aware-training-tensorflow>`.
48+
* guide on quantization for :doc:`PyTorch and TensorFlow <./compressing-models-during-training/quantization-aware-training>`.
5049
* Jupyter notebook on `Quantization Aware Training with NNCF and PyTorch <https://github.com/openvinotoolkit/openvino_notebooks/tree/latest/notebooks/pytorch-quantization-aware-training>`__.
5150
* Jupyter notebook on `Quantization Aware Training with NNCF and TensorFlow <https://github.com/openvinotoolkit/openvino_notebooks/tree/latest/notebooks/tensorflow-quantization-aware-training>`__.
5251

0 commit comments

Comments
 (0)