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
ECR #304775 - Fix for a memory "leak" in one GEHC sample
- The app builds a dependency graph when the new command waits for the previous one. Our runtime couldn't release wait commands in this situation, because release is done in the command destructor. Release the events from the wait list when the command is done.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.cpp#71 edit
EPR #412821 - Fix a crash when the ThreadTrace Object is freed before a ThreadTrace command is processed.
Also change 'None' to 'Undefined', since 'None' is a macro defined in X.h.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.hpp#77 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/threadtrace.hpp#5 edit
ECR #304775 - Wave limiter: Fix bug in adaptation.
Dumped waves/simd value is incorrect.
Should exit adptation only after the changed waves/simd value is applied.
Added wave limiter manager to handle situation that one kernel is enqueued to more than one queues. Create wave limiter for each virtual device.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#245 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#283 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.hpp#109 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#360 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuwavelimiter.cpp#4 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuwavelimiter.hpp#3 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.cpp#70 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.hpp#76 edit
ECR #304775 - Some code clean-up
- Remove amd::Context reference from the event object. Runtime can use queue to get the context for the limited number of use cases
- User/GL events will keep the context as a member
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_event.cpp#8 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.cpp#69 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.hpp#75 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.cpp#120 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.hpp#91 edit
ECR #304775 - Mipmaps support
- Create views for the specified mip level in the transfer operations
- OCL requires just one mip level transfer. Thus we could keep the original blit kernels and just create a view for the specified mip level.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_memobj.cpp#75 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#500 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.cpp#119 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/memory.hpp#90 edit
EPR #414789 - fixed the failure of svm atomics failure with mulitple device support. The failure was caused by the svm allocation for the devices which don't support platform stomics svm.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/context.cpp#35 edit
ECR #304775 - Back out changelist 1117184
- There is a hang on CPU in conversion test
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.cpp#67 edit
EPR #408459 - changed the implementation of svmAlloc, so that the first device can create amd::Memory object, and the rest of devices only added gpu memory to it. This is part of changes for mgpu support for svmalloc
code review:
http://ocltc.amd.com/reviews/r/6245/
precheckin testing results:
http://ocltc.amd.com:8111/viewModification.html?modId=43136&personal=true&buildTypeId=&tab=vcsModificationTests
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpudevice.hpp#88 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#233 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#479 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#133 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa/hsadevice.cpp#87 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa/hsadevice.hpp#44 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsadevice.cpp#19 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsadevice.hpp#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/context.cpp#34 edit
EPR #406328 - removed the customSVMallocator from runtime, and also changed the name of customSvmAllocDevice to svmAllocDevice, because we don't use custom svm allocator for devices.
precheckin testing:
http://ocltc.amd.com:8111/viewModification.html?modId=43040&personal=true&buildTypeId=&tab=vcsModificationBuilds&show_all_builds=true
code review:
http://ocltc.amd.com/reviews/r/6222/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpusettings.cpp#29 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#171 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#232 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#293 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa/hsasettings.cpp#36 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/context.cpp#33 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/context.hpp#23 edit