[2023 CANN 트레이닝 캠프 시즌 1] 애플리케이션 개발(초급) Chapter 4 - 모델 추론

AscendCL 런타임 리소스 관리

이미지.png

운영 관리 자원을 신청할 때 Device, Context, Stream 순으로 적용한 다음 aclrtGetRunMode 인터페이스를 호출하여 실제 필요에 따라 소프트웨어 스택의 실행 모델을 가져와야 합니다(동일한 응용 프로그램이 호스트에서 실행되는 둘 다 지원하는 경우). 그리고 Device에서 동작하는 경우, 프로그래밍 시 동작 모드에 따라 후속 인터페이스 호출 로직을 판단해야 하며, 이때 동작 모드를 미리 획득해야 합니다.)
작동할 장치를 명시적으로 지정하려면 aclrtSetDevice 인터페이스를 호출하십시오. 컨텍스트를 명시적으로 생성하려면 aclrtCreateContext 인터페이스를 호출하고 스트림을 명시적으로 생성하려면 aclrtCreateStream 인터페이스를 호출합니다.
Context와 Stream을 명시적으로 생성하지 않으면 시스템은 기본 Context와 기본 Stream을 사용하게 되며 기본 Context와 기본 Stream은 aclrtSetDevice 인터페이스 호출 시 암묵적으로 생성되는 기본 Context가 된다.기본 Stream을 인터페이스로 사용하는 경우 입력 매개변수는 NULL을 직접 전달합니다. 계산에 사용되는 장치는 명시적으로 지정되지 않습니다.
컨텍스트를 명시적으로 생성하려면 aclrtCreateContext 인터페이스를 호출하고 스트림을 명시적으로 생성하려면 aclrtCreateStream 인터페이스를 호출합니다. 시스템이 명시적으로 컨텍스트를 생성하면 시스템은 내부적으로 acirtSetDevice 인터페이스를 호출하여 실행 중인 장치를 지정하고 장치 ID는 aclrtCreateContext 인터페이스를 통해 전달됩니다.

인터페이스 명명 규칙

이미지.png

장치 관리

이미지.png
이미지.png
이미지.png
이미지.png

컨텍스트 관리

이미지.png
이미지.png
이미지.png

스트림 관리

원리 소개

ACL에서 Stream은 작업 대기열입니다.응용 프로그램은 Stream을 통해 작업의 병렬성을 관리합니다.Stream 내부의 작업은 순서대로 실행됩니다. 즉, Stream은 전송된 작업에 따라 순차적으로 실행됩니다. . 기본 컨텍스트는 기본 스트림을 중단합니다. 스트림을 명시적으로 생성하지 않으면 기본 스트림을 사용할 수 있습니다.

이미지.png

AscendCL 메모리 관리 및 데이터 전송

ACL은 자체 메모리 관리 로직 세트를 가지고 있습니다. ACL 작업(장치 측)에 참여하는 데 사용되는 모든 메모리는 C/C++ 기본 메모리 관리 인터페이스(Malloc, new)에서 요청한 메모리가 될 수 없지만 ACL에서 제공하는 메모리 관리를 호출합니다. 전용 인터페이스를 상기하십시오: 장치 관리 측면에서 ACL은 호스트와 장치를 구별하기 위한 것입니다(aclrtGetRunMode 인터페이스를 기억하십니까?) 모든 가속 계산은 궁극적으로 장치에서 실행됩니다. 즉, 모든 데이터(데이터 세트, 모델 등) .)는 결국 장치 측의 계산에 참여하게 됩니다. 여기에는 두 가지 시나리오가 있습니다.

Host&Device는 Atlas300 scene과 같이 별도로 설정됩니다.(동일한 머신에 있지만 PCle 인터페이스를 통해 교환되며, 본질적으로 두 개의 장치입니다.) 이때 데이터와 모델은 호스트 측에 로드되고, 데이터는 계산을 위해 장치 측으로 전송되고, 계산이 완료된 후 결과는 다시 호스트 측으로 전송되어 사용됩니다.

Atlas200Dk 장면과 같이 Host&Device가 공동으로 설정되며, 이때 Host와 Device의 구분은 없고 Device만 존재하며, 데이터와 모델은 직접 Device에서 Loading, 계산 및 사용된다. Host 측과 Device 측 각각에 메모리를 적용하는 방법
과 양쪽에서 데이터를 전송하는 방법(복제)을 공유합니다 .

Supongo que te gusta

Origin blog.csdn.net/qq_45257495/article/details/130875470
Recomendado
Clasificación