A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Anderson Braga de Avila 1.  Usar todos os recursos computacionais no sistema — CPUs, GPUs e outros processadores  Modelo de programação paralela eficiente.

Apresentações semelhantes


Apresentação em tema: "Anderson Braga de Avila 1.  Usar todos os recursos computacionais no sistema — CPUs, GPUs e outros processadores  Modelo de programação paralela eficiente."— Transcrição da apresentação:

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


Carregar ppt "Anderson Braga de Avila 1.  Usar todos os recursos computacionais no sistema — CPUs, GPUs e outros processadores  Modelo de programação paralela eficiente."

Apresentações semelhantes


Anúncios Google