SWDEV-2 - Change OpenCL version number from 1955 to 1956.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1702 edit
SWDEV-82596 - HSA HLC: Create AMDInline pass
The generic llvm inlining heuristcs do not work well for GPU.
In particular we have a common problem in several tests:
If we have a pointer to private array passed into a function it will not be optimized out, leaving scratch usage.
The pass increases the inline threshold to allow inliniting in this case.
Also that we can move at least some AMD inlining customizations into this file from the common code.
Inline hint threshold is moved in this change.
Performance impact on ocltst sha256, 32 bit, Fiji:
AMDIL HSAIL Diff HSAIL+Inliner Diff Diff
before to AMDIL to HSAIL to AMDIL
OCLPerfSHA256[ 0] 43.843 40.894 0.93 69.910 1.71 1.59
OCLPerfSHA256[ 1] 53.611 51.083 0.95 80.919 1.58 1.51
OCLPerfSHA256[ 2] 52.127 51.528 0.99 80.640 1.56 1.55
OCLPerfSHA256[ 3] 60.952 57.027 0.94 68.615 1.20 1.13
OCLPerfSHA256[ 4] 76.173 70.150 0.92 80.582 1.15 1.06
OCLPerfSHA256[ 5] 75.886 70.264 0.93 81.000 1.15 1.07
Testing: smoke, precheckin, ocltst sha256
Reviewed by Danill Fukalov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/opt_level.cpp#28 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/InitializePasses.h#93 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/LinkAllPasses.h#49 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/Transforms/IPO.h#32 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/AMDInline.cpp#1 add
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/CMakeLists.txt#24 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/IPO.cpp#32 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/Inliner.cpp#42 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/tools/opt/amdopt.inc#28 edit
[ROCm/clr commit: 5e3d4f5a01]
SWDEV-82596 - HSA HLC: Create AMDInline pass
The generic llvm inlining heuristcs do not work well for GPU.
In particular we have a common problem in several tests:
If we have a pointer to private array passed into a function it will not be optimized out, leaving scratch usage.
The pass increases the inline threshold to allow inliniting in this case.
Also that we can move at least some AMD inlining customizations into this file from the common code.
Inline hint threshold is moved in this change.
Performance impact on ocltst sha256, 32 bit, Fiji:
AMDIL HSAIL Diff HSAIL+Inliner Diff Diff
before to AMDIL to HSAIL to AMDIL
OCLPerfSHA256[ 0] 43.843 40.894 0.93 69.910 1.71 1.59
OCLPerfSHA256[ 1] 53.611 51.083 0.95 80.919 1.58 1.51
OCLPerfSHA256[ 2] 52.127 51.528 0.99 80.640 1.56 1.55
OCLPerfSHA256[ 3] 60.952 57.027 0.94 68.615 1.20 1.13
OCLPerfSHA256[ 4] 76.173 70.150 0.92 80.582 1.15 1.06
OCLPerfSHA256[ 5] 75.886 70.264 0.93 81.000 1.15 1.07
Testing: smoke, precheckin, ocltst sha256
Reviewed by Danill Fukalov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/opt_level.cpp#28 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/InitializePasses.h#93 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/LinkAllPasses.h#49 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/Transforms/IPO.h#32 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/AMDInline.cpp#1 add
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/CMakeLists.txt#24 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/IPO.cpp#32 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/Inliner.cpp#42 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/tools/opt/amdopt.inc#28 edit
SWDEV-2 - Change OpenCL version number from 1954 to 1955.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1701 edit
[ROCm/clr commit: 4cefa6126f]
SWDEV-2 - Change OpenCL version number from 1954 to 1955.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1701 edit
SWDEV-2 - Change OpenCL version number from 1953 to 1954.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1700 edit
[ROCm/clr commit: cf8e10a104]
SWDEV-2 - Change OpenCL version number from 1953 to 1954.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1700 edit
Break from the for-loop once dgpu VM range is found, otherwise the
length is reduced by half
Change-Id: Ie602054c16ea69ea1cbb75e804ead551bc3615c0
Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Break from the for-loop once dgpu VM range is found, otherwise the
length is reduced by half
Change-Id: Ie602054c16ea69ea1cbb75e804ead551bc3615c0
Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
[ROCm/ROCR-Runtime commit: 5a55383baf]
SWDEV-82054 - [CQE OCL][QR][LNX] RQ Conformance "Integer_Ops" test is crashing on CPU; Faulty CL#1206023.
In llvm32 by default llvm::DisablePrettyStackTrace is off, which causes a trap handler installed by default and interferes with the trap handler in runtime, causing unhandled SIGFPE exceptions when executing conformance/integer_ops on certain cpu.
To fix this, put stack trace duping under an env var AMD_DUMP_STACK_TRACE and set llvm::DisablePrettyStackTrace=true by default.
Here env var is used because there is still no elf binary at this stage to pass the compiler option to if_aclCompilerInit.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/backends/common/v0_8/if_acl.cpp#8 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#86 edit
[ROCm/clr commit: ccc2b4ce79]
SWDEV-82054 - [CQE OCL][QR][LNX] RQ Conformance "Integer_Ops" test is crashing on CPU; Faulty CL#1206023.
In llvm32 by default llvm::DisablePrettyStackTrace is off, which causes a trap handler installed by default and interferes with the trap handler in runtime, causing unhandled SIGFPE exceptions when executing conformance/integer_ops on certain cpu.
To fix this, put stack trace duping under an env var AMD_DUMP_STACK_TRACE and set llvm::DisablePrettyStackTrace=true by default.
Here env var is used because there is still no elf binary at this stage to pass the compiler option to if_aclCompilerInit.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/backends/common/v0_8/if_acl.cpp#8 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#86 edit
SWDEV-2 - Change OpenCL version number from 1952 to 1953.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1699 edit
[ROCm/clr commit: 4035e3b21b]
SWDEV-2 - Change OpenCL version number from 1952 to 1953.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1699 edit
SWDEV-2 - Change OpenCL version number from 1951 to 1952.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1698 edit
[ROCm/clr commit: 8da0a97e7f]
SWDEV-2 - Change OpenCL version number from 1951 to 1952.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1698 edit
SWDEV-2 - Change OpenCL version number from 1950 to 1951.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1697 edit
[ROCm/clr commit: 9db300e6d4]
SWDEV-2 - Change OpenCL version number from 1950 to 1951.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1697 edit
SWDEV-2 - Change OpenCL version number from 1949 to 1950.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1696 edit
[ROCm/clr commit: 719f92981b]
SWDEV-2 - Change OpenCL version number from 1949 to 1950.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1696 edit
SWDEV-2 - Change OpenCL version number from 1948 to 1949.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1695 edit
[ROCm/clr commit: a3c5a06983]
SWDEV-2 - Change OpenCL version number from 1948 to 1949.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1695 edit
SWDEV-2 - Change OpenCL version number from 1947 to 1948.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1694 edit
[ROCm/clr commit: 4f570b1585]
SWDEV-2 - Change OpenCL version number from 1947 to 1948.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1694 edit
SWDEV-2 - Change OpenCL version number from 1946 to 1947.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1693 edit
[ROCm/clr commit: a8257c0b47]
SWDEV-2 - Change OpenCL version number from 1946 to 1947.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1693 edit
SWDEV-2 - Change OpenCL version number from 1945 to 1946.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1692 edit
[ROCm/clr commit: 2b6f4f6477]
SWDEV-2 - Change OpenCL version number from 1945 to 1946.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1692 edit
SWDEV-2 - Change OpenCL version number from 1944 to 1945.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1691 edit
[ROCm/clr commit: 08e5cc5695]
SWDEV-2 - Change OpenCL version number from 1944 to 1945.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1691 edit
SWDEV-2 - Change OpenCL version number from 1943 to 1944.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1690 edit
[ROCm/clr commit: ced3e2df46]
SWDEV-2 - Change OpenCL version number from 1943 to 1944.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1690 edit
SWDEV-2 - Change OpenCL version number from 1942 to 1943.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1689 edit
[ROCm/clr commit: b70c72025b]
SWDEV-2 - Change OpenCL version number from 1942 to 1943.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1689 edit
SWDEV-81805 - Fix compiler lib bug: incorrect type name %opencl.pipe_t0 is generated when using clang.
Clang does not return llvm::Module. It saves the bitcode to a memory buffer and passed back to compiler lib, then bitcode reader is used to get llvm::Module. Clang and bitcode reader uses the same LLVMContext which is created earlier in aclCompileInternal. Since named struct types are shared between modules in LLVMContext. When bitcode reader loads the module, name collision happens for named struct types, which causes them to be postfixed with a number, e.g. %opencl.pipe_t => %opencl.pipe_t0.
This causes failure in SPIR-V drop-in conformance test.
The fix is to let clang uses a separate LLVMContext.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/frontend_clang.cpp#26 edit
[ROCm/clr commit: 56ea6c56a1]
SWDEV-81805 - Fix compiler lib bug: incorrect type name %opencl.pipe_t0 is generated when using clang.
Clang does not return llvm::Module. It saves the bitcode to a memory buffer and passed back to compiler lib, then bitcode reader is used to get llvm::Module. Clang and bitcode reader uses the same LLVMContext which is created earlier in aclCompileInternal. Since named struct types are shared between modules in LLVMContext. When bitcode reader loads the module, name collision happens for named struct types, which causes them to be postfixed with a number, e.g. %opencl.pipe_t => %opencl.pipe_t0.
This causes failure in SPIR-V drop-in conformance test.
The fix is to let clang uses a separate LLVMContext.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/frontend_clang.cpp#26 edit
SWDEV-80061 - Copy flag HostMemoryDirectAccess from parent to view
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpumemory.cpp#124 edit