SWDEV-105604 - [OCL-LC-PAL] OpenCL program manager for LC on PAL
- Suppress the assertion message box on windows by default.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/runtime.cpp#34 edit
... //depot/stg/opencl/drivers/opencl/runtime/utils/flags.hpp#258 edit
SWDEV-104441 - [SSG] OpenCL has not implemented the asynchronous transfer
- Use lock protection for multiple maps of persistent memory
- Don't mark persistent as host mem
- Implement file write for invisible memory
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpumemory.cpp#129 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#236 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#408 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.cpp#13 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.cpp#77 edit
SWDEV-99203 - [CGG] OpenCL Samplers object ref count mechanism doesn't work correctly when 2 different samplers are set as argument of the same kernel
- Revert the change from CL#590388. We have to release the sampler in the captured memory. CPU device has different logic now and doesn't alternate captured memory anymore.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/kernel.cpp#22 edit
SWDEV-76911 - Set output pipeline of multi-shader compilation in the same way driver sets. Fill output shader pointers only if they will be generated based on the input shaders, otherwise NULL.
ReviewBoardURL = http://dxreview.amd.com/r/20059/
Affected files ...
... //depot/stg/sc/Src/Dev/TestEngine.cpp#512 edit
SWDEV-86170 - Need OCL changes for Compute Unit Reservation
- Add support for RT and Medium priority queues
- Use the new packet for the CU mask programming. It will allow CU reservation for RT queue in KMD.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_command.cpp#11 edit
... //depot/stg/opencl/drivers/opencl/library/hsa/hsail/src/devenq/schedule.cl#12 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#546 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#159 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpumemory.cpp#127 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#402 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.hpp#139 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLContext.cpp#81 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLContext.h#52 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#165 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/backend.h#12 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/commandqueue.cpp#22 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/commandqueue.hpp#17 edit
SWDEV-90408 - OpenCL runtime crashes when querying CL_PROGRAM_NUM_KERNELS on a program built with clCompileProgram
- The app attempts to get query before build/link call. Make sure symbols are available.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_program.cpp#40 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.hpp#39 edit
SWDEV-89711 - Adding EGL interop capability:
- Remove Context::Info::type_ and only use flags_, it's more accurate and type_ was just redundant
- Plumbing work for EGL at the top of the API layer.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/9965/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_d3d10.cpp#11 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_d3d11.cpp#18 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_d3d9.cpp#28 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_gl.cpp#48 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_gl_amd.hpp#18 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpudevice.hpp#94 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#269 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#542 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#157 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsadevice.cpp#56 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsadevice.hpp#25 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/context.cpp#40 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/context.hpp#24 edit
SWDEV-88119 - OGL team recommends to load libGL.so.1 rather than libGL.so for CL-GL.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/context.cpp#39 edit
SWDEV-76870 - Add write feature to AMD extension (Merging //depot/rel/r6/15.30.1023/stream/opencl/... to //depot/stg/opencl/drivers/opencl/...)
Add clEnqueueReadBufferToFileAMD function to AMD extension (added declaration in cl_context.cpp)
1. Added clEnqueueReadBufferToFileAMD_fn function declaration to cl_ext.h
2. Added LiquidFlashFile::writeBlock method who implements transfer from GPU to SSD. In order to avoid code duplication LiquidFlashFile::readBlock and LiquidFlashFile::writeBlock is called from new method LiquidFlashFile::transferBlock (changes in cl_lqdflash_amd.cpp)
3. clEnqueueWriteBufferFromFileAMD and clEnqueueWriteBufferFromFileAMD call internal function EnqueueTransferBufferFromFileAMD who makes the same preparations as clEnqueueWriteBufferFromFileAMD in the prvious release
4. WriteBufferFromFileCommand class is renamed to TransferBufferFromFileCommand and new class makes the same preparation except assigning transfer direction (read or write)
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_context.cpp#48 integrate
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_lqdflash_amd.cpp#13 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_lqdflash_amd.h#4 integrate
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h#24 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#267 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#396 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.hpp#138 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.cpp#74 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.hpp#81 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.hpp#96 edit
SWDEV-82353 - Remove assert and only assign the customHostAllocDevice_ with the first device that has customHostAllocator.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/context.cpp#38 edit
SWDEV-82159 - [CQE OCL][ISV][QR] Error is observed while debugging the sample with CodeXL; Faulty CL:1208929
[Synopsis]
compile from binary logic changes caused issue with resulting binary generation in CodeXL
[Solution]
do not use compile options from binary if they are explicitly specified
[Testing]
precheckin, MCL
Reviewed by Evgeniy Mankov, German Andryeyev
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#78 edit
SWDEV-83192 - [CQE OCL][2.0][QR] Few MCLSubtests are falling due to faulty cl#1208929
[Synopsis]
Failure is because of additional check on compilation options existence in binary, which are expected in a separate section in the input binary. Options are expected on HSAIL path in order to make a decision whether to recompile or not the input code. AMDIL path has another strategy for recompilation algorithm and doesn't need options to be obligatory presented in input binary.
[Solution]
Remove options existence check in the input binary when compiling from BINARY_TYPE_ELF.
P.S.
With the fix HSAIL path also doesnt require compilation options existence in input binary anymore. Recompilation will be done silently in such case.
[Testing]
Pre checkin, MCL
Reviewed by Evgeniy Mankov, Nikolay Haustov, German Andryeyev
http://ocltc.amd.com/reviews/r/9560/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#77 edit
SWDEV-78467 - Adding 'CL_FILE_SIZE_AMD' queriable property for file objects.
While validating the LF extension we noticed a common use case in which the programmer has to query the size of the file being processed.
This enhancement will save the programming overhead of opening and closing files using some other API just in order to query their size.
This feature is being integrated from LF dev branch 15.30.1023.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_lqdflash_amd.cpp#12 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h#23 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.hpp#95 integrate
SWDEV-77584 - ORCA RT: Preparations for enabling HSAIL on OpenCL 1.2 by default. Integrate new algorithm for device program choice.
[Reasons]
1. Make the switching change as less as possible.
2. Give a chance to test HSA_foundation device work on OCL 1.2 beforehand (asked by Nikolay).
Almost already reviewed:
http://ocltc.amd.com/reviews/r/8850/
Additionally:
1. Linking logic was changed: if the target of one of the binaries is hsail-(64) linking goes through HSAIL, otherwise - through AMDIL. Previously -cl-std=CL2.0 in any of the linking binaries was a criterion for HSAIL, what will be wrong for HSAIL 1.2 after switching. -clang & -edg options are set now to distinguish the path while linking.
2. -cl-std=CL2.0 as a criterion for HSAIL was returned back in isHSAILProgram() method; -clang & -edg options were also added as a criterion.
[ToDo] After enabling HSAIL by default remove -cl-std, -clang & -edg checks from the code.
[Testing] Pre-checkin
http://ocltc.amd.com:8111/viewModification.html?modId=61929&personal=true&buildTypeId=&tab=vcsModificationBuilds&show_all_builds=true
[Reviewers] German Andryeyev, Nikolay Haustov
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_program.cpp#39 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpudevice.cpp#279 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpudevice.hpp#93 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#261 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#534 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#154 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsadevice.cpp#47 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsadevice.hpp#22 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#76 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.hpp#38 edit
SWDEV-77584 - ORCA RT: Preparations for enabling HSAIL on OpenCL 1.2 by default. Fix error (by CL 1205606) in parsing option algorithm.
Compile/link options should be parsed once with additional options specified by AMD_OCL_BUILD(LINK)_OPTIONS(_APPEND) in case of optionChangable or without them, but once.
One static method for parsing all options in ORCA RT is created:
static bool ParseAllOptions(const std::string& options,
option::Options& parsedOptions,
bool optionChangable = true,
bool linkOptsOnly = false)
[Testing] Pre-checkin
[Reviewers] German Andryeyev, Nikolay Haustov
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#75 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.hpp#37 edit
SWDEV-77584 - ORCA RT: Preparations for enabling HSAIL on OpenCL 1.2 by default. Minor refactoring of compile/link options' routines.
[Testing] pre check-in
[Reviewer] German Andryeyev
http://ocltc.amd.com/reviews/r/8848
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#74 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.hpp#36 edit
SWDEV-77584 - ORCA RT: Preparations for enabling HSAIL on OpenCL 1.2 by default. Renaming Program::isIL_ to isSPIRV_.
[Reason] Avoiding ambiguity with SPIR, which is also IL, but is supported by legacy AMDIL only, whereas SPIRV is supported only by HSAIL. From OpenCL Program constructor's point it isn't obvious.
[Testing] pre check-in
[Reviewer] German Andryeyev, Yaxun Liu
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#73 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.hpp#35 edit
SWDEV-79151 - clenqueuereadImage is slow when using a pinned buffer and a row_picth!0
- Add a check if the provided rowPitch is equal to the actual transfer width. SDMA doesn't support row/slice pitches, thus runtime still has to fall back to compute in other cases
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_memobj.cpp#78 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpublit.cpp#120 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.cpp#122 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.hpp#92 edit
SWDEV-77584 - HSA HLC: fixed reflection metadata generation on HSAIL OCL 1.2 path
We are producing 6 extra arguments, but metadata was produced only for 3.
Removed KE_OCL12_NUM_ARGS define to avoid confusion.
Testing: smoke, precheckin
Reviewed by Yaxun Liu
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/AMDOpenCLKernenv.h#4 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/Scalar/AMDInsertOpenCLKernenv.cpp#10 edit
SWDEV-17662 - ORCA RT: fix for continuing work after Program link failure.
[Synopsis]
If program link is failed RT continues its work and fails further (for example, in symbol.setDeviceKernel).
[Testing] pre check-in
Reviewer: German Andryeyev
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#207 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#70 edit
ECR #333753 - ORCA RT: fix for continuing work after Program build failure.
[Synopsis]
If program build (compile or link) is failed RT continues its work and fails further (for example, in symbol.setDeviceKernel). It was hard to find out the real failure (HSAILProgram::linkImpl) due to buildLog, which is printed once in the end, and due to abscence of LogError function call.
[Misc]
+ Error handling improvement in HSAILProgram::linkImpl and some others. ToDo: Do the same for the rest.
+ LogError() is added to Program::build/compile/link
[Testing] pre check-in
Reviewer: German Andryeyev
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#184 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#206 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#65 edit