SWDEV-108854 - Support initialization of SGPR and VGPR usage from kernel header object. Changes to fix issue reported by SWDEV-108854
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#33 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#18 edit
SWDEV-110504 - OpenCL on ROCm: MAX_WORK_GROUP_SIZE is 256 but max work items per dimension is 1024
- Report Orca stack capabilities. OCL runtime currently can't report 1024 due to possible regressions in the apps.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#32 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.cpp#12 edit
SWDEV-108384 - Force map memory offset to 0
Copy what we do in ORCA and PAL backend: When mapping an image, default the offset to 0 instead of the map offset for the staging buffer.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/12010/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmemory.cpp#5 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#25 edit
SWDEV-108384 - Send down row pitch and slice pitch
This fixes test case #8 and 9.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/12009/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#24 edit
SWDEV-79445 - OCL generic changes and code clean-up
- Use switch/case instead of if/else to simplify the code tracing of the argument setup.
http://ocltc.amd.com/reviews/r/11991/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.cpp#28 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#22 edit
SWDEV-107442, SWDEV-108405 - Need to release GPU memory fence before releasing resources
When we call submitKernelInternal, we need to release GPU memory fence before release resources used in the kernel otherwise we can page fault.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/11955/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.cpp#5 edit
SWDEV-107568 - [ROCm CQE][OCL][CZ] Basic 2.0 conformance test giving Segmentation fault (core dumped) at "progvar_prog_scope_uninit"
- Detect if writable program scope variables are present in the program, and if so, insert barrier each dispatch of a kernel from this program.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.hpp#11 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#48 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.hpp#16 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#21 edit
SWDEV-102966 - Dump code object disassembly in OpenCL rocm device.
Invoke DumpExecutableAsText from driver library.
Update build to depend on some more LLVM libraries.
LLVM changes are included, but will come through amd-common.
Driver changes will come through ROCm-OpenCL-driver.
Testing: Run some SDK samples/test_basic with AMD_OCL_BUILD_OPTIONS_APPEND=-save-temps
Reviewed by: Laurent Morichetti, German Andryeyev.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#27 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#47 edit
SWDEV-107558 - Wrong path for map/unmap images
If mapMemory is allocated, we shouldn't use the read/writeImage path since they lock/unlock the host pointer which in this case, is mapped to GPU memory already.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/11891/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#20 edit
SWDEV-108024 - [ROCm CQE] Printf broken on ROCm , LC and HSAIL path
A zero-lenth printfBuffer is not an error. Even if a printfInfo is present, it does not mean that the kernel is going to call printf. Return true if offsetSize is 0.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprintf.cpp#5 edit
SWDEV-105136 - Use the "execution" view rather than the "linking" view to find the metadata and size of the program scope variables.In the "execution" view, the section header table is optional, so we should iterate through the segments to add up the size of PT_LOAD segments with read but not execute flags. We will also find the metadata in the PT_NOTE segment.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#24 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#45 edit
SWDEV-102510 - Need a way to control cl_khr/cl_amd extension macros
- Use -cl-ext option to enable OpenCL extensions
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palcompiler.cpp#11 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#23 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#44 edit
SWDEV-103793 - [ROCm CQE][OCLonLC][ISV] QCDGPU test fails
- The runtime should not report cl_amd_fp64, cl_khr_fp64 should be used instead.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.cpp#10 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.cpp#9 edit
SWDEV-95488 - Limiting max cap Context on ROCm, it is limited to 100
- Re-order the member variables to match the initializer list.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.hpp#8 edit
SWDEV-94611 - [OCL-LC-ROCm] Add "HSAIL" or "LC" to the driver version string to tell which stack is used.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#24 edit
SWDEV-106446 - OpenCL constant address space limit control
- Use maxMemAllocSize for the maximum constant buffer size
http://ocltc.amd.com/reviews/r/11725/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#557 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#31 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#23 edit
SWDEV-94610 - Fix the build for OpenCL/LC on Linux.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#43 edit
SWDEV-105738 - need to report 64-bit atomic support
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.cpp#5 edit
SWDEV-105136 - [OCL-LC-ROCm] Missing CL_PROGRAM_GLOBAL_VARIABLE_TOTAL_SIZE implementation
- iterate over the elf sections and add up the section size for SHF_ALLOC && ! SHF_EXECINSTR
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#41 edit
SWDEV-102937, SWDEV-103130 - Set agent acquire fence all the time in dispatch
Misunderstanding of fence acquire and release: The fence release doesn't mean another dispatch will wait. So we need to set the acquire in the dispatch kernel even if we insert a barrier packet to try to sync.
We could try to fix this by including the memory tracking to all the image/buffer operations provided by OpenCL (ReadImage, WriteImage, etc.) but that's a much bigger change and not what it's in place right now at all.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/11508/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#15 edit
SWDEV-104875 - ROCm/HSA: use the finalizer from source tree
Right now ROCm/HSA uses finalizer from the HSA RT installed.
This finalizer version has outdated stale SC sources.
At the same time source tree has fresh finalizer sources matching ORCA.
The offline tool amdhsafin is built from that sources.
This change switches from HSA RT finalizer to the in tree finalizer.
Testing: precheckin
Reviewed by Laurent Morichetti and Evgeny Mankov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.cpp#20 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#39 edit
SWDEV-103782 - [ROCm CQE][OCLonLC][Hawaii][ISV] Mixbench is giving "Unsupported requested OpenCL C version (-cl-std)"
- Add cl-std=CL1.0 and cl-std=CL1.1 support (maps to cl-std=CL1.2).
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roccompiler.cpp#24 edit
SWDEV-94610 - Set the -mcpu target, and add -m32/64.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roccompiler.cpp#23 edit
SWDEV-103420 - [ROCm CQE][OCLonLC][Fiji] 9 of 47 tests failed in oclperf.so component in Fiji
Enable image support for the Lightning path.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#20 edit
SWDEV-103418 - [ROCm CQE][OCLonLC][Fiji] OCLCreateBuffer results in Segmentation fault
Fix KernelBlitManager::createProgram to report an error if one or more blit kernel could not be created. Re-enable the image blit kernels in the blit program.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/blitcl.cpp#10 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.cpp#4 edit
SWDEV-94610 - Remove the padding at the end of the kernargs (It was for the hidden arguments, but now, LC reports the correct size). Set the LLVM triple to amdgcn-amd-amdhsa-opencl when building the built-in library.
Affected files ...
... //depot/stg/opencl/drivers/opencl/opencldefs#186 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roccompiler.cpp#20 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#37 edit
SWDEV-94610 - Add runtime support for Printf. Parse the metadata strings and build the PrintInfo structure expected by the runtime.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/amdgpu_metadata.cpp#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/amdgpu_metadata.hpp#5 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#16 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.hpp#10 edit