Este artigo leva você a conhecer o AscendCL

Resumo: AscendCL (Ascend Computing Language, Ascend Computing Language) é uma estrutura de programação aberta para computação Ascend e é um encapsulamento da interface de serviço de computação Ascend subjacente.

Este artigo é compartilhado pela Huawei Cloud Community " [CANN Document Express Issue 09] Reasoning Scenario for Application Development ", autor: Ascend CANN.

01 Conheça a AscendCL

AscendCL (Ascend Computing Language) é uma estrutura de programação aberta para computação Ascend, que encapsula a interface de serviço Ascend Computing subjacente. Fornece gerenciamento de recursos de tempo de execução (como dispositivo, memória etc.), carregamento e execução de modelos, bibliotecas de API de computação, como sub-carregamento e execução, codificação/decodificação/recorte/processamento de dimensionamento de dados de imagem, etc., realizam cálculos de inferência de aprendizado profundo, pré-processamento de gráficos e imagens e cálculos acelerados por operador único na plataforma Ascend CANN. Simplificando, é uma estrutura de API unificada que implementa chamadas para todos os recursos .

As vantagens do AscendCL são as seguintes:

1. Alta abstração : As APIs para compilação, carregamento e execução de operadores são unificadas. Em comparação com uma API por operador, o AscendCL reduz bastante o número de APIs e reduz a complexidade. 

2. Compatibilidade com versões anteriores : AscendCL é compatível com versões anteriores, garantindo que os programas compilados com base na versão antiga ainda possam ser executados na nova versão após a atualização do software. 

3. Chip de detecção zero : Um conjunto de interfaces AscendCL pode realizar a unificação do código do aplicativo, e não há diferença entre vários processadores Ascend. 

Os principais cenários de aplicação do AscendCL são os seguintes:

1. Desenvolver aplicativos : Os usuários podem chamar diretamente a interface fornecida pelo AscendCL para desenvolver aplicativos de classificação de imagens, aplicativos de reconhecimento de alvos, etc. 

2. Para chamadas de estrutura de terceiros : Os usuários podem chamar a interface AscendCL por meio de estruturas de terceiros para usar o poder de computação do processador Ascend AI. 

3. Para o desenvolvimento de terceiros da biblioteca lib : Os usuários também podem usar o pacote AscendCL para implementar a biblioteca lib de terceiros, a fim de fornecer o gerenciamento de operação, gerenciamento de recursos e outros recursos do processador Ascend AI. 

02 Processo de Desenvolvimento

Tomando o desenvolvimento de um aplicativo como exemplo, aqui está uma visão geral de todo o processo de desenvolvimento:

O modelo de construção foi introduzido no documento anterior expresso, arraste-o até o final do artigo para referência.

Nesta edição, nos concentramos no processo de desenvolvimento de aplicativos e na compilação e depuração de aplicativos. Posteriormente, também apresentaremos o desenvolvimento do aplicativo no cenário de inferência do modelo e o ajuste de precisão do aplicativo.

03 Processo de chamada da interface AscendCL

Aqui, o aplicativo de desenvolvimento é tomado como exemplo para descrever o processo de chamada de API baseado em AscendCL.

1. Inicialização do AscendCL

Inicialize os recursos internos do AscendCL em preparação para executar o aplicativo.

2. Aplicativo de recursos de gerenciamento de operações

Solicite recursos relacionados ao tempo de execução, como dispositivos de computação.

3. Processamento de dados de mídia

Se os requisitos de largura e altura do modelo para a imagem de entrada forem inconsistentes com a imagem de origem fornecida pelo usuário, o AscendCL fornece uma interface para processamento de dados de mídia, que pode realizar recorte, zoom, codificação e decodificação de vídeo ou imagem, etc., e corte a imagem de origem para atender aos requisitos do modelo.

4. Operadores de Inferência ou Execução do Modelo

Suporta todo o raciocínio da rede e a operação de um único operador. O processo de invocação de interface envolvido na inferência do modelo e na execução do operador é diferente:

● Sobre a inferência do modelo

Para implementar a função de inferência do modelo, você precisa primeiro carregar o modelo e depois executá-lo. Após a conclusão da inferência do modelo, você precisa descarregar o modelo.

Após a conclusão da inferência do modelo, se os dados do resultado da inferência precisarem ser adquiridos e processados ​​posteriormente, eles deverão ser implementados pela própria codificação do usuário. Por exemplo, em um cenário de inferência de classificação de imagem, a codificação do usuário é necessária para encontrar o identificador de categoria com a maior confiança do resultado da inferência para classificar a imagem.

● Sobre operadores de execução

A função de executar um único operador precisa ser implementada, e também é necessário carregar o modelo e depois executar o operador sem descarregar o modelo. Embora o modelo também seja carregado aqui, a interface de carregamento é diferente da interface de carregamento durante a inferência do modelo, e o modelo aqui suporta apenas conversão e geração usando a ferramenta ATC.

5. Liberação de recursos de gerenciamento de operações

Depois que o recurso é usado, ele precisa ser liberado a tempo.

6.AscendCL para inicializar

Emparelhado com inicialização.

04 Compile e execute o aplicativo

Aqui tomamos uma aplicação de "Classificação de imagem baseada na rede Caffe ResNet-50" como exemplo para ilustrar as etapas básicas de compilação e execução da aplicação e como visualizar a classificação da imagem após a execução da aplicação. Compilar e executar o aplicativo depende do software CANN, portanto, você precisa instalar o software CANN de acordo com o guia de instalação da versão correspondente.

Em seguida, podemos compilar e executar o pequeno vídeo a seguir por 3 minutos.

Link do vídeo: https://v.qq.com/x/page/w3271yntt45.html

Depois que a experiência terminar, você ainda não está satisfeito, quer operá-lo você mesmo, vamos lá! Você pode obter a amostra e instruções de uso detalhadas no armazém de amostra da Ascend CANN ( https://gitee.com/ascend/samples/ ).  

05 Aquisição de documentos

Para obter mais detalhes, faça login na comunidade Ascend e leia os documentos relevantes no centro de documentação do desenvolvedor ( https://www.hiascend.com/document?tag=community-developer ):

 

Clique em Seguir para conhecer as novas tecnologias da HUAWEI CLOUD pela primeira vez~

{{o.name}}
{{m.name}}

Supongo que te gusta

Origin my.oschina.net/u/4526289/blog/5572446
Recomendado
Clasificación