windows npu driver infer input problem

wangki·2026년 5월 14일

windows_driver_npu

목록 보기
5/10

libedgetpu의 face detection은 정상이다. 직접 만든 npu driver로는 모든 anchor score가 균일하게 나오는 버그가 있다. 이번에는 input dump를 통해서 비교해 볼 예정이다.


분석하기

분석하기 전에 아래와 같은 내용을 알아야 하는 것 같다.

구성 요소역할상세 내용
CRC32무결성 검증데이터 전송 중 에러 발생 여부를 체크하는 32비트 체크섬 값
HEAD메타데이터텐서의 Shape, Dtype, 레이아웃 등 데이터 해석 정보
MID실제 데이터연산에 직접 사용되는 본문(Payload) 데이터
TAIL마무리/패딩메모리 정렬(Alignment)을 위한 여백 및 종료 지점 정보

정상 동작하는 코드와 npu driver 코드에 input dump 출력 코드를 작성하고 돌려서 비교했다.

libedgetpu CRC32=0xf993d860 TAIL: 00 00 00 00 00 00 00 ...
npu_driver CRC32=0x68ea0706 TAIL: 34 3c 35 34 3c 35 34 ...

HEAD / MID 는 일치하는데 TAIL만 달랐다.

libedgetpu의 경우는 letterbox 방식이고 npu_driver에서는 stretch 방식의 resize를 하는 것 같다. SSD backbone은 receptive field가 전체 이미지라서 입력이 조금만 달라도 score head 전체가 흔들린다고 한다. 따라서 정상적으로 추론이 안될 수 있다.


결론

코드를 수정하여 동일한 포맷으로 만들었지만, 여전히 정확한 추론이 되지 않는다.
하나씩 다른 점을 찾아보면서 가설을 제거해 나가야겠다.

0개의 댓글