Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?
|
|
- Joaquim Olivares Bentes
- 6 Há anos
- Visualizações:
Transcrição
1 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 de Telecomunicações IMAR Instituto do Mar, Departamento de Ciências da Vida Universidade de Coimbra
2 Motivação Evolução da capacidade de cálculo das placas gráficas (GPUs Graphics Processing Units). Desenvolvimento de interfaces de programação para GPU, que permitem programar a placa gráfica com linguagens de alto nível ( C/C++, Phyton, Java, ): - CUDA 1 (NVIDIA), - Brook+ (AMD/ATI), - OpenCL. Aumento da investigação sobre como usar a GPU para aplicações não gráficas: GPGPU General Purpose computation on GPU.s.
3 GPGPU - Áreas de Aplicação Problemas com paralelismo de dados, o mesmo código é executado simultaneamente em diferentes segmentos de dados. Exemplos : - Simulação de modelos moleculares, - Previsão meteorológica, - Processamento de sinal, finanças,... Problemas de cálculo cientifico que envolvem a manipulação de matrizes de grande dimensão. Vários estudos mostram que para problemas que manipulam matrizes densas, a GPU permite grandes ganhos de desempenho.
4 Objetivos Estudo da operação: produto matriz esparsa - vector Operação dominante em problemas de resolução de sistemas de equações lineares, e no cálculo de valores próprios Formato de representação de matrizes esparsas condiciona o desempenho Análise do impacto da ordenação das linhas pelo número de elementos não zero Formato CSR Formato ELL
5 Arquitectura GPU da NVIDIA: GeForce GTX 295 Array de multi-processadores
6 Arquitectura GPU da NVIDIA: GeForce GTX 295 Cada multiprocessador com: 8 processadores (cores) Um conjunto de registos Área de memória partilhada Uma unidade de operações em virgula flutuante de precisão dupla (capability 1.3)
7 Modelo de Programação CUDA Um programa em execução na CPU (host) pode: Copiar dados da CPU para a GPU e vice-versa Lançar a execução de funções na GPU (Kernel.s) Executar operações de sincronização Cada Kernel é executado por múltiplas threads em simultâneo sobre diferentes conjuntos de dados Modelo de execução: Em cada multiprocessador Simple Instruction Multiple Data Na GPU Simple Program Multiple Data.
8 Modelo de Programação CUDA Threads agrupadas em blocos dimensionáveis pelo utilizador. É criada uma grelha na qual são distribuídos os blocos de threads.
9 Modelo de Programação CUDA A grelha é associada à placa gráfica. Cada bloco é associado a um multiprocessador. As threads de um bloco são executadas pelos núcleos do multiprocessador associado ao bloco. Unidade de escalonamento ( warp) =32
10 Hardware e Linguagens Intel Core 2 Quad Q9550 a 2.83 GHz, com 4 GB de RAM Nvidia Geforce GTX 295 (30 multiprocessadores, 8 cores cada a 1,24 GHz, 2GB memória global) CUDA versão 2.3 Visual Studio, C/C++ Matrizes: sintéticas e Williams multi-core benchmarking
11 Matrizes Esparsas Formatos de Armazenamento COO Coordinate Format Linhas Colunas Valores
12 Formatos de Armazenamento: CSR Formato CSR Compressed Sparse Row ptr = índices das colunas= dados = Número de não zeros Os elementos são armazenados por linhas
13 Formatos de Armazenamento: ELL - R Formato ELLPACK/ITPACK ELL (ELL-R) índices = dados = 1 * 3 * tamanho linhas = * 6 * Os elementos são armazenados por colunas: * 5 *
14 Algoritmos Estudados Thread per row Cada linha da matriz é atribuída a uma thread Formato CSR: as threads de cada warp acedem a posições de memória não contíguas Formato ELL: as threads de cada warp acedem a posições contíguas de memória (mais eficiente)
15 Algoritmos Estudados Warp per row Cada linha da matriz é atribuída às threads de um warp Format CSR: Todas as threads acedem a elementos da mesma linha logo a posições contíguas de memória Eficiente se as linhas tiverem tamanho suficiente para todas as threads terem trabalho (>=32)
16 Ordenar linhas, porquê? Modelo de execução SIMD => o desempenho é tanto maior quanto, num mesmo warp for: - menor a divergência no acesso à memória - menor a divergência de execução Se num mesmo warp houver threads a processar linhas de diferentes comprimentos, a execução do warp só termina quando terminar o processamento da maior das linhas, isto é, da linha que tiver maior número de valores não zero.
17 Resultados matrizes sintéticas Melhores tempos de execução (em milissegundos) obtidos para matrizes com 10% de não zeros gerados aleatoriamente Matrix order GPU, CSR (thread per row) GPU, ELL-R (thread per row) GPU, CSR row sorted row sorted warp per row float double float double float double float double float double
18 Resultados matrizes sintéticas Precisão simples mais rápido que precisão dupla Thread per row - há sempre ganho com a ordenação O ganho com a ordenação das linhas é maior para o formato ELL-R O algoritmo warp per row é sempre o melhor para estas matrizes
19 Resultados matrizes sintéticas Quando a percentagem de não zeros decresce, Algoritmo thread per row, formato ELL-R, com ordenação das linhas é o melhor quando % de não zeros <= 2% Quando a percentagem de linhas, com tamanho <= 32, cresce Algoritmo thread per row, formato ELL-R, com ordenação das linhas é o melhor quando % linhas com tamanho <=32 é >= 70%
20 Resultados Williams multi-core benchmarking CPU GPU GPU texture Matrix Order CSR ELL (std) ELL-R ELL-R sorted CSR wpr ELL-R ELL-R sorted Economics Accelerator Cantilever Epidemiology Protein Spheres Ship Wind Tunnel Circuit Harbor
21 Resultados Williams multi-core benchmarking Ordenar as linhas pelo seu tamanho tem vantagem para 3 matrizes: Economics, Circuit, Harbor Nos restantes casos, não ordenar as linhas tem melhores resultados A perda de localidade no acesso ao vector é responsável pelo pior desempenho da ordenação O algoritmo warp per row nunca é o melhor A utilização de texturas (memória constante) para armazenar o vector, melhora os tempos de execução mas não inverte os resultados.
22 Resultados Williams multi-core benchmarking Matrix N. of nz % of nz Av.of nz /row Sort. Time (ms) GFlops ELL-R Texture GFlops ELL-R Sorted Texture Average of warp lengths Before Sorting After Sorting Economics % Accelerator % Cantilever % Epidemiology % Protein % Spheres % Ship % Wind Tunnel % Circuit % Harbor %
23 Conclusões Calculando o tamanho médio dos warps antes e depois de ordenar as linhas, verifica-se que quando esse valor decresce para cerca de 66% ou menos do valor inicial, há vantagem em ordenar as linhas. Nestes casos o facto de cada warp ter uma carga de trabalho mais equilibrada compensa a falta de localidade no acesso ao vector.
24 Trabalho futuro Estudar outras matrizes Estudar comportamento dos algoritmos na nova arquitectura da NVIDIA, Fermi. Estudar outra arquitecturas e algoritmos
Impacto da Organização dos Dados em Operações com Matrizes Esparsas na GPU
Impacto da Organização dos Dados em Operações com Matrizes Esparsas na GPU Paula Prata 1,2, Gilberto Melfe 2, Ricardo Pesqueira 2, João Muranho 1,3 1 Instituto de Telecomunicações, 2 Departamento de Informática,
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 maisWindows 7, 8.1 e 10 Afinal qual o mais rápido?
Windows 7, 8.1 e 10 Afinal qual o mais rápido? Date : 20 de Agosto de 2015 Lançado há mais de três semanas, o novo Windows 10 tem surpreendido os utilizadores em vários aspectos. Este é certamente o sistema
Leia maisParalelização Eficiente para o Algoritmo Binário de Exponenciação Modular
Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular Pedro Carlos da Silva Lara Fábio Borges de Oliveira Renato Portugal Laboratório Nacional de Computação Científica Índice 1 Introdução
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 maisArquitetura de computadores
Arquitetura de computadores Arquitetura de Microprocessadores Curso Profissional de Técnico de Gestão e Programação de Sistemas O Computador Hardware Unidades Funcionais de um Sistema Informático Dispositivos
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 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 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 maisComputação científica utilizando placas gráficas
Brasília, dezembro de 2008 Universidade de Brasília - Faculdade do Gama Sumário Introdução Sumário Introdução Arquitetura da GPU Sumário Introdução Arquitetura da GPU Modelo de programação Sumário Introdução
Leia maisSistemas Distribuídos
Sistemas Distribuídos Classificação de Flynn Fonte: Professoras. Sarita UFRJ e Thais V. Batista - UFRN Arquiteturas Paralelas Computação Paralela Conceitos Permite a execução das tarefas em menor tempo,
Leia maisSSC510 Arquitetura de Computadores. 6ª aula
SSC510 Arquitetura de Computadores 6ª aula PARALELISMO EM NÍVEL DE PROCESSOS PROFA. SARITA MAZZINI BRUSCHI Tipos de Paralelismo Instrução (granulosidade fina) Paralelismo entre as instruções Arquiteturas
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 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 maisBarramentos internos/externos
Barramentos Uma das características principais de um processador são os seus barramentos. Os barramentos são auto-estradas por onde circula a informação, seja no interior do CPU ou do interior para o exterior,
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 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 maisComputação paralela. Nielsen Castelo Damasceno
Computação paralela Nielsen Castelo Damasceno Introdução. Motivação. Como é utilizado. Fundamentos. Programação paralela. Open MP. MPI GPU (Cuda). Aplicação prática. Considerações Finais Referências. Agenda
Leia mais28 de fevereiro de 2016
Ítalo Mendes da Silva Ribeiro UESPI 28 de fevereiro de 2016 1 / 72 Súmario Breve 2 / 72 Súmario Breve 3 / 72 Por que estudar Arquitetura e Organização de Computadores? Conhecimento do funcionamento interno
Leia maisLEAPFROG EDGE Página 1
LEAPFROG EDGE Página 1 Este documento descreve as melhorias e os principais novos recursos inseridos no Leapfrog EDGE 2.0. Para mais informações, contate sua equipe local da Leapfrog.. Índice Página 2
Leia maisAplicaçõ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 maisPROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register
PROCESSADORES Um computador digital consiste em um sistema interconectado de processadores, memória e dispositivos de entrada e saída. A CPU é o cérebro do computador. Sua função é executar programas armazenados
Leia maissimulação de neurônios biologicamente realistas em GPUs
Simulação de Neurônios Biologicamente Realistas em GPUs Raphael Y. de Camargo Centro de Matemática, Computação e Cognição Universidade Federal do ABC Santo André-SP, Brasil raphael.camargo@ufabc.edu.br
Leia maisOrganização de Computadores 2005/2006 Processamento Paralelo
GoBack Organização de Computadores 2005/2006 Processamento Paralelo Paulo Ferreira paf a dei.isep.ipp.pt Maio de 2006 ORGC Processamento Paralelo slide 1 Porquê? Definição de computação paralela Alocação
Leia maisUniversidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD
Universidade Federal do Rio de Janeiro Informática DCC/IM Arquitetura de Computadores II Arquiteturas MIMD Arquiteturas MIMD As arquiteturas MIMD dividem-se em dois grandes modelos: Arquiteturas MIMD de
Leia maisUNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C SISTEMAS OPERATIVOS
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1203 - SISTEMAS OPERATIVOS 2º Semestre 2005/2006 27/7/2007 Resolução 1. Identifique três situações em que ocorra uma transição do modo de execução utilizador
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 mais1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho
1 Introdução I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho Os hardwares gráficos atualmente podem ser considerados como verdadeiros processadores
Leia maisPatrício Domingues Dep. Eng. Informática ESTG Instituto Politécnico de Leiria Leiria, Maio Programação Genérica de GPUs
Patrício Domingues Dep. Eng. Informática ESTG Instituto Politécnico de Leiria Leiria, Maio 2012 http://bit.ly/patricio Programação Genérica de GPUs 1 CUDA Teaching Center A ESTG/IPLeiria é um CUDA Teaching
Leia maisFaculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues
Faculdade de Computação 3 a Prova de Parte I Prof. Cláudio C. Rodrigues Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Problemas: P1. Qual o
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 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 maisVisualização por Computador: Teoria, Prática e Aplicações
Visualização por Computador: Teoria, Prática e Aplicações Princípios de sistemas e aplicações gráficas Claudio Esperança Programa de Engenharia de Sistemas e Computação COPPE / UFRJ Master of Information
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 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 maisProgramação Distribuída e Paralela. Jorge Barbosa
Programação Distribuída e Paralela Jorge Barbosa 1 Máquinas Paralelas Processadores Memória Rede de interligação Classificação das máquinas paralelas 2 Processador Escalar Processadores Processador que
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 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 maisBroadband Engine Cell Processor. Arquitetura e Organização de Processadores (CPM237) Rodrigo Bittencourt Motta
Broadband Engine Cell Processor Arquitetura e Organização de Processadores (CPM237) Rodrigo Bittencourt Motta rbmotta@inf.ufrgs.br Junho/06 Plano de Apresentação Introdução Visão Geral Organização Interna
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 maisFundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo
Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo Múltipla escolha 1. Em que consiste um sistema operacional: a. Um conjunto de
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 maisBruna Freire Pedroso da Costa Guilherme Carvalho Lucas Henrique Muniz Raul Vinícius Nascimento Vanessa Baptista. D&D Info
Bruna Freire Pedroso da Costa Guilherme Carvalho Lucas Henrique Muniz Raul Vinícius Nascimento Vanessa Baptista D&D Info Sistema de gerenciamento O SisAlu pode ser usado via rede e instalado em até 5 (cinco)
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 mais5 Comparação e Resultados
5 Comparação e Resultados Neste capítulo, são apresentados e comparados os resultados obtidos com os algoritmos discutidos ao longo desta dissertação. Os testes foram realizados com as seguintes implementações:
Leia maisFrustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass
Frustum Culling Híbrido Utilizando CPU e GPU Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass Agenda Objetivos Motivação Algoritmos de visibilidade Frustum Culling
Leia maisLeapfrog Geo 3.1. Notas técnicas da versão
Página 1 Leapfrog Geo 3.1 Notas técnicas da versão Este documento descreve os principais novos recursos e melhorias que estão no Leapfrog Geo 3.1. Por favor, contate sua equipe local de suporte para uma
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 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 maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 17ª Aula Paralelismos nível de tarefas Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Paralelismo no nível de tarefas Paralelismo a nível de thread (TLP Thread-Level
Leia maisOrganização de Computadores II. Arquiteturas MIMD
Organização de Computadores II Arquiteturas MIMD Arquiteturas UMA Arquiteturas com memória única global. Tempo de acesso uniforme para todos os nós de processamento. Nós de processamento e memória interconectados
Leia maisTecnologias de Informação e Comunicação. Conceitos Básicos
Tecnologias de Informação e Comunicação Conceitos Básicos Un1 Conceitos Básicos INFORMÁTICA Informação Automática Un1 Conceitos Básicos INFORMÁTICA Tratamento ou processamento da informação utilizando
Leia maisParadigmas de Computação
UCE- Computação Paralela e Distribuída Paradigmas de Computação João Luís Ferreira Sobral www.di.uminho.pt/~jls jls@... http://alba.di.uminho.pt/... 1 Paradigmas de Computação paralela Resultados da Aprendizagem
Leia maisUniversidade Federal do Espírito Santo DI/PPGEM/PPGI 1 o Trabalho de Algoritmos Numéricos II - Computação Científica 17/1
Universidade Federal do Espírito Santo DI/PPGEM/PPGI 1 o Trabalho de Algoritmos Numéricos II - Computação Científica 17/1 Métodos Iterativos Não Estacionários para Sistemas Esparsos de Grande Porte 1 Introdução
Leia maisSob medida para seu sistema de segurança!
Surveillance servers, workstations & storages. Inpex WST200 G2 Sob medida para seu sistema de segurança! Concebidos por engenheiros e cientistas da computação, oriundos dos segmentos de videosurveillance
Leia maisGeração Procedural de Terrenos em GPU
Geração Procedural de Terrenos em GPU Felipe Gomes Sampaio Universidade Federal de Juiz de Fora Departamento de Ciência da Computação Orientadora: Jesuliana Nascimento Ulysses Agenda Introdução GPU Terrenos
Leia maisBruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais
Bruno Pereira Evangelista Pontifícia Universidade Católica de Minas Gerais 2/60 Apresentação Introdução Pipeline de renderização Efeitos utilizando GPUs Shaders Como utilizar shaders Ferramentas Demos
Leia maisIntrodução à Computação: Sistemas de Computação
Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
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 maisNotas técnicas da versão
LEAPFROG GEO Página 1 Notas técnicas da versão Este documento descreve os principais novos recursos e melhorias no Leapfrog Geo 4.1. Índice Página 2 Novos recursos... 3 Controle do Comprimento Final na
Leia maisUNIVERSIDADE FEDERAL DO ABC. Dissertação de Mestrado. Cleber Silva Ferreira da Luz
UNIVERSIDADE FEDERAL DO ABC Curso de Pós-Graduação em Ciência da Computação Dissertação de Mestrado Cleber Silva Ferreira da Luz IMPLEMENTAÇÕES DE ALGORITMOS PARALELOS DA SUBSEQUÊNCIA MÁXIMA E DA SUBMATRIZ
Leia maisPROVA Duração da prova: 120 minutos. Grupo 1 - Três questões de resposta múltipla de matemática.
Página 1 de 8 Provas especialmente adequadas destinadas a avaliar a capacidade para a frequência do ensino superior dos maiores de 23 anos, Decreto-Lei n.º 113/2014, de 16 de julho AVALIAÇÃO DA CAPACIDADE
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 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 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 maisIntrodução à Informática. Aula 1
Introdução à Informática Aula 1 Site da disciplina sites.google.com/site/ifbagustavo/ Ementa Introdução ao HARDWARE; Conceitos e operacionais; utilização de sistemas Utilização de Processador de texto;
Leia maisMultiprogramação leve em arquiteturas multi-core
Multiprogramação leve em arquiteturas multi-core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Arquiteturas multi-core Programação multithread Ferramentas de programação
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 maisComputação Paralela Heterogênea Aplicada a Problemas das Ciências e Engenharias
Capítulo 2 Computação Paralela Heterogênea Aplicada a Problemas das Ciências e Engenharias Flávia Magalhães Freitas Ferreira (flaviamagfreitas@pucminas.br) Luís Fabrício Wanderley Góes (lfwgoes@pucminas.br)
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 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 mais5 Qualidade dos Resultados
5 Qualidade dos Resultados Neste capítulo apresentaremos alguns resultados do trabalho com a medida de qualidade da reconstrução por TetraQuads utilizando diferentes modelos e resoluções de malha de tetraedros.
Leia maisUma Proposta de Aumento de Desempenho na Simulação de Árvores Trinomiais para Precificação de Opções
Uma Proposta de Aumento de Desempenho na Simulação de Árvores Trinomiais para Precificação de Opções Marcelo Lisboa Rocha Curso de Ciência da Computação UFT 109 Norte, Av. NS 15, ALCNO 14. Bloco II, Sala
Leia maisArquitetura de computadores
Arquitetura de computadores Arquitetura de Microprocessadores Curso Profissional de Técnico de Gestão e Programação de Sistemas Memória Cache Volátil; Memória RAM Volátil; Memória ROM Não volátil. Articulação
Leia mais