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]
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
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]
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
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]
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
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]
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
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]
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
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]
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
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]
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
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]
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
Display min and max bandwidth between gpu nodes
Signed-off-by: Elena Sakhnovitch
Change-Id: I7289fb83f80e2f899996b7d7560ece670cc5f31f
[ROCm/rocm_smi_lib commit: 13cde8429d]
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]
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
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]
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