Skip to content

Commit 914cd0c

Browse files
Build: tune size of release builds after PDB are enabled (#29261)
### Details: - Added PDBs generation by default in Release build and added extra flags to avoid binary bloating - Continuation of #29174 ### Tickets: - CVS-160554 - CVS-163245
1 parent 4cb9a0f commit 914cd0c

File tree

7 files changed

+40
-48
lines changed

7 files changed

+40
-48
lines changed

.github/workflows/job_build_windows.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ jobs:
164164
run: echo SSL_CERT_FILE=$(python3 -m certifi) >> $env:GITHUB_ENV
165165

166166
- name: CMake configure
167-
run: cmake -S ${{ env.OPENVINO_REPO }} -B ${{ env.BUILD_DIR }} ${{ inputs.cmake-options }} -DCMAKE_CXX_FLAGS="/Zi" -DCMAKE_C_FLAGS="/Zi" -DCMAKE_SHARED_LINKER_FLAGS="/DEBUG" -DCMAKE_MODULE_LINKER_FLAGS="/DEBUG"
167+
run: cmake -S ${{ env.OPENVINO_REPO }} -B ${{ env.BUILD_DIR }} ${{ inputs.cmake-options }}
168168

169169
- name: Clean ccache stats
170170
run: '& ccache --zero-stats'

.github/workflows/job_samples_tests.yml

+1-5
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ jobs:
3333
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
3434
INSTALL_WHEELS_DIR: ${{ github.workspace }}/install/wheels
3535
BUILD_DIR: ${{ github.workspace }}/build
36+
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
3637
steps:
3738
- name: Download OpenVINO artifacts (tarballs)
3839
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
@@ -92,23 +93,18 @@ jobs:
9293

9394
- name: Build cpp samples
9495
run: $INSTALL_DIR/samples/cpp/build_samples.sh -i $INSTALL_DIR -b $BUILD_DIR/cpp_samples
95-
env:
96-
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
9796

9897
- name: Build cpp samples - Clang
9998
if: runner.os == 'Linux'
10099
run: |
101100
apt-get update && apt-get install -y clang
102101
$INSTALL_DIR/samples/cpp/build_samples.sh -i $INSTALL_DIR -b $BUILD_DIR/cpp_samples_clang
103102
env:
104-
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
105103
CC: clang
106104
CXX: clang++
107105

108106
- name: Build c samples
109107
run: $INSTALL_DIR/samples/c/build_samples.sh -i $INSTALL_DIR -b $BUILD_DIR/c_samples
110-
env:
111-
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
112108

113109
#
114110
# Tests

.github/workflows/linux_conditional_compilation.yml

+2-4
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ jobs:
9595
CMAKE_GENERATOR: 'Ninja Multi-Config'
9696
CMAKE_CXX_COMPILER_LAUNCHER: sccache
9797
CMAKE_C_COMPILER_LAUNCHER: sccache
98+
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
9899
SCCACHE_IGNORE_SERVER_IO_ERROR: 1
99100
SCCACHE_SERVER_PORT: 35555
100101
SCCACHE_ERROR_LOG: /__w/openvino/sccache_log.txt
@@ -163,7 +164,6 @@ jobs:
163164
-DENABLE_CPPLINT=OFF \
164165
-DENABLE_CLANG_TIDY=ON \
165166
-DENABLE_NCC_STYLE=OFF \
166-
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \
167167
-DENABLE_PROFILING_ITT=ON \
168168
-DSELECTIVE_BUILD=COLLECT \
169169
-DENABLE_FASTER_BUILD=ON \
@@ -188,13 +188,11 @@ jobs:
188188
189189
- name: Build C++ samples - OpenVINO build tree
190190
run: |
191-
cmake -G "${{ env.CMAKE_GENERATOR }}" -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DOpenVINO_DIR=${BUILD_DIR} -S ${INSTALL_DIR}/samples/cpp -B ${BUILD_DIR}/cpp_samples
191+
cmake -G "${{ env.CMAKE_GENERATOR }}" -DOpenVINO_DIR=${BUILD_DIR} -S ${INSTALL_DIR}/samples/cpp -B ${BUILD_DIR}/cpp_samples
192192
cmake --build ${BUILD_DIR}/cpp_samples --parallel $(nproc) --config ${{ env.CMAKE_BUILD_TYPE }} --target hello_query_device
193193
194194
- name: Build C samples - OpenVINO install tree
195195
run: ${INSTALL_DIR}/samples/c/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/c_samples
196-
env:
197-
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
198196

199197
- name: Ctest - OpenVINO unit tests
200198
run: ctest -C ${{ env.CMAKE_BUILD_TYPE }} --test-dir ${BUILD_DIR} -V -L UNIT

.github/workflows/windows_conditional_compilation.yml

+3-9
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ jobs:
5757
runs-on: aks-win-32-cores-128gb
5858
env:
5959
CMAKE_BUILD_TYPE: 'Release'
60+
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
6061
# CMAKE_GENERATOR: 'Ninja Multi-Config'
6162
CMAKE_GENERATOR: 'Visual Studio 17 2022'
6263
CMAKE_CXX_COMPILER_LAUNCHER: ccache
@@ -171,16 +172,10 @@ jobs:
171172
-DENABLE_TESTS=ON `
172173
-DENABLE_CPPLINT=OFF `
173174
-DENABLE_NCC_STYLE=OFF `
174-
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON `
175175
-DENABLE_PROFILING_ITT=ON `
176176
-DSELECTIVE_BUILD=COLLECT `
177177
-DENABLE_FASTER_BUILD=ON `
178178
-DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON `
179-
-DCMAKE_CXX_FLAGS="/Zi" `
180-
-DCMAKE_C_FLAGS="/Zi" `
181-
-DCMAKE_SHARED_LINKER_FLAGS="/DEBUG" `
182-
-DCMAKE_MODULE_LINKER_FLAGS="/DEBUG" `
183-
-DCMAKE_EXE_LINKER_FLAGS="/DEBUG" `
184179
-S ${{ env.OPENVINO_REPO }} `
185180
-B ${{ env.BUILD_DIR }}
186181
@@ -203,7 +198,7 @@ jobs:
203198
204199
- name: Build C++ samples - OpenVINO build tree
205200
run: |
206-
cmake -G "${{ env.CMAKE_GENERATOR }}" -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DOpenVINO_DIR=${{ env.BUILD_DIR }} -S ${{ env.INSTALL_DIR }}/samples/cpp -B ${{ env.BUILD_DIR }}/cpp_samples
201+
cmake -G "${{ env.CMAKE_GENERATOR }}" -DOpenVINO_DIR=${{ env.BUILD_DIR }} -S ${{ env.INSTALL_DIR }}/samples/cpp -B ${{ env.BUILD_DIR }}/cpp_samples
207202
cmake --build ${{ env.BUILD_DIR }}/cpp_samples --parallel $ENV:NUMBER_OF_PROCESSORS --config ${{ env.CMAKE_BUILD_TYPE }} --target hello_query_device
208203
209204
- name: Ctest - OpenVINO unit tests
@@ -272,13 +267,12 @@ jobs:
272267
# install PDB files to OpenVINO main installation folder to ensure that they are used instead of PDB files from build folder
273268
cmake --install ${{ env.BUILD_DIR }} --config ${{ env.CMAKE_BUILD_TYPE }} --prefix ${{ env.INSTALL_DIR }} --component pdb
274269
# then, we need to clean build tree to remove PDB files
275-
cmake --build ${{ env.BUILD_DIR }} --parallel 16 --config ${{ env.CMAKE_BUILD_TYPE }} --target clean
270+
cmake --build ${{ env.BUILD_DIR }} --parallel $ENV:NUMBER_OF_PROCESSORS --config ${{ env.CMAKE_BUILD_TYPE }} --target clean
276271
& ${{ env.INSTALL_DIR }}/samples/c/build_samples.ps1 -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/c_samples
277272
env:
278273
CXXFLAGS: "/Zi"
279274
CFLAGS: "/Zi"
280275
LDFLAGS: "/DEBUG"
281-
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
282276
CMAKE_GENERATOR: "Visual Studio 17 2022"
283277

284278
#

.github/workflows/windows_vs2022_release.yml

+1-8
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ jobs:
8080
shell: pwsh
8181
runs-on: aks-win-4-cores-8gb
8282
env:
83+
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
8384
OPENVINO_REPO: "${{ github.workspace }}\\openvino"
8485
INSTALL_DIR: "${{ github.workspace }}\\install"
8586
INSTALL_TEST_DIR: "${{ github.workspace }}\\install\\tests"
@@ -129,15 +130,11 @@ jobs:
129130
- name: Build cpp samples
130131
run: |
131132
& ${{ env.SAMPLES_INSTALL_DIR }}/cpp/build_samples.ps1 -i ${{ env.INSTALL_DIR }} -b ${{ env.BUILD_DIR }}/cpp_samples
132-
env:
133-
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
134133
135134
# Test with the full names of the arguments
136135
- name: Build c samples
137136
run: |
138137
& ${{ env.SAMPLES_INSTALL_DIR }}/c/build_samples.ps1 -InstallDirectory ${{ env.INSTALL_DIR }} -BuildDirectory ${{ env.BUILD_DIR }}/c_samples
139-
env:
140-
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
141138
142139
# Install Python benchmark_app by installing openvino-*.whl
143140
- name: Install OpenVINO Python wheels
@@ -163,14 +160,10 @@ jobs:
163160
- name: Build cpp samples (bat)
164161
run: |
165162
& ${{ env.SAMPLES_INSTALL_DIR }}/cpp/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }}/samples_bat -b ${{ env.BUILD_DIR }}/cpp_samples_bat
166-
env:
167-
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
168163
169164
- name: Build c samples (bat)
170165
run: |
171166
& ${{ env.SAMPLES_INSTALL_DIR }}/c/build_samples_msvc.bat -i ${{ env.INSTALL_DIR }}/samples_bat -b ${{ env.BUILD_DIR }}/c_samples_bat
172-
env:
173-
CMAKE_COMPILE_WARNING_AS_ERROR: 'ON'
174167
175168
JS_API:
176169
name: JS API

