Vietnamese (machine translation)

Lưu ý

Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.

Bản gốc:

NVIDIA Tegra410 SoC Uncore Performance Monitoring Unit (PMU)

Người dịch:

Google Translate (machine translation)

Phiên bản gốc:

8541d8f725c6

Cảnh báo

Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.

Bộ giám sát hiệu suất Uncore NVIDIA Tegra410 SoC (PMU)

NVIDIA Tegra410 SoC bao gồm nhiều PMU hệ thống khác nhau để đo hiệu suất chính các số liệu như băng thông bộ nhớ, độ trễ và mức sử dụng:

  • Vải kết hợp thống nhất (UCF)

  • PCIE

  • PCIE-TGT

  • Độ trễ của bộ nhớ CPU (CMEM)

  • NVLink-C2C

  • NV-CLink

  • NV-DLink

Trình điều khiển PMU

Trình điều khiển PMU mô tả các sự kiện và cấu hình có sẵn của mỗi PMU trong sysfs. Vui lòng xem các phần bên dưới để biết đường dẫn sysfs của từng PMU. thích trình điều khiển PMU không lõi khác, trình điều khiển cung cấp thuộc tính sysfs “cpumask” để hiển thị id CPU được sử dụng để xử lý sự kiện PMU. Ngoài ra còn có “liên kết_cpus” Thuộc tính sysfs, chứa danh sách các CPU được liên kết với phiên bản PMU.

UCF PMU

Cấu trúc kết hợp thống nhất (UCF) trong NVIDIA Tegra410 SoC đóng vai trò như một bộ đệm được phân phối, cấp độ cuối cùng cho Bộ nhớ CPU và Bộ nhớ CXL và bộ đệm nhất quán kết nối hỗ trợ sự gắn kết phần cứng trên nhiều bộ nhớ đệm mạch lạc đại lý, bao gồm:

  • Cụm CPU * GPU * Bộ điều khiển đặt hàng PCIe (OCU) * Những người yêu cầu kết hợp IO khác

Các sự kiện và tùy chọn cấu hình của thiết bị PMU này được mô tả trong sysfs, xem /sys/bus/event_source/devices/nvidia_ucf_pmu_<socket-id>.

Một số sự kiện có sẵn trong PMU này có thể được sử dụng để đo băng thông và sử dụng:

*slc_access_rd: đếm số lượng yêu cầu đọc tới SLC.

*slc_access_wr: đếm số lượng yêu cầu ghi vào SLC. * slc_bytes_rd: đếm số byte được truyền bởi slc_access_rd. * slc_bytes_wr: đếm số byte được truyền bởi slc_access_wr. * mem_access_rd: đếm số lượng yêu cầu đọc vào bộ nhớ cục bộ hoặc từ xa. * mem_access_wr: đếm số lượng yêu cầu ghi vào bộ nhớ cục bộ hoặc từ xa. * mem_bytes_rd: đếm số byte được mem_access_rd truyền. * mem_bytes_wr: đếm số byte được mem_access_wr truyền. * chu kỳ: đếm số chu kỳ UCF.

Băng thông trung bình được tính như sau:

AVG_SLC_READ_BANDWIDTH_IN_GBPS = SLC_BYTES_RD / ELAPSED_TIME_IN_NS

AVG_SLC_WRITE_BANDWIDTH_IN_GBPS = SLC_BYTES_WR / ELAPSED_TIME_IN_NS AVG_MEM_READ_BANDWIDTH_IN_GBPS = MEM_BYTES_RD / ELAPSED_TIME_IN_NS AVG_MEM_WRITE_BANDWIDTH_IN_GBPS = MEM_BYTES_WR / ELAPSED_TIME_IN_NS

Tỷ lệ yêu cầu trung bình được tính như sau:

AVG_SLC_READ_REQUEST_RATE = SLC_ACCESS_RD / CYCLES

AVG_SLC_WRITE_REQUEST_RATE = SLC_ACCESS_WR / CYCLES AVG_MEM_READ_REQUEST_RATE = MEM_ACCESS_RD / CYCLES AVG_MEM_WRITE_REQUEST_RATE = MEM_ACCESS_WR / CYCLES

Bạn có thể tìm thêm thông tin chi tiết về những sự kiện khác có sẵn trong Tegra410 SoC hướng dẫn tham khảo kỹ thuật.

