Commit Graph
64512 Commits
Author SHA1 Message Date
Sean Keely 512dee81c5 Close /dev/kfd after access check.
Cleanup dangling file handle.

Change-Id: I37bc42a2ffb7122f441cbf8a09c141d4396db928


[ROCm/rocminfo commit: 7766360dd6]
2021-10-29 20:23:32 -05:00
Sean Keely 7766360dd6 Close /dev/kfd after access check.
Cleanup dangling file handle.

Change-Id: I37bc42a2ffb7122f441cbf8a09c141d4396db928
2021-10-29 20:23:32 -05:00
Sean Keely 2328e07883 Handle high levels of concurrency in rocm_agent_enumerator.
rocm_agent_enumerator may invoke rocminfo.  Rocminfo opens the
GPU device which allocates limited resource.  Beyond 254
concurrent processes this resource will be exhausted and rocminfo
will return an error.

This patch loops rocm_agent_enumerator when recieving a failure
message from rocminfo indicating KFD is out of memory.

Change-Id: I8637e214f5fa012642975c28578ae6bf9200eda8


[ROCm/rocminfo commit: b57c02d131]
2021-10-29 20:22:19 -05:00
Sean Keely b57c02d131 Handle high levels of concurrency in rocm_agent_enumerator.
rocm_agent_enumerator may invoke rocminfo.  Rocminfo opens the
GPU device which allocates limited resource.  Beyond 254
concurrent processes this resource will be exhausted and rocminfo
will return an error.

This patch loops rocm_agent_enumerator when recieving a failure
message from rocminfo indicating KFD is out of memory.

Change-Id: I8637e214f5fa012642975c28578ae6bf9200eda8
2021-10-29 20:22:19 -05:00
Joseph Greathouse eed38e469d Add capability to pull gfx architecture from KFD topology
New versions of amdkfd include the gfx architecture version number
for all GPUs surfaced in the HSA topology. This patch adds this as
the preferred way for rocm_agent_enumerator to check for supported
gfx architecture numbers.

Kernels that are missing this feature will not have the value in
the topology. rocm_agent_enumerator will fall back to checking
against the PCI IDs in this case. If PCI IDs fail, we fall back
to the heavyweight rocminfo method.

Change-Id: I5cf22e1069114675092e97ae52331b829cfafb04


[ROCm/rocminfo commit: f419b81bdf]
2021-10-29 20:20:04 -05:00
Joseph Greathouse f419b81bdf Add capability to pull gfx architecture from KFD topology
New versions of amdkfd include the gfx architecture version number
for all GPUs surfaced in the HSA topology. This patch adds this as
the preferred way for rocm_agent_enumerator to check for supported
gfx architecture numbers.

Kernels that are missing this feature will not have the value in
the topology. rocm_agent_enumerator will fall back to checking
against the PCI IDs in this case. If PCI IDs fail, we fall back
to the heavyweight rocminfo method.

Change-Id: I5cf22e1069114675092e97ae52331b829cfafb04
2021-10-29 20:20:04 -05:00
Joseph Greathouse 0bc0584f0f Switch order of lspci and rocminfo for gfx arch query
rocminfo is a very heavyweight mechanism for learning a lot of
information about the GPUs that are attached to the system.
It opens up the limited /dev/kfd resource to gather lots of
information about each device, while rocm_agent_enumerator really
only wants the gfx number of AMD devices attached to the system.

To avoid this heavyweight lookup in most cases, this patch switches
the order of tests. Rather than starting with rocminfo and then
falling back to a poorly-maintained PCI ID list, this patch changes
the agent enumerator to start by checking in the PCI ID list (fast
case) and then falling back to rocminfo (slow case) if the PCI ID
list is out of date.

Change-Id: If24b8bc3baeeb6adad362abbb288ef3728383bce


[ROCm/rocminfo commit: e9b7de43be]
2021-10-29 20:16:22 -05:00
Joseph Greathouse e9b7de43be Switch order of lspci and rocminfo for gfx arch query
rocminfo is a very heavyweight mechanism for learning a lot of
information about the GPUs that are attached to the system.
It opens up the limited /dev/kfd resource to gather lots of
information about each device, while rocm_agent_enumerator really
only wants the gfx number of AMD devices attached to the system.

