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

Slides:



Advertisements
Apresentações semelhantes
TIPOS ABSTRATOS DE DADOS
Advertisements

Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 5 Criado por Frederick H. Colclough, Colorado Technical University Vetores.
Sistemas Operacionais
Sistemas Distribuídos
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Laboratório de Programação
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Programação II Estruturas de Dados
Recursividade Prof. Alex F. V. Machado
Orientação a Objetos: Encapsulamento e Classificação
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
GPGPU.
Estruturas de Dados e Algoritmos
Rafael Pinto Frederico Corrêa
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
LPG - I: Alocação Dinâmica de Memória - Ponteiros
Linguagem C.
Laboratório de Programação de Computadores I
Ponteiros.
Threads.
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
Introdução a Computação e Cálculo Numérico
Tipos básicos de variáveis em C++.
Representação de Instruções
Conceitos de Linguagem de Programação
CUDA vs OpenCL Introdução.
Introdução a GPGPU CUDA: arquitetura de computação paralela para GPGPU.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 02: Introdução.
CADEIA DE CARACTERES (Strings)
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Seminário 1: Revisão de C
Programação Paralela em OpenCL
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
César L. B. Silveira Prof. Dr. Luiz G. da Silveira Jr.
Organização do Ambiente de Execução (Runtime System)
Tipos de Dados Paradigmas de Programação
Aula 3 Vetores e Listas. Arrays (vetores) Array – sequência de elementos do mesmo tipo. Tamanho do Array – seu número de elementos (número fixo) Consequência:
Linguagem C : Ponteiros
DESIGN E COMUNICAÇÃO MULTIMÉDIA 2011 / 2012 DESIGN E COMUNICAÇÃO MULTIMÉDIA 2011 / 2012 FORMADOR Gonçalo Miguel MÓDULO 25. Introdução ao ActionScript 3.0.
Agenda Modos de Endereçamento.
Computação de Alto Desempenho Utilizando Placas Gráficas Divino César S. Lucas Universidade Católica de Goiás
POLIMIG Curso Técnico em Informática Disciplina: Hardware
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Capítulo VIII Ambientes de Execução
Estruturas de Dados Aula 7: Tipos Estruturados 23/04/2014.
Algoritmos e Estruturas de Dados
STRINGS Dilvan Moreira (baseado no livro Big Java e Z. Liang)
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Lista Linear Base para outras estruturas
Registradores.
Aula Prática 3 Funções Monitoria Introdução à Programação.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Programação Computacional Aula 9: Meu primeiro programa em C
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Estruturas de Dados Murilo Salgado Razoli.
Programação Paralela em Ambientes Computacionais Heterogêneos com OpenCL César L. B. Silveira Prof. Dr. Luiz G. da Silveira Jr. Prof. Dr. Gerson Geraldo.
Tipos de Dados, Variáveis, Expressões Lógicas e Aritméticas
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Influencias sobre o Projeto da Linguagem
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores.
Linguagem de Programação
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
OpenCL Eliane Siegert. Estrutura – Princípio Geral de Funcionamento – Exemplos de Aplicações – Modelo de Programação – Linguagens Suportadas – Exemplos.
Transcrição da apresentação:

Anderson Braga de Avila 1

 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

 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

 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 = execuções de kernel 4

 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

Definir a plataforma Executar código na plataforma Mover os dados pela memória Escrever(e compilar) programas 6

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

 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

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

 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

 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

 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

 Os eventos podem ser usados ​​ para sincronizar as execuções kernel entre filas  Exemplo: duas filas com dois dispositivos 13

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

 Algebra Linear  Map-Reduce e Monte Carlo  Lógica Combinacional  Programação Dinâmica  Backtracking  Máquinas de estados finitas 15

 Battlefield3  Adobe PhotoShop CS6  VLC media player  CLyther  NVIDIA Visual Profiler 16

 enCL-Overview-Jun10.pdf  intro_to_opencl.pdf  streamcomputing.eu/blog/ /the-application-areas- opencl-can-be-used  opencl.news.com/apps 17

Anderson Braga de Avila 18