RobotPerf의 grey-box와 black-box는 측정 중에 남겨 두는 시스템의 범위가 다릅니다. Grey-box는 애플리케이션 내부의 지점에 계측을 넣어 실행 상태를 관찰합니다. Black-box는 관심 계층 위의 부분을 시험용 애플리케이션이나 노드로 바꿔 그 계층을 측정합니다. 따라서 성능표를 비교할 때는 숫자보다 먼저 실제 그래프를 어디까지 보존했고 무엇을 시험용으로 교체했는지 확인해야 합니다.
RobotPerf 프로젝트는 ROS 2를 공통 기반으로 로봇 연산 성능을 비교하는 벤치마크 모음입니다. 여기서 계산 그래프는 데이터를 주고받는 노드와 연결 관계를 뜻합니다. 같은 영상 처리 기능을 비교하더라도 주변 노드가 함께 실행되는지에 따라 측정이 답하는 질문이 달라집니다.
영상 처리 노드는 같아도 주변 그래프가 달라질 수 있다
카메라 입력, 영상 보정, 물체 인식, 기록 노드가 이어진 가상의 ROS 2 애플리케이션을 생각해 보겠습니다. 비교하려는 대상은 영상 보정 구현 두 개입니다. 하나는 CPU에서, 다른 하나는 가속기에서 실행된다고 가정합니다.
첫 번째 비교에서는 기록해 둔 영상을 시험 노드가 공급하고, 보정 결과는 시험용 출력 노드가 받습니다. 두 번째 비교에서는 실제 애플리케이션의 카메라·인식·기록 노드를 함께 둔 채 보정 구간을 관찰합니다. 두 경우 모두 “영상 보정 시간”을 얻을 수 있지만, 보정 노드 주변에 남아 있는 작업과 데이터 전달 경로는 다릅니다.
두 번째 구성의 지연이 더 길었다면, 그 차이에는 다른 노드와의 자원 경쟁이나 입력 도착 양상의 차이가 섞였을 수 있습니다. 반대로 시험 노드가 높은 속도로 입력을 공급했다면 첫 번째 구성이 평소보다 더 큰 부하를 걸 수도 있습니다. 측정 방식을 고르는 일은 결과를 무조건 빠르게 또는 느리게 만드는 선택이 아니라, 어떤 실행 조건에서 비교할지 정하는 선택입니다.
Grey-box는 내부 경로를 보고, black-box는 시험 경계를 만든다
프로젝트의 ‘Two benchmarking approaches’ 설명에서 grey-box는 시스템 내부 상태와 특정 지점을 볼 수 있는 애플리케이션 중심의 계측입니다. 원래 애플리케이션을 따라가며 관심 구간의 기록을 얻으므로, 그 구간이 전체 실행 흐름에서 어떤 위치를 차지하는지 조사하기에 적합합니다.
Black-box는 관심 계층 위를 시험용 프로그램이나 연산 노드로 바꿉니다. 해당 계층에 입력을 넣고 출력을 받는 구성을 만들기 쉬워 초기 구현을 비교하는 데 유용합니다. 대신 새 노드가 들어간 그래프를 측정한다는 점을 결과의 조건에 포함해야 합니다.
| 비교하려는 내용 | Grey-box에서 볼 부분 | Black-box에서 볼 부분 |
|---|---|---|
| 실행 구성 | 원래 애플리케이션 안에 둔 계측 지점 | 교체한 계층과 추가한 시험 노드 |
| 관찰 범위 | 내부 지점 사이의 실행 관계 | 시험 입력과 출력 사이의 결과 |
| 준비할 작업 | 관심 경로에 계측을 연결 | 입력 공급·출력 수집용 시험 구성을 마련 |
| 결과를 해석할 때 남길 조건 | 어떤 지점과 주변 부하를 관찰했는지 | 어떤 원래 노드가 빠지고 시험 노드가 들어갔는지 |
예를 들어 “입력이 보정 노드에 도착한 때부터 보정이 끝날 때까지”와 “시험 입력을 보낸 때부터 출력이 수집될 때까지”는 시작과 끝이 다릅니다. 후자에는 시험 노드와 대상 사이의 전달 구간이 포함될 수 있습니다. 두 값의 이름을 모두 latency로 적더라도 비교표에는 각각의 시작점과 끝점을 함께 적어야 합니다.
Grey-box의 관측 지점은 알고 싶은 실행 구간에 맞춰 정합니다. 카메라 입력 이후의 전체 반응과 특정 처리 단계는 서로 다른 계측 위치를 요구합니다. 이때 측정 코드 자체가 더하는 부담도 해당 구성에서 확인할 항목입니다.
플랫폼 비교에서는 먼저 같은 문제를 만들자
처음의 가상 비교로 돌아가 보겠습니다. CPU 구현은 시험용 입력 노드로 재고, 가속기 구현은 인식과 기록까지 함께 실행한 상태로 잰다면 구현과 주변 그래프가 동시에 달라집니다. 이 결과만으로 보정 구현의 차이를 분리하기 어렵습니다.
우선 두 구현에 같은 입력과 같은 시험 구성을 적용하면 통제된 부하에서의 차이를 볼 수 있습니다. 이어 실제 애플리케이션에 각각 넣어 관찰하면 통합 후의 차이가 드러납니다. 두 결과는 합쳐 한 숫자로 만들기보다, 어떤 구성을 바꿨을 때 지연이나 처리량이 달라졌는지 연결해서 읽는 편이 유용합니다.
측정 기록에도 이 구분을 남겨 보세요. 그래프에서 교체한 노드, 입력 자료와 공급 방식, 지연의 시작·끝 지점, 함께 실행한 작업을 적으면 다음 사람이 같은 질문으로 비교를 이어갈 수 있습니다. 가속기 경로에만 별도의 데이터 변환이 들어간다면 그 변환을 측정 구간에 넣었는지도 밝혀야 합니다.
연산기의 종류별 역할과 메모리·열 조건은 로봇 온디바이스 컴퓨팅에서 다룹니다. RobotPerf의 두 접근을 적용할 때 추가로 정할 것은 측정의 경계입니다. 구현 하나를 빠르게 비교할지, 실제 그래프 안에서 생기는 지연을 따라갈지에 따라 시험 노드를 넣는 위치와 남겨 둘 부하가 달라집니다.
2026년 10월 16일 확인한 RobotPerf 공개 방법론을 바탕으로 설명했습니다. 계측 코드나 하드웨어 벤치마크는 실행하지 않았습니다.