Patrício Domingues Dep. Eng. Informática ESTG Instituto Politécnico de Leiria Leiria, Maio Programação Genérica de GPUs
|
|
- Victor Gentil Braga
- 7 Há anos
- Visualizações:
Transcrição
1 Patrício Domingues Dep. Eng. Informática ESTG Instituto Politécnico de Leiria Leiria, Maio Programação Genérica de GPUs 1
2 CUDA Teaching Center A ESTG/IPLeiria é um CUDA Teaching Center para O único de Portugal 2
3 Agenda Introdução ao GPGPU CPU vs GPU CUDA OpenCL OpenCL vs CUDA Término 3
4 GPU Graphical Processing Unit GPGPU Vulgo placa gráfica O que é GPGPU? Generic Programming of GPU Programação de placas gráficas para a execução de programas genéricos Programas não necessariamente gráficos 45X 35X X 4
5 Porquê GPUs? (1) O poder computacional das GPUs tem crescido muito mais rapidamente que o dos CPUs O mercado (e evolução) das GPUs é sustentado em grande parte pelos...gamers! 5
6 Obrigado Gamers! 6
7 Porquê GPUs? (2) A filosofia GPU é explorar paralelismo Aplicar simultaneamente a mesma operação a um conjunto de píxeis Lembrete: GPU servem primariamente para...gráficos! Conceito de manycore GPU têm muitos cores Um CPU tem que procurar ser eficiente num muito maior espetro de aplicações Um core CPU é mais poderoso e versátil do que um core GPU Intel i7 Sandy Bridge-E versus NVIDIA GTX 680 i7: 6 cores (x2 com hyperthreading) GTX 680: 1536 cores (8 x 192) 7
8 CPU vs GPU (1) CPU Baixa largura de banda CPU-memória Acesso aleatório à memória Nível médio de paralelismo Suporta código para qualquer fim GPU Elevada largura de banda GPU-memória Acesso serializado à memória Elevado nível de paralelismo Orientado para processamento paralelo de dados Fonte: Daniel Moth, C++ AMP, Principle Program Manager 8
9 CPU vs GPU (2) Core i7 Sandy Bridge NVIDIA Kepler (GTX 680) 9
10 Programação de GPUs Antigamente... Necessário recorrer às APIs gráficas (e.g., OpenGL) para execução de processamento genérico de dados Difícil de programar, muito pouco produtivo Em 2007, a NVIDIA lançou o CUDA CUDA: Compute Unified Device Architecture Simplifica a programação e execução de código na GPU Acessível como (pequena) extensão à linguagem C Também acessível via outras linguagens (C++,Java, Python, etc.) Presentemente na versão 4.2 (5.0 a caminho) Mas...CUDA apenas corre em hardware NVIDIA 10
11 Paradigma de programação orientado à thread GPU suporta a existência simultânea de vários milhares de threads Granulosidade diferente das threads num contexto CPU Idealmente, as threads executam as mesmas instruções sobre dados diferentes Exemplo Modelo SIMT Single Instruction Multiple Thread soma de dois vetores com N elementos cada thread soma apenas um elemento CUDA N t 1 t 2 t 3 t i t n N t 1 t 2 t 3 t i t n N V_a + V_b = V_c 11
12 Quero ver código fonte! (1) O CUDA distingue entre código... a ser executado no CPU host a ser executado no GPU device Código executado no GPU Ponto de entrada: kernel global O compilador ( nvcc ) converte código fonte para PTX (instruções do GPU) ID da thread /* N: tamanho dos vetores */ global void addv(int *V_a, int *V_b, int *V_c, int N) { int i = threadidx.x; while( i < N) { V_c[i]=V_a[i]+V_b[i]; // salta p/ próximo i += blockdim.x; } } 12
13 Quero ver código fonte! (2) Cada thread executa o código do kernel Cada thread tem um threadidx.x diferente Cada thread efetua a soma dos elementos de índice threadidx.x Cada thread executa num core distinto ID da thread /* N: tamanho dos vetores */ global void addv(int *V_a, int *V_b, int *V_c, int N) { int i = threadidx.x; while( i < N) { V_c[i]=V_a[i]+V_b[i]; // salta p/ próximo i += blockdim.x; } } 13
14 Chamada ao kernel GPU Corresponde à execução do kernel no GPU A chamada é feita a partir do CPU Como é chamado o kernel? (1) addv<<<numblocos,threadsporbloco>>>(va,vb,vc,n); NumBlocos Número de blocos de threads que vão executar o kernel ThreadsPorBloco Número de threads por bloco addv<<<5,6>>>(...) 5 blocos de threads, cada um com 6 threads 14
15 Como é chamado o kernel? (2) Na realidade, o CUDA disponibiliza uma organização que pode ser tridimensional para a especificação dos blocos de execução Exemplo (duas dimensões) dim3 NumBlocosXY(3,2); dim3 ThreadBlocosXY(4,3); addv<<<numblocos,threadsblocos>>> (va,vb,vc,n); 15
16 Coordenadas no GPU Coordenadas acessíveis no código da GPU (blockidx.x,blockidx.y) (threadidx.x,threadidx.y) griddim.x griddim.y /* N: tamanho dos vetores */ global void addv(int *V_a, int *V_b, int *V_c, int N) { int i = threadidx.x; while( i < N) { V_c[i]=V_a[i]+V_b[i]; // salta p/ próximo i += blockdim.x; } } blockdim.x 16 blockdim.y
17 OK, e a memória? A memória do GPU é separada da memória do CPU Exemplos NVIDIA GTX 680 2GB (GPU) Intel i7 Sandy Bridge-E 8 GB (CPU) Espaços de endereçamento diferentes Implicações Cópia explícita de dados entre CPU e GPU via PCI-express CPU GPU PCI-Express Memória CPU Memória GPU 17
18 Gestão da memória O programador é responsável por... Alocar memória do GPU cudaerror_t cudamalloc(void ** devptr, size_t size); Transferir explicitamente os dados do CPU para o GPU cudaerror_t cudamemcpy(void *dst, const void *src, size_t count, cudamemcpyhosttodevice); Transferir explicitamente os resultados do GPU para o CPU cudaerror_t cudamemcpy(void *dst, const void *src, size_t count, cudamemcpydevicetohost); Libertar memória cudaerror_t cudafree(void *devptr); 18
19 Ainda sobre memória (1/2) thread Bloco threads Memória local Registos GPU Memória partilhada shared Memória local é privada à thread Implementada na memória global do GPU Registos são a memória mais rápida (on chip) Número limitado Memória partilhada é acessível por bloco de threads Memória rápida (on chip) Requer sincronização entre as threads do bloco 19
20 Ainda sobre memória (2/2) Kernel 1 Kernel 2 Memória global GPU (peristente entre chamadas a kernels) CPU Memória CPU Memória constantes (leitura) O desempenho de aplicações CUDA está muito dependente da forma como se usa a memória! 20
21 Estrutura de programa CUDA Estrutura de programa CUDA #1- Alocar memória (cudamalloc(...)) #2 - Copiar conteúdo memória CPU GPU (cudamemcpy(..., cudamemcpyhosttodevice)) #3 Lançar kernel (func<<<blocos,threads>>>(...)) #4 - Execução (assíncrona) do kernel, CPU fica livre (cudadevicesynchronize()) #5 Copiar resultados GPU CPU (cudamemcpy(...,cudamemcpydevicetohost)) #6 Libertar recursos (cudafree(...)) 21
22 Ainda sobre CUDA Foi apresentado o CUDA runtime API level Interface de alto (!) nível Alternativa CUDA driver API level API de baixo nível O programador deve: Explicitar inicialização do dispositivo Carregamento de módulo Carregmanento de parâmetros Execução de kernel(s)... 22
23 OpenCL Outros paradigmas/frameworks para GPGPU OpenCL Norma proposta pela Apple e apoiada por muitas empresas Intel, AMD/ATI, IBM, Samsung,..., NVIDIA Presentemente na versão 1.2 (Dez. 2011) Pequena extensão à linguagem C Visa o suporte de vários dispositivos de processamento ( aceleradores ) Norma mais genérica do que o CUDA» Requer mais esforço do programador Exemplos: GPUs, CPUs (Intel, CELL, etc.) 23
24 Suporte para vários aceleradores Driver OpenCL AMD Código OpenCL Driver OpenCL NVIDIA Driver OpenCL CELL Driver OpenCL Intel 24
25 OpenCL vs CUDA API requer elevado número de parâmetros Suporte para dispositivos genéricos Exemplo: clenqueuereadbuffer(...) cl_int clenqueuereadbuffer( cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, size_t offset, size_t cb, void*ptr, cl_uint num_events_in_wait_list, const cl_event*event_wait_list, cl_event*event) cudaerror_t cudamemcpy(void *dst, const void *src, size_t count, cudamemcpydevicetohost); 25
26 Estrutura de programa OpenCL Obter informação sobre dispositivos disponíveis Seleção dos dispositivos a serem empregues Criação de uma command queue OpenCL Criação dos buffers no dispositivo Transferência dados do CPU para o dispositivo Criação do objeto kernel program Compilação do kernel Criação do objeto kernel Suporte dispositivos genéricos Requer muitos mais passos... Configuração dos parâmetros do kernel Execução do kernel Cópia dos resultados (dispositivo CPU) Libertar recursos 26
27 E a Microsoft? C++ AMP (C++ Accelerated Massive Parallelism) Norma aberta da Microsoft baseada no DirectX11 Apenas disponível para sistemas Windows... Aproveitamento de GPU para GPGPU Extensão à linguagem C++ e biblioteca para processamento de dados multidimensionais #include <amp.h> using namespace concurrency; void AddArrays(int n, int * pa, int * pb, int * pc) { array_view<int,1> a(n, pa); array_view<int,1> b(n, pb); array_view<int,1> sum(n, pc); parallel_for_each( sum.grid, [=](index<1> i) restrict(direct3d) { sum[i] = a[i] + b[i]; } ); } 27
28 Onde posso saber mais? Mestrado em Eng. Informática Computação Móvel UC de Computação de Alto Desempenho NVIDIA CUDA Programming Guide CUDA Zone (documentation) CUDA C BEST PRACTICES GUIDE NVIDIA CUDA C - Programming Guide Programming Massively Parallel Processors: A Hands-on Approach, David B. Kirk, Wen-mei W. Hwu, Morgan Kaufmann, 1st edition (February 2010) 28
29 Obrigado! Questões? (c) Internet, 2012 (e obrigado OpenClipArt.org) 29
Aplicações em CUDA. Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center
Aplicações em CUDA Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center Roteiro l Introdução l Eventos l Aspectos históricos l Operações atômicas l Introdução sobre
Leia maisMC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos
MC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos Aula 1: Introdução à programação paralela e ao ambiente de programação CUDA Profs.: Daniel Alfaro e Silvana Rossetto
Leia maisIntrodução a CUDA. Esteban Walter Gonzalez Clua. Medialab - Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center START
Introdução a CUDA START Esteban Walter Gonzalez Clua Medialab - Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center 1536 cores Dynamic Parallelism Hyper - Q Pipeline
Leia maisTEMA DE CAPA. Introdução à Programação em CUDA
TEMA DE CAPA Introdução à Programação em CUDA Introdução à Programação em CUDA Nos últimos anos, as placas gráficas (GPU Graphical Processing Unit) ganharam relevância no âmbito da computação paralela.
Leia maisTécnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot
Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot Bruno Pereira dos Santos Dany Sanchez Dominguez Esbel Tomás Evalero Orellana Universidade Estadual de Santa Cruz Roteiro Breve introdução
Leia maisProcessamento Paralelo Utilizando GPU
Processamento Paralelo Utilizando GPU Universidade Estadual de Santa Cruz Bruno Pereira dos Santos Dany Sanchez Dominguez Esbel Evalero Orellana Cronograma Breve introdução sobre processamento paralelo
Leia maisFabrício Gomes Vilasbôas
Fabrício Gomes Vilasbôas Apresentação Placas Arquitetura Toolkit e Ferramentas de Debug Pensando em CUDA Programação CUDA Python Programação PyCUDA 1) Grids( padrão Globus) 2) Clusters ( padrão MPI) 3)
Leia mais5 Unidades de Processamento Gráfico GPUs
5 Unidades de Processamento Gráfico GPUs As GPUs são processadores maciçamente paralelos, com múltiplos elementos de processamento, tipicamente utilizadas como aceleradores de computação. Elas fornecem
Leia maisComputação Paralela (CUDA)
Universidade Federal do Amazonas Faculdade de Tecnologia Departamento de Eletrônica e Computação Computação Paralela (CUDA) Hussama Ibrahim hussamaibrahim@ufam.edu.br Notas de Aula Baseado nas Notas de
Leia maisEng. Thársis T. P. Souza
Introdução à Computação de Alto Desempenho Utilizando GPU Seminário de Programação em GPGPU Eng. Thársis T. P. Souza t.souza@usp.br Instituto de Matemática e Estatística - Universidade de São Paulo Introdução
Leia maisIntrodução ao CUDA. Material elaborado por Davi Conte.
Introdução ao CUDA Material elaborado por Davi Conte. O objetivo deste material é que o aluno possa iniciar seus conhecimentos em programação paralela, entendendo a diferença da execução de forma sequencial
Leia maisParalelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data)
Paralelismo de dados (execução de simultaneidade) Em métodos tradicionais de programação (processamento sequencial), uma grande quantidade de dados é processada em um único núcleo de uma CPU, enquanto
Leia maisINE5645-Programação Paralela e Distribuída Aula 17/09/2018 Nome
INE5645-Programação Paralela e Distribuída Aula 17/09/2018 Nome Para paralelizar códigos de programas, tudo que necessitamos é de uma construção sintática denominada kernel. Seja o kernel: kernel void
Leia maisHierarquia de memória:
INE5645 Programação Paralela e Distribuída Aluno Modelo de Execução CUDA - A execução do programa controlado pela CPU pode lançar kernels, que são trechos de código executados em paralelo por múltiplas
Leia maisComparação de eficiência entre OpenCL e CUDA
Aluno: Thiago de Gouveia Nunes Orientador: Prof. Marcel P. Jackowski GPGPU O que é GPGPU? É programação de propósito geral em GPUs. =D GPGPU Existem 2 linguagens populares no mercado para GPGPU, o CUDA
Leia maisParalelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA
Paralelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA Luis Henrique Alves Lourenço Grupo de Visão, Robótica e Imagens Universidade Federal do Paraná 7 de abril de 2011 Sumário 1 Introdução
Leia maisSparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?
Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile? Paula Prata João Muranho Instituto de Telecomunicações Departamento de Informática Universidade da Beira Interior Instituto
Leia maisWhat is? Eduardo Viola Nicola Disciplina de IPPD
What is? Eduardo Viola Nicola evnicola@inf.ufpel.edu.br Disciplina de IPPD Sumário 1)Introdução 2)Princípio Geral de Funcionamento 3)Exemplos de Aplicações 4)Modelo de Programação 5)Linguagens Suportadas
Leia maisParadigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot
Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot Bruno Pereira dos Santos Dany Sanchez Dominguez Universidade Estadual de Santa Cruz Cronograma Introdução Serial vs Processamento
Leia maisProcessamento de Alto Desempenho utilizando Unidade de Processamento Gráfico - GPU
Processamento de Alto Desempenho utilizando Unidade de Processamento Gráfico - GPU Francisco Ribacionka e Ettore Enrico (STI ) USP/STI/InterNuvem internuvem@usp.br Março -2016 Processamento de Alto Desempenho
Leia mais3 Computação de Propósito Geral em Unidades de Processamento Gráfico
3 Computação de Propósito Geral em Unidades de Processamento Gráfico As Unidades de Processamento Gráfico (GPUs) foram originalmente desenvolvidas para o processamento de gráficos e eram difíceis de programar.
Leia maisIntrodução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva
Introdução à Programação Paralela através de Padrões Denise Stringhini Calebe Bianchini Luciano Silva Sumário Introdução: conceitos de paralelismo Conceitos básicos sobre padrões de programação paralela
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (2.0) (a) (Verdade/Falso) A comunicação entre processos consiste em transmitir uma mensagem entre
Leia maisTópicos em Física Computacional: Introdução a Linguagem CUDA
Tópicos em Física Computacional: Introdução a Linguagem CUDA Aula 06: Introdução a Linguagem CUDA Otimização do Código Carine P. Beatrici IF UFRGS 1 Da Aula Passada... Programa que soma matrizes linearizadas;
Leia maisArquiteturas de Computadores
Arquiteturas de Computadores Computadores vetoriais Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach e site do curso EE 7722, GPU Microarchitecture do Prof. David Koppelman Graphical
Leia maisArquitetura e Programação de GPU. Leandro Zanotto RA: 001962 Anselmo Ferreira RA: 023169 Marcelo Matsumoto RA: 085973
Arquitetura e Programação de GPU Leandro Zanotto RA: 001962 Anselmo Ferreira RA: 023169 Marcelo Matsumoto RA: 085973 Agenda Primeiras Placas de Vídeo Primeira GPU Arquitetura da GPU NVIDIA Arquitetura
Leia maisThársis T. P. Souza
Computação em Finanças em Hardware Gráfico SEMAC 2012 - UNESP Thársis T. P. Souza t.souza@usp.br Instituto de Matemática e Estatística - Universidade de São Paulo GPU Computing CUDA Aplicações em Finanças
Leia maisProcessamento de áudio em tempo real utilizando dispositivos não convencionais:
Processamento de áudio em tempo real utilizando dispositivos não convencionais: Processamento paralelo com Pure Data e GPU. André Jucovsky Bianchi ajb@ime.usp.br Departamento de Ciência da Computação Instituto
Leia maisAplicando Processamento Paralelo com GPU ao Problema do Fractal de Mandelbrot
Aplicando Processamento Paralelo com GPU ao Problema do Fractal de Mandelbrot Bruno Pereira dos Santos¹, Dany Sanchez Dominguez¹, Esbel Valero Orellana¹. 1 Departamento de Ciências Exatas e Tecnológicas
Leia maisARQUITETURA DE COMPUTADORES
RCM00014 Haswell wafer ARQUITETURA DE COMPUTADORES Prof. Luciano Bertini Site: http://www.professores.uff.br/lbertini/ Objetivos do Curso Entendimento mais aprofundado do funcionamento
Leia maisGPU (Graphics Processing Unit) Bruno Padilha Gregory De Bonis Luciana Kayo
GPU (Graphics Processing Unit) Bruno Padilha - 5745282 Gregory De Bonis - 6431180 Luciana Kayo - 6430992 O que é? O que é? - Processador auxiliar responsável principalmente por operações de ponto flutuante
Leia maisUma introdução para computação paralela de modelos massivos. Adriano Brito Pereira inf.puc-rio.br
Uma introdução para computação paralela de modelos massivos Adriano Brito Pereira 1021752 apereira @ inf.puc-rio.br Departamento de Informática Novembro / 2010 1 Resultados obtivos com Manta Framework
Leia maisProgramação Paralela em Ambientes Computacionais Heterogêneos com OpenCL
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 H. Cavalheiro 08 de novembro de 2010 cesar@v3d.com.br
Leia maisCelso L. Mendes LAC /INPE
Arquiteturas para Processamento de Alto Desempenho (PAD) Aula 9 Celso L. Mendes LAC /INPE Email: celso.mendes@inpe.br Aula 9 (3/5): E. Aceleradores Estrutura Planejada i. Estruturas mais Populares ii.
Leia maisIntrodução à Programação de GPUs
Introdução à Programação de GPUs com a Plataforma CUDA Pedro Bruel phrb@ime.usp.br 04 de Agosto de 2016 Instituto de Matemática e Estatística Universidade de São Paulo Sobre Pedro Bruel Alfredo Goldman
Leia maisMemory-level and Thread-level Parallelism Aware GPU Architecture Performance Analytical Model
Memory-level and Thread-level Parallelism Aware GPU Architecture Performance Analytical Model Sunpyo Hong Hyesoon Kim ECE School of Computer Science Georgia Institute of Technology April 6, 2011 Visão
Leia maisPARALELIZAÇÃO DE APLICAÇÕES NA ARQUITETURA CUDA: UM ESTUDO SOBRE VETORES 1
PARALELIZAÇÃO DE APLICAÇÕES NA ARQUITETURA CUDA: UM ESTUDO SOBRE VETORES 1 DUTRA, Evandro Rogério Fruhling 2 ; VARINI, Andre Luis 2 ; CANAL, Ana Paula 2 1 Trabalho de Iniciação Científica _UNIFRA 2 Ciência
Leia maisAmbientes e Ferramentas de Programação para GPU. Denise Stringhini (Mackenzie) Rogério Gonçalves (UFTPR/IME- USP) Alfredo Goldman (IME- USP)
Ambientes e Ferramentas de Programação para GPU Denise Stringhini (Mackenzie) Rogério Gonçalves (UFTPR/IME- USP) Alfredo Goldman (IME- USP) Conteúdo Conceitos de paralelismo Arquitetura de GPU CUDA OpenCL
Leia maisGPU Computing: Implementação do método do Gradiente Conjugado utilizando CUDA
UNIVERSIDADE DE CAXIAS DO SUL CENTRO DE COMPUTAÇÃO E TECNOLOGIA DA INFORMAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO MAURÍCIO GRISA GPU Computing: Implementação do método do Gradiente Conjugado
Leia maisComputadores e Programação (DCC/UFRJ)
Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo
Leia maisCUDA: Compute Unified Device Architecture. Marco Antonio Simões Teixeira
CUDA: Compute Unified Device Architecture Marco Antonio Simões Teixeira Sumário Introdução; CUDA: História; CUDA: programando; CUDA e deep learning; Links úteis; Considerações finais. 2 INTRODUÇÃO 3 O
Leia maisProgramação em Paralelo OpenMP
Programação em Paralelo OpenMP N. Cardoso & P. Bicudo Física Computacional - MEFT 2012/2013 N. Cardoso & P. Bicudo Programação em Paralelo: OpenMP 1 / 15 Introdução Potencial do GPU vs CPU Cálculo: 367
Leia maisESTRATÉGIAS DE OTIMIZAÇÃO DE CÓDIGO EM OPENCL
6ª Jornada Científica e Tecnológica e 3º Simpósio de Pós-Graduação do IFSULDEMINAS 04 e 05 de novembro de 2014, Pouso Alegre/MG ESTRATÉGIAS DE OTIMIZAÇÃO DE CÓDIGO EM OPENCL Claudio André da SILVA JUNIOR
Leia maisFACULDADE FARIAS BRITO
FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃO ALBERTO ANTUNES BEZERRA MARTINS TECNOLOGIAS DE PROCESSAMENTO PARALELO GPGPU: UM ESTUDO DE CASO USANDO O ALGORITMO DE CONVOLUÇÃO Fortaleza 2013 ALBERTO ANTUNES
Leia mais1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador
1 Introdução 1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador possa resolver problemas de forma automática
Leia maisParalelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data)
Paralelismo de dados (execução de simultaneidade) Em métodos tradicionais de programação (processamento sequencial), uma grande quantidade de dados é processada em um único núcleo de uma CPU, enquanto
Leia maisInfraestrutura de Hardware. Processamento Paralelo Multicores, Multi-Threading e GPUs
Infraestrutura de Hardware Processamento Paralelo Multicores, Multi-Threading e GPUs Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido
Leia maisTaxonomia de Flynn. Procura classificar todas as arquitecturas de computadores com base no processamento das instruções e dos dado.
Multi-processamento Taxonomia de Flynn Arquitecturas SIMD Instruções vectoriais Arquitecturas MIMD Tipos de arquitectura MIMD Memória partilhada Multi-cores Taxonomia de Flynn Procura classificar todas
Leia maisGPU Computing. GeForce and Radeon OpenCL Test. OpenCL
GPU Computing GeForce and Radeon OpenCL Test Publicado em 15.jan.2010 em www.geeks3d.com - Tradução por Luiz Gustavo TURATTI http://www.geeks3d.com/20100115/gpu-computing-geforce-and-radeon-opencl-test-part-1/
Leia maisParadigmas de Computação Paralela
Paradigmas de Computação Paralela Modelos e Linguagens de Computação Paralela João Luís Ferreira Sobral jls@... 1 Dezembro 2015 Razões para a computação paralela (cf. Skillicorn & Talia 1998) O mundo é
Leia maisEstudo de Técnicas de Otimização de Desempenho para GPUs Utilizando CUDA Aplicado a um Modelo Meteorológico
Fabiano Cassol de Vargas Estudo de Técnicas de Otimização de Desempenho para GPUs Utilizando CUDA Aplicado a um Modelo Meteorológico Alegrete RS 08/2014 Fabiano Cassol de Vargas Estudo de Técnicas de
Leia maisOpenMP. Slides baseados em tutorial de Tim Mattson da Intel
OpenMP Slides baseados em tutorial de Tim Mattson da Intel O que é OpenMP? Uma especificação para um conjunto de diretivas de compilação, rotinas de biblioteca e variáveis de sistema que podem ser utilizadas
Leia maisProcessadores para computação de alto desempenho
Processadores para computação de alto desempenho Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos Introdução Nesta aula apresentaremos características de processadores e como
Leia maisBacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór
Bacharelado em Sistemas de Informação Sistemas Operacionais Prof. Filipo Mór WWW.FILIPOMOR.COM - REVISÃO ARQUITETURAS PARALELAS Evolução das Arquiteturas Evolução das Arquiteturas Entrada CPU Saída von
Leia maisPARALELIZAÇÃO DO ALGORITMO AES E ANÁLISE SOBRE GPGPU 1 PARALLELIZATION OF AES ALGORITHM AND GPU ANALYSIS
Disciplinarum Scientia. Série: Naturais e Tecnológicas, Santa Maria, v. 16, n. 1, p. 83-94, 2015. Recebido em: 11.04.2015. Aprovado em: 30.06.2015. ISSN 2176-462X PARALELIZAÇÃO DO ALGORITMO AES E ANÁLISE
Leia maisEngenharia Informática Computação Gráfica
Computação Gráfica 11569 - Engenharia Informática Gráficos 3D - Evolução Histórica Computação Gráfica 1 Sumário! Criação de Gráficos! Criação de Modelos 3D! Pipeline Gráfico! Hardware Gráfico! Bibliotecas
Leia maisperiféricos: interfaces humano-computador (HCI) arquivo de informação comunicações
Introdução aos Sistemas de Computação (6) Análise de componentes num computador Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3.
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) A comunicação entre processos consiste em transmitir uma mensagem entre o
Leia maisde petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de
12 1 1.1. Motivações Dentre os tipos de técnicas de Inteligência Artificial existentes, as técnicas de Programação Genética (PG) continuam mudando rapidamente conforme os pesquisadores e profissionais
Leia maisAULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA
Leia maisOpenMP: Variáveis de Ambiente
Treinamento OpenMP C/C++ 1 TREINAMENTO OpenMP C/C++ Módulo 1 Computação de Alto Desempenho Módulo 2 OpenMP: Construtores Paralelos Módulo 3 OpenMP: Diretivas de sincronização Módulo 4 OpenMP: Funções de
Leia maisParalelização do algoritmo de Método de Estimação Não-Paramétrico por Núcleo Estimador Multivariado (KDE) utilizando GPU/CUDA
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/271325676 Paralelização do algoritmo de Método de Estimação Não-Paramétrico por Núcleo Estimador
Leia maisBibliografia. OpenMP. Disponibilidade de OpenMP. Abordagem SPMD. Nicolas Maillard
Bibliografia Nicolas Maillard nicolas@inf.ufrgs.br Instituto de Informática Universidade Federal do Rio Grande do Sul home-page: http://www.openmp.org/presentations Parallel Programming in. R. Chandra
Leia maisProcessadores para computação de alto desempenho
Processadores para computação de alto desempenho Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos Introdução Nesta aula apresentaremos características de processadores e como
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação UDP e TCP,
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO Prof. Bosco 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação
Leia maisA Utilização da Tecnologia CUDA para Processamento Paralelo de Algoritmos Genéticos
A Utilização da Tecnologia CUDA para Processamento Paralelo de Algoritmos Genéticos Allan Ariel Leite Menezes Santos 1 1 Universidade do Estado da Bahia (UNEB) allan.ariel1987@gmail.com Abstract. The problem
Leia maisA IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES
A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES Euzébio da Costa Silva 1, Victor Pereira Ribeiro 2, Susana Brunoro Costa de Oliveira 3 1 29520-000, euzebioprogramacao@gmail.com 2 29520-000, victor3ifes@gmail.com
Leia maisArquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura
Leia maisWaldemar Celes. 25 de Agosto de 2014
Introdução a CUDA INF2062 Tópicos em Simulação e Visualização Waldemar Celes celes@inf.puc-rio.br Tecgraf, DI/PUC-Rio 25 de Agosto de 2014 W. Celes Introdução a CUDA 1 GPGPU Programação de propósito geral
Leia maisSistemas de Entrada e Saída
Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 33 Sumário 1 Dispositivos de E/S 2 Interrupções 3 Software de E/S 2
Leia maisARQUITETURA DE COMPUTADORES
RCM00014 Haswell wafer ARQUITETURA DE COMPUTADORES Prof. Luciano Bertini Site: http://www.professores.uff.br/lbertini/ Objetivos do Curso Entendimento mais aprofundado do funcionamento
Leia maisImplementação de um escalonador de processos em GPU
Implementação de um escalonador de processos em GPU Guilherme Martins guilhermemartins@usp.br 6 de abril de 2017 Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos
Leia maisMódulo 3 - Estrutura e configuração de Sistemas Operativos monoposto
Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto 20-05-2009 - Aula nº 121,122 Funções de um Sistema Operativo Gestão do processador ao nível da sua planificação Gestão da Memória Gestão
Leia maisProcessamento Sísmico de Alto Desempenho na Petrobras
Processamento Sísmico de Alto Desempenho na Petrobras Thiago Teixeira E&P-Exp/Geof/Tecnologia Geofísica Julho/2011 Processamento Sísmico e Interpretação 2 Aquisição Sísmica Linhas Sísmicas Volumes de dados
Leia maisParalelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core
RSS-Verão-01/08 p.1/36 Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7 Escola de Verão 2008 Arquiteturas Multi-Core Renato S. Silva LNCC - MCT Janeiro de 2008 RSS-Verão-01/08 p.2/36 Objetivo:
Leia maisIntrodução OpenMP. Nielsen Castelo Damasceno
Introdução OpenMP Nielsen Castelo Damasceno Computação de auto desempenho Processamento Paralelo Memória Distribuída e Compartilhada Modelo de programação OpenMP Métricas de Desempenho Computação de auto
Leia maisElementos de conexão e condições de paralelismo. Aleardo Manacero Jr.
Elementos de conexão e condições de paralelismo Aleardo Manacero Jr. Elementos de Conexão O que é conectividade? Define como os elementos de processamento (CPU e memória) de um sistema de alto desempenho
Leia maisArquiteturas de Computadores
Arquiteturas de Computadores Computadores vetoriais Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach Introdução Arquiteturas Single Instruction Multiple Data podem explorar paralelismo
Leia maisAplicação de Processamento Paralelo com GPU a Problemas de Escoamento Monofásico em Meios Porosos. Bruno Pereira dos Santos Dany Sanchez Dominguez
Aplicação de Processamento Paralelo com GPU a Problemas de Escoamento Monofásico em Meios Porosos Bruno Pereira dos Santos Dany Sanchez Dominguez 1 Roteiro 1. Introdução 2. Five-Spot Problem 3. Modelagem
Leia maisIntrodução à OpenMP (Dia 1) Prof. Guido Araujo
Introdução à OpenMP (Dia ) Prof. Guido Araujo www.ic.unicamp.br/~guido Roteiro Escrevendo programas usando OpenMP Usando OpenMP para paralelizar laços seriais com pequenas mudanças no código fonte Explorar
Leia maisUSO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS
Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO
Leia maisSistemas de Entrada e Saída
Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 31 Sumário 1 Interrupções 2 Camadas de Software de E/S 2 / 31 Interrupções
Leia maisEntrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -
Capítulo 5 Afirmações Entrada/Saída Introdução Processos se comunicam com o mundo externo através de dispositivos de E/S. Processos não querem ou não precisam entender como funciona o hardware. Função
Leia maisExploração do paralelismo em arquiteturas multicore, multicomputadores e gpus
https://periodicos.utfpr.edu.br/recit Exploração do paralelismo em arquiteturas multicore, multicomputadores e gpus RESUMO A computação paralela visa atender à demanda por alto poder computacional ao utilizar
Leia maisArquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it?
Arquitetura do SET de instruções Instruction SET CISC vs RISC What s assembly as to do with it? Low-level - high-level programming language Assambley CODE section.text global _start ;must be declared for
Leia maisElementos de conexão e condições de paralelismo. Aleardo Manacero Jr.
Elementos de conexão e condições de paralelismo Aleardo Manacero Jr. Elementos de Conexão O que é conectividade? Define como os elementos de processamento (CPU e memória) de um sistema de alto desempenho
Leia maisAtol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti. 28 de novembro de 2008
Reinventando a Computação Atol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti Universidade de São Paulo 28 de novembro de 2008 Introdução Dr.
Leia maisCOMPUTAÇÃO PARALELA COM ACELERADORES GPGPU 1. Emilio Hoffmann De Oliveira 2, Edson Luiz Padoin 3.
COMPUTAÇÃO PARALELA COM ACELERADORES GPGPU 1 Emilio Hoffmann De Oliveira 2, Edson Luiz Padoin 3. 1 Trabalho de Conclusão de Curso 2 Aluno do Curso de Ciência da Computação - emiliohoffmann@hotmail.com
Leia maisSoluções em GPU para o Problema do Alinhamento Spliced
Soluções em GPU para o Problema do Alinhamento Spliced Anisio Vitorino Nolasco Dissertação de Mestrado apresentada à Faculdade de Computação da Universidade Federal de Mato Grosso do Sul Orientadora: Profa.
Leia maisPROPOSTA DE UMA ESTRATÉGIA DE PROGRAMAÇÃO EXPLÍCITA COM ANOTAÇÃO EM CÓDIGO EM BUSCA DE EFICIÊNCIA ENERGÉTICA 1
PROPOSTA DE UMA ESTRATÉGIA DE PROGRAMAÇÃO EXPLÍCITA COM ANOTAÇÃO EM CÓDIGO EM BUSCA DE EFICIÊNCIA ENERGÉTICA 1 Bruno Mokan Muenchen 2, João Vicente Ferreira Lima 3. 1 Projeto de pesquisa realizado pelo
Leia maisAnálise e Testes de Algoritmos Utilizando Sistemas de Arquiteturas Híbridas CPU/GPU
Análise e Testes de Algoritmos Utilizando Sistemas de Arquiteturas Híbridas CPU/GPU Danilo, Silva Maciel Univem - Marília, Brasil danilo.maciel@univem.edu.br Mauricio Duarte maur.duarte@gmail.com Univem
Leia maisRelatório de Atividades Desenvolvidas. Uso de GPU para Aceleração de Simulações Atmosféricas com o Modelo CCATT BRAMS.
Relatório de Atividades Desenvolvidas Uso de GPU para Aceleração de Simulações Atmosféricas com o Modelo CCATT BRAMS. 1 Cezar Augusto Contini Bernardi 2 Haroldo Fraga de Campos Velho Coordenador Bolsista
Leia maisProposta de Melhoria de uma Implementação Paralela para GPUs Usando CUDA - Estudo de Caso em Modelo Atmosférico
Proposta de Melhoria de uma Implementação Paralela para GPUs Usando CUDA - Estudo de Caso em Modelo Atmosférico Fabiano Cassol de Vargas, Matheus Beniz Bieger, Claudio Schepke 1 Laboratório de Estudos
Leia maisProcessamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo
Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo André J. Bianchi 21/10/2013 1 / 33 1 Introdução 2 Metodologia 3 Arduino 4 GPU 5 Android 6 Conclusão
Leia maisJônatas Lopes de Paiva Instituto de Matemática e Estatística Universidade de São Paulo. 06 de maio de 2011
Jônatas Lopes de Paiva jlp@ime.usp.br Instituto de Matemática e Estatística Universidade de São Paulo 06 de maio de 2011 Introdução String-matching O que é? Em que é utilizado Tipos GPU GPGPU String-matching
Leia maisComparação das Características de Simuladores de Arquiteturas Heterogêneas
Comparação das Características de Simuladores de Arquiteturas Heterogêneas Felipe Leivas Teixeira Andrei Silva Carlos Vinícius Rasch Alves Vinícius Krolow da Silva Prof. Dr. Maurício Lima Pilla (Orientador)
Leia maisSuporte à Execução Eficiente de Aplicações em Plataformas com Paralelismo Multi-Nível
Suporte à Execução Eficiente de Aplicações em Plataformas com Paralelismo Multi-Nível Vinícius Garcia Pinto Lucas Mello Schnorr Nicolas Maillard Grupo de Processamento Paralelo e Distribuído (GPPD) Instituto
Leia maisWorkshop de Informática Biomédica (WIBm)
42 UTILIZAÇÃO DE UNIDADES DE PROCESSAMENTO GRÁFICO EM SIMULAÇÕES DO PROBLEMA DE PONTOS ALEATÓRIOS Cristiano Roberto Fabri Granzotti 1, Alexandre Souto Martinez 1 1 Laboratório de Simulação em Sistemas
Leia maisPatricia Akemi Ikeda
Um estudo do uso eficiente de programas em placas gráficas Patricia Akemi Ikeda Dissertação apresentada ao Instituto de Matemática e Estatística da Universidade de São Paulo para obtenção do título de
Leia mais