SWDEV-79309 - [ROCm][OCLonLC][AMDGPU asm] OclElf: Correctly skip symbols which have special section indexes.
[Issues]
Kernels which contain absolute symbols can't be run. Error message looks like:
"OclElf::getSymbolInfo() failed in gelf_getshdr() - Invalid argument."
[Reason]
Symbols which have special section indexes (e.g. absolute symbols)
are incorrectly handled by the compiler library.
[Solution]
Correctly skip symbols which have special section indexes in the loader.
Promote the fix into compiler/legacy-lib at once.
[Remarks/Misc]
Absolute symbols do not normally produced by OpenCL compiler,
but may come from kernels written in assembly language.
AMDGPU asm exports all symbols, even ABSOLUTE LOCAL HIDDEN INTERNAL etc.
Impossibility to disable export of useless symbols is known issue of llvm-mc
core, see https://llvm.org/bugs/show_bug.cgi?id=27201.
Note that presence of useless symbols does not make ELF invalid.
[Review] http://ocltc.amd.com/reviews/r/11921/
Evgeny Mankov (OK)
[Tests]
Tested that issue with asm kernels has gone.
PASS TeamCity - Pre-checkin for CL1347161 timestamped:2016-11-29 21:54:40 Rev:0063
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/loaders/elf/elf.cpp#3 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.cpp#36 edit
[ROCm/clr commit: 71f5fb7e8f]
SWDEV-79309 - [ROCm][OCLonLC][AMDGPU asm] OclElf: Correctly skip symbols which have special section indexes.
[Issues]
Kernels which contain absolute symbols can't be run. Error message looks like:
"OclElf::getSymbolInfo() failed in gelf_getshdr() - Invalid argument."
[Reason]
Symbols which have special section indexes (e.g. absolute symbols)
are incorrectly handled by the compiler library.
[Solution]
Correctly skip symbols which have special section indexes in the loader.
Promote the fix into compiler/legacy-lib at once.
[Remarks/Misc]
Absolute symbols do not normally produced by OpenCL compiler,
but may come from kernels written in assembly language.
AMDGPU asm exports all symbols, even ABSOLUTE LOCAL HIDDEN INTERNAL etc.
Impossibility to disable export of useless symbols is known issue of llvm-mc
core, see https://llvm.org/bugs/show_bug.cgi?id=27201.
Note that presence of useless symbols does not make ELF invalid.
[Review] http://ocltc.amd.com/reviews/r/11921/
Evgeny Mankov (OK)
[Tests]
Tested that issue with asm kernels has gone.
PASS TeamCity - Pre-checkin for CL1347161 timestamped:2016-11-29 21:54:40 Rev:0063
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/loaders/elf/elf.cpp#3 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.cpp#36 edit
SWDEV-2 - Change OpenCL version number from 2290 to 2291.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2037 edit
[ROCm/clr commit: 61a64a192b]
SWDEV-2 - Change OpenCL version number from 2290 to 2291.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2037 edit
SWDEV-2 - Change OpenCL version number from 2289 to 2290.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2036 edit
[ROCm/clr commit: e46fadfb28]
SWDEV-2 - Change OpenCL version number from 2289 to 2290.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2036 edit
Implement three new APIs for IPC buffer sharing:
-hsaKmtShareMemory()
-hsaKmtRegisterSharedHandle()
-hsaKmtRegisterSharedHandleToNodes()
Add new ioclts necessary for the above APIs.
Change-Id: Ia2b4d0dc91ec64bff959395d11c0536467404792
Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Implement three new APIs for IPC buffer sharing:
-hsaKmtShareMemory()
-hsaKmtRegisterSharedHandle()
-hsaKmtRegisterSharedHandleToNodes()
Add new ioclts necessary for the above APIs.
Change-Id: Ia2b4d0dc91ec64bff959395d11c0536467404792
Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
[ROCm/ROCR-Runtime commit: 559e31d6ff]
SWDEV-2 - Change OpenCL version number from 2288 to 2289.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2035 edit
[ROCm/clr commit: 68e3bfc72d]
SWDEV-2 - Change OpenCL version number from 2288 to 2289.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2035 edit
SWDEV-2 - Change OpenCL version number from 2287 to 2288.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2034 edit
[ROCm/clr commit: 8195a9043b]
SWDEV-2 - Change OpenCL version number from 2287 to 2288.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#2034 edit