Các sự kiện có thể được lọc dựa trên nguồn hoặc đích. Bộ lọc nguồn cho biết bộ khởi tạo lưu lượng đến SLC, ví dụ: CPU cục bộ, thiết bị không phải CPU hoặc ổ cắm từ xa. Bộ lọc đích chỉ định loại bộ nhớ đích, ví dụ: bộ nhớ hệ thống cục bộ (CMEM), bộ nhớ GPU cục bộ (GMEM) hoặc bộ nhớ từ xa. các Phân loại cục bộ/từ xa của bộ lọc đích dựa trên nhà ổ cắm của địa chỉ, không phải nơi dữ liệu thực sự cư trú. Có sẵn bộ lọc được mô tả trong /sys/bus/event_source/devices/nvidia_ucf_pmu_<socket-id>/format/.

Danh sách bộ lọc sự kiện UCF PMU:

  • Lọc nguồn:

  • src_loc_cpu: nếu được đặt, hãy đếm các sự kiện từ CPU cục bộ * src_loc_noncpu: nếu được đặt, hãy đếm các sự kiện từ thiết bị cục bộ không phải CPU * src_rem: nếu được đặt, đếm các sự kiện từ các thiết bị CPU, GPU, PCIE của ổ cắm từ xa

  • Bộ lọc đích:

  • dst_loc_cmem: nếu được đặt, sẽ đếm các sự kiện vào địa chỉ bộ nhớ hệ thống cục bộ (CMEM) * dst_loc_gmem: nếu được đặt, hãy đếm các sự kiện vào địa chỉ bộ nhớ GPU (GMEM) cục bộ * dst_loc_other: nếu được đặt, hãy đếm các sự kiện vào địa chỉ bộ nhớ CXL cục bộ * dst_rem: nếu được đặt, đếm các sự kiện tới địa chỉ bộ nhớ CPU, GPU và CXL của ổ cắm từ xa

Nếu nguồn không được chỉ định, PMU sẽ đếm các sự kiện từ tất cả các nguồn. Nếu đích không được chỉ định, PMU sẽ tính các sự kiện cho tất cả các đích.

Cách sử dụng ví dụ:

  • Đếm id sự kiện 0x0 trong socket 0 từ tất cả các nguồn và tới tất cả các đích:

chỉ số hoàn hảo -a -e nvidia_ucf_pmu_0/event=0x0/

  • Đếm id sự kiện 0x0 trong socket 0 với bộ lọc nguồn = CPU cục bộ và đích bộ lọc = bộ nhớ hệ thống cục bộ (CMEM):

chỉ số hoàn hảo -a -e nvidia_ucf_pmu_0/event=0x0,src_loc_cpu=0x1,dst_loc_cmem=0x1/

  • Đếm id sự kiện 0x0 trong ổ cắm 1 với bộ lọc nguồn = thiết bị cục bộ không phải CPU và bộ lọc đích = bộ nhớ từ xa:

chỉ số hoàn hảo -a -e nvidia_ucf_pmu_1/event=0x0,src_loc_noncpu=0x1,dst_rem=0x1/

PCIE PMU

PMU này nằm trong cấu trúc SOC kết nối tổ hợp gốc PCIE (RC) và hệ thống con bộ nhớ. Nó giám sát tất cả lưu lượng đọc/ghi từ (các) cổng gốc hoặc một BDF cụ thể trong PCIE RC vào bộ nhớ cục bộ hoặc từ xa. Có một PMU mỗi PCIE RC trong SoC. Mỗi RC có thể có tối đa 16 làn đường được chia thành lên đến 8 cổng gốc. Lưu lượng từ mỗi cổng gốc có thể được lọc bằng RP hoặc Bộ lọc BDF. Ví dụ: chỉ định “src_rp_mask=0xFF” có nghĩa là bộ đếm PMU sẽ nắm bắt lưu lượng truy cập từ tất cả các RP. Vui lòng xem bên dưới để biết thêm chi tiết.

Các sự kiện và tùy chọn cấu hình của thiết bị PMU này được mô tả trong sysfs, xem /sys/bus/event_source/devices/nvidia_pcie_pmu_<socket-id>_rc_<pcie-rc-id>.

Các sự kiện trong PMU này có thể được sử dụng để đo băng thông, mức sử dụng và độ trễ:

