Open CL Eliane Siegert Estrutura Princpio Geral de

  • Slides: 13
Download presentation
Open. CL Eliane Siegert

Open. CL Eliane Siegert

Estrutura – Princípio Geral de Funcionamento – Exemplos de Aplicações – Modelo de Programação

Estrutura – Princípio Geral de Funcionamento – Exemplos de Aplicações – Modelo de Programação – Linguagens Suportadas – Exemplos de Produtos no Mercado

Open. CL (Open Computing Language) • É uma arquitetura para escrever programas que funcionam

Open. CL (Open Computing Language) • É uma arquitetura para escrever programas que funcionam em plataformas heterogêneas. • Inclui uma linguagem para escrever núcleos e APIs. • Permite programação paralela usando, tanto o paralelismo de tarefas, como de dados.

Open. CL • É baseado na linguagem C e é proposto como um padrão

Open. CL • É baseado na linguagem C e é proposto como um padrão aberto. • É similar às propostas Open. GL e Open. AL, que são padrões abertos da indústria para gráficos 3 D e áudio, respectivamente. • E é gerido pelo grupo tecnológico Khronos Group. • Produtos: AMD, NVIDIA, INTEL, Rapid. Mind

Versões • 2008 - open. CL 1. 0 • 2013 - Nova versão Open.

Versões • 2008 - open. CL 1. 0 • 2013 - Nova versão Open. CL 2. 0: – as principais promessas: • maior compatibilidade com o Android, • melhorias no manuseio de imagens • e maior desempenho de memória virtual.

Camadas de aplicação Open. CL

Camadas de aplicação Open. CL

Arquitetura Open. CL • Arquitetura abstrata de baixo nível • Implementações mapeiam para entidades

Arquitetura Open. CL • Arquitetura abstrata de baixo nível • Implementações mapeiam para entidades Físicas • Quatro modelos: – Plataforma – Execução – Programação – Memória

Arquitetura Open. CL • Modelo de plataforma: – Descreve entidades do ambiente Open. CL

Arquitetura Open. CL • Modelo de plataforma: – Descreve entidades do ambiente Open. CL • Modelo de execução: – Descreve instanciação e identificação de kernels

Arquitetura Open. CL • Modelo de programação: – Paralelismo de dados (data parallel): múltiplos

Arquitetura Open. CL • Modelo de programação: – Paralelismo de dados (data parallel): múltiplos itens de trabalho para um kernel – Paralelismo de tarefas (task parallel): um item de trabalho para um Kernel • Modelo de memória: – Descreve uma hierarquia de memória e o compartilhamento de cada nível entre itens e grupos de trabalho.

Aplicações utilizando Open. CL • Passos: 1. 2. 3. 4. Levantamento dos dispositivos disponíveis

Aplicações utilizando Open. CL • Passos: 1. 2. 3. 4. Levantamento dos dispositivos disponíveis , a criação do contexto de execução, programas e kernels utilizados pela aplicação, e a criação da fila de comando de cada dispositivo. Envio de dados para o dispositivo A execução do kernel no dispositivo A leitura dos resultados gerados pela execução no dispositivo. • Principais aplicações: em realidade virtual e aumentada.

Exemplo • Código sequencial void Array. Diff(const int* a, const int* b, int* c,

Exemplo • Código sequencial void Array. Diff(const int* a, const int* b, int* c, int n) { for (int i = 0; i < n; ++i) { c[i] = a[i] - b[i]; } }

Exemplo • Código. Open. CL(kernel) _ _kernel void Array. Diff(_ _global const int* a,

Exemplo • Código. Open. CL(kernel) _ _kernel void Array. Diff(_ _global const int* a, _ _global const int* b, _ _global int* c) { int id = get_global_id(0); c[id] = a[id] - b[id]; }

Noticias sobre Open. CL • Game Developer Conference (GDC) 2013 -> Intel promete que

Noticias sobre Open. CL • Game Developer Conference (GDC) 2013 -> Intel promete que Open. CL aumentará o desempenho dos jogos http: //www. gamevicio. com/i/noticias/158295 -intel-promete-que-openclaumentara-o-desempenho-dos-jogos/index. html • Open. CL 2. 0 está a caminho e promete mais poder aos softwares http: //www. tecmundo. com. br/desenvolvimento/42305 -opencl-2 -0 -esta-acaminho-e-promete-mais-poder-aos-softwares. htm#ixzz 2 bu 6 w. Qzaz -