Jogando com ArrayFire: 01 Comece e desista


Prefácio

ArrayFire é uma plataforma de software que AcelerEyes fornece aos usuários e programadores programas paralelos de dados rápidos em C, C ++, Fortran e Python. ArrayFire fornece funções abstratas de matriz simples de alto nível em vez de APIs de GPU de baixo nível, como CUDA, OpenCL e OpenGL Deixe cientistas, engenheiros e economistas aproveitarem todas as vantagens do hardware da GPU. ArrayFire fornece milhares de funções que podem ser convertidas em GPU, incluindo biblioteca de álgebra linear, convolução, FFT, processamento de sinal, imagem, estatística, biblioteca gráfica, etc.


1. O que é ArrayFire

ArrayFire é uma biblioteca de software de alto desempenho para computação paralela e tem uma API fácil de usar. Seu array baseado no conjunto de funções pode tornar a programação paralela mais fácil.

2. Recursos do ArrayFire

1. Fácil de usar

O objeto array do ArrayFire é muito simples. Esta representação baseada em array pode representar efetivamente algoritmos de cálculo legíveis semelhantes a representações matemáticas , e o uso do ArrayFire não requer experiência em programação paralela. No kernel CUDA ou OpenCL, apenas algumas linhas de código ArrayFire podem completar tarefas que podem exigir 100 linhas de código complexo.

2. Ampla gama de aplicações

ArrayFire inclui centenas de funções em diferentes campos, incluindo: algoritmos de vetor, processamento de imagem, visão computacional, processamento de sinal, álgebra linear, estatística e muito mais. E cada função é ajustada manualmente pelos desenvolvedores do ArrayFire com todas as otimizações de baixo nível possíveis.

3. Suporta vários tipos e tamanhos de dados

ArrayFire pode manipular formatos e tamanhos de dados comuns , incluindo vetores, matrizes, etc .; ele suporta tipos de dados comuns , incluindo valores de ponto flutuante de precisão única e dupla, números complexos, valores booleanos, inteiros com sinal de 32 bits e inteiros sem sinal .

4. Tem escalabilidade

O ArrayFire pode ser usado como um aplicativo independente ou pode ser integrado ao código CUDA ou OpenCL existente. Todos os arrays ArrayFire podem ser trocados com outras estruturas de dados CUDA ou OpenCL.

5. Codifique uma vez, execute em qualquer lugar

ArrayFire oferece suporte a todas as listas de dispositivos, incluindo dispositivos que oferecem suporte a x86, ARM, CUDA e OpenCL. Depois de instalar o ArrayFire com sucesso, o dispositivo terá:

  1. Versão CUDA (denominada "libafcuda") para GPU NVIDIA;
  2. A versão OpenCL (chamada "libafopencl") usada para OpenCL;
  3. Versão da CPU quando CUDA ou OpenCL não está disponível (denominado "libafcpu").

6. Suporte a vetorização e operações em lote

O ArrayFire oferece suporte ao processamento em lote de arrays N-dimensionais. As operações em lote no ArrayFire são executadas em paralelo para garantir o melhor uso dos dispositivos CUDA ou OpenCL. Você pode usar métodos de vetorização para obter o melhor desempenho do ArrayFire. ArrayFire também pode executar iterações de loop em paralelo com a função gfor .

7. Compilação just-in-time

O ArrayFire pode analisar em tempo de execução para aumentar a intensidade computacional e o rendimento da memória, evitando a alocação temporária desnecessária. Ele tem um ótimo compilador JIT interno que pode ser otimizado.

Acho que você gosta

Origin blog.csdn.net/weixin_42467801/article/details/113482625
Recomendado
Clasificación