SWDEV-101354 - HSA HLC: fix unify metadata pass
When we link multiple modules we have metadata duplicated, so after we link with our library bitcode is twice bigger than needs to be.
Besides we did not unify llvm.ident metadata since llvm 3.6 merge.
Fix that:
1. Add llvm.ident to the processing;
2. Do not duplicate strings within unified metadata;
3. Run unification pass post link, not before the link.
Now since our library is compiled for OpenCL 2.0 we will always get OCL version 2.0 as a maximum. That is not really correct, and since
the pass was not really working before that would lead to regression, as we would fail to identify correct kernel's OpenCL version and
perform simplifications for 1.2. Now the pass will pick the first version, which shall represent the kernel module. That might not be
100% correct because we may have several kernel modules, but a proper fix would require to correctly identify library as 1.2, which is
troublesome. In the current state that just keeps the status quo.
Testing: smoke, precheckin
Reviewed by Evgeny Mankov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#152 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/include/AMDFixupKernelModule.h#2 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/lib/AMDFixupKernelModule.cpp#7 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/tools/opencl-link/opencl-link.cpp#10 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/Scalar/AMDUnifyMetadata.cpp#2 edit
[ROCm/clr commit: 82f13f6ba1]
SWDEV-101354 - HSA HLC: fix unify metadata pass
When we link multiple modules we have metadata duplicated, so after we link with our library bitcode is twice bigger than needs to be.
Besides we did not unify llvm.ident metadata since llvm 3.6 merge.
Fix that:
1. Add llvm.ident to the processing;
2. Do not duplicate strings within unified metadata;
3. Run unification pass post link, not before the link.
Now since our library is compiled for OpenCL 2.0 we will always get OCL version 2.0 as a maximum. That is not really correct, and since
the pass was not really working before that would lead to regression, as we would fail to identify correct kernel's OpenCL version and
perform simplifications for 1.2. Now the pass will pick the first version, which shall represent the kernel module. That might not be
100% correct because we may have several kernel modules, but a proper fix would require to correctly identify library as 1.2, which is
troublesome. In the current state that just keeps the status quo.
Testing: smoke, precheckin
Reviewed by Evgeny Mankov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#152 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/include/AMDFixupKernelModule.h#2 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/lib/AMDFixupKernelModule.cpp#7 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/tools/opencl-link/opencl-link.cpp#10 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/Scalar/AMDUnifyMetadata.cpp#2 edit
SWDEV-1306648 - Add OptimizeLLVMBitcode to the ROCm-OpenCL-Driver. Call the optimizer in roc::HSAILProgram::linkImpl, between linking with the bitcode built-in libraries and code generation. Use the default optimization level, with at a minimum -strip -instcombine -always-inline.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#13 edit
[ROCm/clr commit: ed1144e0c0]
SWDEV-1306648 - Add OptimizeLLVMBitcode to the ROCm-OpenCL-Driver. Call the optimizer in roc::HSAILProgram::linkImpl, between linking with the bitcode built-in libraries and code generation. Use the default optimization level, with at a minimum -strip -instcombine -always-inline.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#13 edit
SWDEV-2 - Change OpenCL version number from 2206 to 2207.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1953 edit
[ROCm/clr commit: ff561c4f21]
SWDEV-2 - Change OpenCL version number from 2206 to 2207.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1953 edit
Route all device-visible system memory allocations through system_allocator.
Change-Id: I5e90a1bf491e432678a6d8ab1f9f3770734cbda1
[ROCm/ROCR-Runtime commit: 74f5aca93d]
SWDEV-94644 - Fix the build after the latest update from git
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmetadata.hpp#2 edit
SWDEV-2 - Change OpenCL version number from 2205 to 2206.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1952 edit
[ROCm/clr commit: 0a76bb941c]
SWDEV-2 - Change OpenCL version number from 2205 to 2206.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1952 edit
- Corrected the hipModule.cpp test to minimal code
- Added hipModuleUnload API
- Added hipModuleUnload API test
Change-Id: I9c40337043d7972a570b795e1bfc104bd2c4d8aa
[ROCm/clr commit: 768287f2a2]
- Corrected the hipModule.cpp test to minimal code
- Added hipModuleUnload API
- Added hipModuleUnload API test
Change-Id: I9c40337043d7972a570b795e1bfc104bd2c4d8aa
- Corrected the hipModule.cpp test to minimal code
- Added hipModuleUnload API
- Added hipModuleUnload API test
Change-Id: I9c40337043d7972a570b795e1bfc104bd2c4d8aa
SWDEV-79445 - OCL generic changes and code clean-up
- Report LogError with the build log if it's not empty
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#201 edit
SWDEV-79445 - OCL generic changes and code clean-up
- Update staging copy path with a flush so CPU copy and SDMA transfer could run asynchronously.
- Tune chunk size for transfers
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpublit.cpp#121 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palblit.cpp#6 edit
[ROCm/clr commit: 862e3a1a79]
SWDEV-79445 - OCL generic changes and code clean-up
- Update staging copy path with a flush so CPU copy and SDMA transfer could run asynchronously.
- Tune chunk size for transfers
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpublit.cpp#121 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palblit.cpp#6 edit
SWDEV-95905 - OpenCL on PAL - Device Enqueue
- Move disapatch funciton outside of the compiler lib. Client must provide 4 new functions to the scheduler: GetCmdTemplateHeaderSize(), GetCmdTemplateDispatchSize(),EmptyCmdTemplateDispatch(), RunCmdTemplateDispatch().
http://ocltc.amd.com/reviews/r/11142/
Affected files ...
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/devenq/schedule.cl#13 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuschedcl.cpp#34 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palschedcl.cpp#2 edit
[ROCm/clr commit: 53a0c0add6]
SWDEV-95905 - OpenCL on PAL - Device Enqueue
- Move disapatch funciton outside of the compiler lib. Client must provide 4 new functions to the scheduler: GetCmdTemplateHeaderSize(), GetCmdTemplateDispatchSize(),EmptyCmdTemplateDispatch(), RunCmdTemplateDispatch().
http://ocltc.amd.com/reviews/r/11142/
Affected files ...
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/devenq/schedule.cl#13 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuschedcl.cpp#34 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palschedcl.cpp#2 edit
HSA thunk API is currently reporting engineering name to MarketingName
and returning NULL when querying for AMDName.
-Change current name reporting from MarketingName to AMDName.
-Use libpci to get MarketingName
Change-Id: I819a6de7b067a2e724a6695e7d800274b83a71f8
Signed-off-by: Lan Xiao <Lan.Xiao@amd.com>
HSA thunk API is currently reporting engineering name to MarketingName
and returning NULL when querying for AMDName.
-Change current name reporting from MarketingName to AMDName.
-Use libpci to get MarketingName
Change-Id: I819a6de7b067a2e724a6695e7d800274b83a71f8
Signed-off-by: Lan Xiao <Lan.Xiao@amd.com>
[ROCm/ROCR-Runtime commit: 9cbbf30be7]
The thunk spec requires that CUMaskCount be divisible by 32. Check this
and return INVALID_PARAMETER if it is not.
Change-Id: I4e0c8502d996d3da31224b817a5d4ff2c6054e13
The thunk spec requires that CUMaskCount be divisible by 32. Check this
and return INVALID_PARAMETER if it is not.
Change-Id: I4e0c8502d996d3da31224b817a5d4ff2c6054e13
[ROCm/ROCR-Runtime commit: 70b1b5b17e]
SWDEV-2 - Change OpenCL version number from 2204 to 2205.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1951 edit
[ROCm/clr commit: ce1ae03c57]
SWDEV-2 - Change OpenCL version number from 2204 to 2205.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1951 edit