To avoid this heavyweight lookup in most cases, this patch switches
the order of tests. Rather than starting with rocminfo and then
falling back to a poorly-maintained PCI ID list, this patch changes
the agent enumerator to start by checking in the PCI ID list (fast
case) and then falling back to rocminfo (slow case) if the PCI ID
list is out of date.

Change-Id: If24b8bc3baeeb6adad362abbb288ef3728383bce
2021-10-29 20:16:22 -05:00
Joseph Greathouse 3d4449f0c8 Update cmake to include pciutils dependencies
When building packages, add in pciutils as a dependency because
rocm_agent_enumerator uses this as a mechanism for looking up
what GPUs exist on the system.

Change-Id: I10ac088c461c6d0bca435b61fbc90b685556fdf4


[ROCm/rocminfo commit: 0e1807c72d]
2021-10-29 18:45:32 -05:00
Joseph Greathouse 0e1807c72d Update cmake to include pciutils dependencies
When building packages, add in pciutils as a dependency because
rocm_agent_enumerator uses this as a mechanism for looking up
what GPUs exist on the system.

Change-Id: I10ac088c461c6d0bca435b61fbc90b685556fdf4
2021-10-29 18:45:32 -05:00
Joseph Greathouse fc4a486d66 Add better PCI ID backup in rocm_agent_enumerator
The PCI ID backup method in rocm_agent_enumerator, where the
tool uses lspci to find all AMD GPU devices in the system and
manaully match them to gfx version, is extremely outdated. The
PCI ID list did not include anything after Vega 10, and the
actual call to lspci no longer returned anything due to some
missing conversions.

The patch adds all GPUs that might be needed by ROCr up through
Navy Flounder. The PCI ID to gfx matching pulls from the amdgpu
driver and libhsakmt.

Change-Id: I58b77bb6aa631f575352fc444d2542f265909706


[ROCm/rocminfo commit: ea5ce46fb4]
2021-10-29 18:45:23 -05:00
Joseph Greathouse ea5ce46fb4 Add better PCI ID backup in rocm_agent_enumerator
The PCI ID backup method in rocm_agent_enumerator, where the
tool uses lspci to find all AMD GPU devices in the system and
manaully match them to gfx version, is extremely outdated. The
PCI ID list did not include anything after Vega 10, and the
actual call to lspci no longer returned anything due to some
missing conversions.

The patch adds all GPUs that might be needed by ROCr up through
Navy Flounder. The PCI ID to gfx matching pulls from the amdgpu
driver and libhsakmt.

Change-Id: I58b77bb6aa631f575352fc444d2542f265909706
2021-10-29 18:45:23 -05:00
Sean Keely b289416285 Add dependency on kmod.
rocminfo uses lsmod to check for loaded drivers.  Use of sysfs is
possible but sysfs' stable interface does not allow for easy parsing.
Use of lsmod avoids needing to walk the sysfs tree and avoids issues
of permissions to examine sysfs.

Both Debian and Fedora list lsmod under kmod.  Presumption is that
CentOS and RHEL also follow this.

Change-Id: Ic5033e0b780100c54d2fe0b4f501c40acbc237fb


[ROCm/rocminfo commit: 2b4b0c8862]
2021-10-29 16:23:01 -05:00
Sean Keely 2b4b0c8862 Add dependency on kmod.
rocminfo uses lsmod to check for loaded drivers.  Use of sysfs is
possible but sysfs' stable interface does not allow for easy parsing.
Use of lsmod avoids needing to walk the sysfs tree and avoids issues
of permissions to examine sysfs.

Both Debian and Fedora list lsmod under kmod.  Presumption is that
CentOS and RHEL also follow this.

