SWDEV-165756 - [ROCm] Backport cmake back into perforce to resolve cmake build broken issue
- porting CMAKE changes in http://git.amd.com:8080/#/c/173995/
- add new source file names in runtime/CMakeLists.txt
-- required additional changes of CMAKE files from Konstantin to build the current OCL driver using CMAKE
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/CMakeLists.txt#15 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.cpp#32 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.h#32 edit
... //depot/stg/opencl/drivers/opencl/runtime/CMakeLists.txt#11 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/CMakeLists.txt#13 edit
SWDEV-79445 - OCL generic changes and code clean-up
- Fix ROCr LC compilation. Remove the binary look-up from the cl object, since it's passed in the method arguments.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#92 edit
SWDEV-164014 - OCLPerfCounters results in "LLVM ERROR: out of memory"
- use generic hsa_ven_amd_aqlprofile_pfn_t to point to extension function table
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roccounters.hpp#3 edit
SWDEV-164014 - OCLPerfCounters results in "LLVM ERROR: out of memory"
- replace deprecated 'hsa_system_get_extension_table()' call with 'hsa_system_get_major_extension_table() with table size of “hsa_ven_amd_aqlprofile_1_00_pfn_t”
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roccounters.hpp#2 edit
SWDEV-79445 - OCL generic changes and code clean-up
- Fix Ellesmere compilation with LC path. Switch to multiple device info fields to support LC and HSAIL at the same time
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldefs.hpp#40 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#110 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#77 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.hpp#33 edit
SWDEV-126897 - Remove calling setDynamicParallelFlag() from submitKernelInternal() in LC/ROCm path.
For LC, setDynamicParallelFlag() is now called at Kernel::InitParameters().
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#69 edit
SWDEV-79445 - OCL generic changes and code clean-up
- Fix test_basic progvar_prog_scope_uninit with LC. Detect global variables usage in the program and add the code object allocation to the memory dependency tracking
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#70 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.hpp#27 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#123 edit
SWDEV-79445 - OCL generic changes and code clean-up
- Don't call backing store destruction if segment wasn't created at all. It could occur during library link.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.hpp#26 edit
SWDEV-145570 - [HIP] - Enable largest possible allocation on HIP
ReviewBoardURL = http://ocltc.amd.com/reviews/r/15803/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.cpp#56 edit
SWDEV-164509 - [Dassault][Catia] Adding 8-bits internal format support for sL8 format in OpenGL
For glTextureView support, GL_LUMINANCE8 internal format needs to return 8_BITS view compatibility class.
Add 3 new surface formats, CM_SURF_FMT_L8_SRGB, CM_SURF_FMT_R8_SRGB and CM_SURF_FMT_RG8_SRGB. For the moment, only L8_SRGB is supported by GLL.
Keep L8_X24_SRGB format because of side effects, especially outside the GL driver (CAL)
ReviewBoardURL = http://ocltc.amd.com/reviews/r/15757/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDeviceGL.cpp#32 edit
SWDEV-79445 - OCL generic changes and code clean-up
- Make a fallback to system memory without device access if USWC allocation failed
- Destroy the backing store after the load of all kernels
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.cpp#65 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.hpp#24 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#69 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.hpp#24 edit
SWDEV-79445 - Remove use of irif.
This is now directly linked in the library build and will be
removed as a standalone library.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#67 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#83 edit
SWDEV-126897 - Use the new __amd_scheduler_rocm.
It's only a name change.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocschedcl.cpp#2 edit
SWDEV-79445 - OCL generic changes and code clean-up
- Use SDMA staging transfers for data upload if pinning fails. Fixes HIP failure in a test that uses the code segment data for uppload.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palblit.cpp#26 edit
SWDEV-160377 - [OCL][ROCM] Add OpenCL Runtime Support for GFX10 in ROCm - disable XNACK for Navi10 and Ariel
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdefs.hpp#19 edit
SWDEV-159881 - [OCL][ROCm] Add SVM coarse-grain buffer support with device memory
1. Use the system memory pool for coarse grain allocations on APUs
ReviewBoardURL = http://ocltc.amd.com/reviews/r/15671/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmemory.cpp#39 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#64 edit
SWDEV-161959 - [ROCm QA][RAVEN] QCDGPU-S test is having ERROR -61: (clCreateKernel failed) on RAVEN
SWDEV-161983 - [ROCm QA][RAVEN] Cachebench test is failing with CL_INVALID_BUFFER_SIZE issue
SWDEV-161978 - [ROCm QA][RAVEN] PCIeBW is failing on -with error : 61, OpenCL error creating buffer !
SWDEV-161962 - [ROCm QA][RAVEN] rodinia->nw test has ERROR: clCreateBuffer input_item_set (size:67125249) => -61
- We make the global memory size at least 1G byte. This is to avoid issue/regression if sysconf API misbehaves.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/15660/
Tests:
1. ocltst -m oclruntime.so -A oclruntime.exclude - PASS except SVM test (non regression)
2. TeamCity presubmission test (OpenCL) - PASS
3. Run test qcdgpu-s.sh : PASS
4. Run test cachebench-ocl : PASS
5. Run test PCIeBandwidth -c 0 -g 0 : PASS
6. Run test Rodinia/opencl/nw/run : PASS
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#98 edit
SWDEV-161959 - [ROCm QA][RAVEN] QCDGPU-S test is having ERROR -61: (clCreateKernel failed) on RAVEN
SWDEV-161983 - [ROCm QA][RAVEN] Cachebench test is failing with CL_INVALID_BUFFER_SIZE issue
SWDEV-161978 - [ROCm QA][RAVEN] PCIeBW is failing on -with error : 61, OpenCL error creating buffer !
SWDEV-161962 - [ROCm QA][RAVEN] rodinia->nw test has ERROR: clCreateBuffer input_item_set (size:67125249) => -61
- Adjust Global memory size as half of the system physical memory size in APU for Rocm
- Similar to current DGPU calculation, environment GPU_SINGLE_ALLOC_PERCENT can be used to adjust max memory allocation size.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/15659/
Tests:
1. ocltst -m oclruntime.so -A oclruntime.exclude - PASS except SVM test (non regression)
2. TeamCity presubmission test (OpenCL) - PASS
http://ocltc.amd.com:8111/viewModification.html?modId=106628&personal=true&init=1&tab=vcsModificationBuilds
3. Run test qcdgpu-s.sh : PASS
4. Run test cachebench-ocl : PASS
5. Run test PCIeBandwidth -c 0 -g 0 : PASS
6. Run test Rodinia/opencl/nw/run : PASS
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#97 edit
SWDEV-160930 - Back out CL1594730 as it is failing OCL/LC and HIP tests
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.cpp#59 edit
SWDEV-160930 - SPECworkstation 3 benchmark GPU Compute tests fail
Root cause: Caffe compute benchmark fails within SPECWorkstation app because one of the Caffe's OCL kernel tries to launch a kernel with the local_work_size of 1024 causing the clEnqueueNDRangeKernel API to return CL_INVALID_WORK_GROUP_SIZE (i.e., the maximum allowable number is 256)
Proposed workaround: In order to run a kernel with a local_work_size of 1024, we check the number of used VGPRs in the Kernel and if the Kernel is not using all the available VGPRs we let the Kernel to use 1024 as the local_work_size.
ReviewURLBoard = http://ocltc.amd.com/reviews/r/15638/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.cpp#58 edit