EPR #397491 - Replace "switch" with "if" so that new ASIC id doesn't need to be added.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#103 edit
EPR #403782 - IOMMU2/SVM
- For finegrainsystem, the app can pass a malloced pointer directly to the kernel. Copy pointer directly to the aqlArgBuf without exiting.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/6378/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#269 edit
EPR #409950 - [IV][OCL] Multiple OCL samples crashed on multiple machines for 32-bit OS.
There are two issues:
1. the SC dll should be dynamically loaded only when it is available. This is to allow apps to run on CPU device without the SC dll. This CL fixes it. It also allows user to use env var AMD_OCL_SC_LIB to provide the name or complete path of SC dll to load.
2. The test fails because amdhsasc.dll is not included in base driver for 32 bit OS. The proper solution should be ask package team to include amdhsasc.dll in the base driver. Also amdhsasc.dll should be renamed amdoclsc.dll since it is not only used for HSAIL but also used by AMDIL. The benefit of separate SC component as a shared library is decreased build time since changes in SC does not require rebuild of amdocl.dll, and ease of debugging and regression analysis by allowing swapping SC comopnent.
However since 15.10 branch is close, there is not enough time to make changes to package. Therefore this CL implements a workaround for this issue without change to the package. We will implement the proper fix in the next relase.
The workaround implemented by this CL embeds SC statically in amdocl.dll. The runtime loads SC dll specified by env var AMD_OCL_SC_LIB only if it is available. If the SC dll is not available, it will use the embeded SC.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/build/Makefile.api#96 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/acl.cpp#22 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/aclLoaders.cpp#9 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/Makefile#44 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/sclibdefs.opencl#20 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclStructs.h#13 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclTypes.h#4 edit
... //depot/stg/opencl/drivers/opencl/compiler/tools/aoc2/build/Makefile.aoc2#21 edit
... //depot/stg/opencl/drivers/opencl/opencldefs#148 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#485 edit
... //depot/stg/opencl/drivers/opencl/runtime/utils/flags.hpp#220 edit
ECR #333753 - Compiler Lib/aoc2/devloader: move devloader functionality into aoc2
[Purpose] To get rid of obsolete runtimenew dependency in compiler
1. Devloader functionality moved into aoc2;
2. Devloader is removed from the tree & make system;
3. Related changes in test_driver.pl;
4. Functions alignedMalloc & alignedFree are moved to libUtils.h;
5. Function aclHsaLoader is renamed to _aclHsaLoader to indicate that it is not a Compiler Lib API's function.
[Testing] make smoke, pre check-in
[Reviewers] Nikolay Haustov, Brian Sumner
Affected files ...
... //depot/stg/opencl/drivers/opencl/Makefile#48 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/amdocl.def.in#10 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/amdocl.map.in#11 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/amdoclcl.def.in#8 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/amdoclcl.map.in#7 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/brig_loader.cpp#15 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/scwrapper/scClientAPI.cpp#20 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.h#13 edit
... //depot/stg/opencl/drivers/opencl/compiler/loader/devloader/Makefile#8 delete
... //depot/stg/opencl/drivers/opencl/compiler/loader/devloader/build/Makefile#3 delete
... //depot/stg/opencl/drivers/opencl/compiler/loader/devloader/build/Makefile.devloader#11 delete
... //depot/stg/opencl/drivers/opencl/compiler/loader/devloader/devloader.cpp#6 delete
... //depot/stg/opencl/drivers/opencl/compiler/tools/aoc2/aoc2.cpp#61 edit
... //depot/stg/opencl/drivers/opencl/compiler/tools/aoc2/build/Makefile.aoc2#20 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#185 edit
... //depot/stg/opencl/drivers/opencl/tests/hsa/bin/test_driver.pl#5 edit
EPR #409840 - [CQE OCL][LNX][QR] OpenCL SPIR Conf test "Compile_and_link" failed in all Asics due to CL#1098110 - Set the IR type to SPIR only for single SPIR modules.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#184 edit
EPR #409798 - clCompileProgram and clLinkProgram regression for SPIR - set the correct IR type while extracting from binary (aclSPIR, aclLLVMIR)
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#183 edit
ECR #304775 - Optimize oclBandwidthTest from nVidia SDK
- Cache pinned memory, since the benchmark sends the same transfer in a single batch. Thus we could avoid pin/unpin
- Swap SDMA engine allocation order. Blit manager allocates a queue on device, thus the first app queue was getting the paging second SDMA.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpublit.cpp#112 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpublit.hpp#37 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#339 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.hpp#121 edit
EPR #407215 - reset host memory pointer of a image view based on original image
ReviewBoard #6301
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#480 edit
ECR #333755 - Part 2- Update to foundation spec 1.0 20141019:
- hsa_dispatch_packet_t now becomes hsa_kernel_dispatch_packet_t
- all bit mask in a struct are removed and replaced by enums that indicates the bit position and width.
Test: TC precheckin
Review: Hari, Fan, Shucai, German, Yunjun.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#268 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.hpp#103 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusched.hpp#15 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#338 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsavirtual.cpp#25 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsavirtual.hpp#12 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 #408185 - Use pinned memory if directaccess is true and remoteAlloc is used.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#478 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
EPR #408506 - Extended the reported global memory size(CL_DEVICE_GLOBAL_FREE_MEMORY_AMD) to include a portion of remote memory for APU
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#476 edit
ECR #304775 - add flag to force CL_FP_DENORM on gpu
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#475 edit
... //depot/stg/opencl/drivers/opencl/runtime/utils/flags.hpp#216 edit
ECR #304775 - Align the queue size to match the multidispatch scheduler requirements
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#337 edit
EPR #407469 - disabled the SVM fine grain buffer support for CZ on mainline
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#472 edit
ECR #333753 - clc2: disallow implicit function declarations (bug 10328)
In addition, the change fixes the following side-effects:
1. Fix a typo in runtime/.../gpuschedcl.cpp, which fails due to the stricter check in Clang.
2. Unconditionally add sub_group builtins for pipes, without checking if the extension is enabled. See bug 10366.
3. Also added a test in ocl_features_clang to check for the sub_group builtins.
Passes smoke, smoke_clang, precheckin.
Additionally passes new tests added in ocl_features.
Reviewed by Brian Sumner.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/clang/lib/Sema/SemaLookup.cpp#9 edit
... //depot/stg/opencl/drivers/opencl/compiler/clc2/wrapper/ClangWrapper.cpp#12 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuschedcl.cpp#33 edit
EPR #405824 - On apus, if we run out of local memory to allocate cl_mem objects, ocl runtime will use remote (system) memory. Update maxMemAllocSize_ to include that.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#469 edit
EPR #407358 - Enable remoteAlloc_ by default if the frame buffer is less than 128 MB on an APU system
Reviewed by: German
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#290 edit
EPR #403341 - [Regression][OCL] P2P SDI to GPU (RGBA) and P2P SDI to GPU (RGB) show corruption on sdi output
- Enable GL Acquire/Release calls for more resource types. GL can enable color compression, but compute doesn't support it. Thus decompression can be required.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#194 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.h#41 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDeviceGL.cpp#18 edit
EPR #365147 - OGL - VI Bringup Support
Change include of si_ci_merged header to si_ci_vi_merged header since the si_ci ones are out of date and will be removed shortly.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/5980/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuscsi.cpp#25 edit
EPR #406328 - made more changes so that the OpenCL can run 2.0 devices on the first 2.0 capable device and OpenCL 1.2 on the rest of devices if they can suppport. Also uncommented an assert accidently commted by the previous check in.
this is the OpenCL part of checkin.
Prechecking:
http://ocltc.amd.com:8111/viewModification.html?modId=40944&personal=true&buildTypeId=&tab=vcsModificationBuilds&show_all_builds=true
code review:
http://ocltc.amd.com/reviews/r/5987/
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_svm.cpp#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#288 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/context.cpp#31 edit
ECR #333753 - Compiler Lib/RT/Performance: Replace aclExtractSymbol/Section with aclQueryInfo for symbol/section detection.
The replaced calls in RT previously performed actual extraction of the sections from the BIF with memory allocation and copying. But what is needed in fact is only to determine whether the section exists in BIF or not to make a further decision on needed recompilations. With aclQueryInfo and new added enums RT_CONTAINS_LLVMIR, RT_CONTAINS_OPTIONS, RT_CONTAINS_BRIG, RT_CONTAINS_HSAIL, RT_CONTAINS_ISA Runtime starts querying not the whole sections but the bool flag which indicates the existance of the corresponding section(s) without any memory allocations. Every compilation on RT starting from LLVMIR is affected by the change including compilation of blit kernels.
Side Effects: performance improvement, memory consumption reduction
Testing: pre check-in, ocl conformance (api, basic, compiler), ocltst complib
Reviewers: Brian Sumner, German Andryeyev, Artem Tamazov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/acl.cpp#21 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#52 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclEnums.h#14 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#180 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/CLEnumCheck.cpp#38 edit
EPR #406328 - changed the device open algorithm so that the we only open the first OpenCL device. This is the OPENCL runtime changes, but this will be removed once we implemented multiple device support for SVM.
the code review and precheckin test:
http://ocltc.amd.com/reviews/r/5942/http://ocltc.amd.com:8111/viewModification.html?modId=40902&personal=true&buildTypeId=&tab=vcsModificationBuilds&show_all_builds=true
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#466 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#287 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.hpp#87 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/include/cal/cal.h#29 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#100 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.h#40 edit
ECR #333753 - HSA RT/Compiler Lib/Performance: Elimination of HSAIL text usage in RT
Extracting HSAIL from the binary and parsing it for the kernel names in RT were replaced with aclQueryInfo call for RT_KERNEL_NAMES.
Kernel names are obtained now from the corresponding metadata symbols names, which are already presented in BIF at kernel finalization stage.
Side effect: performance improvement
Next Step: Performance: elimination of BRIG disassembling to HSAIL as obligatory stage in Compiler Lib (previously was needed only by RT).
Testing: pre check-in, ocl conformnace 2.0 (basic, api, compiler, workgroups, device_execution)
Reviewers: Stanislav Mekhanoshin, German Andryeyev, Brian Sumner
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/acl.cpp#20 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#51 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclEnums.h#13 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/bif/bifbase.cpp#50 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/bif/bifbase.hpp#22 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.h#11 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#266 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#179 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/CLEnumCheck.cpp#37 edit
ECR #304775 - Reduce the total number of renames to 16.
- Use 128KB for CB size on SI+
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#286 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#334 edit