Change-Id: Ic5033e0b780100c54d2fe0b4f501c40acbc237fb
2021-10-29 16:23:01 -05:00
Sean Keely a665dc415f Correct and simplify package dependencies.
Package should depend on hsa-rocr, not hsa-rocr-dev.  Also
Remove negative path for dependency rocm-core (unconditional add +
conditional remove simplified to conditional add).

Change-Id: I6ead202f4f3f2f77b1da2ffed77feee956caf2e9


[ROCm/rocminfo commit: 86560046de]
2021-10-29 16:23:01 -05:00
Sean Keely 86560046de Correct and simplify package dependencies.
Package should depend on hsa-rocr, not hsa-rocr-dev.  Also
Remove negative path for dependency rocm-core (unconditional add +
conditional remove simplified to conditional add).

Change-Id: I6ead202f4f3f2f77b1da2ffed77feee956caf2e9
2021-10-29 16:23:01 -05:00
Sean Keely 029c8a02aa Don't touch CMAKE_CXX_FLAGS.
Cmake manages CMAKE_CXX_FLAGS in standard ways from user inputs,
env vars, and target properties.  Use target properties for our
options and let cmake handle the rest.

Change-Id: I20ef738e4df7880258d770f4ec13c09d8b323fba


[ROCm/rocminfo commit: e32a4d9bed]
2021-10-29 16:23:01 -05:00
Sean Keely e32a4d9bed Don't touch CMAKE_CXX_FLAGS.
Cmake manages CMAKE_CXX_FLAGS in standard ways from user inputs,
env vars, and target properties.  Use target properties for our
options and let cmake handle the rest.

Change-Id: I20ef738e4df7880258d770f4ec13c09d8b323fba
2021-10-29 16:23:01 -05:00
Yi Qian 97c4ab42f4 Add a new rocm_agent_enumerator option '-name' which lists target names obtained from the output of rocminfo.
Change-Id: Iea366c744e2f03a46fd5c902ae4faa94b96f6942


[ROCm/rocminfo commit: e1df81cb8f]
2021-10-29 16:23:01 -05:00
Yi Qian e1df81cb8f Add a new rocm_agent_enumerator option '-name' which lists target names obtained from the output of rocminfo.
Change-Id: Iea366c744e2f03a46fd5c902ae4faa94b96f6942
2021-10-29 16:23:01 -05:00
Ashutosh Misra 633405914f Adding package dependency
SWDEV-260294:Rocminfo shall explicitly depend on hsa-rocr for package installation

Signed-off-by: Ashutosh Mishra <ashutosh.mishra@amd.com>
Change-Id: I9a6d1691cd5a821f135a1d1cff599e9a2c40d06f


[ROCm/rocminfo commit: 2bd7657503]
2021-10-29 16:23:01 -05:00
Ashutosh Misra 2bd7657503 Adding package dependency
SWDEV-260294:Rocminfo shall explicitly depend on hsa-rocr for package installation

Signed-off-by: Ashutosh Mishra <ashutosh.mishra@amd.com>
Change-Id: I9a6d1691cd5a821f135a1d1cff599e9a2c40d06f
2021-10-29 16:23:01 -05:00
Chris Freehill 18be0dc298 Append CXXFLAGS env. variable to CMAKE_CXX_FLAGS
This facilitates address sanitizer builds via env. variable.

Change-Id: I69fc9a5782ca80d7bdbf2b1ec0c89cccc4a5ca11


[ROCm/rocminfo commit: 102f22f974]
2021-10-29 16:23:01 -05:00
Chris Freehill 102f22f974 Append CXXFLAGS env. variable to CMAKE_CXX_FLAGS
This facilitates address sanitizer builds via env. variable.

Change-Id: I69fc9a5782ca80d7bdbf2b1ec0c89cccc4a5ca11
2021-10-29 16:23:01 -05:00
Elena Sakhnovitch 8a5effb2e1 [ROCm-SMI] add --showNodesBw
Display min and max bandwidth between gpu nodes

Signed-off-by: Elena Sakhnovitch
Change-Id: I7289fb83f80e2f899996b7d7560ece670cc5f31f


