Disable devlib linking when runtime links multiple objects from
the app. Otherwise devlibs will be linked twice and may cause
undefined behavior with COv5.
Change-Id: I3b8640c64ff898893225fe3af5b4b4a32d42bf40
When TargetID is supported, the isa name will contain ':' characters
that are not legal in Windows file names. So replace all
non-aphanumeric or '+'/'-' characters with '_' to ensure the file name
will be legal on any file system.
Change-Id: I0b73a6188c186f75f1d2e8af19ade87667cbfe0b
When HIP_ENABLE_DEFERRED_LOADING=0, many global variables will be
referenced but they are not initialized in that early time. The patch
will use constexpr to initialze global constant varables in compile
time.
Change-Id: I9d538b7abc6a0ce700ec3332b97fc144db5fc1ef
Set top init_priority on affecting global variables so that
they will be created firstly and destroyed lastly.
Change-Id: Ied59fbecab66ba8195c4a7a02b6bef9fa2fad3af
SWDEV-204999 - [hipclang-vdi-rocm] TF unit test tracking.util_xla_test_gpu fails to run
- Fix a regression with 32bit binaries in HSAIL mode
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.hpp#28 edit
SWDEV-204999 - [hipclang-vdi-rocm] TF unit test tracking.util_xla_test_gpu fails to run
- Change the HSACO detection logic to use e_machine
- Allow to load a binary without any kernel.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.hpp#27 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/devprogram.cpp#63 edit
SWDEV-198885 - [CQE][OCL][NAVI10][NAVI14 ] compiler temps not generated
Blender 2.8 spawns a new process for each kernel to be compiled. This makes saving temporaries impossible, since all of the kernels will have the same file names.
1. Add a formatting field %pid% to the dump prefix of -save-temps/-save-temps-all. The runtime will replace this field with the PID of the current process.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/17832/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/options.cpp#45 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/options.hpp#21 edit
SWDEV-165756 - [ROCm] Backport cmake back into perforce to resolve cmake build broken issue
(Resubmitted CL1613181 with a bug fix)
- porting CMAKE changes in http://git.amd.com:8080/#/c/173995/
- add new source file names in runtime/CMakeLists.txt
-- required additional changes of CMAKE files from Konstantin to build the current OCL driver using CMAKE
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/CMakeLists.txt#17 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.cpp#34 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.h#34 edit
... //depot/stg/opencl/drivers/opencl/runtime/CMakeLists.txt#13 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/CMakeLists.txt#15 edit
SWDEV-165756 - [ROCm] Backport cmake back into perforce to resolve cmake build broken issue
- porting CMAKE changes in http://git.amd.com:8080/#/c/173995/
- add new source file names in runtime/CMakeLists.txt
-- required additional changes of CMAKE files from Konstantin to build the current OCL driver using CMAKE
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/CMakeLists.txt#15 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.cpp#32 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.h#32 edit
... //depot/stg/opencl/drivers/opencl/runtime/CMakeLists.txt#11 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/CMakeLists.txt#13 edit
SWDEV-143465 - HSAIL - Compiler Lib - Stop supporting SPIR binary on CI+ as well
This change plugs a hole when compiling from SPIR precompiled binary is possible on CI+ devices without option "-x spir" specified.
SPIR text has been already deprecated.
[Reviewers] Brian Sumner, Stanislav Mekhanoshin
[Testing] http://ocltc.amd.com:8111/viewModification.html?modId=107222&personal=true&tab=vcsModificationBuilds
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#101 edit
SWDEV-151981 - Removal of CPU support on Windows
- Part 1. Remove makefile options for CPU device support
http://ocltc.amd.com/reviews/r/14737/
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/build/Makefile.api#174 edit
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/complibdefs#12 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/complibdefs#56 edit
... //depot/stg/opencl/drivers/opencl/library/Makefile#33 edit
... //depot/stg/opencl/drivers/opencl/opencldefs#226 edit
... //depot/stg/opencl/drivers/opencl/runtime/Makefile#27 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#217 edit
SWDEV-143465 - Stop building static C++ kernels on CI+
Changed legacy HSAIL/AMDIL stack logic:
1. Stop supporting AMDIL on CI+ devices: "AMDIL doesn't support device ..." will be reported.
2. Stop handling OpenCL extension options in RT: if "-x spir" or "-x clc++" option is specified, it wouldn't force legacy AMDIL compiler anymore.
3. Start reporting error on "-legacy" option in HSAIL compiler. If we reach HSAIL compiler, then it means that there are conflicting options. Report them all, possible options are: -frontend=edg, -cl-std=CL2.0 (>= 2.0), -binary_is_spirv.
Already submitted changes in stack logic:
1. Start reporting error for SI devices on HSAIL path.
2. Start handling OpenCL extension options on HSAIL path: report error on "-x spir" or "-x clc++" options.
[testing] http://ocltc.amd.com:8111/viewModification.html?modId=99901&personal=true&tab=vcsModificationBuilds
[reviewed] by Stas and German: http://ocltc.amd.com/reviews/r/14270
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/backends/common/v0_8/if_acl.cpp#11 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#99 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#586 edit
SWDEV-132899 - [gfx10][OCL]- Adding support for forcing WaveSize32 from runtime for testing on gfx10 HW emulator
Motivation: During testing ocltst on Windows on PAL/HSAIL/SC path on gfx10 HW emulator, it was found that SC uses WaveSize64 by default for compute kernels.
SC also has an interface that can be used for forcing the WaveSize to 32 or 64.
- Adding the "-force-wave-size-32" into compiler to be passed down to Finalizer/SC
- Adding environment variable "GPU_FORCE_WAVE_SIZE_32" that can be used from runtime to force WaveSize32 compilation in HSAIL/SC path
ReviewBoardURL = http://ocltc.amd.com/reviews/r/14364/
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/hsail_be.cpp#69 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/OPTIONS.def#138 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#55 edit
... //depot/stg/opencl/drivers/opencl/runtime/utils/flags.hpp#284 edit
SWDEV-143465 - AMDIL - Compiler Lib - Mark as unsupported all CI+ targets
1. Mark all CI+ targets as unsupported for AMDIL target mappings.
2. Let aclGetTargetInfo, aclGetTargetInfoFromChipID, aclGetDeviceInfo to report unsupported chips.
3. Fix aclReadFromMem in order to early determination of the target of binary in memory and reporting ACL_INVALID_TARGET if target is invalid, or ACL_UNSUPPORTED if chip is unsupported.
4. Add utility inline functions IsValidTarget, IsChipSupported, make getTargetMapping inline too, as it is used in the first two.
5. Fix affected tests.
[Testing] http://ocltc.amd.com:8111/viewModification.html?modId=98724&personal=true&init=1&tab=vcsModificationBuilds (clean)
[Reviewed] by Stas (http://ocltc.amd.com/reviews/r/14277)
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/api/v0_8/acl.cpp#3 edit
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/utils/v0_8/libUtils.cpp#9 edit
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/utils/v0_8/libUtils.h#4 edit
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/utils/v0_8/target_mappings.h#22 edit
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/utils/v0_8/target_mappings_amdil.h#23 edit
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/utils/v0_8/target_mappings_amdil64.h#22 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/target_mappings_amdil.h#49 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/target_mappings_amdil64.h#45 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/binary/BIF2xTo3x.cpp#3 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/binary/BIFBase.cpp#5 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/binary/BIFSymbol.cpp#14 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/aclAPI.cpp#22 edit
SWDEV-102733 - Update some CMakeLists.txt files:
- when setting CMAKE_CXX_FLAGS, append to it rather than overwriting it.
- some linker flags, -Wl,--unresolved-symbols=report-all being one of them, requires -shared-libasan if using -fsanitize=address.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/CMakeLists.txt#13 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/utils/libelf/CMakeLists.txt#2 edit
... //depot/stg/opencl/drivers/opencl/runtime/CMakeLists.txt#9 edit
... //depot/stg/opencl/drivers/opencl/tools/clinfo/CMakeLists.txt#5 edit
SWDEV-143465 - Revert of #1516121
[Reason]
A plenty of tests are failed.
After the changing stack logic a lot of tests should be fixed, a lot - to be removed from testing.
#1516121 will be submitted again after renewal/removal of all the failed tests.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/backends/common/v0_8/if_acl.cpp#10 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#98 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#583 edit
SWDEV-143465 - Stop building static C++ kernels on CI+
Changed stack logic:
1. Stop supporting AMDIL on CI+ devices: "AMDIL doesn't support device ..." will be reported.
2. Stop handling OpenCL extension options in RT: if "-x spir" or "-x clc++" option is specified, it wouldn't force legacy AMDIL compiler anymore.
3. Start reporting error on "-legacy" option in HSAIL compiler. If we reach HSAIL compiler, then it means that there are conflicting options. Report them all, possible options are: -frontend=edg, -cl-std=CL2.0 (>= 2.0), -binary_is_spirv.
Already submitted changes in stack logic:
1. Start reporting error for SI devices on HSAIL path.
2. Start handling OpenCL extension options on HSAIL path: report error on "-x spir" or "-x clc++" options.
[Testing]
rga offline for all the targets supported by HSAIL and AMDIL (from Family_SI up to Family_VI):
tahiti, pitcairn, capeverde, spectre, spooky, kalindi, hawaii, oland, bonaire, hainan, carrizo, iceland, tonga, fiji, stoney, baffin, ellesmere.
[Reviewed] by German and Stas (http://ocltc.amd.com/reviews/r/14270)
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/backends/common/v0_8/if_acl.cpp#9 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#97 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#582 edit
SWDEV-143465 - Fix crashes while mixed work with hsail and amdil (legacy) paths
Redirect (where it is possible) ACL API calls from HSAIL lib to legacy AMDIL lib if target is AMDIL.
For those functions (aclCreateFromBinary, aclReadFromMem), where redirect is impossible, explicit loadLibrary for AMDIL lib and call of corresponding function from AMDIL lib is performed.
[Reviewed] by Stas (http://ocltc.amd.com/reviews/r/14238)
[Testing] rga offline for all the targets supported by HSAIL and AMDIL (from Family_SI up to Family_VI):
tahiti, pitcairn, capeverde, spectre, spooky, kalindi, hawaii, oland, bonaire, hainan, carrizo, iceland, tonga, fiji, stoney, baffin, ellesmere.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/acl.cpp#45 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/aclValidation.cpp#8 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/aclValidation.h#3 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.cpp#29 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.h#30 edit
SWDEV-143465 - HSAIL - Add checks for OpenCL extension and device family
FAMILY_SI devices and OpenCL extensions clc++ and spir are not supported by HSAIL.
Affected only offline compilation via ACL API.
[Reviewed] by Stas, http://ocltc.amd.com/reviews/r/14240
[Testing] aoc2, rga
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#96 edit