Wykres commitów

2825 Commity

Autor SHA1 Wiadomość Data
Eric Huang e1d1a6fbb0 libhsakmt: add new flag for svm
It is to add new option for always keeping gpu mapping
and bump KFD version for the feature of unified save
restore memory.

Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
Change-Id: Iebee35e6de4d52fa29f82dd19f6bbf5640249492
2022-07-11 18:06:48 -04:00
Jonathan Kim f600687537 Only allow pairwise CU enable for devices with WGPs
A work group processor (WGP) require both its CU to be enabled
in order to be enabled.

The KFD will round robin distribute by even-indexed pairs so
enforce this requirement for runtime set mask calls.

Change-Id: Ic46661b01f398aa1fe24d96b5c9c31f122f967a3
2022-07-07 12:50:24 -04:00
Philip Yang 7799611c01 kfdtest: add KFDSVMRangeTest.HMMProfilingEvent
Open SMI event file handle, prefetch to migrate svm range to GPU, read
HMM profiling events, then check event_id, address, size, pid, event
triggers are the expected value.

Start separate thread to read SMI event, the same way applications use.
Use thread barrier to ensure no event is dropped.

Change-Id: I0683969d18d1579847e125d86aa4257602adb13f
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2022-07-06 10:08:44 -04:00
Sean Keely a8603b9397 Fix IPC copy agent lookup.
Discovered agent handles should only apply to copy routing, not to
copy device selection.  The user may not have mapped all allocations
to all GPUs so we must ensure that the copying device is one passed
by the user.

Change-Id: I2532e66d30e6842624e594f235dd144a186220d4
2022-07-05 22:51:26 -05:00
Sean Keely dec37625ed Report nominal GPU wallclock frequency.
Adds agent info query HSA_AMD_AGENT_INFO_TIMESTAMP_FREQUENCY.

Change-Id: Ib9108d51f9df89f8566291258aab3d1b87243441
2022-06-28 11:25:18 -04:00
Sean Keely 33e8919743 Add hwloc5 dev headers to rocrtst.
Allows easy building on platforms without native hwloc v1 support.

Change-Id: I20d711f914d176decb1b64381fd4b51ccc4262b5
2022-06-28 11:23:43 -04:00
Sean Keely d27d4545e2 Add cu masking test.
Change-Id: I8b62ebd60f2edde3ea0b298f0353381855163fea
2022-06-28 11:22:42 -04:00
Jonathan Kim 79cd63fab6 libhsakmt: permit runtime enable version for new hw mode set restrictions
The KFD no longer allow debug ops that modify HW state prior to
trap activation so permit bump in major version.

Signed-off-by: Jonathan Kim <jonathan.kim@amd.com>
Change-Id: I072d3998b7b043df9a67f0f6762b0afdfa9382c6
2022-06-24 10:21:57 -04:00
Sean Keely 965df6eef7 Basic SVM profiler.
Mostly a demo at this point.  Logs SVM (aka HMM) info to
HSA_SVM_PROFILE if set.

Example: HSA_SVM_PROFILE=log.txt SomeApp

Change-Id: Ib6fd688f661a21b2c695f586b833be93662a15f4
2022-06-23 19:30:06 -05:00
skhatri e7fc301aa7 Adding support for rocrtracer tools loading without environment variable
During hsa initializing stage, ROCr now searches all the loaded libraries
for a  symbol "HSA_AMD_TOOL_PRIORITY" and adds all those libraries to
the tools library init list.  Tools libraries listed in HSA_TOOLS_LIB
env variable are also loaded in the given order and take priority
over HSA_AMD_TOOL_PRIORITY.

Change-Id: I739af42bbd777c44a9152c11e17dd69979b65e82
2022-06-23 20:08:30 -04:00
Sean Keely e7152c8b16 Add format script.
Adds a script to run clang-format on the latest patch so we don't
need to remember the command line.

Also applies missing formatting to the prior commit,
"Add API for available GPU memory".

Change-Id: Ida51aedc38af229f6a26e275072654860748fa93
2022-06-23 20:08:30 -04:00
Graham Sider 350eba3a07 kfdtest: Update gpuName logic for ip discovery
Kernel amd-staging-drm-next branch changes GFX11 fish_colour sysfs
naming to "ip discovery". Update run_kfdtest.sh to use sysfs
gfx_target_version for ASICs that have transitioned to IP discovery
topology.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: If202a0ceeed7324364539a33661f0abcf0973f07
2022-06-23 13:48:26 -04:00
Graham Sider e17b159230 libhsakmt: Make queue memory allocation non-paged
Non-paged allocation for queue memory necessary for binding wptr to
GART. Required to support usermode queue oversubscription with MES on
GFX11.