[ROCm/rocm_smi_lib commit: 13cde8429d]
2021-10-29 12:49:35 -04:00
Elena Sakhnovitch 13cde8429d [ROCm-SMI] add --showNodesBw
Display min and max bandwidth between gpu nodes

Signed-off-by: Elena Sakhnovitch
Change-Id: I7289fb83f80e2f899996b7d7560ece670cc5f31f
2021-10-29 12:49:35 -04:00
Elena Sakhnovitch f0a86d3d29 [rocm_smi.py] remove repetitive footnote
Printing "Primary die (usually one above or below the secondary) shows
total (primary + secondary) socket power information" footnote only one time, not
for every secondary die.

Signed-off-by: Elena Sakhnovitch
Change-Id: Iae9c5c94945ec38ecdb128a576a4eacafc30a044


[ROCm/rocm_smi_lib commit: 15e4fe80e1]
2021-10-29 08:32:06 -04:00
Elena Sakhnovitch 15e4fe80e1 [rocm_smi.py] remove repetitive footnote
Printing "Primary die (usually one above or below the secondary) shows
total (primary + secondary) socket power information" footnote only one time, not
for every secondary die.

Signed-off-by: Elena Sakhnovitch
Change-Id: Iae9c5c94945ec38ecdb128a576a4eacafc30a044
2021-10-29 08:32:06 -04:00
Chauncey Hui b1eda6f40e SWDEV-2 - Change OpenCL version number from 3384 to 3385
[ROCm/clr commit: 712b65765e]
2021-10-29 03:00:05 -04:00
Chauncey Hui 712b65765e SWDEV-2 - Change OpenCL version number from 3384 to 3385 2021-10-29 03:00:05 -04:00
German Andryeyev 7821cddb3e SWDEV-257789 - Initial change to skip kernel arg copy
The optimization is controlled with ROCR_SKIP_KERNEL_ARG_COPY.
This is initial check-in for experiments. Extra changes are
necessary for full support:
- handle graph capture with the original sysmem alloc
- avoid memobject references, otherwise there is a race condition with
reusage of the arg buffer
- Remove arg setup from hip

Change-Id: Ib0af710f93e79834711fa4049a7c66093711e68b


[ROCm/clr commit: 7e12cf6318]
2021-10-28 20:35:35 -04:00
German Andryeyev 7e12cf6318 SWDEV-257789 - Initial change to skip kernel arg copy
The optimization is controlled with ROCR_SKIP_KERNEL_ARG_COPY.
This is initial check-in for experiments. Extra changes are
necessary for full support:
- handle graph capture with the original sysmem alloc
- avoid memobject references, otherwise there is a race condition with
reusage of the arg buffer
- Remove arg setup from hip

Change-Id: Ib0af710f93e79834711fa4049a7c66093711e68b
2021-10-28 20:35:35 -04:00
Sreekant Somasekharan 01cb5a2b61 Add test case for rsmi_is_P2P_accessible API.
Change-Id: Iccfede42925c98d96454b5f25cc0ed6fc9258911


