Commit Graph

20 Commits

Author SHA1 Message Date
Patryk Wrobel
c0342a0ab5 Optimize binaries' size by adjusting linkage of constants in headers
When header is included for the first time in translation unit,
then preprocessor simply copy-pastes its content. If we define a
constant in a header file and this constant has internal linkage
then each and every translation unit, which includes this header
will have its own copy of this constant.

C++17 introduces inline variables, which are meant to allow creation
of variables in header files, which do not cause multiple instances.

The inline variable has a single instance when:
- constexpr is used without static (constexpr implicitly implies inline)
- inline is used without static
- inline const is used without static (const does not imply internal linkage
when used with inline)

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-08-26 22:52:04 +02:00
Compute-Runtime-Validation
c5c3e865f0 Revert "Fail build program on PVC with stateful accesses"
This reverts commit 9466113cef.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-02-14 18:55:14 +01:00
Kamil Kopryk
9466113cef Fail build program on PVC with stateful accesses
Related-To: NEO-6075

After this change driver will fail clBuildProgram/zeModuleCreate api calls
whenever stateful access is discovered on PVC.
This is required since in this case allocation greater than 4GB
will not work.
If user still wants to use stateful addressing mode,
-cl-opt-smaller-than-4GB-buffers-only / -ze-opt-smaller-than-4GB-buffers-only
build option should be passed as build option, but then user can not use
bufers greater than 4GB.


Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-02-14 13:44:22 +01:00
Igor Venevtsev
71746a2fff Register zebin binary in L0 debugger
Related-To: NEO-5571

Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
2022-01-12 23:17:59 +01:00
Patryk Wrobel
3599e7aeda Add warning when device binary had to be recompiled
Introduced a new warning, which is printed to build log, when the
binary needs to be recompiled. Added a new flag -Wno-recompiled-from-ir
to allow suppression of that message. Removed a bug related to memcpy_s
from ModuleBuildLogImp::getString() and aligned it with specification.

Related-To: NEO-5819
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2021-12-23 16:13:59 +01:00
Patryk Wrobel
09eefb4968 Unify used flags in case of IR exclusion
Unifies usage of flags in case of IR exclusion from ocloc's output file.
When -exclude_ir parameter is active, then internal options passed to
IGC contain -exclude-ir-from-zebin to preserve consistency. Moreover,
when only -exclude-ir-from-zebin is present, then -exclude_ir is also set.

Related-To: NEO-6477
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2021-12-17 14:30:58 +01:00
Compute-Runtime-Validation
b7cee61bde Revert "Fail build program in shared system USM + stateful access case"
This reverts commit 0ad8afc0b3.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-12-07 01:00:59 +01:00
Kamil Kopryk
0ad8afc0b3 Fail build program in shared system USM + stateful access case
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-6075

After this change driver will fail clBuildProgram/zeModuleCreate api calls
whenever stateful access is discovered and device has shared system usm caps
enabled.This is required since in this case allocation greater than 4GB
will not work.
If user still wants to use stateful addressing mode,
-cl-opt-smaller-than-4GB-buffers-only / -ze-opt-smaller-than-4GB-buffers-only
build option should be passed as build option, but then user can not use
buffers greater than 4GB.
2021-12-06 15:10:16 +01:00
Mateusz Hoppe
8b233f7f45 Support for bindless mode in L0 - improvements
Related-To: NEO-6448

- add new IGC compilation flag when bindless mode used
- fix SBA programming of BindlessSurfaceStateSize -
always set maximum surface state count
- fix residency of global DSH heap on gen9 - gen12lp
in bindless mode
- add L0 aub test with bindless kernel - disabled
- partial fixes in OCL aub tests


Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-12-02 16:30:58 +01:00
Compute-Runtime-Validation
faea7915c2 Revert "Fail build program in shared system USM + statefull access case OCL"
This reverts commit 9dabc2db0c.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-11-05 20:31:47 +01:00
Kamil Kopryk
9dabc2db0c Fail build program in shared system USM + statefull access case OCL
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-6075
2021-11-05 14:55:05 +01:00
Young Jin Yoon
4ba64d2530 Add ze-opt-level support
Related-To: LOCI-2315
Signed-off-by: Young Jin Yoon <young.jin.yoon@intel.com>
2021-07-20 20:34:57 +02:00
Filip Hazubski
9a8125cdb0 Correct formatting
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-03-16 10:29:41 +01:00
Filip Hazubski
65aecc84f1 Add __IMAGE_SUPPORT__ option for compilation
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-01-19 16:21:57 +01:00
Maciej Plewka
ded70b803d Use common compile bindless flag
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2020-11-27 14:28:55 +01:00
Maciej Plewka
28de4068c9 Read bindless offset from patch token
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2020-11-18 17:04:00 +01:00
Jaroslaw Chodor
e16f430ecc Pass flag to IGC to allow zebin in L0
Change-Id: I8793c4e58966a5527b1d1f37bf0b54f03bf1f976
2020-08-28 09:11:42 +02:00
Jaroslaw Chodor
d65cdab453 Zebin - yaml parser
Change-Id: If8b5bcd68b7d39bfd3fb53b619f5de973b059bff
2020-07-30 07:26:44 +02:00
Mateusz Jablonski
7df9945ebe Add absolute include paths
Change-Id: I67a6919bbbff1d30c7d6cdb257b41c87bad51e7f
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-02-23 23:49:12 +01:00
kamdiedrich
e072275ae6 Reorganization directory structure [3/n]
Change-Id: If3dfa3f6007f8810a6a1ae1a4f0c7da38544648d
2020-02-23 23:48:28 +01:00