Change ensures queue memory does not specify ATS.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I10b23b0205c90dad902c711a88cfb5e9b4979617
2022-06-22 18:37:26 -04:00
Ranjith Ramakrishnan 52bea549e3 : Use GNUInstallDirs
Use GNUInstallDirs variables in post install scripts

Change-Id: Id0e3e37d412a30521d9846082d025a9e19a43942
2022-06-22 16:28:06 -04:00
Philip Yang 405fbd6f93 libhsakmt: add open SMI event handle
System Management Interface event is read from anonymous file handle,
this helper wrap the ioctl interface to get anonymous file handle for
GPU nodeid.

Define SMI event IDs, event triggers, copy the same value from
kfd_ioctl.h to avoid translation.

Change-Id: I5c8ba5301473bb3b80bb4e2aa33a9f675bedb001
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2022-06-20 08:49:13 -04:00
Philip Yang 88778e13dc libhsakmt: hsaKmtGetNodeProperties add gpu_id
Add KFDGpuID to HsaNodeProperties to return gpu_id to upper layer,
gpu_id is hash ID generated by KFD to distinguish GPUs on the system.
ROCr and ROCProfiler will use gpu_id to analyze SMI event message.

Change-Id: I6eabe6849230e04120674f5bc55e6ea254a532d6
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2022-06-20 08:48:44 -04:00
Kent Russell f7978b1ff6 run_kfdtest.sh: Add --exclude flag to exclude additional subtests
Currently, using --gtest_filter will override any exclusions from
kfdtest.exclude. To add an additional test (or set of tests) to the
exclusion list dynamically, the --exclude (-e) flag will allow the user
to pass in a string of GTest-style exclusions to add to the list
generated by kfdtest.exclude

e.g. run_kfdtest.sh -e "*KFDLocalMemoryTest.*:KFDEventTest.*"
will use kfdtest.exclude, but will also exclude all LocalMemory and
Event tests

Change-Id: Ic23ec271ba2cd2240d2e98558c0117ff2a064ed2
2022-06-15 16:08:38 -04:00
Alex Sierra 0e908f05bb libhsakmt: add env var to set max VA alignment order
This env variable sets the max VA alignment order size as
"PAGE_SIZE * 2^alignment order" during mapping. By default the order
size is set to 9(2MB).

Signed-off-by: Alex Sierra <alex.sierra@amd.com>
Change-Id: I01ae4e0963f4d21c7c367464e60f865bc58d7fac
2022-06-13 15:46:54 -04:00
Graham Sider 852d29bca2 kfdtest: Add temporary blacklist for GFX11
Add blacklist for tests on GFX11 that are under debug/not functional.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I32f375f29036a2fc1a54f2792b31ebc45f4d668b
2022-06-13 14:32:17 -04:00
Daniel Phillips 6da6058d4a libhsakmt: Add support for hsaKmtAvailableMemory
New API function to report available memory per GPU

Signed-off-by: Daniel Phillips <Daniel.Phillips@amd.com>
Change-Id: I63c1e4ca0020c657977ab3635947ab0ed0a81440
2022-06-13 09:37:32 -04:00
David Yat Sin 4ac840269c Add API for available GPU memory
Add support for AMD Agent to return amount of memory available

Change-Id: I5c32e2cebbaa2993b044250aefe434e4cc02d8c2
Signed-off-by: David Yat Sin <david.yatsin@amd.com>
2022-06-07 10:33:18 -04:00
Ranjith Ramakrishnan 707200e26e : Use GNUInstallDirs
Use GNUInstallDirs variables in post install scripts
License file installed in CMAKE_INSTALL_DOCDIR

Change-Id: I182ca292e03787a6c189e8de31d32244b65b5687
2022-06-01 10:32:19 -07:00
Graham Sider c198b91c94 kfdtest: Add case for gfx11 in FamilyIdFromNode
GFX11 set to FAMILY_NV.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I545241c39bbe739e39a8943b242b9fc49a65a7e1
2022-05-19 12:32:02 -04:00
Graham Sider cee64d4825 kfdtest: Add gfx11 to kfdtest.exclude
With this patch gfx11 is supported in amd-staging.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I4bbfc87345a486dd8f2e0091ea7b82c255a8ad15
2022-05-18 10:41:22 -04:00
Sean Keely dd671b49e5 Lookup copy agent when blit is selected.
Disallow passing agent 0 to avoid any API change.

