VPU(Vision Processing Unit)에서 모델 로드 시간을 줄이는 빠른 단계
- 비전 프로세싱 유닛(VPU)에 모델을 로드하는 시간은 CPU에 모델을 로드하는 시간보다 깁니다.
- Python API를 사용하는 코드: net = ie.read_network(model=path_to_xml, weights=path_to_bin) exec_net = ie.load_network(network=net, device_name="CPU") res = exec_net.infer(inputs=data)
로드 시간을 줄이려면 구문 분석된 그래프인 Blob에서 모델을 로드 하여 모델 구문 분석 단계를 건너뜁니다.
- 다음 방법 중 하나를 사용하여 로드하기 전에 Blob 파일을 미리 생성합니다.
- 명령줄에서 myriad_compile 도구를 사용하여 Blob을 생성합니다.
- 미리 컴파일된 도구는 OpenVINO™ 툴킷의 인텔® 배포에서 사용할 수 있습니다. 오픈 소스 OpenVINO 도구 키트 리포지토리를 복제하고 빌드할 수도 있습니다.
- 생성 Blob.
경로 inference-engine/bin/intel64/Release에서 다음과 같이 명령을 실행합니다./myriad_compile -m <model_name>.xml -o <output filename>
- 명령줄에서 myriad_compile 도구를 사용하여 Blob을 생성합니다.
- 추론 엔진 코어 API를 사용하여 코드에서 Blob 가져오기: executable_network = ie.ImportNetwork(“model_name.blob”, device, config)
VPU에서 모델을 로드할 때 두 가지 내부 프로세스가 있습니다.
- 그래프 구문 분석
- 그래프 할당
로딩 프로세스 중에 구문 분석된 VPU 그래프는 호스트의 xlink에 의해 단계별로 하드웨어로 전송됩니다.
Blob에서 모델을 로드하면 일부 모델의 경우 많은 시간을 줄일 수 있지만 모든 모델에서 작동하지 않을 수 있습니다.
모델 크기 외에도 로딩 시간은 레이어 유형, 입력 데이터 크기 등에 따라 달라집니다.
HDDL 플러그인은 Blob에서 모델을 로드할 때 MYRIAD 플러그인보다 더 효율적입니다.
인텔® 뉴럴 컴퓨트 스틱 2에서 MYRIAD 플러그 인 대신 HDDL 플러그 인을 사용하도록 설정하려면 다음 단계를 따르십시오.
- autoboot_settings:abort_if_hw_reset_failed to false in $HDDL_INSTALL_DIR/config/hddl_autoboot.config. 설정
- autoboot_settings:total_device_num to 1. 설정
- hddldaemon. 시작