Store target ID string in isa registry and use for returning agent and
isa name.
Change-Id: I72a20d8ff963c73d86392158aff3853e4c9bfdbd
[ROCm/ROCR-Runtime commit: 853ccc762e]
- Remove gfx800, gfx804 and gfx901 as they do not exist.
- Map the V2 note record of "AMD:AMDGPU:8:0:0" to gfx802 as they are
the same target just connected to a differnt motherboard.
- Correct typo for supporting gfx902:xnack+.
- Support agent names with a minor or stepping version greater than 9.
Change-Id: Ife933449f60ab4687e2aaab9baf4c9fc5b86339d
[ROCm/ROCR-Runtime commit: 12eb2764cd]
Add missing target names and make all parts consistent with which
targets are supported.
- Add gfx805 as a supported target.
- Add all ELF targets to genric code.
- Make offline loader match supported targets.
Change-Id: Idab4d69edc71645aecaa83aa55e29c1aeee4c1d6
[ROCm/ROCR-Runtime commit: b443397bcc]
Kernel argument size and alignment queries are not supported on
code object v3.
Change-Id: I1bdd34e2e62132f912ac39d80355efd3456df87c
[ROCm/ROCR-Runtime commit: 6182abf5e9]
Code object V2 had the ability to support the following queries:
- HSA_CODE_SYMBOL_INFO_KERNEL_KERNARG_SEGMENT_SIZE
- HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_KERNARG_SEGMENT_SIZE
- HSA_CODE_SYMBOL_INFO_KERNEL_KERNARG_SEGMENT_ALIGNMENT
- HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_KERNARG_SEGMENT_ALIGNMENT
However code object V3 onwards cannot support these as the kernel
descriptor changed. These queries need to be deprecated.
Until then return more reasonable values:
- For kernarg alignment return 16 which is the minimum alignment
required by the HSA standard.
- For kernarg size return the field from the kernel descriptor which
is a hint. If it is 0 then the compiler is not specifying the kernarg
size, or the kernel has no kernarg.
Change-Id: I19ce6cd0f3658a2bf62277492f39100ea5ab4256
[ROCm/ROCR-Runtime commit: ef755e4c82]
Avoids calling to KFD to map/unmap scratch allocations for
every large scratch using dispatch.
Change-Id: I9fab5705251ec82b03e4f2f2ca6da7cdccabefb9
[ROCm/ROCR-Runtime commit: 27e044ae4d]
Improves HIP event performance in directed benchmarks where
clock sync latency is significant.
Change-Id: I78b724a14a8f5b6a9a2b9f4d85afe9d8b81808a6
[ROCm/ROCR-Runtime commit: 32d0fcafa9]
The modern meaning of the construct if( NOT ON ) was added in CMake 2.8,
but when the cmake_minimum_required not set in user code and no policy
level is set in the CMake config, then CMake 2.8 features cannot be
used. In old CMake (the default), ON is interpreted as a variable, and
because it is not defined, it is considered false. The same is true of
OFF.
This change sets a variable as ON, so that old CMake interpretation is
correct, and the if works as expected regardless of policy version.
Change-Id: I67d7ed4ceaf8248eeb5a1c7f54009d72313f3f5d
[ROCm/ROCR-Runtime commit: 4a35f560f6]
Names test good:
hsa-rocr-dev_1.2.0.30900-crdnnv.415_amd64.deb
hsa-rocr-dev-1.2.0.30900-crdnnv.415.el7.x86_64.rpm
hsa-rocr-dev-1.2.0.30900-crdnnv.sles151.415.x86_64.rpm
http://confluence.amd.com/display/GPUCPT/Package+File+Naming
Note: rpm requires 'devel' instead of 'dev', to be a subsequent
patchset.
Change-Id: Id6a422f3c335448b52c70c77ed39c9041114b80f
Signed-off-by: Cole Nelson <cole.nelson@amd.com>
[ROCm/ROCR-Runtime commit: 90f2dd5b1b]
Temporary workaround while language and compiler teams sort out
handling both modes.
Change-Id: I5d676cd546382dba05ec0b62bb885baa854614f6
[ROCm/ROCR-Runtime commit: a09ba8bcc8]
Fix for issue where rocrtst could not be built if out directory
was outside the src (WORK_ROOT) directory due to hard-coded
relative path for OPENCL_INC_DIR.
Change-Id: Icb93de2266d568e9c2437166e34c88ec526fb45c
[ROCm/ROCR-Runtime commit: 8d00f1aa59]
The error checking macro IS_OPEN returns an hsa_signal_t.
This conflicts with the return type of uint32_t.
Add an assert and rely on spurious return rule to return zero
when rocr is not initialized.
Change-Id: Ifc9bb75e22ecdd675273de59b31e5026a69c62e0
[ROCm/ROCR-Runtime commit: a3c4aaf95a]
For small copies cache flush latency is larger than data transfer
latency in local VRAM. Select SDMA for small copies.
Environment key HSA_FORCE_SDMA_SIZE is added for easy adjustment
of the small copy size. This may be removed after tuning is done.
Change-Id: I733fa0ae01c616617c5de50e71226b51fd589ef2
[ROCm/ROCR-Runtime commit: 2a0c6774fb]
l_name is populated by strdup which requires using free rather
than delete.
Change-Id: I9d9bdcfaa3ef095502270f332b95a0ee5c0bbcfc
[ROCm/ROCR-Runtime commit: 9c20f0e649]
We want wraparound behavior here but we don't want to trigger sanitizer
warnings. Converting to int64_t and then wraping around by cast to
uint64_t avoids the UB issue that triggers the sanitizer warning.
Change-Id: I9400b988dce7899e9ba42cab3e35c7ffedec8fe1
[ROCm/ROCR-Runtime commit: 5f43778a51]
Using mordern cmake changes for rocrtest in accordance with the
recent changes in HSA. These changes also make sure that tests
can be compiled both for static as well as dynamic libs
Change-Id: I6dfb5259a4cbd994f413f68d1ebadc2ba5fe4f34
[ROCm/ROCR-Runtime commit: d13342d03a]
Following Cmake changes are in accordance to the changes in HSA / THUNK , VDI etc
These have made the code compilable now both for satic as well as dynamic libs
Change-Id: I4d8d3e2b84d6e1ea00531594522111ccbce8a87b
[ROCm/ROCR-Runtime commit: 4827d1d4d4]
Make explicit reference to hsa_api_trace.cpp from
initialization of hsa_table_interface.cpp. Breaks
the ability to use hsa_table_interface.cpp in plugins.
Change-Id: I22a42d3a132512b0d9ec7a1ca629b169e7f8eba7
[ROCm/ROCR-Runtime commit: f4fe7ddf47]
Rather than manually linking to the device libraries, the compiler
can now handle linking with them. Allow the build to continue using
old layout if the build system still uses it. Therefore maintain
compatibility with ROCm 3.7 and earlier.
Change-Id: Ida81775da3d0f7c2c67386a71cb057ede31a1545
[ROCm/ROCR-Runtime commit: d23b26f760]
The excess declarations mark implemenation functions as default
visibility. Normally this is not an issue since our linker script
will specify which visible symbols will be permitted into the dynamic
symbol table. However, for static linking methods which apply linker
directives during incremental linking symbol visibility must be correct
in the (non-dynamic) symbol table.
Change-Id: I13dc8dd1019368e8943920d36335a91f0c555a92
[ROCm/ROCR-Runtime commit: f6e6eae86d]
The size of the m0 payload for MSG_INTERRUPT has changed in gfx10. It is
now 23bit wide instead of 24bit wide in gfx9.
Since we are generating different binaries for gfx9 and gfx10, we can
conditionally set DEBUG_INTERRUPT_CONTEXT_ID_BIT to 23 for gfx9 and
22 for gfx10.
Change-Id: Ifc15a9fa4399d35328ab58b742f791f1660bcd9a
[ROCm/ROCR-Runtime commit: 23df617150]
- Make code object reader use mmap when loading from a file on Linux.
- Support computing code object URI for memory either fro the loaded
host executables, or from all mmapped files. Define the environment
variable HSA_LOADER_ENABLE_MMAP_URI to non 0 to search the mmap
files, otherwise only the loaded executables will be seatched.
- For mmap search, determine file size and ommit offset and size URI
fragment when the code object is the whole file even when specifying
a file size explicitly or specifying memory that has been mmaped.
- Always return a non-empty code object URI.
- When a code object reader is created, complete all fields to ensure
it can be used in a multi-threaded manner using only const
operations.
- Add missing exception handlers in the AMD vendor extentions.
- More rigorous checking for errors.
Change-Id: I07797b1dc60c5c64245142d77becf9f7c9643395
[ROCm/ROCR-Runtime commit: 91cb98dab6]
This is to avoid circular dependencies when using Ninja as a generator.
Change-Id: I703f225c9f342dfb07c36ad0920927c40c922fb8
[ROCm/ROCR-Runtime commit: ea80e94756]
New addrlib trips this warning in release builds on UB 18.04 with
gcc.
Change-Id: I4a8aa0e531fa21011ddde99d769a8452d333ff20
[ROCm/ROCR-Runtime commit: 2e1b863195]