cmake/developer_package/compile_flags/os_flags.cmake

+10
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,16 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
118118
"$<$<COMPILE_LANGUAGE:CXX>:/d1trimfile:${OV_NATIVE_PROJECT_ROOT_DIR}\\>"
119119
"$<$<COMPILE_LANGUAGE:CXX>:/d1trimfile:${CMAKE_SOURCE_DIR}/>")
120120
endif()
121+
122+
#
123+
# PDB related flags
124+
#
125+
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Zi")
126+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
127+
128+
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
129+
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
130+
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
121131
elseif(OV_COMPILER_IS_INTEL_LLVM AND WIN32)
122132
#
123133
# Warnings as errors

src/plugins/intel_gpu/thirdparty/CMakeLists.txt

+22-21
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ if(ENABLE_ONEDNN_FOR_GPU)
3232
message(WARNING "Intel GPU plugin unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}")
3333
endif()
3434

35+
# oneDNN specific compile flags
3536
if(CMAKE_COMPILER_IS_GNUCXX OR OV_COMPILER_IS_CLANG OR (OV_COMPILER_IS_INTEL_LLVM AND UNIX))
3637
ov_add_compiler_flags(-Wno-undef)
3738
ov_add_compiler_flags(-Wno-missing-declarations)
@@ -43,18 +44,38 @@ if(ENABLE_ONEDNN_FOR_GPU)
4344
endif()
4445
endif()
4546
endif()
47+
4648
if(SUGGEST_OVERRIDE_SUPPORTED)
4749
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-suggest-override")
4850
endif()
4951