*rd_req: đếm số lượng yêu cầu đọc của thiết bị PCIE.
  • wr_req: đếm số lượng yêu cầu ghi của thiết bị PCIE.

*rd_bytes: đếm số byte được truyền bởi rd_req. * wr_bytes: đếm số byte được truyền bởi wr_req. * rd_cum_outs: đếm số rd_req còn tồn đọng trong mỗi chu kỳ. * chu kỳ: đếm chu kỳ xung nhịp của vải SOC được kết nối với giao diện PCIE.

Băng thông trung bình được tính như sau:

AVG_RD_BANDWIDTH_IN_GBPS = RD_BYTES / ELAPSED_TIME_IN_NS

AVG_WR_BANDWIDTH_IN_GBPS = WR_BYTES / ELAPSED_TIME_IN_NS

Tỷ lệ yêu cầu trung bình được tính như sau:

AVG_RD_REQUEST_RATE = RD_REQ / CYCLES

AVG_WR_REQUEST_RATE = WR_REQ / CYCLES

Độ trễ trung bình được tính như sau:

FREQ_IN_GHZ = CYCLES / ELAPSED_TIME_IN_NS

AVG_LATENCY_IN_CYCLES = RD_CUM_OUTS / RD_REQ AVERAGE_LATENCY_IN_NS = AVG_LATENCY_IN_CYCLES / FREQ_IN_GHZ

Các sự kiện PMU có thể được lọc dựa trên nguồn và đích lưu lượng truy cập. Bộ lọc nguồn cho biết các thiết bị PCIE sẽ được giám sát. các bộ lọc đích chỉ định loại bộ nhớ đích, ví dụ: hệ thống cục bộ bộ nhớ (CMEM), bộ nhớ GPU cục bộ (GMEM) hoặc bộ nhớ từ xa. Địa phương/từ xa việc phân loại bộ lọc đích dựa trên ổ cắm chính của địa chỉ chứ không phải nơi dữ liệu thực sự cư trú. Những bộ lọc này có thể được tìm thấy trong /sys/bus/event_source/devices/nvidia_pcie_pmu_<socket-id>_rc_<pcie-rc-id>/format/.

Danh sách các bộ lọc sự kiện:

  • Lọc nguồn:

  • src_rp_mask: bitmask của cổng gốc sẽ được giám sát. Mỗi bit trong này

    bitmask đại diện cho chỉ số RP trong RC. Nếu bit được đặt, tất cả các thiết bị trong RP liên quan sẽ được theo dõi. Ví dụ: “src_rp_mask=0xF” sẽ giám sát thiết bị ở cổng gốc 0 đến 3.

    • src_bdf: BDF sẽ được theo dõi. Đây là giá trị 16 bit theo công thức: (bus << 8) + (thiết bị << 3) + (chức năng). Ví dụ, giá trị của BDF 27:01.1 là 0x2781.

    • src_bdf_en: bật bộ lọc BDF. Nếu điều này được đặt, giá trị bộ lọc BDF trong “src_bdf” được sử dụng để lọc lưu lượng.

Lưu ý rằng các bộ lọc Root-Port và BDF loại trừ lẫn nhau và PMU trong

mỗi RC chỉ có thể có một bộ lọc BDF cho toàn bộ bộ đếm. Nếu bộ lọc BDF được bật, giá trị bộ lọc BDF sẽ được áp dụng cho tất cả các sự kiện.

  • Bộ lọc đích:

  • dst_loc_cmem: nếu được đặt, sẽ đếm các sự kiện vào địa chỉ bộ nhớ hệ thống cục bộ (CMEM) * dst_loc_gmem: nếu được đặt, hãy đếm các sự kiện vào địa chỉ bộ nhớ GPU (GMEM) cục bộ * dst_loc_pcie_p2p: nếu được đặt, hãy đếm các sự kiện vào địa chỉ ngang hàng PCIE cục bộ * dst_loc_pcie_cxl: nếu được đặt, hãy đếm các sự kiện vào địa chỉ bộ nhớ CXL cục bộ * dst_rem: nếu được đặt, đếm các sự kiện vào địa chỉ bộ nhớ từ xa

Nếu bộ lọc nguồn không được chỉ định, PMU sẽ đếm các sự kiện từ tất cả các nguồn gốc cổng. Nếu bộ lọc đích không được chỉ định, PMU sẽ đếm các sự kiện tới mọi điểm đến.

