대역폭 벤치마크 (rblnBandwidthLatencyTest)¶
rblnBandwidthLatencyTest는 호스트와 NPU 간, 또는 NPU 간 전송 성능을 측정하고 다음을 보고합니다:
- 대역폭 결과 (GB/s)
- 지연 시간 결과 (us)
- NPU 연결성 (거리 행렬) 및 토폴로지 컨텍스트
Quick Start¶
기본 실행 (권장)
환경 및 토폴로지
Next steps¶
- 구체적인 명령+출력 쌍은 CLI Examples를 참조하세요.
--tcID 및 선택 규칙은 Test cases를 참조하세요.
Key Concepts and Terminology¶
Transfer directions¶
- H2D: host -> NPU
- D2H: NPU -> host
- D2D: NPU -> NPU (peer-to-peer)
NPU-to-NPU 전송에만 집중하려면 --only_d2d를 사용하세요.
Measurement configuration¶
--test_size: 페이로드 크기 (기본값:512M).--iteration_cnt: 측정 반복 횟수.--warmup: 측정 전 워밍업 반복을 한 번 실행합니다.
Target selection¶
- 식별자
- NPU ID:
--npu_id_list에서 사용하는 숫자 인덱스 (예:0,1). - Device label: 출력에 표시되는 런타임 레이블 (예:
rbln0,rbln1).
- NPU ID:
- 선택 규칙
--npu_id_list: NPU ID의 쉼표로 구분된 목록 (예:0,1,2).- 테스트 케이스
3-6의 경우, 관련된 NPU 집합은--npu_id_list가 제공되는지 여부에 따라 달라집니다.
Test cases¶
사용 가능한 테스트 케이스 ID는 --test_list로 출력됩니다. ID는 목록의 0-based 인덱스입니다.
이 페이지에 나중에 표시되는 --test_list 출력을 기반으로:
ID (--tc) |
--test_list 항목 |
목적 (고수준) |
|---|---|---|
0 |
RBLN_PERF_TEST_ALL |
기본 벤치마크 세트 실행 (대역폭 + 지연 시간 스윕 결합). |
1 |
RBLN_PERF_BANDWIDTH_TEST_ALL |
대역폭 전용 스윕. |
2 |
RBLN_PERF_LATENCY_TEST_ALL |
지연 시간 전용 스윕. |
3 |
RBLN_PERF_BANDWIDTH_TEST |
특정 쌍에 대한 대역폭 테스트 (--npu_id_list가 제공되지 않은 경우 "첫 번째 디바이스 vs 다른 디바이스"). |
4 |
RBLN_PERF_LATENCY_TEST |
특정 쌍에 대한 지연 시간 테스트 (--npu_id_list가 제공되지 않은 경우 "첫 번째 디바이스 vs 다른 디바이스"). |
5 |
RBLN_PERF_BIDIR_BANDWIDTH_TEST |
디바이스 간 대역폭 테스트. |
6 |
RBLN_PERF_PARALLEL_BANDWIDTH_TEST |
디바이스 간 대역폭 테스트. |
--tc 옵션에 ID를 지정하여 특정 테스트 케이스를 실행할 수 있습니다.
Note
환경에서 다른 --test_list 순서를 출력하는 경우, 위 테이블을 가이드로 사용하고 --test_list 출력을 진실의 원천으로 의존하세요.
Command Reference¶
General usage¶
Global options¶
이 옵션들은 기본 명령과 테스트 케이스 실행 경로에서 허용됩니다.
Common options
| Option | Description |
|---|---|
-h, --help |
도움말 메시지를 표시하고 종료합니다. |
-t, --timeout <int> |
타임아웃을 초 단위로 설정합니다. |
-i, --iteration_cnt <int> |
반복 횟수를 설정합니다. |
--warmup |
측정 전 워밍업 반복을 실행합니다. |
--test_size <str> |
데이터 크기를 설정합니다 (예: 4K, 128M, 1G). 기본값: 512M. |
--npu_id_list <list> |
NPU ID의 쉼표로 구분된 목록을 제공합니다 (예: 0,1,2). |
--only_d2d |
D2D 전송만 실행합니다. H2D/D2H 단계를 건너뜁니다. |
--test_list |
사용 가능한 테스트 케이스 목록을 출력합니다. |
--tc <int> |
실행할 테스트 케이스 ID를 선택합니다 (0-based 인덱스). --test_list의 인덱스를 사용하세요. |
--test_env_info |
시스템 및 디바이스 정보를 출력합니다. |
--skip_test_env_info |
테스트 실행 시 환경 정보 출력을 건너뜁니다. |
Advanced options
| Option | Description |
|---|---|
-n, --device_name <int> |
소스 디바이스 이름(ID)을 지정합니다. |
--get_perf <int> |
성능 보고를 활성화합니다 (1: average, 2: per_inference). |
--priority <int> |
컨텍스트 우선순위를 설정합니다 (0-2: min/normal/high, 3: kernel, 4: real-time). |
-r, --hdma_read <int> |
HDMA 방향을 설정합니다 (0: write, 1: read). |
--numa_node <int> |
NUMA 노드를 강제로 설정합니다 (기본값: -1). |
--data_pattern <int> |
데이터 패턴 값을 설정합니다. |
-f, --flags <int> |
컨텍스트 플래그를 설정합니다. |
-g <int> |
실행 그룹 ID를 설정합니다 (긴 옵션은 제공되지 않음). |
Tip
옵션에 대해 확실하지 않은 경우, Quick Start로 시작하고 전체 도움말 텍스트를 위해 rblnBandwidthLatencyTest --help에 의존하세요.
CLI Examples¶
Summary
| Output block | 의미 |
|---|---|
| System + device enumeration | CPU 및 디바이스 목록 (일반적으로 PCI BDF 및 NUMA 노드 포함). |
P2P Connectivity Distance |
NPU-to-NPU 연결성 행렬 (도구에서 보고). |
| Bandwidth table | HOST 및 rbln* 디바이스 레이블 전체의 처리량 결과 (GB/s). |
| Latency results | 마이크로초(us) 단위의 동기화 지연 시간. |
Command
Output (excerpt)
CPU : AMD EPYC 9254 24-Core Processor, Vendor ID : AuthenticAMD
Device :
0000:00:01.1/01:00.0 PCI bridge: Broadcom / LSI PEX890xx PCIe Gen 5 Switch (rev b0)
0000:05:00.0 NODE 0, rbln0, RBLN-CA25(rev-03), pciDevID: 0x1250, NUMA: 0, IOMMU: 70
0000:06:00.0 NODE 1, rbln1, RBLN-CA25(rev-03), pciDevID: 0x1250, NUMA: 0, IOMMU: 71
...
P2P Connectivity Distance
rbln0 0 4 4 ...
rbln1 4 0 4 ...
Device Write bandwidth (GB/s)
S \\ D HOST rbln0 rbln1 ...
HOST 0.00 50.91 50.72 ...
rbln0 59.56 0.00 59.31 ...
Device P2P sync latency (us)
rbln0 -> rbln1 2.07 (us)
Summary
사용 가능한 성능 테스트 케이스 목록을 출력합니다.
Command
Output (excerpt)
Summary
CPU 정보 및 시스템 토폴로지 세부 정보를 출력합니다 (PCI BDF, NUMA 노드 및 PCIe 링크 정보).
Command
Output (excerpt)
CPU : AMD EPYC 9254 24-Core Processor, Vendor ID : AuthenticAMD
Device :
0000:00:01.1/01:00.0 PCI bridge: Broadcom / LSI PEX890xx PCIe Gen 5 Switch (rev b0)
0000:05:00.0 NODE 0, rbln0, RBLN-CA25(rev-03), pciDevID: 0x1250, NUMA: 0, IOMMU: 70
PCIe full bandwidth 64.0 GB/s (MAX: 64.0), PCIe Gen 5 (MAX: 5), 16 lane (MAX: 16)
MaxPayload 512 bytes, MaxReadReq 512 bytes
...
0000:ce:00.0 NODE 30, rbln30, RBLN-CA25(rev-03), pciDevID: 0x1250, NUMA: 1, IOMMU: 136
PCIe full bandwidth 64.0 GB/s (MAX: 64.0), PCIe Gen 5 (MAX: 5), 16 lane (MAX: 16)
MaxPayload 512 bytes, MaxReadReq 512 bytes
0000:cf:00.0 NODE 31, rbln31, RBLN-CA25(rev-03), pciDevID: 0x1250, NUMA: 1, IOMMU: 137
PCIe full bandwidth 64.0 GB/s (MAX: 64.0), PCIe Gen 5 (MAX: 5), 16 lane (MAX: 16)
MaxPayload 512 bytes, MaxReadReq 512 bytes
Summary
특정 NPU 쌍에 대한 단일 대역폭 테스트 케이스(RBLN_PERF_BANDWIDTH_TEST)를 실행합니다.
Command
$ rblnBandwidthLatencyTest --tc 3 --npu_id_list 0,1 --iteration_cnt 1 --test_size 1M --skip_test_env_info
Output (excerpt)
This test will run with size (0x100000)
==============================================================================
[ Run ] : RBLN_PERF_BANDWIDTH_TEST
==============================================================================
[Measure Iteration cnt : 1]
[Measure Buffer Size : 0x100000]
P2P Connectivity Distance
rbln0 0 4 4 4 8 ...
rbln1 4 0 4 4 8 ...
---------------------------------
Device bandwidth (GB/s) *Write
---------------------------------
[H2D] HOST -> rbln0 : MAX 14.71, MIN 14.71, AVG 14.71
[D2D] rbln0 -> rbln1 : MAX 10.29, MIN 10.29, AVG 10.29
[D2H] rbln1 -> HOST : MAX 19.41, MIN 19.41, AVG 19.41
==============================================================================
[ PASS ] : RBLN_PERF_BANDWIDTH_TEST
==============================================================================
Summary
특정 NPU 쌍에 대한 단일 지연 시간 테스트 케이스(RBLN_PERF_LATENCY_TEST)를 실행합니다.
Command
Output (excerpt)
==============================================================================
[ Run ] : RBLN_PERF_LATENCY_TEST
==============================================================================
[Measure Iteration cnt : 1]
[Measure Buffer Size : 0x20000000]
P2P Connectivity Distance
rbln0 0 4 4 4 8 ...
rbln1 4 0 4 4 8 ...
---------------------------------
Device P2P sync latency (us)
---------------------------------
rbln0 -> rbln1 2.07 (us)
==============================================================================
[ PASS ] : RBLN_PERF_LATENCY_TEST
==============================================================================
Troubleshooting¶
The command times out¶
--timeout을 증가시키세요.- 테스트를 단축하기 위해
--test_size또는--iteration_cnt를 줄이세요. - 먼저
--test_env_info를 실행하여 디바이스가 감지되고 토폴로지가 출력되는지 확인하세요.
Results fluctuate a lot¶
--warmup을 사용하세요.--iteration_cnt를 증가시키고 평균을 비교하세요.- 시스템 부하를 안정적으로 유지하세요 (워크로드를 고정하고 벤치마킹 중 백그라운드 작업을 피하세요).
I only want device-to-device numbers¶
NPU-to-NPU 전송에만 집중하기 위해 --only_d2d를 사용하여 H2D/D2H 단계를 건너뜁니다.
See also¶
rbln-smi: 디바이스 모니터링 및 토폴로지 검사rblnvs: 시스템 검증rbln-flash: 펌웨어 업데이트 도구