문제해결¶
Debug Dump Binaries (DDB)
¶
DDB
파일은 RBLN NPU의 기능적인 문제해결을 위한 정보들을 담고있는 파일로, RBLN 컴파일러의 입력정보와 각 컴파일 단계에서의 에러 로그 정보 등을 포함하고 있습니다. 모든 DDB
파일들은 안전하게 암호화되어 있습니다.
DDB
파일을 생성하기 위해서는 RBLN_DEBUG_LEVEL
환경변수를 설정해야 합니다:
RBLN_DEBUG_LEVEL=1
:DDB
파일 생성시 모델 파라미터 제외RBLN_DEBUG_LEVEL=2
:DDB
파일 생성시 모델 파라미터 포함
RBLN_DEBUG_LEVEL=2
로 DDB
파일을 생성하는 것이 빠른 문제해결에 더 도움이 되지만, 보안상의 이슈로 모델 파라미터를 제외해야하는 경우 RBLN_DEBUG_LEVEL=1
로 DDB
파일을 생성할 수 있습니다.
RBLN 모델주에서 제공하는 파이토치 ResNet50
모델을 이용하여 DDB
파일을 생성하는 예제입니다:
위 명령어를 통해 아래와 유사한 파일들이 생성된 것을 확인할 수 있습니다:
문제 해결에 도움이 필요한 경우, 생성된 모든 DDB
파일들을 압축하여 자세한 설명과 함께 RBLN Portal > Technical Supports에 업로드해 주시기 바랍니다:
성능 튜닝 (Performance Tuning)¶
컴파일된 모델의 대부분은 NPU 연산자로 구성되어 있지만 일부 CPU 연산자가 포함되어 있을 수 있습니다. 이런 경우 CPU 연산자들은 CPU 호스트 환경에 따라 성능이 달라질 수 있습니다.
CPU 연산자들의 성능을 최적화하기 위해 아래 방법 중 하나를 사용하여 스레드 개수를 조정할 수 있습니다.
1. 스레드 개수 설정하기¶
옵션 1. 환경 변수 사용하기
모델 실행 전에 환경 변수를 설정하여 원하는 스레드 개수를 지정할 수 있습니다.
다음과 같이 한 줄로 실행할 수도 있습니다:
옵션 2. Runtime 속성 변경하기
Python의 Runtime API를 사용하여 직접 스레드 개수를 설정할 수 있습니다:
2. 최적의 스레드 개수 찾기¶
최적의 스레드 개수는 사용자의 CPU 호스트 환경에 따라 달라집니다. 수동으로 조정할 수도 있지만, 이를 자동으로 찾아주는 유틸리티 함수인 search_num_threads()
를 제공합니다:
이 함수를 사용해 다양한 스레드 개수를 테스트하고 평균 실행 시간을 출력하여 최적의 값을 선택할 수 있습니다.
이 예제에서는 16개 스레드 개수가 가장 좋은 성능을 보이는 것을 확인할 수 있습니다. 이처럼 각 시스템에 맞게 벤치마크를 실행하여 최적의 스레드 개수를 찾을 수 있습니다.