Cách sử dụng ví dụ:

  • Đếm id sự kiện 0x0 từ cổng gốc 0 của PCIE RC-0 trên ổ cắm 0 nhắm mục tiêu tất cả điểm đến:

chỉ số hoàn hảo -a -e nvidia_pcie_pmu_0_rc_0/event=0x0,src_rp_mask=0x1/

  • Đếm id sự kiện 0x1 từ cổng gốc 0 và 1 của PCIE RC-1 trên socket 0 và chỉ nhắm mục tiêu CMEM cục bộ của ổ cắm 0:

chỉ số hoàn hảo -a -e nvidia_pcie_pmu_0_rc_1/event=0x1,src_rp_mask=0x3,dst_loc_cmem=0x1/

  • Đếm id sự kiện 0x2 từ cổng gốc 0 của PCIE RC-2 trên ổ cắm 1 nhắm mục tiêu tất cả điểm đến:

chỉ số hoàn hảo -a -e nvidia_pcie_pmu_1_rc_2/event=0x2,src_rp_mask=0x1/

  • Đếm id sự kiện 0x3 từ cổng gốc 0 và 1 của PCIE RC-3 trên socket 1 và chỉ nhắm mục tiêu CMEM cục bộ của ổ cắm 1:

chỉ số hoàn hảo -a -e nvidia_pcie_pmu_1_rc_3/event=0x3,src_rp_mask=0x3,dst_loc_cmem=0x1/

  • Đếm id sự kiện 0x4 từ BDF 01:01.0 của PCIE RC-4 trên ổ cắm 0 nhắm mục tiêu tất cả điểm đến:

chỉ số hoàn hảo -a -e nvidia_pcie_pmu_0_rc_4/event=0x4,src_bdf=0x0180,src_bdf_en=0x1/

Ánh xạ số phân đoạn lspci RC# to

Việc ánh xạ số phân đoạn lspci RC# to có thể không hề đơn giản; do đó có một chiếc NVIDIA mới Thanh ghi Khả năng cụ thể của nhà cung cấp được chỉ định (DVSEC) được thêm vào không gian cấu hình PCIE cho mỗi RP. DVSEC này có id nhà cung cấp “10de” và id DVSEC là “0x4”. Thanh ghi DVSEC chứa thông tin sau để ánh xạ các thiết bị PCIE trong RP trở lại RC# của nó:

  • Bus# (byte 0xc): số bus được báo cáo bởi đầu ra lspci - Segment# (byte 0xd): số đoạn được báo cáo bởi đầu ra lspci - RP# (byte 0xe): số cổng được báo cáo bởi thuộc tính LnkCap từ lspci cho thiết bị có khả năng Root Port - RC# (byte 0xf): số phức gốc liên kết với RP - Socket# (byte 0x10): số socket liên kết với RP

Tập lệnh mẫu để ánh xạ lspci BDF tới RC# and socket#:

#!/bin/bash
trong khi đọc bdf còn lại; làm
dvsec4_reg=$(lspci -vv -s $bdf | awk ‘
/Nhà cung cấp được chỉ định cụ thể: Nhà cung cấp=10de ID=0004/ {

match($0, /[([0-9a-fA-F]+)/, arr); in “0x” mảng[1]; lối ra

}

‘) nếu [ -n “$dvsec4_reg” ]; sau đó

bus=$(setpci -s $bdf $(printf ‘0x%x’ $((${dvsec4_reg} + 0xc))).b) Segment=$(setpci -s $bdf $(printf ‘0x%x’ $((${dvsec4_reg} + 0xd))).b) rp=$(setpci -s $bdf $(printf ‘0x%x’ $((${dvsec4_reg} + 0xe))).b) rc=$(setpci -s $bdf $(printf ‘0x%x’ $((${dvsec4_reg} + 0xf))).b) socket=$(setpci -s $bdf $(printf ‘0x%x’ $((${dvsec4_reg} + 0x10))).b) echo “$bdf: Bus=$bus, Segment=$segment, RP=$rp, RC=$rc, Socket=$socket”

fi

xong < <(lspci -d 10de:)

Đầu ra ví dụ:

0001:00:00.0: Bus=00, Phân đoạn=01, RP=00, RC=00, Ổ cắm=00

0002:80:00.0: Bus=80, Phân đoạn=02, RP=01, RC=01, Ổ cắm=00 0002:a0:00.0: Bus=a0, Phân đoạn=02, RP=02, RC=01, Ổ cắm=00 0002:c0:00.0: Bus=c0, Phân đoạn=02, RP=03, RC=01, Ổ cắm=00 0002:e0:00.0: Bus=e0, Phân đoạn=02, RP=04, RC=01, Ổ cắm=00 0003:00:00.0: Bus=00, Phân đoạn=03, RP=00, RC=02, Ổ cắm=00 0004:00:00.0: Bus=00, Đoạn=04, RP=00, RC=03, Ổ cắm=00 0005:00:00.0: Bus=00, Phân đoạn=05, RP=00, RC=04, Ổ cắm=00 0005:40:00.0: Bus=40, Đoạn=05, RP=01, RC=04, Ổ cắm=00 0005:c0:00.0: Bus=c0, Phân đoạn=05, RP=02, RC=04, Ổ cắm=00 0006:00:00.0: Bus=00, Phân đoạn=06, RP=00, RC=05, Ổ cắm=00 0009:00:00.0: Bus=00, Phân đoạn=09, RP=00, RC=00, Ổ cắm=01 000a:80:00.0: Bus=80, Phân đoạn=0a, RP=01, RC=01, Ổ cắm=01 000a:a0:00.0: Bus=a0, Phân đoạn=0a, RP=02, RC=01, Ổ cắm=01 000a:e0:00.0: Bus=e0, Phân đoạn=0a, RP=03, RC=01, Ổ cắm=01 000b:00:00.0: Bus=00, Phân đoạn=0b, RP=00, RC=02, Ổ cắm=01 000c:00:00.0: Bus=00, Phân đoạn=0c, RP=00, RC=03, Ổ cắm=01 000d:00:00.0: Bus=00, Phân đoạn=0d, RP=00, RC=04, Ổ cắm=01 000d:40:00.0: Bus=40, Đoạn=0d, RP=01, RC=04, Ổ cắm=01 000d:c0:00.0: Bus=c0, Phân đoạn=0d, RP=02, RC=04, Ổ cắm=01 000e:00:00.0: Bus=00, Đoạn=0e, RP=00, RC=05, Ổ cắm=01

PCIE-TGT PMU

PMU này nằm trong cấu trúc SOC kết nối tổ hợp gốc PCIE (RC) và hệ thống con bộ nhớ. Nó giám sát lưu lượng truy cập nhắm mục tiêu trong phạm vi PCIE BAR và CXL HDM. Có một PCIE-TGT PMU trên mỗi PCIE RC trong SoC. Mỗi RC trong Tegra410 SoC có thể có tối đa 16 làn đường có thể được chia thành tối đa 8 cổng gốc (RP). PMU cung cấp bộ lọc RP để đếm lưu lượng truy cập PCIE BAR đến mỗi RP và bộ lọc địa chỉ tới đếm quyền truy cập vào các phạm vi PCIE BAR hoặc CXL HDM. Các chi tiết của bộ lọc được được mô tả trong các phần sau.

Ánh xạ số phân đoạn lspci RC# to tương tự như PCIE PMU. Xin vui lòng xem ZZ0000ZZ để biết thêm thông tin.

Các sự kiện và tùy chọn cấu hình của thiết bị PMU này có sẵn trong sysfs, xem /sys/bus/event_source/devices/nvidia_pcie_tgt_pmu_<socket-id>_rc_<pcie-rc-id>.

Các sự kiện trong PMU này có thể được sử dụng để đo băng thông và mức sử dụng:

*rd_req: đếm số lượng yêu cầu đọc tới PCIE.
  • wr_req: đếm số lượng yêu cầu ghi vào PCIE.

*rd_bytes: đếm số byte được truyền bởi rd_req. * wr_bytes: đếm số byte được truyền bởi wr_req. * chu kỳ: đếm chu kỳ xung nhịp của vải SOC được kết nối với giao diện PCIE.

Băng thông trung bình được tính như sau:

AVG_RD_BANDWIDTH_IN_GBPS = RD_BYTES / ELAPSED_TIME_IN_NS

AVG_WR_BANDWIDTH_IN_GBPS = WR_BYTES / ELAPSED_TIME_IN_NS

Tỷ lệ yêu cầu trung bình được tính như sau:

AVG_RD_REQUEST_RATE = RD_REQ / CYCLES

AVG_WR_REQUEST_RATE = WR_REQ / CYCLES

Các sự kiện PMU có thể được lọc dựa trên cổng đích hoặc cổng đích phạm vi địa chỉ. Lọc dựa trên RP chỉ khả dụng cho lưu lượng truy cập PCIE BAR. Bộ lọc địa chỉ hoạt động cho cả hai phạm vi PCIE BAR và CXL HDM. Các bộ lọc này có thể được tìm thấy trong sysfs, xem /sys/bus/event_source/devices/nvidia_pcie_tgt_pmu_<socket-id>_rc_<pcie-rc-id>/format/.

Cài đặt bộ lọc đích:

  • dst_rp_mask: bitmask để chọn (các) cổng gốc để giám sát. Ví dụ. “dst_rp_mask=0xFF” tương ứng với tất cả các cổng gốc (từ 0 đến 7) trong PCIE RC. Lưu ý rằng bộ lọc này chỉ khả dụng cho lưu lượng truy cập PCIE BAR.

  • dst_addr_base: Địa chỉ cơ sở bộ lọc BAR hoặc CXL HDM.

  • dst_addr_mask: Mặt nạ địa chỉ bộ lọc BAR hoặc CXL HDM.

  • dst_addr_en: bật bộ lọc phạm vi địa chỉ BAR hoặc CXL HDM. Nếu điều này được thiết lập, dải địa chỉ được chỉ định bởi “dst_addr_base” và “dst_addr_mask” sẽ được sử dụng để lọc địa chỉ lưu lượng truy cập PCIE BAR và CXL HDM. PMU sử dụng so sánh sau để xác định xem địa chỉ đích lưu lượng có nằm trong phạm vi bộ lọc hay không:

(addr của txn & dst_addr_mask) == (dst_addr_base & dst_addr_mask)

Nếu so sánh thành công thì sự kiện sẽ được tính.

Nếu bộ lọc đích không được chỉ định, bộ lọc RP sẽ được cấu hình theo mặc định để đếm lưu lượng truy cập PCIE BAR đến tất cả các cổng gốc.

Cách sử dụng ví dụ:

  • Đếm id sự kiện 0x0 vào cổng gốc 0 và 1 của PCIE RC-0 trên socket 0:

chỉ số hoàn hảo -a -e nvidia_pcie_tgt_pmu_0_rc_0/event=0x0,dst_rp_mask=0x3/

  • Đếm id sự kiện 0x1 để truy cập vào dải địa chỉ PCIE BAR hoặc CXL HDM 0x10000 đến 0x100FF trên ổ cắm 0 PCIE RC-1:

chỉ số hoàn hảo -a -e nvidia_pcie_tgt_pmu_0_rc_1/event=0x1,dst_addr_base=0x10000,dst_addr_mask=0xFFF00,dst_addr_en=0x1/

Độ trễ bộ nhớ CPU (CMEM) PMU

PMU này giám sát các sự kiện độ trễ của các yêu cầu đọc bộ nhớ từ rìa của Vải kết hợp thống nhất (UCF) đến CPU DRAM cục bộ:

  • Bộ đếm RD_REQ: đếm số yêu cầu đọc (32B mỗi yêu cầu). * Bộ đếm RD_CUM_OUTS: bộ đếm yêu cầu chưa thanh toán tích lũy, theo dõi

    yêu cầu đọc đang diễn ra bao nhiêu chu kỳ.

    • Bộ đếm CYCLES: đếm số chu kỳ đã trôi qua.

Độ trễ trung bình được tính như sau:

FREQ_IN_GHZ = CYCLES / ELAPSED_TIME_IN_NS

AVG_LATENCY_IN_CYCLES = RD_CUM_OUTS / RD_REQ AVERAGE_LATENCY_IN_NS = AVG_LATENCY_IN_CYCLES / FREQ_IN_GHZ

Các sự kiện và tùy chọn cấu hình của thiết bị PMU này được mô tả trong sysfs, xem /sys/bus/event_source/devices/nvidia_cmem_latency_pmu_<socket-id>.

Ví dụ sử dụng:

chỉ số hoàn hảo -a -e ‘{nvidia_cmem_latency_pmu_0/rd_req/,nvidia_cmem_latency_pmu_0/rd_cum_outs/,nvidia_cmem_latency_pmu_0/cycles/}’