저는 딥 러닝 분야에서 일하고 있으며 GPU 파이프라인의 병목 현상을 식별하려고 노력하고 있습니다.
우리는 4개의 NVIDIA Titan RTX가 장착된 Intel Xeon 마더보드에서 Ubuntu를 실행하고 있습니다. GPU 메모리 사용량이 약 97%임에도 불구하고 nvidia-smi로 측정한 GPU 사용량은 꽤 낮은 것 같습니다.
그래서 버스가 병목 현상이 있는지 알아보려고 합니다.
다운로드했습니다PCMPCIe 3.0 x16 트래픽을 모니터링하기 위해 이를 실행하고 있습니다.
Processor Counter Monitor: PCIe Bandwidth Monitoring Utility
This utility measures PCIe bandwidth in real-time
PCIe event definitions (each event counts as a transfer):
PCIe read events (PCI devices reading from memory - application writes to disk/network/PCIe device):
PCIeRdCur* - PCIe read current transfer (full cache line)
On Haswell Server PCIeRdCur counts both full/partial cache lines
RFO* - Demand Data RFO
CRd* - Demand Code Read
DRd - Demand Data Read
PCIe write events (PCI devices writing to memory - application reads from disk/network/PCIe device):
ItoM - PCIe write full cache line
RFO - PCIe partial Write
CPU MMIO events (CPU reading/writing to PCIe devices):
PRd - MMIO Read [Haswell Server only] (Partial Cache Line)
WiL - MMIO Write (Full/Partial)
...
Socket 0: 2 memory controllers detected with total number of 6 channels. 3 QPI ports detected. 2 M2M (mesh to memory) blocks detected.
Socket 1: 2 memory controllers detected with total number of 6 channels. 3 QPI ports detected. 2 M2M (mesh to memory) blocks detected.
Trying to use Linux perf events...
Successfully programmed on-core PMU using Linux perf
Link 3 is disabled
Link 3 is disabled
Socket 0
Max QPI link 0 speed: 23.3 GBytes/second (10.4 GT/second)
Max QPI link 1 speed: 23.3 GBytes/second (10.4 GT/second)
Socket 1
Max QPI link 0 speed: 23.3 GBytes/second (10.4 GT/second)
Max QPI link 1 speed: 23.3 GBytes/second (10.4 GT/second)
Detected Intel(R) Xeon(R) Gold 5122 CPU @ 3.60GHz "Intel(r) microarchitecture codename Skylake-SP" stepping 4 microcode level 0x200004d
Update every 1.0 seconds
delay_ms: 54
Skt | PCIeRdCur | RFO | CRd | DRd | ItoM | PRd | WiL
0 13 K 19 K 0 0 220 K 84 588
1 0 3024 0 0 0 0 264
-----------------------------------------------------------------------
* 13 K 22 K 0 0 220 K 84 852
잠시 동안 실제 값을 무시하십시오. 나는 훨씬 더 큰 가치를 가지고 있습니다. :-)
프로세스 제어 모니터를 사용하여 PCIe 소켓의 런타임 대역폭을 어떻게 계산합니까?
소켓이 두 개만 나열되는 이유는 무엇입니까?
답변1
소켓은 PCIe 슬롯이나 장치가 아닌 CPU 소켓을 나타냅니다. CPU 소켓이 2개 있는 시스템이 있습니까? --help 출력은 CPU 소켓당 출력 대역폭에 대한 -B 스위치를 설명합니다(부분 작업에 대한 주의 사항도 참조하세요). pci-iio.x는 PCIe 장치당 대역폭을 표시하는 다른 유틸리티입니다.