De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


OneAPI - a plataforma da Intel para facilitar o desenvolvimento com chips Intel, AMD, ARM, NVIDIA POWER e FPGA

Colaboração: Alessandro de Oliveira Faria

Com o avanço da tecnologia, o nosso dia a dia depende intensamente das tecnologias de computação em diversos momentos da vida, e novos tipos de cargas surgem. Resumidamente o suporte para formatos de inteiros do tipo INT8 avançou sua popularidade em aprendizado de máquina, e a precisão do formato FP64 compromete a performance. Neste contexto surge a necessidade de prover software de maneira eficaz à todo ecossistema de hardware.

OneAPI é uma plataforma de software unificada e opensource que permite abstrair da arquitetura de hardware de equipamento para proporcionar softwares que utilizam recursos da plataforma com CPU, GPU, FPGA ou outros. A OneAPI é baseada na linguagem DPC++ que, por sua vez, é baseada nos padrões C++ e Kronos SYCL.

Conheci a OneAPI em 2019 e atualmente o projeto atingiu a versão Gold. O projeto tem especificações em aberto, conta com o seu seu próprio repositório no GitHub. OneAPI inclui bibliotecas principais, um compilador DPC++ baseado em LLVM/Clang, várias bibliotecas de desempenho Intel e ferramentas de depuração e análise de código.

DESTAQUE

O diferencial do projeto é a ferramenta, é a capacidade de migrar de código escrito em CUDA para plataforma x86, assim todo legado de software desenvolvido para aceleradores NVIDIA, pode ser disponibilizado para outras plataformas. Atenção em especial para algumas bibliotecas criadas para a geração de aplicativos usando deep learning, biblioteca de processamento de vídeo e outras.

DOWNLOAD E INSTALAÇÃO

Para efetuar o download, existe a opção via navegador, onde devemos acessar a URL https://tinyurl.com/install-oneapi e baixar o arquivo de instalação para Linux offline, conforme a figura abaixo, ou via console como mencionaremos posteriormente:

Ou download via console apenas com o comando:

$ wget https://registrationcenter-download.intel.com/akdlm/irc_nas/17769/l_BaseKit_p_2021.2.0.2883_offline.sh 

Após, executar o seguinte comando para iniciar a instalação:

$ sudo bash l_BaseKit_p_2021.2.0.2883_offline.sh 

Agora clique em I accept the terms e no botão continue para avançarmos para o próximo passo da instalação conforme o exemplo da figura abaixo.

Neste momento devemos selecionar a opção de instalação com ou sem a IDE Eclipse. No meu caso escolhi a opção sem. E este documento tratará a compilação na linha de comando.

Escolha a opção para permitir ou não a coleta de dados e clique no botão install.

Aguarde a instalação:

Se tudo estiver funcionando corretamente, teremos o comportamento similar às telas a seguir:


Pronto, agora veremos como testar e compilar os exemplos OneAPI.

COMPILANDO OS EXEMPLOS

De maneira sucinta veremos como compilar os exemplos desta ferramenta. Primeiramente configuraremos o ambiente executando o arquivo setvars localizado na pasta de instalação da solução openAPI.

$ source /opt/intel/oneapi/setvars.sh  
:: initializing oneAPI environment ...
  bash: BASH_VERSION = 5.1.4(1)-release
:: advisor -- latest
:: ccl -- latest
:: compiler -- latest
:: dal -- latest
:: debugger -- latest
:: dev-utilities -- latest
:: dnnl -- latest
:: dpcpp-ct -- latest
:: dpl -- latest
:: intelpython -- latest
:: ipp -- latest
:: ippcp -- latest
:: ipp -- latest
:: mkl -- latest
:: mpi -- latest
:: tbb -- latest
:: vpl -- latest
:: vtune -- latest
:: oneAPI environment initialized ::

Execute o comando oneapi-cli para obtermos um menu de navegação dos exemplos:

$ oneapi-cli

Selecione a opção Create a project.

Selecione a linguagem de programação, para este tutorial, selecione "cpp", após a escolha pressione ENTER. Então uma lista de exemplos será exibida logo em seguida.

Para um simples teste para constatar que tudo está funcionando corretamente, selecione o exemplo Vector Add.

Depois da seleção pressione <ENTER> novamente ou informe a localização para criação do exemplo no disco.

Pressione <ENTER> para confirmar o nome da pasta e do projeto.

E para finalizar pressione <ENTER> para criar o projeto.

Entre na pasta recém criada denominada vector-add com o comando cd e execute o comando make all para efetuar a compilação.

$ cd vector-add
$ make all
$ dpcpp -O2 -g -std=c++17 -o vector-add-buffers src/vector-add-buffers.cpp

Para finalizar execute o programa compilado com o comando make run.

$ make run
./vector-add-buffers
Running on device: Intel(R) Gen9 HD Graphics NEO Vector size: 10000 [0]: 0 + 0 = 0 [1]: 1 + 1 = 2 [2]: 2 + 2 = 4 ... [9999]: 9999 + 9999 = 19998 Vector add successfully completed on device.

Mais informações no link oficial: Installation Guide for Intel® oneAPI Toolkits ou em contato diretamente comigo em <cabelo (a) opensuse org>.

O próximo grande salto evolutivo da humanidade será a descoberta de que cooperar é melhor que competir... Pois colaborar atrai amigos, competir atrai inimigos!

Alessandro de Oliveira Faria é sócio cofundador da empresa OITI TECHNOLOGIES, Pesquisador cujo primeiro contato com tecnologia foi em 1983 com 11 anos de idade. Leva o Linux a sério, pesquisa e trabalhos com biometria e visão computacional desde 1998. Experiência com biometria facial desde 2003, redes neurais artificiais e neurotecnologia desde 2009. Inventor da tecnologia CERTIFACE, mais de 100 palestras ministradas, 14 artigos impressos publicados, mais de 8 milhões de acessos nos 120 artigos publicados, Docente da FIA, Membro oficial Mozillians, Membro oficial e Embaixador OpenSUSE Linux América Latina, Chapter Leader OWASP SP, Contribuidor da biblioteca OpenCV e Global Oficial OneAPI Innovator Intel, Membro Notável I2AI, Fundador da iniciativa Global openSUSE Linux INNOVATOR e Mentor Cybersecuritygirls BR

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Alessandro de Oliveira Faria