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.
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.
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.
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.
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
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários