SWDEV-41018 - if system is equal to or less than 2GB memory, disable CPU and APU for OpenCL, and force the device to be 1.2 if it is a discrete GPU.
precheckin:
http://ocltc.amd.com:8111/viewModification.html?modId=60516&personal=true&buildTypeId=&tab=vcsModificationBuilds&show_all_builds=true
code review:
http://ocltc.amd.com/reviews/r/8738/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpudevice.cpp#277 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#531 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#331 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.hpp#95 edit
SWDEV-2 - Change OpenCL version number from 1918 to 1919.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1665 edit
SWDEV-77172 - IOMMUv2 changes for Windows 10
- Pass the GPUVM offset to MonitoredFence GPUVA as well
- Other minor changes for SVM
ReviewBoardURL = http://ocltc.amd.com/reviews/r/8729/diff/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#148 edit
Try to reserve as much SVM address space as GPUVM can address.
Implement a fallback scheme to smaller sizes if larger allocations
fail or are not addressable by the GPU, down to an (arbitrary)
minimum of 4GB.
Change-Id: I770177834cc9e6ddd6ef4f20d789eab63c8055cb
Try to reserve as much SVM address space as GPUVM can address.
Implement a fallback scheme to smaller sizes if larger allocations
fail or are not addressable by the GPU, down to an (arbitrary)
minimum of 4GB.
Change-Id: I770177834cc9e6ddd6ef4f20d789eab63c8055cb
[ROCm/ROCR-Runtime commit: 39bde26c9b]
SWDEV-78799 - Fix a division by 0 error.
Occasionally the profiling duration of some light weight kernel is 0, and would cause division by 0 error to the WLAlgorithmSmooth algorithm. We can just skip collecting this duration for the adaption algorithm.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuwavelimiter.cpp#11 edit
SWDEV-2 - Change OpenCL version number from 1917 to 1918.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1664 edit
SWDEV-2 - Change OpenCL version number from 1916 to 1917.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1663 edit
SWDEV-2 - Change OpenCL version number from 1915 to 1916.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1662 edit
When 'make deb' is run create a libhsakmt.deb archive that installs
libhsakmt into the appropriate folder on the target where the dymanic
linker can find it.
Change-Id: I32de7198975f7831e509a67371e78456982b5c42
When 'make deb' is run create a libhsakmt.deb archive that installs
libhsakmt into the appropriate folder on the target where the dymanic
linker can find it.
Change-Id: I32de7198975f7831e509a67371e78456982b5c42
[ROCm/ROCR-Runtime commit: 0df346aaf9]
SWDEV-78103 - If USWC size is less than 1.5 GB, then report 50% else report 75%.
Reviewed by: German
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#530 edit
SWDEV-78915 - SYCL - segfault building SPIR binary where the kernel name exceeds 255 characters - changed kernel/arg name type from char[] to string to avoid the 256 character limitation.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#304 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.hpp#122 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#211 edit
SWDEV-2 - Change OpenCL version number from 1914 to 1915.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1661 edit
Kernel ioctl AMDKFD_IOC_GET_PROCESS_APERTURES returns process apertures
only for GPU nodes. The current implementation assumed that this list of
GPU nodes returned by the ioctl has one to one correpondence to sysfs
topology nodes. This fails when non-GPU nodes exist in topology as in
case of Intel + gfx802
Fix this by using gpu_id (./sys/.../kfd/topology/nodes/1/gpu_id) to map
information obtained from kernel ioctl call.
Change-Id: I4ab8ae5354f12cf0b6609fc4b24182b82eb3677f
Kernel ioctl AMDKFD_IOC_GET_PROCESS_APERTURES returns process apertures
only for GPU nodes. The current implementation assumed that this list of
GPU nodes returned by the ioctl has one to one correpondence to sysfs
topology nodes. This fails when non-GPU nodes exist in topology as in
case of Intel + gfx802
Fix this by using gpu_id (./sys/.../kfd/topology/nodes/1/gpu_id) to map
information obtained from kernel ioctl call.
Change-Id: I4ab8ae5354f12cf0b6609fc4b24182b82eb3677f
[ROCm/ROCR-Runtime commit: 5cc56a2647]
SWDEV-2 - Change OpenCL version number from 1913 to 1914.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1660 edit
SWDEV-2 - Change OpenCL version number from 1912 to 1913.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1659 edit
Fix TONGA_PAGE_SIZE value and move it to libhsakmt.h for usiing it
consistently in all places that require the same alignment for the
same reason. Create a generic alignment helper macro to replace some
incorrect hand-coded size alignments.
Move virtual address and size alignments down into aperture management
functions. Alignment is a per-aperture property that is set during
fmm_init_process_apertures. Doing the alignment there ensures that
all allocations in the same aperture are aligned the same way. Finding
objects by size and address can take the alignment into account.
Also align the size of physical allocations to back aligned virtual
address allocations. CPU mappings do not need to be aligned.
Map anonymous pages over released memory mappings to allow the
backing pages to be released, while keeping the address space
reserved.
Add alignment parameter to free_exec_aligned_memory_gpu to match the
interface of allocate_exec_aligned_memory_cpu. It doesn't make sense
to allow an alignment parameter in one but assume a specific
alignment in the other.
Change-Id: I74226ca6938f4948f643e5aee1d474720cd89e78
Fix TONGA_PAGE_SIZE value and move it to libhsakmt.h for usiing it
consistently in all places that require the same alignment for the
same reason. Create a generic alignment helper macro to replace some
incorrect hand-coded size alignments.
Move virtual address and size alignments down into aperture management
functions. Alignment is a per-aperture property that is set during
fmm_init_process_apertures. Doing the alignment there ensures that
all allocations in the same aperture are aligned the same way. Finding
objects by size and address can take the alignment into account.
Also align the size of physical allocations to back aligned virtual
address allocations. CPU mappings do not need to be aligned.
Map anonymous pages over released memory mappings to allow the
backing pages to be released, while keeping the address space
reserved.
Add alignment parameter to free_exec_aligned_memory_gpu to match the
interface of allocate_exec_aligned_memory_cpu. It doesn't make sense
to allow an alignment parameter in one but assume a specific
alignment in the other.
Change-Id: I74226ca6938f4948f643e5aee1d474720cd89e78
[ROCm/ROCR-Runtime commit: 6a5ca4bc5a]
SWDEV-2 - Change OpenCL version number from 1911 to 1912.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1658 edit
SWDEV-2 - Change OpenCL version number from 1910 to 1911.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1657 edit
SWDEV-2 - Change OpenCL version number from 1909 to 1910.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1656 edit
SWDEV-2 - Change OpenCL version number from 1908 to 1909.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1655 edit
Create new device_info and add device ID. Add helper macros to
identify chip families (VI, discrete). For now gfx803 behaves like
gfx802. But if necessary we can have gfx802 or gfx803-specific
code paths or workarounds in the future.
Change-Id: I61b4ffef7dd7796bb34cb01fbff0089bd49507bb
Create new device_info and add device ID. Add helper macros to
identify chip families (VI, discrete). For now gfx803 behaves like
gfx802. But if necessary we can have gfx802 or gfx803-specific
code paths or workarounds in the future.
Change-Id: I61b4ffef7dd7796bb34cb01fbff0089bd49507bb
[ROCm/ROCR-Runtime commit: 0fc0a5b526]
SWDEV-2 - Change OpenCL version number from 1907 to 1908.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1654 edit
hsa_gfxip_table lists only (supported) GPUs. So assert fail only when a
non-supported GPU is detected.
Change-Id: I6207dc7cd55860c8b3348b6a4ca6102131975722
hsa_gfxip_table lists only (supported) GPUs. So assert fail only when a
non-supported GPU is detected.
Change-Id: I6207dc7cd55860c8b3348b6a4ca6102131975722
[ROCm/ROCR-Runtime commit: 758824db17]
SWDEV-77522 - fix for erroneous CL_DEVICE_VERSION reporting by RT for HSAIL.
[Synopsis]
On a CI+ Device (KV, for example) if GPU_HSAIL_ENABLE=1 (which forcing HSAIL) CL_DEVICE_VERSION reported by RT is 1.2; if GPU_HSAIL_ENABLE=0 (default for now), then CL_DEVICE_VERSION = 2.0. It looks like this behaviour exists since then HSAIL was based on EDG, which supports only OpenCL 1.2. Now when HSAIL is based on Clang and supports OpenCL 2.0, there is no need in lowering CL Device Version at all for all CI+ devices nomatter the default path is (HSAIL or AMDIL).
This bug is a stopper for enabling HSAIL by default for OpenCL 1.2. Actually the problem occurs with OpenCL 2.0 programs when forcing them on HSAIL but with -cl-std=CL2.0 option, since they couldn't be executed on 1.2 device.
Testing: Pre check-in.
Reviewer: German Andryeyev
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#330 edit
SWDEV-2 - Change OpenCL version number from 1906 to 1907.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1653 edit
SWDEV-59579 - using existing function to simplify the code.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#301 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#385 edit
SWDEV-2 - Change OpenCL version number from 1905 to 1906.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1652 edit
SWDEV-78052 - [CQE-OCL][DTB][QR][LNX]RQ conf test "Multiple device context" fails in few asics due to CL#1196902
- Restore synchronization on the DMA engine. OCL doesn't require a sync, because resource isn't busy on the CAL device. However without sync there are less CBs available. Conformanace multidevice test will create around 60 queues, instead of 70
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#147 edit
SWDEV-78024 - SYCL - Issue with printf when printing a string without format specifier - removed the condition to expand printf only if it has more than one arguemnt.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/llvm32/lib/Target/AMDIL/AMDILPrintfConvert.cpp#2 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm32/test/CodeGen/AMDIL/printf_without_format_specifier.ll#1 add
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprintf.cpp#39 edit
SWDEV-2 - Change OpenCL version number from 1904 to 1905.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1651 edit