[ROCm/rocm_smi_lib commit: ce46fd237a]
2021-10-28 17:06:07 -04:00
Sreekant Somasekharan ce46fd237a Add test case for rsmi_is_P2P_accessible API.
Change-Id: Iccfede42925c98d96454b5f25cc0ed6fc9258911
2021-10-28 17:06:07 -04:00
Elena Sakhnovitch 71fe1f8bce [ROCm SMI LIB]: Add rsmi_minmax_bandwidth_get()
API provides min/max bandwidth values between nodes.
(Current implementation only supports directly (1 hop)
connected XGMI devices.

Signed-off-by: Elena Sakhnovitch
Change-Id: Ifc95da13845fbe7903c5386d320183ffd58c5b53


[ROCm/rocm_smi_lib commit: 50ea68e694]
2021-10-28 17:00:41 -04:00
Elena Sakhnovitch 50ea68e694 [ROCm SMI LIB]: Add rsmi_minmax_bandwidth_get()
API provides min/max bandwidth values between nodes.
(Current implementation only supports directly (1 hop)
connected XGMI devices.

Signed-off-by: Elena Sakhnovitch
Change-Id: Ifc95da13845fbe7903c5386d320183ffd58c5b53
2021-10-28 17:00:41 -04:00
Alex Xie 3be7aef366 SWDEV-305752 - OCL WIN Conformance select test fail
unmap should complete before working on the other mapping API

Change-Id: I27517888f3112d1113894cdbcb7a786321a3e554


[ROCm/clr commit: 1ced9040b6]
2021-10-28 12:20:15 -04:00
Alex Xie 1ced9040b6 SWDEV-305752 - OCL WIN Conformance select test fail
unmap should complete before working on the other mapping API

Change-Id: I27517888f3112d1113894cdbcb7a786321a3e554
2021-10-28 12:20:15 -04:00
Chauncey Hui 4f82f985c0 SWDEV-2 - Change OpenCL version number from 3383 to 3384
[ROCm/clr commit: 530283e12a]
2021-10-28 03:00:04 -04:00
Chauncey Hui 530283e12a SWDEV-2 - Change OpenCL version number from 3383 to 3384 2021-10-28 03:00:04 -04:00
German Andryeyev 2d2d33dd9c SWDEV-303567 - reset kernel arg buffer to chunk 0
Change-Id: I2974e31af9700705554b0f274ede6f8b9a9d6e7b


[ROCm/clr commit: 30bba18a06]
2021-10-27 22:15:55 -04:00
German Andryeyev 30bba18a06 SWDEV-303567 - reset kernel arg buffer to chunk 0
Change-Id: I2974e31af9700705554b0f274ede6f8b9a9d6e7b
2021-10-27 22:15:55 -04:00
Alex Xie da48f060f4 SWDEV-305752 - OCL WIN Conformance select test fail
Change-Id: I73571c262a14d6b27d8cf91b6d1a13e1974ddc96


[ROCm/clr commit: 0e321f45c1]
2021-10-27 19:54:24 -04:00
Alex Xie 0e321f45c1 SWDEV-305752 - OCL WIN Conformance select test fail
Change-Id: I73571c262a14d6b27d8cf91b6d1a13e1974ddc96
2021-10-27 19:54:24 -04:00
German Andryeyev 22182e12bd SWDEV-286150 - Switch PAL to 678 interface
Change-Id: I3c130998902654e1dffc954ddf33530ea998ac34


[ROCm/clr commit: 4aea2ad172]
2021-10-27 17:25:02 -04:00
German Andryeyev 4aea2ad172 SWDEV-286150 - Switch PAL to 678 interface
Change-Id: I3c130998902654e1dffc954ddf33530ea998ac34
2021-10-27 17:25:02 -04:00
Tao Sang e530fb9388 SWDEV-306947 Enable hipAddressModeBorder
Enable hipAddressModeBorder.
Fix default of height of hipMallocArray().
Some code improvement.

Change-Id: I57045118e7adf915074c547cbe76349a4cfd72d8


[ROCm/hipother commit: 910fa7e2fa]
2021-10-27 10:05:53 -04:00
Tao Sang 910fa7e2fa SWDEV-306947 Enable hipAddressModeBorder
Enable hipAddressModeBorder.
Fix default of height of hipMallocArray().
Some code improvement.

Change-Id: I57045118e7adf915074c547cbe76349a4cfd72d8
2021-10-27 10:05:53 -04:00
Tao Sang f970a1be0f SWDEV-306947 Enable hipAddressModeBorder
Enable hipAddressModeBorder.
Fix default of height of hipMallocArray().
Some code improvement.

Change-Id: I57045118e7adf915074c547cbe76349a4cfd72d8


[ROCm/clr commit: 17cc99c05d]
2021-10-27 10:05:53 -04:00
Tao Sang 17cc99c05d SWDEV-306947 Enable hipAddressModeBorder
Enable hipAddressModeBorder.
Fix default of height of hipMallocArray().
Some code improvement.

Change-Id: I57045118e7adf915074c547cbe76349a4cfd72d8
2021-10-27 10:05:53 -04:00