하드웨어 진단(rbln-vs)¶
rbln-vs는 소프트웨어 무결성, 하드웨어 존재 확인, PCIe 대역폭, NPU 메모리를 포괄하는 계층별 테스트를 통해 RBLN NPU 상태를 검증하는 하드웨어 및 소프트웨어 진단 도구입니다.
Info
rbln-vs는 root 권한 (sudo)이 필요합니다.rbln-vs는 다음 서버 모델에서 지원됩니다. 지원되지 않는 모델에서는 오류와 함께 종료됩니다.- Supermicro:
AS -4125GS-TNRT2,AS -5126GS-TNRT2 - Gigabyte:
G293-S43,G293-Z43,G294-Z21,G494-ZB4
- Supermicro:
- 다음 시스템 도구가 설치되어 있어야 합니다:
lspci,lsmod,lscpu,dmidecode,dmesg,fuser. - 다음 RBLN 도구가 설치되어 있어야 합니다:
rbln-smi,rblnBandwidthLatencyTest.
빠른 시작¶
주요 개념 및 용어¶
테스트 레벨¶
rbln-vs는 테스트를 두 단계로 구성합니다:
- L1(기본 점검): 장치에 부하를 주지 않고 소프트웨어 스택과 하드웨어 존재 여부를 검증합니다.
- L2(스트레스 테스트): PCIe 링크, NPU 메모리 무결성, 메모리 대역폭 안정성을 검사합니다.
테스트 대상¶
-t, --target으로 개별 대상을 선택할 수 있습니다:
| Target | Level | Description |
|---|---|---|
software_integrity | L1 | rbln-smi 바이너리, 커널 모듈, 드라이버/FW/SMC 버전, /dev/rbln* 접근 권한을 검증합니다. |
hardware_presence | L1 | PCI 장치 인식, 장치 노드 접근, 점유 상태, 유휴 상태 건강(온도/전력), dmesg 오류 이력을 점검합니다. |
pcie_bandwidth | L2 | PCIe 링크 속도/폭, 호스트-장치 대역폭, P2P 대역폭/지연 시간, PCIe remove/rescan을 검증합니다. |
npu_memory | L2 | 장치 메모리에 여러 데이터 패턴을 쓰고 읽어 무결성을 검증합니다. |
memory_bandwidth | L2 | 반복 대역폭 측정을 수행하고 결과 안정성을 확인합니다. |
그룹 대상은 여러 테스트를 한 번에 실행합니다:
| Target | Equivalent tests |
|---|---|
l1_test | software_integrity + hardware_presence |
l2_test | 모든 L1 테스트 + pcie_bandwidth + npu_memory + memory_bandwidth |
all | l2_test와 동일 |
출력 디렉토리¶
각 실행은 결과 경로(기본값: results/) 아래에 타임스탬프 디렉토리를 생성합니다:
| File | Content |
|---|---|
run.log | 단계별 PASS/FAIL/SKIP 카운트가 포함된 타임스탬프 실행 로그. |
system_info.txt | 서버 하드웨어, OS, 커널, 드라이버, NPU별 세부 정보. |
test_report.txt | 단계별 결과, 메트릭, 통과율이 포함된 최종 리포트. |
test_logs/<name>.json | 테스트별 기계 판독 가능 결과. |
test_logs/<name>.txt | 테스트별 사람이 읽을 수 있는 요약. |
debug_logs.tar.gz | 암호화된 디버그 로그 아카이브(펌웨어 로그, 커널 로그). |
명령어 참조¶
일반 사용법¶
$ sudo rbln-vs -t <target> [options]
$ sudo rbln-vs -t <target1> <target2> ... [options]
$ sudo rbln-vs -l
Tip
설치된 버전의 전체 옵션은 rbln-vs --help로 확인할 수 있습니다.
옵션¶
| Option | Description |
|---|---|
-h, --help | 도움말 메시지를 표시하고 종료합니다. |
--version | 버전 정보를 표시하고 종료합니다. |
-t, --target <TARGET ...> | 하나 이상의 테스트 대상: software_integrity, hardware_presence, pcie_bandwidth, npu_memory, memory_bandwidth, l1_test, l2_test, 또는 all. |
-l, --list | 사용 가능한 대상을 나열하고 종료합니다. |
-j, --json | JSON 형식으로 결과를 출력합니다. |
-d, --npu <NPU> | L2 테스트를 특정 NPU 인덱스로 제한합니다(예: 0). |
-r, --results <PATH> | 기본 출력 디렉토리(기본값: results/). |
Note
-d, --npu 옵션은 L2 테스트에만 적용됩니다. L1 전용 대상 실행 시에는 무시됩니다.
CLI 예제¶
요약
현재 시스템에서 사용 가능한 테스트 대상을 나열합니다.
명령어
출력(예제)
요약
모든 감지된 NPU에 대해 전체 L1 + L2 테스트를 실행합니다.
명령어
출력(예제)
+-------------------- System Information --------------------+
| |
| OS : ubuntu 22.04.5 LTS (Jammy Jellyfish) |
| Kernel : 6.8.0-90-generic |
| CPU Model : AMD EPYC 9355 32-Core Processor |
| Manufacturer : Supermicro |
| Architecture : x86_64 |
| |
+========================= Level 1 ==========================+
| |
+--- Software Integrity -------------------------------------+
| |
| Result : PASS |
| -------------------------------------------------------- |
| Binary Integrity : PASS |
| Module Status : PASS |
| Version Consistency : PASS |
| Access Permission : PASS |
| |
+--- Hardware Presence --------------------------------------+
| |
| Result : PASS |
| -------------------------------------------------------- |
| Device Count : 4 |
| Device Recognition : PASS |
| Device Occupancy : PASS |
| Device Health : PASS |
| Error History : PASS |
| |
+========================= Level 2 ==========================+
| |
+--- PCIe Bandwidth -----------------------------------------+
| |
| Result : PASS |
| Test Duration : 23.38 seconds (0.39 minutes) |
| -------------------------------------------------------- |
| Device Count : 4 |
| Link & Signal Health : PASS |
| Host-Device Speed : PASS |
| P2P Connectivity : PASS |
| Transfer Latency : PASS |
| PCIe Remove/Rescan : PASS |
| |
+--- NPU Memory ---------------------------------------------+
| |
| Result : PASS |
| Test Duration : 25.81 seconds (0.43 minutes) |
| -------------------------------------------------------- |
| Device Count : 4 |
| Pattern Integrity : PASS |
| |
+--- Memory Bandwidth ---------------------------------------+
| |
| Result : PASS |
| Test Duration : 164.98 seconds (2.75 minutes) |
| -------------------------------------------------------- |
| Device Count : 4 |
| Data Integrity : PASS |
| Performance Stability : PASS |
| |
+============================================================+
Debug logs archived: results/20260223_155311/debug_logs.tar.gz
Results saved to: results/20260223_155311/
요약
장치에 부하를 주지 않고 기본 소프트웨어 및 하드웨어 존재 점검을 수행합니다.
명령어
출력(예제)
+-------------------- System Information --------------------+
| |
| OS : ubuntu 22.04.5 LTS (Jammy Jellyfish) |
| Kernel : 6.8.0-90-generic |
| CPU Model : AMD EPYC 9355 32-Core Processor |
| Manufacturer : Supermicro |
| Architecture : x86_64 |
| |
+========================= Level 1 ==========================+
| |
+--- Software Integrity -------------------------------------+
| |
| Result : PASS |
| -------------------------------------------------------- |
| Binary Integrity : PASS |
| Module Status : PASS |
| Version Consistency : PASS |
| Access Permission : PASS |
| |
+--- Hardware Presence --------------------------------------+
| |
| Result : PASS |
| -------------------------------------------------------- |
| Device Count : 4 |
| Device Recognition : PASS |
| Device Occupancy : PASS |
| Device Health : PASS |
| Error History : PASS |
| |
+============================================================+
Debug logs archived: results/20260223_160012/debug_logs.tar.gz
Results saved to: results/20260223_160012/
요약
특정 L2 테스트를 단일 NPU로 제한하여 실행합니다.
명령어
출력(예제)
+-------------------- System Information --------------------+
| |
| OS : ubuntu 22.04.5 LTS (Jammy Jellyfish) |
| Kernel : 6.8.0-90-generic |
| CPU Model : AMD EPYC 9355 32-Core Processor |
| Manufacturer : Supermicro |
| Architecture : x86_64 |
| |
+--- PCIe Bandwidth -----------------------------------------+
| |
| Result : PASS |
| Test Duration : 4.80 seconds (0.08 minutes) |
| -------------------------------------------------------- |
| Device Count : 1 |
| NPU IDs : [0] |
| Link & Signal Health : PASS |
| Host-Device Speed : PASS |
| P2P Connectivity : PASS |
| Transfer Latency : PASS |
| PCIe Remove/Rescan : PASS |
| |
+------------------------------------------------------------+
Debug logs archived: results/20260223_155844/debug_logs.tar.gz
Results saved to: results/20260223_155844/
요약
테스트 결과를 사용자 지정 디렉토리에 저장합니다.
명령어
결과는 ./my_results/<YYYYMMDD_HHMMSS>/ 아래에 저장됩니다.
요약
프로그래밍 방식으로 사용할 수 있도록 JSON 형식으로 테스트 결과를 출력합니다.
명령어
출력(예제)
{
"version": "3.2.0",
"system_information": {
"os": "ubuntu 22.04.5 LTS (Jammy Jellyfish)",
"kernel": "6.8.0-90-generic",
"cpu_model": "AMD EPYC 9355 32-Core Processor",
"manufacturer": "Supermicro",
"architecture": "x86_64"
},
"level_1": {
"software_integrity": {
"result": "PASS",
"binary_integrity": "PASS",
"module_status": "PASS",
"version_consistency": "PASS",
"access_permission": "PASS"
},
"hardware_presence": {
"result": "PASS",
"device_count": 4,
"device_recognition": "PASS",
"device_occupancy": "PASS",
"device_health": "PASS",
"error_history": "PASS"
}
}
}
테스트 상세¶
L1: 소프트웨어 무결성¶
rbln-smi 바이너리, 커널 모듈, 드라이버/펌웨어/SMC 버전, 장치 노드 권한 등 RBLN 소프트웨어 스택이 올바르게 설치되었는지 검증합니다.
L1: 하드웨어 존재 확인¶
PCI 장치 인식, 장치 노드 접근, 온도/전력 수치, dmesg 오류 이력 등 NPU 하드웨어가 존재하고 유휴 상태에서 정상인지 검증합니다.
Note
유휴 상태 건강 점검(온도/전력)의 임계값은 config/test_parameter.yml 파일로 구성할 수 있습니다. RBLN_VS_TEST_PARAMETER_CONFIG 환경 변수를 설정하면 기본 경로 대신 지정한 설정 파일을 사용합니다. 설정 파일이 없거나 파싱에 실패하면 내장 기본값이 적용됩니다.
L2: PCIe 대역폭¶
장치별로 PCIe 링크 속도/폭, 호스트-장치 대역폭, P2P 대역폭 및 지연 시간, PCIe remove/rescan 복구를 검사합니다.
L2: NPU 메모리¶
장치 메모리에 여러 데이터 패턴을 쓰고 읽어 데이터 무결성을 검증합니다.
L2: 메모리 대역폭¶
반복 대역폭 측정을 수행하고 모든 결과가 안정적이며 데이터 무결성 검사를 통과하는지 확인합니다.
문제 해결¶
권한 거부¶
rbln-vs는 root 권한이 필요합니다. sudo를 사용하여 명령어를 다시 실행해야 합니다.
지원되지 않는 서버 모델¶
현재 서버 모델이 지원 목록에 없으면 다음 오류와 함께 종료됩니다:
Error: Unsupported server model: '<model>'
rbln-vs is only supported on: AS -4125GS-TNRT2, AS -5126GS-TNRT2, G293-S43*, G293-Z43*, G294-Z21*, G494-ZB4*
Note
뒤에 붙는 *는 접두사 일치를 의미합니다. 해당 접두사로 시작하는 모든 모델이 지원됩니다(예: G293-S43*는 G293-S43-AAP1-000과 일치합니다).
시스템 도구 누락¶
필수 시스템 도구가 설치되어 있지 않으면 다음 오류와 함께 종료됩니다:
L2 테스트가 "BUSY"로 실패¶
다른 프로세스가 NPU를 사용 중입니다. 모든 워크로드를 중지하고 재시도합니다. rbln-vs는 BUSY 오류를 점진적 백오프와 함께 자동으로 재시도합니다. 재시도 횟수는 테스트에 따라 다릅니다(최대 2~10회). 지속적인 경합이 발생하면 수동 개입이 필요합니다.
PCIe remove/rescan 후 복구되지 않음¶
- 테스트 중 장치 노드에 대한 참조를 보유한 프로세스가 없는지 확인합니다.
dmesg에서 하드웨어 문제를 나타낼 수 있는 PCIe AER 오류를 확인합니다.
관련 문서¶
rbln-smi: NPU 상태 모니터링 및 토폴로지 검사rblnBandwidthLatencyTest: 호스트-NPU 및 NPU-NPU 벤치마크rbln-bios: 시스템 설정 검증rbln-flash: 펌웨어 업데이트 도구