SWDEV-79445 - OCL generic changes and code clean-up
1. std::bind2nd is deprecated in c++11 and removed in c++17. Use a range based for loop without any functor instead.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/15430/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#59 edit
[ROCm/clr commit: 7899017d49]
SWDEV-158585 - [ROCm] OCLPinnedMemory test is giving VM fault
1. If host ptr is present, use the CopyBuffer path instead of the ReadBuffer path
ReviewBoardURL = http://ocltc.amd.com/reviews/r/15403/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#58 edit
[ROCm/clr commit: 017d0f3e03]
SWDEV-79445 - OCL generic changes and code clean-up
- Add reallocation logic for memory dependency. SVM path can send the amount of SVM ptrs over the max size of arguments
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#420 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#105 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#54 edit
[ROCm/clr commit: 1130565901]
SWDEV-137270 - Add findLocalWorkSize to OpenCL runtime ROC device
- Add support for kernel using image argument
- fix the issue of not using the max workgroup size specified by the environment variables "maxWorkGroupSize*"
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#33 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.hpp#19 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.cpp#31 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#50 edit
[ROCm/clr commit: 87ad3f9692]
SWDEV-142081 - Performance drop while running GE HealthCare - Penality test test due to CL#1498909
- Port the logic to consider cache line size for the local workgroup detection (CL#1496286)
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#49 edit
[ROCm/clr commit: 0f819eed6f]
SWDEV-136633 - Remove correlation handle.
Not used by debugger or profiler, dead code.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#47 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.hpp#15 edit
[ROCm/clr commit: 88783fe59b]
SWDEV-137374 - Collecting counters from some TCC, TCP and TA block instances causes kernel to hang
- fixed by using the new AQLProfile feature to obtain precise size for command/data buffers
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roccounters.cpp#2 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#46 edit
[ROCm/clr commit: 0e9cee7205]
SWDEV-79445 - Add logic to handle persistent memory separately from the host memory path
- Some of the optimizations applied to the host memory can't be used for persistent
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.cpp#20 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmemory.cpp#30 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmemory.hpp#10 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#45 edit
[ROCm/clr commit: c2105d8f16]
SWDEV-130808 - set the local sizes to preferredWorkGroupSize_ when clEnqueueNDRange is not given and the kernel does not have required workgroup sizes.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#320 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#411 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.cpp#36 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#56 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#26 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#43 edit
[ROCm/clr commit: 8aef16e13c]
SWDEV-121486 - Clean up sampler list if we run out of memory.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#42 edit
[ROCm/clr commit: 3a805c96cc]
SWDEV-124720 - Observed "Memory access fault by GPU node-1" while running few of OpenCL - ISV apps
- Change to use system scope on acquire fence for dispatch packet
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#41 edit
[ROCm/clr commit: 796b6db8f7]
SWDEV-124720 - Observed "Memory access fault by GPU node-1" while running few of OpenCL - ISV apps
- Change to use system scope on acquire fence for barrier packet
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#40 edit
[ROCm/clr commit: c465ab63ae]
SWDEV-124171 - adding support for p2p OCL in rocm stack
- Add cl_amd_copy_buffer_p2p extension for P2P transfers. The extension adds a new API entry - clEnqueueCopyBufferP2PAMD() which allows to transfer CL buffers between different CL contexts on different GPUs. If P2P isn't possible, then double copy performed
- Also the app can query the P2P support capabilities for the device. A list of P2P accessible devices can be returned for the current device
http://ocltc.amd.com/reviews/r/12913/
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_context.cpp#54 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_device.cpp#62 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_p2p_amd.cpp#1 add
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_p2p_amd.h#1 add
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h#29 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpuvirtual.hpp#14 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#287 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.hpp#141 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.hpp#26 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.cpp#19 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#54 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.hpp#22 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmemory.cpp#24 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.cpp#19 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#39 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.hpp#12 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.cpp#79 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.hpp#84 edit
[ROCm/clr commit: 9ba3948388]
SWDEV-102733 - [OCL-LC-ROCm] Cmake build Write CMakeLists.txt to enable building with and without the DK environment
- Remove the dependency on libHSAIL
Affected files ...
... //depot/stg/opencl/drivers/opencl/CMakeLists.txt#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/CMakeLists.txt#2 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.hpp#24 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#37 edit
[ROCm/clr commit: 5127770544]
SWDEV-102726 - [OCL-LC-ROCm] Open source OpenCL Runtime
- Use the access flags in the metadata to handle read-only arguments.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#35 edit
[ROCm/clr commit: 6e6d58727c]
SWDEV-103424 - [ROCm CQE][OCL] OCLRuntime - OCLCreateBuffer tests are failing. The failure is due to AQL cannot support global size > 32bit range. Adding dispatch split support for ROCm, similar to that of GSL (CL#1159349), to resolve the issue.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.hpp#13 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#56 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#31 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.hpp#8 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/runtime/OCLCreateBuffer.cpp#6 edit
[ROCm/clr commit: dadd21fced]
SWDEV-112171 - [ROCm CQE][OCLonLC][QR][G] System hangs/Failures observed with few WF conf tests, due to CL#1364923
- reenable HSA copy in ROCr, since OCL copy doesn't really fix the hang issue in integer_ops, but just delays it.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#30 edit
[ROCm/clr commit: 064f21aa74]
SWDEV-112171 - [ROCm CQE][OCLonLC][QR][G] System hangs/Failures observed with few WF conf tests, due to CL#1364923
- Disable ROCr copy buffer and use runtime kernel to avoid HW hangs in integer_ops.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/blit.hpp#3 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.cpp#12 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#29 edit
[ROCm/clr commit: c0d4edda9d]
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
[ROCm/clr commit: 320d5de3a1]
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
[ROCm/clr commit: d027173ee5]
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
[ROCm/clr commit: b705f74166]
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
[ROCm/clr commit: 45bf0e3ba6]
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
[ROCm/clr commit: da9d770820]
SWDEV-94610 - Make sure each kernarg segment sits on a different cache line (align the kernargs on cache lines at minimum). Minor misc cleanups.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#13 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#14 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.hpp#8 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#27 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#13 edit
[ROCm/clr commit: 3a61b24dd5]
SWDEV-101853 - roc::Kernel cleanups:
- Remove unused classes & member functions/variables.
- Flatten vector arguments for the HSAIL path to remove the need for numElem_.
- Consolidate initArguments in a single loop for the HSAIL path.
- Use the Kernel::Argument to fill the OCL descriptor as much as possible.
- Set the access qualifier for both buffers and images.
- Fix the indentation and coding conventions.
- Add new ROC_ARG_TYPE type for hidden arguments
- Add an index_ field the roc::Kernel::Argument to record the OCL signature index for this argument, or -1 for hidden arguments
- Handle the hidden arguments as any other argument at dispatch (now included in the hsailArgList_)
- roc::Kernel::hsailArgAt(int) now returns the kernel argument for the given position in the OCL signature, not the position the the hsailArgList_.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#12 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.hpp#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#12 edit
[ROCm/clr commit: 1c37625aa2]
SWDEV-94610 - Use the metadata to set the correct size for pointer arguments. Pointers to different address spaces may be of different sizes.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#11 edit
[ROCm/clr commit: 741816f873]