52+
# remove CMAKE_COMPILE_WARNING_AS_ERROR for onednn_gpu
53+
if(WIN32 AND CMAKE_COMPILE_WARNING_AS_ERROR AND CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND CMAKE_VERSION VERSION_LESS 3.24)
54+
ov_add_compiler_flags(/WX-)
55+
endif()
56+
57+
# pass common variables
5058
foreach(cmake_var IN ITEMS CMAKE_SYSTEM_NAME CMAKE_SYSTEM_VERSION
5159
CMAKE_SYSTEM_PROCESSOR CMAKE_TOOLCHAIN_FILE
52-
CMAKE_VERBOSE_MAKEFILE CMAKE_GENERATOR)
60+
CMAKE_VERBOSE_MAKEFILE CMAKE_GENERATOR
61+
CMAKE_CXX_COMPILER CMAKE_C_COMPILER
62+
CMAKE_CXX_COMPILER_LAUNCHER CMAKE_C_COMPILER_LAUNCHER)
5363
if(${cmake_var})
5464
list(APPEND cmake_extra_args "-D${cmake_var}=${${cmake_var}}")
5565
endif()
5666
endforeach()
5767

68+
# pass compilation flags
69+
foreach(lang IN ITEMS C CXX)
70+
foreach(build_type IN ITEMS "" "_DEBUG" "_MINSIZEREL" "_RELEASE" "_RELWITHDEBINFO")
71+
set(flag_var "CMAKE_${lang}_FLAGS${build_type}")
72+
if(${flag_var})
73+
list(APPEND cmake_extra_args "-D${flag_var}=${${flag_var}}")
74+
endif()
75+
endforeach()
76+
endforeach()
77+
78+
# pass build type
5879
if(OV_GENERATOR_MULTI_CONFIG)
5980
if(CMAKE_GENERATOR STREQUAL "Ninja Multi-Config")
6081
list(APPEND cmake_extra_args "-DCMAKE_CONFIGURATION_TYPES=${CMAKE_DEFAULT_BUILD_TYPE}")
@@ -64,15 +85,6 @@ if(ENABLE_ONEDNN_FOR_GPU)
6485
list(APPEND cmake_extra_args "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}")
6586
endif()
6687

