nsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget//translations/zh_CN/admin-guide/perf/nvidia-pmumodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/zh_TW/admin-guide/perf/nvidia-pmumodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/it_IT/admin-guide/perf/nvidia-pmumodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ja_JP/admin-guide/perf/nvidia-pmumodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ko_KR/admin-guide/perf/nvidia-pmumodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/sp_SP/admin-guide/perf/nvidia-pmumodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h9NVIDIA Tegra SoC Uncore Performance Monitoring Unit (PMU)h]h9NVIDIA Tegra SoC Uncore Performance Monitoring Unit (PMU)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhI/var/lib/git/docbuild/linux/Documentation/admin-guide/perf/nvidia-pmu.rsthKubh paragraph)}(hThe NVIDIA Tegra SoC includes various system PMUs to measure key performance metrics like memory bandwidth, latency, and utilization:h]hThe NVIDIA Tegra SoC includes various system PMUs to measure key performance metrics like memory bandwidth, latency, and utilization:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh bullet_list)}(hhh](h list_item)}(hScalable Coherency Fabric (SCF)h]h)}(hhh]hScalable Coherency Fabric (SCF)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(h NVLink-C2C0h]h)}(hhh]h NVLink-C2C0}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(h NVLink-C2C1h]h)}(hhh]h NVLink-C2C1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hCNVLinkh]h)}(hjh]hCNVLink}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hPCIE h]h)}(hPCIEh]hPCIE}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hj*ubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubeh}(h]h ]h"]h$]h&]bullet*uh1hhhhKhhhhubh)}(hhh](h)}(h PMU Driverh]h PMU Driver}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhhhhhKubh)}(hXRThe PMUs in this document are based on ARM CoreSight PMU Architecture as described in document: ARM IHI 0091. Since this is a standard architecture, the PMUs are managed by a common driver "arm-cs-arch-pmu". This driver describes the available events and configuration of each PMU in sysfs. Please see the sections below to get the sysfs path of each PMU. Like other uncore PMU drivers, the driver provides "cpumask" sysfs attribute to show the CPU id used to handle the PMU event. There is also "associated_cpus" sysfs attribute, which contains a list of CPUs associated with the PMU instance.h]hX^The PMUs in this document are based on ARM CoreSight PMU Architecture as described in document: ARM IHI 0091. Since this is a standard architecture, the PMUs are managed by a common driver “arm-cs-arch-pmu”. This driver describes the available events and configuration of each PMU in sysfs. Please see the sections below to get the sysfs path of each PMU. Like other uncore PMU drivers, the driver provides “cpumask” sysfs attribute to show the CPU id used to handle the PMU event. There is also “associated_cpus” sysfs attribute, which contains a list of CPUs associated with the PMU instance.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubhtarget)}(h.. _SCF_PMU_Section:h]h}(h]h ]h"]h$]h&]refidscf-pmu-sectionuh1jihKhjJhhhhubeh}(h] pmu-driverah ]h"] pmu driverah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hSCF PMUh]hSCF PMU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hThe SCF PMU monitors system level cache events, CPU traffic, and strongly-ordered (SO) PCIE write traffic to local/remote memory. Please see :ref:`NVIDIA_Uncore_PMU_Traffic_Coverage_Section` for more info about the PMU traffic coverage.h](hThe SCF PMU monitors system level cache events, CPU traffic, and strongly-ordered (SO) PCIE write traffic to local/remote memory. Please see }(hjhhhNhNubh)}(h1:ref:`NVIDIA_Uncore_PMU_Traffic_Coverage_Section`h]hinline)}(hjh]h*NVIDIA_Uncore_PMU_Traffic_Coverage_Section}(hjhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocadmin-guide/perf/nvidia-pmu refdomainjreftyperef refexplicitrefwarn reftarget*nvidia_uncore_pmu_traffic_coverage_sectionuh1hhhhKhjubh. for more info about the PMU traffic coverage.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hThe events and configuration options of this PMU device are described in sysfs, see /sys/bus/event_source/devices/nvidia_scf_pmu_.h]hThe events and configuration options of this PMU device are described in sysfs, see /sys/bus/event_source/devices/nvidia_scf_pmu_.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjhhubh)}(hExample usage:h]hExample usage:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjhhubh)}(hhh](h)}(hOCount event id 0x0 in socket 0:: perf stat -a -e nvidia_scf_pmu_0/event=0x0/ h](h)}(h Count event id 0x0 in socket 0::h]hCount event id 0x0 in socket 0:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjubh literal_block)}(h+perf stat -a -e nvidia_scf_pmu_0/event=0x0/h]h+perf stat -a -e nvidia_scf_pmu_0/event=0x0/}hjsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jhhhK+hjubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hOCount event id 0x0 in socket 1:: perf stat -a -e nvidia_scf_pmu_1/event=0x0/ h](h)}(h Count event id 0x0 in socket 1::h]hCount event id 0x0 in socket 1:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubj)}(h+perf stat -a -e nvidia_scf_pmu_1/event=0x0/h]h+perf stat -a -e nvidia_scf_pmu_1/event=0x0/}hj"sbah}(h]h ]h"]h$]h&]jj uh1jhhhK/hjubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jHjIuh1hhhhK)hjhhubeh}(h](scf-pmujveh ]h"](scf pmuscf_pmu_sectioneh$]h&]uh1hhhhhhhhKexpect_referenced_by_name}jBjksexpect_referenced_by_id}jvjksubh)}(hhh](h)}(hNVLink-C2C0 PMUh]hNVLink-C2C0 PMU}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhhhhhK2ubh)}(hThe NVLink-C2C0 PMU monitors incoming traffic from a GPU/CPU connected with NVLink-C2C (Chip-2-Chip) interconnect. The type of traffic captured by this PMU varies dependent on the chip configuration:h]hThe NVLink-C2C0 PMU monitors incoming traffic from a GPU/CPU connected with NVLink-C2C (Chip-2-Chip) interconnect. The type of traffic captured by this PMU varies dependent on the chip configuration:}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjIhhubh)}(hhh](h)}(hNVIDIA Grace Hopper Superchip: Hopper GPU is connected with Grace SoC. In this config, the PMU captures GPU ATS translated or EGM traffic from the GPU. h](h)}(hFNVIDIA Grace Hopper Superchip: Hopper GPU is connected with Grace SoC.h]hFNVIDIA Grace Hopper Superchip: Hopper GPU is connected with Grace SoC.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjkubh)}(hPIn this config, the PMU captures GPU ATS translated or EGM traffic from the GPU.h]hPIn this config, the PMU captures GPU ATS translated or EGM traffic from the GPU.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjkubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhhNubh)}(hNVIDIA Grace CPU Superchip: two Grace CPU SoCs are connected. In this config, the PMU captures read and relaxed ordered (RO) writes from PCIE device of the remote SoC. h](h)}(h=NVIDIA Grace CPU Superchip: two Grace CPU SoCs are connected.h]h=NVIDIA Grace CPU Superchip: two Grace CPU SoCs are connected.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhhNubeh}(h]h ]h"]h$]h&]jHjIuh1hhhhK8hjIhhubh)}(hjPlease see :ref:`NVIDIA_Uncore_PMU_Traffic_Coverage_Section` for more info about the PMU traffic coverage.h](h Please see }(hjhhhNhNubh)}(h1:ref:`NVIDIA_Uncore_PMU_Traffic_Coverage_Section`h]j)}(hjh]h*NVIDIA_Uncore_PMU_Traffic_Coverage_Section}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnj*nvidia_uncore_pmu_traffic_coverage_sectionuh1hhhhKAhjubh. for more info about the PMU traffic coverage.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKAhjIhhubh)}(hThe events and configuration options of this PMU device are described in sysfs, see /sys/bus/event_source/devices/nvidia_nvlink_c2c0_pmu_.h]hThe events and configuration options of this PMU device are described in sysfs, see /sys/bus/event_source/devices/nvidia_nvlink_c2c0_pmu_.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhjIhhubh)}(hExample usage:h]hExample usage:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjIhhubh)}(hhh](h)}(htCount event id 0x0 from the GPU/CPU connected with socket 0:: perf stat -a -e nvidia_nvlink_c2c0_pmu_0/event=0x0/ h](h)}(h=Count event id 0x0 from the GPU/CPU connected with socket 0::h]hubah}(h]h ]h"]h$]h&]refdocj refdomainjLreftyperef refexplicitrefwarnj*nvidia_uncore_pmu_traffic_coverage_sectionuh1hhhhKlhj6ubh. for more info about the PMU traffic coverage.}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKlhj%hhubh)}(hThe events and configuration options of this PMU device are described in sysfs, see /sys/bus/event_source/devices/nvidia_nvlink_c2c1_pmu_.h]hThe events and configuration options of this PMU device are described in sysfs, see /sys/bus/event_source/devices/nvidia_nvlink_c2c1_pmu_.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhj%hhubh)}(hExample usage:h]hExample usage:}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhj%hhubh)}(hhh](h)}(hpCount event id 0x0 from the GPU connected with socket 0:: perf stat -a -e nvidia_nvlink_c2c1_pmu_0/event=0x0/ h](h)}(h9Count event id 0x0 from the GPU connected with socket 0::h]h8Count event id 0x0 from the GPU connected with socket 0:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhjubj)}(h3perf stat -a -e nvidia_nvlink_c2c1_pmu_0/event=0x0/h]h3perf stat -a -e nvidia_nvlink_c2c1_pmu_0/event=0x0/}hjsbah}(h]h ]h"]h$]h&]jj uh1jhhhKyhjubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hpCount event id 0x0 from the GPU connected with socket 1:: perf stat -a -e nvidia_nvlink_c2c1_pmu_1/event=0x0/ h](h)}(h9Count event id 0x0 from the GPU connected with socket 1::h]h8Count event id 0x0 from the GPU connected with socket 1:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hjubj)}(h3perf stat -a -e nvidia_nvlink_c2c1_pmu_1/event=0x0/h]h3perf stat -a -e nvidia_nvlink_c2c1_pmu_1/event=0x0/}hjsbah}(h]h ]h"]h$]h&]jj uh1jhhhK}hjubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hpCount event id 0x0 from the GPU connected with socket 2:: perf stat -a -e nvidia_nvlink_c2c1_pmu_2/event=0x0/ h](h)}(h9Count event id 0x0 from the GPU connected with socket 2::h]h8Count event id 0x0 from the GPU connected with socket 2:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(h3perf stat -a -e nvidia_nvlink_c2c1_pmu_2/event=0x0/h]h3perf stat -a -e nvidia_nvlink_c2c1_pmu_2/event=0x0/}hjsbah}(h]h ]h"]h$]h&]jj uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hpCount event id 0x0 from the GPU connected with socket 3:: perf stat -a -e nvidia_nvlink_c2c1_pmu_3/event=0x0/ h](h)}(h9Count event id 0x0 from the GPU connected with socket 3::h]h8Count event id 0x0 from the GPU connected with socket 3:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(h3perf stat -a -e nvidia_nvlink_c2c1_pmu_3/event=0x0/h]h3perf stat -a -e nvidia_nvlink_c2c1_pmu_3/event=0x0/}hj sbah}(h]h ]h"]h$]h&]jj uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jHjIuh1hhhhKwhj%hhubh)}(hXnThe NVLink-C2C has two ports that can be connected to one GPU (occupying both ports) or to two GPUs (one GPU per port). The user can use "port" bitmap parameter to select the port(s) to monitor. Each bit represents the port number, e.g. "port=0x1" corresponds to port 0 and "port=0x3" is for port 0 and 1. The PMU will monitor both ports by default if not specified.h]hXzThe NVLink-C2C has two ports that can be connected to one GPU (occupying both ports) or to two GPUs (one GPU per port). The user can use “port” bitmap parameter to select the port(s) to monitor. Each bit represents the port number, e.g. “port=0x1” corresponds to port 0 and “port=0x3” is for port 0 and 1. The PMU will monitor both ports by default if not specified.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj%hhubh)}(hExample for port filtering:h]hExample for port filtering:}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj%hhubh)}(hhh](h)}(hCount event id 0x0 from the GPU connected with socket 0 on port 0:: perf stat -a -e nvidia_nvlink_c2c1_pmu_0/event=0x0,port=0x1/ h](h)}(hCCount event id 0x0 from the GPU connected with socket 0 on port 0::h]hBCount event id 0x0 from the GPU connected with socket 0 on port 0:}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjDubj)}(h.h]hThe events and configuration options of this PMU device are described in sysfs, see /sys/bus/event_source/devices/nvidia_cnvlink_pmu_.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hXEach SoC socket can be connected to one or more sockets via CNVLink. The user can use "rem_socket" bitmap parameter to select the remote socket(s) to monitor. Each bit represents the socket number, e.g. "rem_socket=0xE" corresponds to socket 1 to 3. The PMU will monitor all remote sockets by default if not specified. /sys/bus/event_source/devices/nvidia_cnvlink_pmu_/format/rem_socket shows the valid bits that can be set in the "rem_socket" parameter.h]hXEach SoC socket can be connected to one or more sockets via CNVLink. The user can use “rem_socket” bitmap parameter to select the remote socket(s) to monitor. Each bit represents the socket number, e.g. “rem_socket=0xE” corresponds to socket 1 to 3. The PMU will monitor all remote sockets by default if not specified. /sys/bus/event_source/devices/nvidia_cnvlink_pmu_/format/rem_socket shows the valid bits that can be set in the “rem_socket” parameter.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hThe PMU can not distinguish the remote traffic initiator, therefore it does not provide filter to select the traffic source to monitor. It reports combined traffic from remote GPU and PCIE devices.h]hThe PMU can not distinguish the remote traffic initiator, therefore it does not provide filter to select the traffic source to monitor. It reports combined traffic from remote GPU and PCIE devices.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hExample usage:h]hExample usage:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(hCount event id 0x0 for the traffic from remote socket 1, 2, and 3 to socket 0:: perf stat -a -e nvidia_cnvlink_pmu_0/event=0x0,rem_socket=0xE/ h](h)}(hOCount event id 0x0 for the traffic from remote socket 1, 2, and 3 to socket 0::h]hNCount event id 0x0 for the traffic from remote socket 1, 2, and 3 to socket 0:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(h>perf stat -a -e nvidia_cnvlink_pmu_0/event=0x0,rem_socket=0xE/h]h>perf stat -a -e nvidia_cnvlink_pmu_0/event=0x0,rem_socket=0xE/}hj.sbah}(h]h ]h"]h$]h&]jj uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hCount event id 0x0 for the traffic from remote socket 0, 2, and 3 to socket 1:: perf stat -a -e nvidia_cnvlink_pmu_1/event=0x0,rem_socket=0xD/ h](h)}(hOCount event id 0x0 for the traffic from remote socket 0, 2, and 3 to socket 1::h]hNCount event id 0x0 for the traffic from remote socket 0, 2, and 3 to socket 1:}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjBubj)}(h>perf stat -a -e nvidia_cnvlink_pmu_1/event=0x0,rem_socket=0xD/h]h>perf stat -a -e nvidia_cnvlink_pmu_1/event=0x0,rem_socket=0xD/}hjTsbah}(h]h ]h"]h$]h&]jj uh1jhhhKhjBubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hCount event id 0x0 for the traffic from remote socket 0, 1, and 3 to socket 2:: perf stat -a -e nvidia_cnvlink_pmu_2/event=0x0,rem_socket=0xB/ h](h)}(hOCount event id 0x0 for the traffic from remote socket 0, 1, and 3 to socket 2::h]hNCount event id 0x0 for the traffic from remote socket 0, 1, and 3 to socket 2:}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhubj)}(h>perf stat -a -e nvidia_cnvlink_pmu_2/event=0x0,rem_socket=0xB/h]h>perf stat -a -e nvidia_cnvlink_pmu_2/event=0x0,rem_socket=0xB/}hjzsbah}(h]h ]h"]h$]h&]jj uh1jhhhKhjhubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hCount event id 0x0 for the traffic from remote socket 0, 1, and 2 to socket 3:: perf stat -a -e nvidia_cnvlink_pmu_3/event=0x0,rem_socket=0x7/ h](h)}(hOCount event id 0x0 for the traffic from remote socket 0, 1, and 2 to socket 3::h]hNCount event id 0x0 for the traffic from remote socket 0, 1, and 2 to socket 3:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(h>perf stat -a -e nvidia_cnvlink_pmu_3/event=0x0,rem_socket=0x7/h]h>perf stat -a -e nvidia_cnvlink_pmu_3/event=0x0,rem_socket=0x7/}hjsbah}(h]h ]h"]h$]h&]jj uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jHjIuh1hhhhKhjhhubeh}(h] cnvlink-pmuah ]h"] cnvlink pmuah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hPCIE PMUh]hPCIE PMU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hThe PCIE PMU monitors all read/write traffic from PCIE root ports to local/remote memory. Please see :ref:`NVIDIA_Uncore_PMU_Traffic_Coverage_Section` for more info about the PMU traffic coverage.h](heThe PCIE PMU monitors all read/write traffic from PCIE root ports to local/remote memory. Please see }(hjhhhNhNubh)}(h1:ref:`NVIDIA_Uncore_PMU_Traffic_Coverage_Section`h]j)}(hjh]h*NVIDIA_Uncore_PMU_Traffic_Coverage_Section}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnj*nvidia_uncore_pmu_traffic_coverage_sectionuh1hhhhKhjubh. for more info about the PMU traffic coverage.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hThe events and configuration options of this PMU device are described in sysfs, see /sys/bus/event_source/devices/nvidia_pcie_pmu_.h]hThe events and configuration options of this PMU device are described in sysfs, see /sys/bus/event_source/devices/nvidia_pcie_pmu_.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hXEach SoC socket can support multiple root ports. The user can use "root_port" bitmap parameter to select the port(s) to monitor, i.e. "root_port=0xF" corresponds to root port 0 to 3. The PMU will monitor all root ports by default if not specified. /sys/bus/event_source/devices/nvidia_pcie_pmu_/format/root_port shows the valid bits that can be set in the "root_port" parameter.h]hXEach SoC socket can support multiple root ports. The user can use “root_port” bitmap parameter to select the port(s) to monitor, i.e. “root_port=0xF” corresponds to root port 0 to 3. The PMU will monitor all root ports by default if not specified. /sys/bus/event_source/devices/nvidia_pcie_pmu_/format/root_port shows the valid bits that can be set in the “root_port” parameter.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hExample usage:h]hExample usage:}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(huCount event id 0x0 from root port 0 and 1 of socket 0:: perf stat -a -e nvidia_pcie_pmu_0/event=0x0,root_port=0x3/ h](h)}(h7Count event id 0x0 from root port 0 and 1 of socket 0::h]h6Count event id 0x0 from root port 0 and 1 of socket 0:}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj2ubj)}(h:perf stat -a -e nvidia_pcie_pmu_0/event=0x0,root_port=0x3/h]h:perf stat -a -e nvidia_pcie_pmu_0/event=0x0,root_port=0x3/}hjDsbah}(h]h ]h"]h$]h&]jj uh1jhhhKhj2ubeh}(h]h ]h"]h$]h&]uh1hhj/hhhhhNubh)}(huCount event id 0x0 from root port 0 and 1 of socket 1:: perf stat -a -e nvidia_pcie_pmu_1/event=0x0,root_port=0x3/ h](h)}(h7Count event id 0x0 from root port 0 and 1 of socket 1::h]h6Count event id 0x0 from root port 0 and 1 of socket 1:}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjXubj)}(h:perf stat -a -e nvidia_pcie_pmu_1/event=0x0,root_port=0x3/h]h:perf stat -a -e nvidia_pcie_pmu_1/event=0x0,root_port=0x3/}hjjsbah}(h]h ]h"]h$]h&]jj uh1jhhhKhjXubeh}(h]h ]h"]h$]h&]uh1hhj/hhhhhNubeh}(h]h ]h"]h$]h&]jHjIuh1hhhhKhjhhubjj)}(h/.. _NVIDIA_Uncore_PMU_Traffic_Coverage_Section:h]h}(h]h ]h"]h$]h&]ju*nvidia-uncore-pmu-traffic-coverage-sectionuh1jihKhjhhhhubeh}(h]pcie-pmuah ]h"]pcie pmuah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hTraffic Coverageh]hTraffic Coverage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hFThe PMU traffic coverage may vary dependent on the chip configuration:h]hFThe PMU traffic coverage may vary dependent on the chip configuration:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(hX **NVIDIA Grace Hopper Superchip**: Hopper GPU is connected with Grace SoC. Example configuration with two Grace SoCs:: ********************************* ********************************* * SOCKET-A * * SOCKET-B * * * * * * :::::::: * * :::::::: * * : PCIE : * * : PCIE : * * :::::::: * * :::::::: * * | * * | * * | * * | * * ::::::: ::::::::: * * ::::::::: ::::::: * * : : : : * * : : : : * * : GPU :<--NVLink-->: Grace :<---CNVLink--->: Grace :<--NVLink-->: GPU : * * : : C2C : SoC : * * : SoC : C2C : : * * ::::::: ::::::::: * * ::::::::: ::::::: * * | | * * | | * * | | * * | | * * &&&&&&&& &&&&&&&& * * &&&&&&&& &&&&&&&& * * & GMEM & & CMEM & * * & CMEM & & GMEM & * * &&&&&&&& &&&&&&&& * * &&&&&&&& &&&&&&&& * * * * * ********************************* ********************************* GMEM = GPU Memory (e.g. HBM) CMEM = CPU Memory (e.g. LPDDR5X) | | Following table contains traffic coverage of Grace SoC PMU in socket-A: :: +--------------+-------+-----------+-----------+-----+----------+----------+ | | Source | + +-------+-----------+-----------+-----+----------+----------+ | Destination | |GPU ATS |GPU Not-ATS| | Socket-B | Socket-B | | |PCI R/W|Translated,|Translated | CPU | CPU/PCIE1| GPU/PCIE2| | | |EGM | | | | | +==============+=======+===========+===========+=====+==========+==========+ | Local | PCIE |NVLink-C2C0|NVLink-C2C1| SCF | SCF PMU | CNVLink | | SYSRAM/CMEM | PMU |PMU |PMU | PMU | | PMU | +--------------+-------+-----------+-----------+-----+----------+----------+ | Local GMEM | PCIE | N/A |NVLink-C2C1| SCF | SCF PMU | CNVLink | | | PMU | |PMU | PMU | | PMU | +--------------+-------+-----------+-----------+-----+----------+----------+ | Remote | PCIE |NVLink-C2C0|NVLink-C2C1| SCF | | | | SYSRAM/CMEM | PMU |PMU |PMU | PMU | N/A | N/A | | over CNVLink | | | | | | | +--------------+-------+-----------+-----------+-----+----------+----------+ | Remote GMEM | PCIE |NVLink-C2C0|NVLink-C2C1| SCF | | | | over CNVLink | PMU |PMU |PMU | PMU | N/A | N/A | +--------------+-------+-----------+-----------+-----+----------+----------+ PCIE1 traffic represents strongly ordered (SO) writes. PCIE2 traffic represents reads and relaxed ordered (RO) writes. h](h)}(hJ**NVIDIA Grace Hopper Superchip**: Hopper GPU is connected with Grace SoC.h](hstrong)}(h!**NVIDIA Grace Hopper Superchip**h]hNVIDIA Grace Hopper Superchip}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh): Hopper GPU is connected with Grace SoC.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h+Example configuration with two Grace SoCs::h]h*Example configuration with two Grace SoCs:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hXB********************************* ********************************* * SOCKET-A * * SOCKET-B * * * * * * :::::::: * * :::::::: * * : PCIE : * * : PCIE : * * :::::::: * * :::::::: * * | * * | * * | * * | * * ::::::: ::::::::: * * ::::::::: ::::::: * * : : : : * * : : : : * * : GPU :<--NVLink-->: Grace :<---CNVLink--->: Grace :<--NVLink-->: GPU : * * : : C2C : SoC : * * : SoC : C2C : : * * ::::::: ::::::::: * * ::::::::: ::::::: * * | | * * | | * * | | * * | | * * &&&&&&&& &&&&&&&& * * &&&&&&&& &&&&&&&& * * & GMEM & & CMEM & * * & CMEM & & GMEM & * * &&&&&&&& &&&&&&&& * * &&&&&&&& &&&&&&&& * * * * * ********************************* ********************************* GMEM = GPU Memory (e.g. HBM) CMEM = CPU Memory (e.g. LPDDR5X)h]hXB********************************* ********************************* * SOCKET-A * * SOCKET-B * * * * * * :::::::: * * :::::::: * * : PCIE : * * : PCIE : * * :::::::: * * :::::::: * * | * * | * * | * * | * * ::::::: ::::::::: * * ::::::::: ::::::: * * : : : : * * : : : : * * : GPU :<--NVLink-->: Grace :<---CNVLink--->: Grace :<--NVLink-->: GPU : * * : : C2C : SoC : * * : SoC : C2C : : * * ::::::: ::::::::: * * ::::::::: ::::::: * * | | * * | | * * | | * * | | * * &&&&&&&& &&&&&&&& * * &&&&&&&& &&&&&&&& * * & GMEM & & CMEM & * * & CMEM & & GMEM & * * &&&&&&&& &&&&&&&& * * &&&&&&&& &&&&&&&& * * * * * ********************************* ********************************* GMEM = GPU Memory (e.g. HBM) CMEM = CPU Memory (e.g. LPDDR5X)}hjsbah}(h]h ]h"]h$]h&]jj uh1jhhhKhjubh line_block)}(hhh](hh)}(hhh]h}(h]h ]h"]h$]h&]uh1hhjindentKhhhKubj)}(hGFollowing table contains traffic coverage of Grace SoC PMU in socket-A:h]hGFollowing table contains traffic coverage of Grace SoC PMU in socket-A:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hjKhjhhhKubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hX{+--------------+-------+-----------+-----------+-----+----------+----------+ | | Source | + +-------+-----------+-----------+-----+----------+----------+ | Destination | |GPU ATS |GPU Not-ATS| | Socket-B | Socket-B | | |PCI R/W|Translated,|Translated | CPU | CPU/PCIE1| GPU/PCIE2| | | |EGM | | | | | +==============+=======+===========+===========+=====+==========+==========+ | Local | PCIE |NVLink-C2C0|NVLink-C2C1| SCF | SCF PMU | CNVLink | | SYSRAM/CMEM | PMU |PMU |PMU | PMU | | PMU | +--------------+-------+-----------+-----------+-----+----------+----------+ | Local GMEM | PCIE | N/A |NVLink-C2C1| SCF | SCF PMU | CNVLink | | | PMU | |PMU | PMU | | PMU | +--------------+-------+-----------+-----------+-----+----------+----------+ | Remote | PCIE |NVLink-C2C0|NVLink-C2C1| SCF | | | | SYSRAM/CMEM | PMU |PMU |PMU | PMU | N/A | N/A | | over CNVLink | | | | | | | +--------------+-------+-----------+-----------+-----+----------+----------+ | Remote GMEM | PCIE |NVLink-C2C0|NVLink-C2C1| SCF | | | | over CNVLink | PMU |PMU |PMU | PMU | N/A | N/A | +--------------+-------+-----------+-----------+-----+----------+----------+ PCIE1 traffic represents strongly ordered (SO) writes. PCIE2 traffic represents reads and relaxed ordered (RO) writes.h]hX{+--------------+-------+-----------+-----------+-----+----------+----------+ | | Source | + +-------+-----------+-----------+-----+----------+----------+ | Destination | |GPU ATS |GPU Not-ATS| | Socket-B | Socket-B | | |PCI R/W|Translated,|Translated | CPU | CPU/PCIE1| GPU/PCIE2| | | |EGM | | | | | +==============+=======+===========+===========+=====+==========+==========+ | Local | PCIE |NVLink-C2C0|NVLink-C2C1| SCF | SCF PMU | CNVLink | | SYSRAM/CMEM | PMU |PMU |PMU | PMU | | PMU | +--------------+-------+-----------+-----------+-----+----------+----------+ | Local GMEM | PCIE | N/A |NVLink-C2C1| SCF | SCF PMU | CNVLink | | | PMU | |PMU | PMU | | PMU | +--------------+-------+-----------+-----------+-----+----------+----------+ | Remote | PCIE |NVLink-C2C0|NVLink-C2C1| SCF | | | | SYSRAM/CMEM | PMU |PMU |PMU | PMU | N/A | N/A | | over CNVLink | | | | | | | +--------------+-------+-----------+-----------+-----+----------+----------+ | Remote GMEM | PCIE |NVLink-C2C0|NVLink-C2C1| SCF | | | | over CNVLink | PMU |PMU |PMU | PMU | N/A | N/A | +--------------+-------+-----------+-----------+-----+----------+----------+ PCIE1 traffic represents strongly ordered (SO) writes. PCIE2 traffic represents reads and relaxed ordered (RO) writes.}hjsbah}(h]h ]h"]h$]h&]jj uh1jhhhMhjubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubh)}(hXX **NVIDIA Grace CPU Superchip**: two Grace CPU SoCs are connected. Example configuration with two Grace SoCs:: ******************* ******************* * SOCKET-A * * SOCKET-B * * * * * * :::::::: * * :::::::: * * : PCIE : * * : PCIE : * * :::::::: * * :::::::: * * | * * | * * | * * | * * ::::::::: * * ::::::::: * * : : * * : : * * : Grace :<--------NVLink------->: Grace : * * : SoC : * C2C * : SoC : * * ::::::::: * * ::::::::: * * | * * | * * | * * | * * &&&&&&&& * * &&&&&&&& * * & CMEM & * * & CMEM & * * &&&&&&&& * * &&&&&&&& * * * * * ******************* ******************* GMEM = GPU Memory (e.g. HBM) CMEM = CPU Memory (e.g. LPDDR5X) | | Following table contains traffic coverage of Grace SoC PMU in socket-A: :: +-----------------+-----------+---------+----------+-------------+ | | Source | + +-----------+---------+----------+-------------+ | Destination | | | Socket-B | Socket-B | | | PCI R/W | CPU | CPU/PCIE1| PCIE2 | | | | | | | +=================+===========+=========+==========+=============+ | Local | PCIE PMU | SCF PMU | SCF PMU | NVLink-C2C0 | | SYSRAM/CMEM | | | | PMU | +-----------------+-----------+---------+----------+-------------+ | Remote | | | | | | SYSRAM/CMEM | PCIE PMU | SCF PMU | N/A | N/A | | over NVLink-C2C | | | | | +-----------------+-----------+---------+----------+-------------+ PCIE1 traffic represents strongly ordered (SO) writes. PCIE2 traffic represents reads and relaxed ordered (RO) writes.h](h)}(hA**NVIDIA Grace CPU Superchip**: two Grace CPU SoCs are connected.h](j)}(h**NVIDIA Grace CPU Superchip**h]hNVIDIA Grace CPU Superchip}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubh#: two Grace CPU SoCs are connected.}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj/ubh)}(h+Example configuration with two Grace SoCs::h]h*Example configuration with two Grace SoCs:}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj/ubj)}(hXN******************* ******************* * SOCKET-A * * SOCKET-B * * * * * * :::::::: * * :::::::: * * : PCIE : * * : PCIE : * * :::::::: * * :::::::: * * | * * | * * | * * | * * ::::::::: * * ::::::::: * * : : * * : : * * : Grace :<--------NVLink------->: Grace : * * : SoC : * C2C * : SoC : * * ::::::::: * * ::::::::: * * | * * | * * | * * | * * &&&&&&&& * * &&&&&&&& * * & CMEM & * * & CMEM & * * &&&&&&&& * * &&&&&&&& * * * * * ******************* ******************* GMEM = GPU Memory (e.g. HBM) CMEM = CPU Memory (e.g. LPDDR5X)h]hXN******************* ******************* * SOCKET-A * * SOCKET-B * * * * * * :::::::: * * :::::::: * * : PCIE : * * : PCIE : * * :::::::: * * :::::::: * * | * * | * * | * * | * * ::::::::: * * ::::::::: * * : : * * : : * * : Grace :<--------NVLink------->: Grace : * * : SoC : * C2C * : SoC : * * ::::::::: * * ::::::::: * * | * * | * * | * * | * * &&&&&&&& * * &&&&&&&& * * & CMEM & * * & CMEM & * * &&&&&&&& * * &&&&&&&& * * * * * ******************* ******************* GMEM = GPU Memory (e.g. HBM) CMEM = CPU Memory (e.g. LPDDR5X)}hj]sbah}(h]h ]h"]h$]h&]jj uh1jhhhM hj/ubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]uh1hhjkjKhhhKubj)}(hGFollowing table contains traffic coverage of Grace SoC PMU in socket-A:h]hGFollowing table contains traffic coverage of Grace SoC PMU in socket-A:}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hjKhjkhhhKubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hX!+-----------------+-----------+---------+----------+-------------+ | | Source | + +-----------+---------+----------+-------------+ | Destination | | | Socket-B | Socket-B | | | PCI R/W | CPU | CPU/PCIE1| PCIE2 | | | | | | | +=================+===========+=========+==========+=============+ | Local | PCIE PMU | SCF PMU | SCF PMU | NVLink-C2C0 | | SYSRAM/CMEM | | | | PMU | +-----------------+-----------+---------+----------+-------------+ | Remote | | | | | | SYSRAM/CMEM | PCIE PMU | SCF PMU | N/A | N/A | | over NVLink-C2C | | | | | +-----------------+-----------+---------+----------+-------------+ PCIE1 traffic represents strongly ordered (SO) writes. PCIE2 traffic represents reads and relaxed ordered (RO) writes.h]hX!+-----------------+-----------+---------+----------+-------------+ | | Source | + +-----------+---------+----------+-------------+ | Destination | | | Socket-B | Socket-B | | | PCI R/W | CPU | CPU/PCIE1| PCIE2 | | | | | | | +=================+===========+=========+==========+=============+ | Local | PCIE PMU | SCF PMU | SCF PMU | NVLink-C2C0 | | SYSRAM/CMEM | | | | PMU | +-----------------+-----------+---------+----------+-------------+ | Remote | | | | | | SYSRAM/CMEM | PCIE PMU | SCF PMU | N/A | N/A | | over NVLink-C2C | | | | | +-----------------+-----------+---------+----------+-------------+ PCIE1 traffic represents strongly ordered (SO) writes. PCIE2 traffic represents reads and relaxed ordered (RO) writes.}hjsbah}(h]h ]h"]h$]h&]jj uh1jhhhM=hj/ubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubeh}(h]h ]h"]h$]h&]jHjIuh1hhhhKhjhhubeh}(h](traffic-coveragejeh ]h"](traffic coverage*nvidia_uncore_pmu_traffic_coverage_sectioneh$]h&]uh1hhhhhhhhKjE}jjsjG}jjsubeh}(h]7nvidia-tegra-soc-uncore-performance-monitoring-unit-pmuah ]h"]9nvidia tegra soc uncore performance monitoring unit (pmu)ah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}(jv]jkaj]jaunameids}(jjj|jyjBjvjAj>j"jjjjjjjjjjju nametypes}(jj|jBjAj"jjjjjuh}(jhjyjJjvjj>jjjIjj%jjjjjjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages](hsystem_message)}(hhh]h)}(hhh]h5Hyperlink target "scf-pmu-section" is not referenced.}hjF sbah}(h]h ]h"]h$]h&]uh1hhjC ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineKuh1jA ubjB )}(hhh]h)}(hhh]hPHyperlink target "nvidia-uncore-pmu-traffic-coverage-section" is not referenced.}hja sbah}(h]h ]h"]h$]h&]uh1hhj^ ubah}(h]h ]h"]h$]h&]levelKtypej[ sourcehlineKuh1jA ube transformerN include_log] decorationNhhub.