Esta página ou seção foi marcada para revisão devido a incoerências ou dados de confiabilidade duvidosa.Março de 2018) ( |
CUDA/ GUS | |
---|---|
Desenvolvedor | NVIDIA Corporation |
Plataforma | GPU Nvidia |
Versão estável | 11.4.0 (29 de junho de 2021 | )
Sistema operativo | Windows XP e superior, Mac OS X e Linux |
Licença | Freeware |
Estado do desenvolvimento | Ativo |
Página oficial | developer |
CUDA (anteriormente conhecido como Compute Unified Device Architecture ou Arquitetura de Dispositivo de Computação Unificada) é uma API destinada a computação paralela, GPGPU, e computação heterogênea, criada pela Nvidia.[1] destinada a placas gráficas que suportem a API (normalmente placas gráficas com chipset da Nvidia). A plataforma CUDA dá acesso ao conjunto de instruções virtuais da GPU e a elementos de computação paralela, para a execução de núcleos de computação.[2]
A API inclui um conjunto de instruções CUDA ISA's (Instruction Set Architecture) e o mecanismo de computação paralela na GPU. Ele expõe os diferentes tipos de memória da placa e obriga que o desenvolvedor configure os acessos da memória global, a cache, a quantidade e a disposição das threads. O desenvolvedor também será responsável por escalonar as atividades entre a GPU e o CPU. A plataforma CUDA é desenhada para trabalhar com linguagem de programação como C, C++ e Fortran. Isto torna acessível a especialistas em programação paralela o uso dos recursos do GPU. APIs anteriores como DirectX e OpenGL, permitem também o uso de GPGPU. Contudo a programação deste tipo de instruções nestas placas gráficas é mais exigente, uma vez que todo o código tem de ser convertido de e para instruções de cálculo vectorial, passíveis de serem calculadas pela placa gráfica. A API suporta, frameworks e APIs opensource, desenvolvidas pelo Khronos Group, como é o caso de OpenACC e OpenCL.[2] Quando foi introduzida pela primeira vez pela Nvidia, o nome CUDA era um acrónimo de “Compute Unified Device Architecure”,[3] apesar de a NVIDA ter abandonado o uso deste acrónimo.
O propósito inicial da API destinava-se a propriedades físicas em jogos, identificar placas ocultas em artérias, analisar fluxo do tráfego aéreo e visualização de moléculas. No entanto, não tardaria a que a API fosse usada para outros fins, como por exemplo, Inteligência artificial (de notar que o framework de Python da Google TensorFlow, tira proveito da API), assim como renderização gráfica (a partir de programas como o Octane Render), actividades de foro criptográfico (existem toda uma série de ferramentas, desde ferramentas para exploração de falhas de segurança, a aplicações para blockchain baseadas em APIs como CUDA; OpenCL, e SYCL, que tiram proveito da API). Actualmente, a plataforma CUDA, é das plataformas, de GPGPU mais robustas, e maduras que existem, o que pode ser muitas vezes usado como argumento para validar o preço mais alto de placas gráficas da Nvidia, quando comparado com as concorrentes directas da AMD. Em versões antigas do CUDA Toolkit, era possível desenvolver mesmo sem ter o hardware necessário, usando um emulador, mas a partir da versão 3.0, essa funcionalidade não é mais suportada.[4]