EPR #399601 - Back out changelist 1080047 to have CZ report as 2.0 device.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#285 edit
ECR #333753 - HSA RT: avoiding superfluous recompilations on ORCA RT/HSA path (part 2)
+ support of -fno-bin-llvmir & -fno-bin-hsail options: do not check compiler options for recompilation decision.
As a result if the binary contains ISA, BRIG & HSAIL and the above options are specified when compiling from binary, then compilation options are not compared, recompilation doesn't occur. This makes possible to compile from binary with different set of options, for example: -just-kernel.
P.S. Brig & HSAIL should be in binary in order to initialize & execute kernel (even if ISA is presented).
Testing: pre check-in, compiler, api & basic ocl conformance 2.0 tests
Reviewers: German Andryeyev, Artem Tamazov
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#178 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.hpp#56 edit
EPR #010002 - Change OpenCL version number from 1643 to 1644.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1390 edit
EPR #010002 - Change OpenCL version number from 1642 to 1643.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1389 edit
EPR #399601 - Back out changelist 1076725 to have CZ NOT report as 2.0 device. To be cherry picked to mainline and then unback out afterwards.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#284 edit
EPR #406216 - Revert CL#1076975 for Linux for now due to ASIC hang.
Keep the change for Windows.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#283 edit
EPR #405824 - On apus, if we run out of local memory to allocate cl_mem objects, ocl runtime will use remote (system) memory. Update maxMemAllocSize_ to include that.
Reviewed by: German
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#463 edit
EPR #010002 - Change OpenCL version number from 1641 to 1642.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1388 edit
ECR #333753 - Compiler Lib/RT: Metadata related code refactor, annotation, minor fixes & additional checks
+ refactor if_aclQueryInfo() in order to simplify code and to avoid direct usage of aclMetadata struct members types
+ annotation on why we need to use deserializeCLMetadata on "serialized" (to NULL) pointers
+ erroneously forgotten RT_KERNEL_NAME was added to aclQueryType enum
+ OCLRTGetInfo, CLEnumCheck tests from ocltst oclcomplib was updated to use RT_KERNEL_NAME
+ testing of printf is added to OCLRTGetInfo
+ minor fixes and additional checks
tests: pre check-in, ocltst -m oclcomplib
Reviewers: Artem Tamazov, Brian Sumner, German Andryeyev
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#49 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclEnums.h#12 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclStructs.h#12 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#265 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/CLEnumCheck.cpp#36 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/clSourceShaders.h#5 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/oclrtGetInfo.cpp#14 edit
EPR #010002 - Change OpenCL version number from 1640 to 1641.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1387 edit
EPR #010002 - Change OpenCL version number from 1639 to 1640.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1386 edit
ECR #304775 - Add extra CP write operation for the resource warm-up
- Vidmm will page in the constant buffers before the actual usage
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#192 edit
EPR #010002 - Change OpenCL version number from 1638 to 1639.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1385 edit
EPR #397491 - disable OpenCL 2.0 for mainline when there are multiple devices in the system, because svm test will fail even test on the first device
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#462 edit
EPR #010002 - Change OpenCL version number from 1637 to 1638.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1384 edit
EPR #010002 - Change OpenCL version number from 1636 to 1637.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1383 edit
EPR #402000 - [CQE OCL][Perf][QR] ~6-7% perf drop in CompuCL Benchmark (Graphics: T-Rex subtest).
Add option to disable SC merge memory loads and stores. By default it is disabled. Will decide whether to enable it by default after performance runs.
cherrypick 1076590 and CL#1077419 from sc stg for adding option in sc.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/Interface/SCCommon.h#42 integrate
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/Src/CompilerBase.cpp#51 integrate
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/Src/CompilerBase.hpp#35 integrate
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sc/Src/HwUtils.cpp#36 integrate
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/scwrapper/scState.cpp#32 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/OPTIONS.def#114 edit
ECR #333753 - HSA RT: avoiding superfluous recompilations on ORCA RT/HSA path
Next compilation stage determination based on binary sections and options (while linkImpl).
If current HSAILProgram options are equal to binarys ones:
- Do not generate BRIG if BRIG sections are already presented in binary.
- Do not finalize BRIG->ISA if ISA is already presented in binary.
- Perform only CG phase if HSAIL is absent in binary.
Always perform only brig loading (even in case of ISA presented).
Testing: pre check-in, compile & basic ocl conformance 2.0 tests
Reviewer: German Andryeyev
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpucompiler.cpp#150 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#264 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.hpp#101 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#177 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.hpp#55 edit
EPR #010002 - Change OpenCL version number from 1635 to 1636.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1382 edit
ECR #304775 - Update resource cache behavior
Currently, the resource cache is fixed at 64MB regardless of available video memory size. Changed the logic to use max(1/8th video memory, 64MB). This is still overrideable with the env. var. GPU_RESOURCE_CACHE_SIZE.
Improvements with changes: 18% decrease in video chat face detect time on 95w Kaveri (no change in PCMark8 score as we already achieved 30fps), 14% improvement on 19w Kaveri (this does result in an improvement in PCMark8 since the APU is slower).
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#279 edit
EPR #010002 - Change OpenCL version number from 1634 to 1635.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1381 edit
EPR #010002 - Change OpenCL version number from 1633 to 1634.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1380 edit
ECR #377625 - AMDIL Function support: Calculate total private memory usage by a kernel including memory used by called functions.
This cannot be done by IPA since stack size is known only after register allocation due to potential register spill, but MachineFunctionAnalysis cannot persist after CGSCC pass with current LLVM version.
This change adds private memory usage metadata for non-kernel functions. The total private memory usage by a kernel is calculated when AMDIL is split for different kernels. BIF will contain total private memory size.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/amdilUtils.cpp#1 add
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/amdilUtils.hpp#1 add
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/AMDIL/AMDILKernelManager.cpp#451 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/AMDIL/AMDILKernelManager.h#51 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#175 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.hpp#54 edit
ECR #333753 - HSA HLC: remove code changing the default filetype which is set by an external tool such as llc
Effectively llc will produce text hsail file by default as a standard llc behaviour. Use -filetype=obj to obtain brig.
Note, test_driver.pl is already patched to preserve old behaviour.
Testing: smoke, smoke_clang, precheckin
Reviewed by Nikolay Haustov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/codegen.cpp#58 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILTargetMachine.cpp#33 edit
EPR #010002 - Change OpenCL version number from 1632 to 1633.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1379 edit
EPR #405753 - Fixed incorrect value of slicePitch returned from clEnqueueMapimage for 1Darray.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpumemory.cpp#111 edit
EPR #010002 - Change OpenCL version number from 1631 to 1632.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1378 edit
EPR #405194 - Change unroll threshold to LLVM default to partially work around Linpack performance problem.
Prior to CL 1058428, which increased the unroll threshold to 200, this was only 100 which is lower than the LLVM default. Linpack's new ISA has increased register usage, but decreasing the unroll threshold to the previous level does not reduce the register count to its previous level. The increased register usage is probably a new SC problem, so this should probably be increased again in the future. There is no change in register usage with 100 vs. 150 on Linpack.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/OPTIONS.def#113 edit
ECR #304775 - Remove _ in hsail_64 triple enum name. It isn't consistent with itself, or most other targets. The string form is already "hsail64", but the target name is sometimes "hsail-64". Does not remove the - in "hsail-64" for the target name since users could be depending on that, although that should also be fixed.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/codegen.cpp#57 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#110 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/ADT/Triple.h#36 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/AMDLLVMContextHook.h#22 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/MC/MCObjectFileInfo.cpp#14 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Support/Triple.cpp#47 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/TargetInfo/HSAILTargetInfo.cpp#4 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/SPIR/AMDSPIRLoader.cpp#82 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/Scalar/AMDLowerAtomics.cpp#13 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/Utils/AMDUtils.cpp#2 edit
EPR #403493 - Block index error for CI and VI, OCL code change
Problem description: The OCL implementation requires HSA to used different block index values for CI and VI. However, the same index value is used for the same counter block in both CI and VI, which in turn caused a segmentation fault.
Root cause: HSA implementation does not know this situation before hand.
Solution: Fix to use different counter block index in CI from that in VI
Functional area: HSA perf counter implementation...
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa/hsacounters.cpp#4 edit
ECR #333756 - HSA Finalizer: added runtime option to force buffer instructions for global access
This can be used under ORCA RT.
Testing: smoke, smoke_clang, precheckin, clbas dgemm
Reviewed by Nikolay Haustov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/scwrapper/SI/scStateSI.cpp#24 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/OPTIONS.def#112 edit
EPR #010002 - Change OpenCL version number from 1630 to 1631.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1377 edit
EPR #397491 - only using OpenCL 1.2 onr multiple GPUs on mainline by default.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#460 edit