Change-Id: I704fb2e04cec50500fac41a405c8a7e83a3c9fb5
2022-05-14 18:08:57 -05:00
Sean Keely 3ebe99f96d Add experimental option to force discovery of all copy agents.
Discards all user provided async copy agent info and relies on
pointer info discovery.

Change-Id: Ife3e708a49ffccbede4983ab47d5ed0032970857
2022-05-14 18:08:57 -05:00
Sean Keely 13a0cdfa77 Use block pointer info in async copy.
Only block info can return an agent which is disabled in the
process.

Change-Id: I34cb1f9eea9217e10a484726c90d930e3414e769
2022-05-14 18:08:57 -05:00
Sean Keely 247606c455 Report owning agent with pointer info block information.
Physical owning agent may not be visible to the current process
due to RVD.

Change-Id: Ib463336a5ed73a479f3aa74eb140932b9e0435fb
2022-05-14 18:08:57 -05:00
Sean Keely c289a43e88 Allow zero agent handle in AsyncCopy APIs.
IPC use cases with RVD set can't convey proper agent handles.
Runtime discovery is required to properly route the copy in this
case.

Change-Id: I4c97e132fb4b6ac1040de1cb17fe5a3e36d6be48
2022-05-14 18:08:49 -05:00
Kent Russell 65aec53bca CMakeLists.txt: Remove unneeded dependencies
These were required back due to dependency issues in earlier ROCm
releases. With thunk being static now and with better dependency
definitions being used, we can remove these

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: I266a783993edf32811caf027f4289ede0cbfcb16
2022-05-13 09:21:48 -04:00
Graham Sider d5f074902c kfdtest: Update CMake message on LLVM build search
Old CMake message was misleading, update to reflect what it's actually
doing.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I8fd18a9095ea350cc10494b4382706027b447ba3
2022-05-11 13:39:49 -04:00
Sean Keely ace0599c69 Report pointer info queries to released fragments as type UNKNOWN.
We should not leak suballocation info to users.

Change-Id: I13b2a22bf5517b523ba04ddc039b49da8378b55f
2022-05-09 13:46:16 -05:00
Sean Keely 0ba9b162db Ensure IPC imports always create an allocation map entry.
Simplifies behavior.  A memory type now either always generates an
entry or never does.

Change-Id: Ie98cddea01e801308ac0ba650795fdef92b7e47d
2022-05-09 13:46:16 -05:00
Sean Keely 752cfd5ffd Adjust include paths for new header locations.
Thunk and rocm_smi_lib paths have been updated.

Change-Id: If2948172f8064dd992cbccbc2a80f9161ad4d457
2022-05-09 14:44:32 -04:00
Graham Sider 30bba89830 kfdtest: Move BasicCuMaskingEven to gfx10 blacklist
KFDQMTest.BasicCuMaskingEven was previously in TEMP_GFX10_BLACKLIST and
was later added to BLACKLIST_GFX10_NV2X.  shows this test
also has problems on NV1X, so move to BLACKLIST_GFX10 to blacklist for
all GFX10 until resolved.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I75426780a52172ed0f2468f0297241902da5002a
2022-05-08 15:19:46 -04:00
Ranjith Ramakrishnan bb4da8545a File Reorganization changes with backward compatibility
Wrapper header files and library soft links for backward compatibility
Install interface updated with /opt/rocm/include

Change-Id: If772b24320f9d1de90f9be0930b1f2aa1d073777
2022-05-06 19:12:14 -04:00
Ranjith Ramakrishnan 5f2c75b7d6 File Reorganization with backward compatibility
Header installed in /opt/rocm/include/hsakmt
Wrapper header files for backward compatibility

Change-Id: I5f6ccac996a43a7c20e0f75e48b1c55b610f0a16
2022-05-06 19:11:42 -04:00
Sean Keely 7f370dd84c Drop build dependency on DeviceLibs.
DeviceLibs is still needed but is found and included by clang now.

Change-Id: I03ff7dc91c028d2ee6747aa1779d223a9ba13915
2022-05-06 01:01:05 -04:00
Sean Keely 0ee82742a7 Switch to CLOCK_BOOTTIME for HSA system clock.
This is consistent with KFD and has significantly better latency.
KFD is taking this as the definition of the SystemClockCounter.

