Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouBento Wagner Vilanova Alterado mais de 8 anos atrás
1
Anderson Braga de Avila 1
2
Usar todos os recursos computacionais no sistema — CPUs, GPUs e outros processadores Modelo de programação paralela eficiente — Baseado no C99 — Modelo de programação paralela Data e task — Abstrair as especificidades do hardware usado — Especificar precisão de cálculos de ponto flutuante 2
3
Uma plataforma moderna inclui: – Uma ou mais CPUs – Uma ou mais GPUs – Aceleradores Opcionais OpenCL permite que programadores escrevem um único programa portátil que usa todos os recursos na plataforma heterogênea 3
4
Modelo de execução OpenCL... executar um kernel em cada ponto do domínio de um problema. - por exemplo, processar uma imagem de 1024 x 1024 com uma invocação do kernel por pixel ou 1024 x 1024 = 1.048.576 execuções de kernel 4
5
Definir o “melhor” espaço de indexação N-dimensional para o para o seu algoritmo - Kernels são executados através de um domínio global de work-itens - Work-itens são agrupados em work-groups locais Dimensão Global: 1024 x 1024 (espaço do problema inteiro) Dimensão Local: 32 x 32 (work-group... executam juntos) 5
6
Definir a plataforma Executar código na plataforma Mover os dados pela memória Escrever(e compilar) programas 6
7
Um Host + um ou mais dispositivos de computação - Cada dispositivo de computação é composto por uma ou mais unidades de computação - Cada unidade de computação é dividido em um ou mais elementos de processamento 7
8
Uma aplicação OpenCL é executado em um sistema que submete os trabalhos para os dispositivos de computação - Work item: A unidade básica de trabalho em um dispositivo OpenCL - Kernel: O código de um item de trabalho. Basicamente, uma função C -Programa: coleção de Kernels e outras funções (semelhante a uma biblioteca dinâmica) -Contexto: O ambiente no qual o work-item irá executar... incluindo dispositivos e as suas memórias e filas de comando. Instâncias das filas de execução dos kernels da aplicação - enfileirados em ordem, uma fila por dispositivo dispositivo - executados em ordem ou fora de ordem 8
9
Memória privada -Por work-item Memória Local - Compartilhas entre um work-group Memória Global/Constante -Visível para todos os work-groups Memória do Host -Na CPU A manipulação de memória é feita de forma explícita 9
10
Um subconjunto de ISO C99 - Mas, sem alguns recursos como cabeçalhos padrões do C99, ponteiros de função, recursão, arrays de comprimento variável, e campos de bits Um super conjunto de ISO C99 com adições para: - Work itens e work groups - Tipos vetoriais - Sincronização - Qualificadores de espaço de endereço Também inclui um grande conjunto de funções próprias - manipulação de imagem - manipulação de work item - Rotinas de matemática especializados, etc 10
11
Tipos de dados escalares - char, uchar, Short, ushort, Int, uint, long, ulong, float - bool, intptr_t, ptrdiff_t, size_t, uintptr_t, void, half (armazenamento) Tipos de imagem - image2d_t, image3d_t, sampler_t Tipos de dados vetoriais - Vetores com comprimentos de 2, 4, 8, e 16 (char2, ushort4, int8, Float16, double2,...) - Alinhados no comprimento do vetor - operações com vetores - funções embutidas 11
12
O objeto do programa engloba: - Um contexto - O fonte/binário do programa - Lista de dispositivos de destino e opções de compilação O processo de compilação... para criar um objeto do programa -clCreateProgramWithSource() -clCreateProgramWithBinary() 12
13
Os eventos podem ser usados para sincronizar as execuções kernel entre filas Exemplo: duas filas com dois dispositivos 13
14
O kernel é escrito em OpenCL C e código do host é escrito em C. Porém existem outras linguagens que fornecem ligações com a API do OpenCL, como C++ e Python 14
15
Algebra Linear Map-Reduce e Monte Carlo Lógica Combinacional Programação Dinâmica Backtracking Máquinas de estados finitas 15
16
Battlefield3 Adobe PhotoShop CS6 VLC media player CLyther NVIDIA Visual Profiler 16
17
www.khronos.org/assets/uploads/developers/library/overview/Op enCL-Overview-Jun10.pdf www.cc.gatech.edu/~vetter/keeneland/tutorial-2011-04-14/06- intro_to_opencl.pdf streamcomputing.eu/blog/2013-06-03/the-application-areas- opencl-can-be-used opencl.news.com/apps 17
18
Anderson Braga de Avila 18
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.