67-
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.21)
68-
if(DEFINED CMAKE_CXX_LINKER_LAUNCHER)
69-
list(APPEND cmake_extra_args "-DCMAKE_CXX_LINKER_LAUNCHER=${CMAKE_CXX_LINKER_LAUNCHER}")
70-
endif()
71-
if(DEFINED CMAKE_C_LINKER_LAUNCHER)
72-
list(APPEND cmake_extra_args "-DCMAKE_C_LINKER_LAUNCHER=${CMAKE_C_LINKER_LAUNCHER}")
73-
endif()
74-
endif()
75-
7688
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.15 AND DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
7789
list(APPEND cmake_extra_args "-DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY}")
7890
endif()
@@ -88,11 +100,6 @@ if(ENABLE_ONEDNN_FOR_GPU)
88100
set(onednn_gpu_lib "${CMAKE_STATIC_LIBRARY_PREFIX}${DNNL_GPU_LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
89101
set(ONEDNN_GPU_LIB_PATH ${ONEDNN_INSTALL_DIR}/lib/${onednn_gpu_lib} CACHE FILEPATH "Path to oneDNN GPU library")
90102

91-
# remove CMAKE_COMPILE_WARNING_AS_ERROR for onednn_gpu
92-
if(WIN32 AND CMAKE_COMPILE_WARNING_AS_ERROR AND CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND CMAKE_VERSION VERSION_LESS 3.24)
93-
ov_add_compiler_flags(/WX-)
94-
endif()
95-
96103
ExternalProject_Add(onednn_gpu_build
97104
# Directory Options:
98105
PREFIX "${ONEDNN_PREFIX_DIR}"
@@ -102,12 +109,6 @@ if(ENABLE_ONEDNN_FOR_GPU)
102109
# Configure Step Options:
103110
CMAKE_ARGS
104111
${cmake_extra_args}
105-
"-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"
106-
"-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}"
107-
"-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}"
108-
"-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}"
109-
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}"
110-
"-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}"
111112
"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=${ENABLE_LTO}"
112113
"-DCMAKE_POLICY_DEFAULT_CMP0069=NEW"
113114
"-DDNNL_TARGET_ARCH=${ONEDNN_TARGET_ARCH}"

0 commit comments

Comments
 (0)