콘텐츠로 이동

대역폭 벤치마크 (rblnBandwidthLatencyTest)

rblnBandwidthLatencyTest는 호스트와 NPU 간, 또는 NPU 간 전송 성능을 측정하고 다음을 보고합니다:

  • 대역폭 결과 (GB/s)
  • 지연 시간 결과 (us)
  • NPU 연결성 (거리 행렬) 및 토폴로지 컨텍스트

Quick Start

기본 실행 (권장)

$ rblnBandwidthLatencyTest

환경 및 토폴로지

$ rblnBandwidthLatencyTest --test_env_info

Next steps

  • 구체적인 명령+출력 쌍은 CLI Examples를 참조하세요.
  • --tc ID 및 선택 규칙은 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_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

$ rblnBandwidthLatencyTest [options]
$ rblnBandwidthLatencyTest --tc <id> [options]

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 HOSTrbln* 디바이스 레이블 전체의 처리량 결과 (GB/s).
Latency results 마이크로초(us) 단위의 동기화 지연 시간.

Command

Command
$ rblnBandwidthLatencyTest

Output (excerpt)

Default run (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

Command
$ rblnBandwidthLatencyTest --test_list

Output (excerpt)

--test_list (example)
List of tests:
RBLN_PERF_TEST_ALL
RBLN_PERF_BANDWIDTH_TEST_ALL
RBLN_PERF_LATENCY_TEST_ALL
RBLN_PERF_BANDWIDTH_TEST
RBLN_PERF_LATENCY_TEST
RBLN_PERF_BIDIR_BANDWIDTH_TEST
RBLN_PERF_PARALLEL_BANDWIDTH_TEST

Summary

CPU 정보 및 시스템 토폴로지 세부 정보를 출력합니다 (PCI BDF, NUMA 노드 및 PCIe 링크 정보).

Command

Command
$ rblnBandwidthLatencyTest --test_env_info

Output (excerpt)

--test_env_info (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

Command
$ rblnBandwidthLatencyTest --tc 3 --npu_id_list 0,1 --iteration_cnt 1 --test_size 1M --skip_test_env_info

Output (excerpt)

tc 3 (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

Command
$ rblnBandwidthLatencyTest --tc 4 --npu_id_list 0,1 --skip_test_env_info

Output (excerpt)

tc 4 (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: 펌웨어 업데이트 도구