Change-Id: I4c1b3bc58c738206265c55ebefd41356c013bfe5
2022-05-05 15:27:29 -04:00
Graham Sider 0955f350e3 kfdtest: Clean up kfdtest.exclude
Add BLACKLIST_GFX10 and BLACKLIST_GFX10_NV2X to reduce redundant
individual blacklists. Remove KFDDBGTest from kfdtest.exclude and
CMakeLists.txt as it is deprecated.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I5ffebb012ff8ef4bba5aadfeb3c7478fe43c65f1
2022-05-05 11:23:33 -04:00
Graham Sider fe2098e011 kfdtest: Add DeviceHdpFlush to gfx10 blacklist
DeviceHdpFlush was part of the prior TEMP_GFX10_BLACKLIST and is
soft-hanging after being re-added to the test list. Temporarily move
back to gfx10 blacklists until root-caused ().

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: Id37b7105566e8243465e4b21ebc2e2e8c4c79923
2022-05-05 10:09:14 -04:00
Graham Sider ffa6c95858 kfdtest: Hotfix wrong isaBuffer used in DeviceHdpFlush
In DeviceHdpFlush, isaBuffer was accidentally used instead of isaBuffer0
during LLVM re-work--revert.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I98d2322e772f821a39505bb336ceb4e6cd8722ef
2022-05-04 16:13:20 -04:00
David Yat Sin cd0788938c Remove unused variable
Change-Id: Ie29eb1cabef38c259280237c32d83aaa126e3b7a
2022-05-04 13:32:06 -04:00
Philip Yang c05c66e756 kfdtest: SVM mGPU tests skip GPUs prior to gfx9
Otherwise the test failed because KFD returns failure to map or prefetch
the SVM range to those GPUs which don't support SVM.

Change-Id: Ideaec2a686bfabb2fd6ae41b1a690da144121a89
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2022-05-02 16:42:03 -04:00
David Francis 4b041a8ad9 kfdtest: Use correct isa buffer in GPU coherency test
In the LLVM rework, a line was accidentally changed from
isaBuffer1 to isaBuffer, causing VramCacheCoherenceWithRemoteGPU
to fail. Change it back.

Signed-off-by: David Francis <David.Francis@amd.com>
Change-Id: Ie1f3465b5c46556f18682d1b3d1f086bb790c648
2022-05-02 09:13:20 -04:00
Yifan Zhang 54c8b7900d add gfx1036 support
Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
Change-Id: Ifc1b3cf2e46cf753f57470ebc6b034c1a349d3d2
2022-04-29 17:52:22 -04:00
Shweta Khatri 1b0440e7b3 Assemble trap handler at build time.
Eliminates the need for manually assembling the source of the
second level trap handler to produce the shader binary.  Also
separated blit shaders' binary source and version one second
level trap handler binary sources into different header files.

Change-Id: If29a18ee06dc083ec880ea962f234c6b5cac806a
2022-04-28 20:14:14 -04:00
Jonathan Kim 658b053943 Bypass HDP flush during SDMA copies on A+A GPU-CPU xGMI connections
Host to device SDMA copies do not require an HDP cache flush when
connected by xGMI since data copies over the data fabric and not HDP.

Signed-off-by: Jonathan Kim <jonathan.kim@amd.com>
Reviewed-by: Sean Keely <sean.keely@amd.com>
Change-Id: I78d73a47edcc1a9c0ba59f33cf91485f13f1c45b
2022-04-27 21:45:26 -04:00
Alex Sierra b9e8bc1f52 kfdtest: add log message to KFDExceptionTest
[WHY]
These tests force HW exceptions in the GPU driver. Some of these
exceptions might print page fault error messages at kernel level.
These are expected errors due to the nature of the tests, but still
might cause confusion to users.

[HOW]
Add log message to warn the user about these kernel error messages.

Signed-off-by: Alex Sierra <alex.sierra@amd.com>
Change-Id: I8eef87b83939e37230da0c374c2f77d2d484baa9
2022-04-27 15:38:11 -05:00
Sean Keely 64dae113b1 Minor typo fixes.
Declare the type of HSA_AMD_AGENT_INFO_COOPERATIVE_COMPUTE_UNIT_COUNT
and add a missing break statement.

Change-Id: I86ce8a2e620438e046b60cee991ce1fbe07a3e88
2022-04-26 15:51:22 -04:00