Eng. Thársis T. P. Souza
|
|
- Márcio Rico Barata
- 6 Há anos
- Visualizações:
Transcrição
1 Introdução à Computação de Alto Desempenho Utilizando GPU Seminário de Programação em GPGPU Eng. Thársis T. P. Souza Instituto de Matemática e Estatística - Universidade de São Paulo
2 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 2
3 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 3
4 CPU Própria para tarefas sequenciais Cache eficiente Maior quantidade de memória principal Controle de fluxo Número de cores de 1 ordem de grandeza 1, 2 threads por core GPU Própria para tarefas com paralelismo de dados Múltiplas ULAs Maior (capacidade) operações de ponto flutuante por segundo Alto throughput de memória Dezenas de multiprocessors Múltiplas threads por multiprocessor 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 4
5 Figura 1: Número de operações de ponto flutuante por segundo 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 5
6 Figura 2: Throughput de memória CPU x GPU 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 6
7 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 7
8 General-purpose computing on Graphics Processing Units Técnica de uso de GPU para computação de propósito geral Linguagens/API s OpenGL DirectX Cg Brook Brook+ OpenCL CUDA 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 8
9 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 9
10 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 10
11 Código otimizado depende de conhecimento da arquitetura específica Shared memory / Cache configuráveis Quantos cores? Precisão de ponto flutuante depende da geração da arquitetura SFUs (Special Function Units): limitante de operações transcendentais Qual memória usar: Shared memory, Constant Memory, Global Memory, registradores, local memory, Host Memory? Quantas threads/bloco, blocos/sm, registradores/thread, threads/sm, Warps/SM, threads/warp???? 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 11
12 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 12
13 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 13
14 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 14
15 Define arquitetura base e features de uma GPU NVIDIA 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 15
16 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 16
17 Compute capability: 2.0 Single Precision Floating Point Performance : 1.03 TFlops Device copy overlap: Enabled Kernel timeout : Disabled Total dedicated memory: 3GB GDDR5 Constant mem: 64KB Numero de multiprocessadores: 14 Shared mem por mp: 48KB Registers por mp: Threads in warp: 32 Max threads per block: 1024 Max thread dimension: (1024, 1024, 64) Max grid dimension: (65535, 65535, 1) 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 17
18 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 18
19 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 19
20 Global memory de até 6GB Cache L2 (768KB) compartilhado entre todos os Cores 16 SMs Comunicação CPU-GPU via PCI-E GigaThread: distribui blocos de threads em escalonadores de SM 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 20
21 32 CUDA Cores por SM 1 CUDA Core executa 1 thread por ciclo 16 Load/Store Units Pode limitar execução a 16 threads por clock 4 Special Function Units Executa instruções transcedentais Pode limitar execução de warp a 8 ciclos 64kB (48kB/16kB) configuráveis para Shared Memory e L1 Cache 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 21
22 1 Warp = 32 threads 2 Warps (potencialmente) executados ao mesmo tempo Máximo de 48 Warps por SM Total de 1536 threads possíveis por SM 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 22
23 Fermi dual warp scheduler seleciona 2 warps e realiza uma instrução de cada warp em um grupo de 16 cores, 16 unidades de load/store ou 4 SFUs 48 warps/sm. Para quê? Latency hiding: warp com instrução de alta-latência é escalonado Muitos escalonamentos = queda de desempenho? Zero-overhead thread scheduling: seleção de warp para execução não introduz overhead 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 23
24 Modelo SIMT: Single Instruction Multiple Thread Apropriado quando todas threads em um mesmo warp seguem o mesmo caminho de fluxo de controle Quando threads em um warp seguem caminhos de fluxo de controle diferentes dizemos que elas divergem Em situação de divergência, um warp necessita de múltiplos passos para ser executado. Um para cada caminho de divergência. 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 24
25 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 25
26 Compute Unified Device Architecture Arquitetura paralela de propósito geral Tecnologia proprietária NVIDIA 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 26
27 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 27
28 Arquitetura de Computação Paralela para propósito geral Facilita computação heterogênea (CPU + GPU) Suporte a varias linguagens e APIs CUDA define: Modelo de programação Modelo de memória Modelo de execução 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 28
29 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 29
30 Porções paralelas da aplicação são executadas como kernels CUDA threads Lighweight Fast switching Milhares potencialmente executadas ao mesmo tempo 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 30
31 Um kernel é uma função executada em GPU Cada thread possui um identificador único Seleção de input/output Decisões de controle (cuidado!) Threads com decisões de controle distintas podem causar divergência em warp 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 31
32
33 Threads são agrupadas em blocos
34 Threads são agrupadas em blocos Blocos são agrupados em grid
35 Threads são agrupadas em blocos Blocos são agrupados em grid Um kernel é executado como um grid de blocos de threads
36 GPU Threads são agrupadas em blocos Blocos são agrupados em grid Um kernel é executado como um grid de blocos de threads
37 Um kernel executa um grid de blocos de threads Um bloco é formado por um conjunto de threads Cada thread pode ser unicamente endereçada 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 37
38 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 38
39 Thread Registradores 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 39
40 Thread Registradores Thread Local Memory 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 40
41 Thread Registradores Thread Local Memory Bloco Shared Memory 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 41
42 Thread Registradores Thread Local Memory Bloco Shared Memory Grid Global Memory 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 42
43 Registradores registradores são rápidos, porém escassos. Cada thread possui um conjunto privado de registradores. 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 43
44 Registradores registradores são rápidos, porém escassos. Cada thread possui um conjunto privado de registradores. Shared Memory threads em um mesmo bloco compartilham um espaço de memória, o qual funciona como um cache manipulado explicitamente pelo programa 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 44
45 Registradores registradores são rápidos, porém escassos. Cada thread possui um conjunto privado de registradores. Shared Memory threads em um mesmo bloco compartilham um espaço de memória, o qual funciona como um cache manipulado explicitamente pelo programa Local Memory cada thread possui acesso a um espaço de memória local, além de seus registradores. Essa área de memória está fora do micro-chip de processamento, junto à memória global, e portanto, ambas estas memórias possuem o mesmo tempo de acesso. 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 45
46 Registradores registradores são rápidos, porém escassos. Cada thread possui um conjunto privado de registradores. Shared Memory threads em um mesmo bloco compartilham um espaço de memória, o qual funciona como um cache manipulado explicitamente pelo programa Local Memory cada thread possui acesso a um espaço de memória local, além de seus registradores. Essa área de memória está fora do micro-chip de processamento, junto à memória global, e portanto, ambas estas memórias possuem o mesmo tempo de acesso. Global Memory esta memória está disponível para todas as threads em cada bloco e em todas as grades. Trata-se da única maneira de threads de diferentes blocos colaborarem. 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 46
47 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 47
48 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 48
49 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 49
50 Threads são executadas por cores Um bloco consiste de conjuntos de warps Um Warp é executado em em paralelo (SIMT) em um Multiprocessor Um Kernel é lançado como um grid Um grid é executado no device 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 50
51 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 51
52 Biblioteca e um compilador para criação de rotinas em GPUs NVIDIA API de mais alto nível em comparação com: Cg, OpenGL, DirectX Exige conhecimento de arquitetura para codificação Amplamente utilizada Possui grande comunidade e boa documentação Maioria de artigos publicados em programação em GPGPU utiliza CUDA C 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 52
53 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 53
54 #include <stdlib.h> #include <stdio.h> global void kernel(int *array) { //do work } int main(void) { int num_elements = 256; int num_bytes = num_elements * sizeof(int); int *host_array = 0; host_array = (int*)malloc(num_bytes); int *device_array = 0; cudamalloc((void**)&device_array, num_bytes); int block_size = 128; int grid_size = num_elements / block_size; kernel<<<grid_size,block_size>>>(de vice_array); cudamemcpy(host_array, device_array, num_bytes, cudamemcpydevicetohost); for(int i=0; i < num_elements; ++i) { printf("%d ", host_array[i]); } free(host_array); cudafree(device_array); } 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 54
55 #include <stdlib.h> #include <stdio.h> global void kernel(int *array) { //do work } // C function int main(void) { int num_elements = 256; int num_bytes = num_elements * sizeof(int); int *host_array = 0; host_array = (int*)malloc(num_bytes); int *device_array = 0; cudamalloc((void**)&device_array, num_bytes); int block_size = 128; int grid_size = num_elements / block_size; kernel<<<grid_size,block_size>>>(de vice_array); cudamemcpy(host_array, device_array, num_bytes, cudamemcpydevicetohost); for(int i=0; i < num_elements; ++i) { printf("%d ", host_array[i]); } free(host_array); cudafree(device_array); } 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 55
56 #include <stdlib.h> #include <stdio.h> global void kernel(int *array) { //do work } int main(void) { int num_elements = 256; int num_bytes = num_elements * sizeof(int); // ponteiro para host memory int *host_array = 0; // aloca espaço em host memory host_array = (int*)malloc(num_bytes); int *device_array = 0; cudamalloc((void**)&device_array, num_bytes); int block_size = 128; int grid_size = num_elements / block_size; kernel<<<grid_size,block_size>>>(de vice_array); cudamemcpy(host_array, device_array, num_bytes, cudamemcpydevicetohost); for(int i=0; i < num_elements; ++i) { printf("%d ", host_array[i]); } free(host_array); cudafree(device_array); } 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 56
57 #include <stdlib.h> #include <stdio.h> global void kernel(int *array) { //do work } int main(void) { int num_elements = 256; int num_bytes = num_elements * sizeof(int); int *host_array = 0; host_array = (int*)malloc(num_bytes); // Ponteiro para device memory int *device_array = 0; // Aloca espaço em device memory cudamalloc((void**)&device_array, num_bytes); int block_size = 128; int grid_size = num_elements / block_size; kernel<<<grid_size,block_size>>>(de vice_array); cudamemcpy(host_array, device_array, num_bytes, cudamemcpydevicetohost); for(int i=0; i < num_elements; ++i) { printf("%d ", host_array[i]); } free(host_array); cudafree(device_array); } 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 57
58 #include <stdlib.h> #include <stdio.h> global void kernel(int *array) { //do work } int main(void) { int num_elements = 256; int num_bytes = num_elements * sizeof(int); int *host_array = 0; host_array = (int*)malloc(num_bytes); int *device_array = 0; cudamalloc((void**)&device_array, num_bytes); // configuracao de bloco e grid int block_size = 128; int grid_size = num_elements / block_size; kernel<<<grid_size,block_size>>>(de vice_array); cudamemcpy(host_array, device_array, num_bytes, cudamemcpydevicetohost); for(int i=0; i < num_elements; ++i) { printf("%d ", host_array[i]); } free(host_array); cudafree(device_array); } 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 58
59 #include <stdlib.h> #include <stdio.h> // extensao global define kernel global void kernel(int *array) { //do work } int main(void) { int num_elements = 256; int num_bytes = num_elements * sizeof(int); int *host_array = 0; host_array = (int*)malloc(num_bytes); int *device_array = 0; cudamalloc((void**)&device_array, num_bytes); int block_size = 128; int grid_size = num_elements / block_size; // lancamento do kernel kernel<<<grid_size,block_size>>>(de vice_array); cudamemcpy(host_array, device_array, num_bytes, cudamemcpydevicetohost); for(int i=0; i < num_elements; ++i) { printf("%d ", host_array[i]); } free(host_array); cudafree(device_array); } 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 59
60 #include <stdlib.h> #include <stdio.h> global void kernel(int *array) { //do work } int main(void) { int num_elements = 256; int num_bytes = num_elements * sizeof(int); int *host_array = 0; host_array = (int*)malloc(num_bytes); int *device_array = 0; cudamalloc((void**)&device_array, num_bytes); int block_size = 128; int grid_size = num_elements / block_size; kernel<<<grid_size,block_size>>>(de vice_array); // transfere resultado da GPU para CPU cudamemcpy(host_array, device_array, num_bytes, cudamemcpydevicetohost); for(int i=0; i < num_elements; ++i) { printf("%d ", host_array[i]); } free(host_array); cudafree(device_array); } 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 60
61 #include <stdlib.h> #include <stdio.h> global void kernel(int *array) { //do work } int main(void) { int num_elements = 256; int num_bytes = num_elements * sizeof(int); int *host_array = 0; host_array = (int*)malloc(num_bytes); int *device_array = 0; cudamalloc((void**)&device_array, num_bytes); int block_size = 128; int grid_size = num_elements / block_size; kernel<<<grid_size,block_size>>>(de vice_array); cudamemcpy(host_array, device_array, num_bytes, cudamemcpydevicetohost); // inspecao do resultado for(int i=0; i < num_elements; ++i) { printf("%d ", host_array[i]); } free(host_array); cudafree(device_array); } 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 61
62 #include <stdlib.h> #include <stdio.h> global void kernel(int *array) { //do work } int main(void) { int num_elements = 256; int num_bytes = num_elements * sizeof(int); int *host_array = 0; host_array = (int*)malloc(num_bytes); int *device_array = 0; cudamalloc((void**)&device_array, num_bytes); int block_size = 128; int grid_size = num_elements / block_size; kernel<<<grid_size,block_size>>>(de vice_array); cudamemcpy(host_array, device_array, num_bytes, cudamemcpydevicetohost); for(int i=0; i < num_elements; ++i) { printf("%d ", host_array[i]); } // desaloca memoria free(host_array); cudafree(device_array); } 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 62
63 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 63
64 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 64
65 Definido por extensão global Configurado por sintaxe <<<grid_size, block_size>>> 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 65
66 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 66
67 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 67
68 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 68
69 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 69
70 Todas as threads em um mesmo grid executam o mesmo kernel Necessidade de haver coordenadas únicas para distinção 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 70
71 Todas as threads em um mesmo grid executam o mesmo kernel Necessidade de haver coordenadas únicas para distinção Coordenadas criadas pelo CUDA Runtime System: 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 71
72 Todas as threads em um mesmo grid executam o mesmo kernel Necessidade de haver coordenadas únicas para distinção Coordenadas criadas pelo CUDA Runtime System: blockidx índice do bloco 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 72
73 Todas as threads em um mesmo grid executam o mesmo kernel Necessidade de haver coordenadas únicas para distinção Coordenadas criadas pelo CUDA Runtime System: blockidx índice do bloco threadidx índice da thread 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 73
74 Todas as threads em um mesmo grid executam o mesmo kernel Necessidade de haver coordenadas únicas para distinção Coordenadas criadas pelo CUDA Runtime System: blockidx índice do bloco threadidx índice da thread griddim dimensão do grid 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 74
75 Todas as threads em um mesmo grid executam o mesmo kernel Necessidade de haver coordenadas únicas para distinção Coordenadas criadas pelo CUDA Runtime System: blockidx índice do bloco threadidx índice da thread griddim dimensão do grid blockdim dimensão dos blocos 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 75
76 Kernel é bidimensional 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 76
77 Kernel é bidimensional Indexação de bloco blockidx.x blockidx.y 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 77
78 Kernel é bidimensional Indexação de bloco blockidx.x blockidx.y Blocos são tridimensionais 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 78
79 Kernel é bidimensional Indexação de bloco blockidx.x blockidx.y Blocos são tridimensionais Indexação de thread threadidx.x threadidx.y threadidx.z 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 79
80 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 80
81 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 81
82 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 82
83 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs Comunidade GPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 83
84 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 84
85 Universidades brasileiras ensinando CUDA 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 85
86 Centro Nacional de Processamento de Alto Desempenho 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 86
87 Introdução CPU X GPU GPGPU Arquitetura GPU moderna Compute Capability NVIDIA Fermi CUDA Arquitetura Modelo de programação Modelo de memória Modelo de execução CUDA C ModeIo de Computação Heterogênea Kernels CUDA Memories CUDA Threads Libs ComunidadeGPGPU Referências 01/04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 87
88 CUDA by example, an introduction to General-Purpose GPU Programming, J. Sanders and E. Kandrot, Addison Wesley. CUDA Zone ( home new.html), Março GPUBrasil ( Março Optimization principles and application performance evaluation of a multithreaded gpu using cuda. Shane Ryoo, Christopher I. Rodrigues, Sara S. Baghsorkhi, Sam S. Stone, David B. Kirk, and Wen mei W. Hwu. In PPoPP, pages ACM, NVIDIA CUDA C Best Practices Guide. NVIDIA, Version 3.2, 20/8/2010. NVIDIA CUDA C Programming Guide. NVIDIA, Version 3.2, 11/9/2010. Programming Massively Parallel Processors: A Hands-on Approach, D. Kirk, W. Hwu, Morgan Kaufman. The GPU Computing Era. J. Nickolls and W. Dally. IEEE Micro, 30(2):56 69, The Top 10 Innovations in the New NVIDIA Fermi Architecture, and the Top 3 Next Challenges. David Patterson, September 30, NVIDIA's Next Generation CUDA Compute Architecture: Fermi. NVIDIA Whitepaper, Version /04/2011 Instituto de Matemática e Estatística - Universidade de São Paulo 88
89 Introdução à Computação de Alto Desempenho Utilizando GPU Seminário de Programação em GPGPU Eng. Thársis T. P. Souza Instituto de Matemática e Estatística - Universidade de São Paulo
5 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 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 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 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 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 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 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 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 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 maisAnálise de desempenho e eficiência energética de aceleradores NVIDIA Kepler
Análise de desempenho e eficiência energética de aceleradores NVIDIA Kepler Emilio Hoffmann, Bruno M. Muenchen, Taís T. Siqueira, Edson L. Padoin e Philippe O. A. Navaux Universidade Regional do Noroeste
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 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 maisEXPERIMENTOS EM GPU PARA O MODELO DE PREVISÃO AMBIENTAL CCATT-BRAMS. RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA (PIBIC/CNPq/INPE)
EXPERIMENTOS EM GPU PARA O MODELO DE PREVISÃO AMBIENTAL CCATT-BRAMS RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA (PIBIC/CNPq/INPE) Leandro dos Santos Lessa (FATEC, Bolsista PIBIC/CNPq) E-mail: leandroicinpe@gmail.com
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 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 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 maisSimulações nanceiras em GPU
Simulações nanceiras em GPU Thársis Tuani Pinto Souza Dissertação de Mestrado apresentada ao Instituto de Matemática e Estatística da Universidade de São Paulo para obtenção do título de Mestre em Ciências
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 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 maisArquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela
Arquitetura de Computadores Paralelos Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela Por que estudar Computação Paralela e Distribuída? Os computadores sequenciais
Leia maisAnálise da Hierarquia de Memórias em GPGPUs
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO DANILO FUKUDA CONRAD Análise da Hierarquia de Memórias em GPGPUs Trabalho de Conclusão apresentado
Leia maisProgramação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2012/2013
Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2012/2013 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 23 CUDA "Compute Unified Device Architecture" Parte 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 maisProgramação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011
Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2010/2011 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 11 CUDA Parte 2 N. Cardoso & P. Bicudo Programação em
Leia maisUNIVERSIDADE ESTADUAL PAULISTA Júlio de Mesquita Filho Pós-Graduação em Ciência da Computação
UNIVERSIDADE ESTADUAL PAULISTA Júlio de Mesquita Filho Pós-Graduação em Ciência da Computação Thiago Alexandre Domingues de Souza Uma Solução Paralela de Agrupamento de Dados em GPU UNESP 2017 Souza, Thiago
Leia maisProgramação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2012/2013
Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2012/2013 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 19 CUDA "Compute Unified Device Architecture" Parte 1
Leia maisProgramação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011
Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2010/2011 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 12 CUDA Parte 3 N. Cardoso & P. Bicudo Programação em
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 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 maisOtimizando o uso do Subsistema de Memória de GPUs para Aplicações Baseadas em Estênceis
Otimizando o uso do Subsistema de Memória de GPUs para Aplicações Baseadas em Estênceis Ricardo K. Lorenzoni, Matheus S. Serpa, Edson L. Padoin,, Jairo Panetta Philippe O. A. Navaux, Jean-François Méhaut
Leia maisAnálise de desempenho da paralelização do cálculo da matriz de correlação com tamanho arbitrário, utilizando GPU
Análise de desempenho da paralelização do cálculo da matriz de correlação com tamanho arbitrário, utilizando GPU Íris A. Santos 1, Chaina S. Oliveira 1, Carlos A. Estombelo-Montesco 1 1 Departamento de
Leia maisExploração de Paralelismo em Criptografia Utilizando GPUs
Renan Corrêa Detomini Exploração de Paralelismo em Criptografia Utilizando GPUs Monografia apresentada ao Departamento de Ciências de Computação e Estatística do Instituto de Biociências, Letras e Ciências
Leia maisVirtCUDA: Possibilitando a execução de aplicações CUDA em Máquinas Virtuais
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA ENGENHARIA DA COMPUTAÇÃO ALAN DIEGO SANTOS VirtCUDA: Possibilitando a execução de aplicações CUDA em Máquinas Virtuais Trabalho de Conclusão
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 à Computação Heterogênea
Capítulo 7 Introdução à Computação Heterogênea Denise Stringhini, Rogério A. Gonçalves, Alfredo Goldman Resumo Diversos tipos de coprocessadores tem sido utilizados a fim de acelerar a execução de aplicações
Leia maisDisciplina de Arquitetura de Computadores
USP - ICMC - SSC SSC 0510 - Informática - 2o. Semestre 2009 Disciplina de Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal: http://www.icmc.usp.br/~fosorio/
Leia mais1 Padrões de Implementação em Processamento de Imagens. 2 Resumo. 4 Computação paralela. 1.1 Relátório final para PIBIC/CNPq
1 Padrões de Implementação em Processamento de Imagens 1.1 Relátório final para PIBIC/CNPq Victor M. de A. Oliveira, Rubens Campos Machado Centro de Tecnologia da Informação Renato Archer CTI Divisão de
Leia maisEdison Gustavo Muenz. Estudo e implementação de um algoritmo de processamento de imagens com técnicas GPGPU
Edison Gustavo Muenz Estudo e implementação de um algoritmo de processamento de imagens com técnicas GPGPU Florianópolis SC Agosto / 2008 Edison Gustavo Muenz Estudo e implementação de um algoritmo de
Leia maisspeedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado
Multiprocessadores - A evolução tecnológica dos processadores iria diminuir drasticamente. 2- O caminho para o aumento de desempenho é de unir mais de um processador para realizar a mesma tarefa em menos
Leia maisUniversidade Federal do ABC. Dissertação de Mestrado. Aderbal de Morais Junior
Universidade Federal do ABC Curso de Pós Graduação em Ciência da Computação Dissertação de Mestrado Aderbal de Morais Junior UMA BIBLIOTECA PARA DESENVOLVIMENTO DE APLICAÇÕES CUDA EM AGLOMERADOS DE GPUS
Leia maisUniversidade Nova de Lisboa Faculdade de Ciências e Tecnologia Departamento de Informática
Universidade Nova de Lisboa Faculdade de Ciências e Tecnologia Departamento de Informática Dissertação de Mestrado em Engenharia Informática 2º Semestre, 2008/2009 Paralelização de Algoritmos de Filtragem
Leia maisUniversidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel
Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel Processadores 8086 Registradores: 16 bits 1978 Data bus:
Leia maisImpacto da Arquitetura de Memória de GPGPUs na Velocidade da Computação de Estênceis
Impacto da Arquitetura de Memória de GPGPUs na Velocidade da Computação de Estênceis Thiago C. Nasciutti 1, Jairo Panetta 1 1 Divisão de Ciência da Computação Instituto Tecnológico de Aeronáutica (ITA)
Leia maisThe future is parallel but it may not be easy
The future is parallel but it may not be easy Adriano Tabarelli, Alex Morinaga, Caio Silva, Cássia Ferreira, Daniel Santos, Eduardo Apolinário, Hugo Posca, Thiago Batista, Paulo Floriano Universidade de
Leia maisArquitetura de Computadores
Arquitetura de Computadores Componentes básicos de um computador Memória Processador Periféricos Barramento O processador (ou microprocessador) é responsável pelo tratamento de informações armazenadas
Leia maisAuditoria de senhas em hardware paralelo com o John the Ripper O impacto das tecnologias de processamento paralelo na quebra de senhas
Auditoria de senhas em hardware paralelo com o John the Ripper O impacto das tecnologias de processamento paralelo na quebra de senhas Claudio André claudio.andre@correios.net.br Motivação Seu computador
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 maisO Problema do Fractal de Mandelbrot como Comparativo de Arquiteturas de Memória Compartilhada GPU vs OpenMP
O Problema do Fractal de Mandelbrot como Comparativo de Arquiteturas de Memória Compartilhada GPU vs OpenMP Bruno P. dos Santos, Dany S. Dominguez, Esbel V. Orellana Departamento de Ciências Exatas e Tecnológicas
Leia mais1. Conceitos Básicos de Computação
Introdução à Computação I IBM1006 1. Conceitos Básicos de Computação Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 1.Conceitos Básicos de Computação 1.1.
Leia maisIntrodução à Programação de Propósito Geral em Hardware Gráfico
Introdução à Programação de Propósito Geral em Hardware Gráfico Cristina Nader Vasconcelos 1 Paulo Cezar Carvalho 2 Marcelo Gattass 1 Resumo: A Unidade de Processamento Gráfico do inglês Graphics Processing
Leia maisGPUs : Arquitetura e Programação. Bruno Cardoso Lopes Instituto de Computação - UNICAMP
GPUs : Arquitetura e Programação Bruno Cardoso Lopes Instituto de Computação - UNICAMP Agenda Introdução Stream processors programáveis Imagine stream processor Programação para GPUs NVIDIA CUDA Conclusão
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 maisWilliam Stallings Organização de computadores digitais. Capítulo 11 Estrutura e função da CPU
William Stallings Organização de computadores digitais Capítulo 11 Estrutura e função da CPU Encruzilhada na arquitetura de computadores 2004/2005 Antiga opinião Nova visão a energia é de graça, os transistores
Leia maisTécnicas de Computação de Alto Desempenho para o Processamento e Análise de Imagens Complexas da Cavidade Pélvica Feminina
Técnicas de Computação de Alto Desempenho para o Processamento e Análise de Imagens Complexas da Cavidade Pélvica Feminina Carlos Alex S. J. Gulo Orientador: Prof. Dr. João Manuel R. S. Tavares Co-Orientador:
Leia maisAnálise de algoritmo de modelagem 2D em problemas de sísmica utilizando GPU
UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA Trabalho de Graduação Análise de algoritmo de modelagem 2D em problemas de sísmica utilizando GPU Aluno: Bruno Correia da Silva (bcs2@cin.ufpe.br)
Leia maisArquitetura de Sistemas Operativos
Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Threads Conceito Um processo é um programa em execução. A execução de um processo é sequencial: pode-se caracterizar um processo pelo
Leia maisSSC510 Arquitetura de Computadores. 12ª aula
SSC510 Arquitetura de Computadores 12ª aula EVOLUÇÃO DA ARQUITETURA INTEL PROFA. SARITA MAZZINI BRUSCHI 1 Pentium - Modelos 2 Pentium - Arquiteturas Netburst P7 Sétima geração dos processadores da arquitetura
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 maisAula 10 - Streams (Parte I)
Disciplina de TICs 1 - Introdução a Programação em GPGPU Aula 10 - Streams (Parte I) Introdução Até então foi visto como engenho de processamento paralelo massivo de dados nas GPUs pode aumentar assombrosamente
Leia mais29/3/16. Informações gerais. Carga horária semestral total: 60 horas Horário: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos
Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2016/01 Informações gerais Página web: http://nemo.inf.ufes.br/jpalmeida/ensino
Leia maisCUDA. José Ricardo da Silva Jr.
CUDA José Ricardo da Silva Jr. Medialab Ins1tuto de Computação Universidade Federal Fluminense CUDA Research Center & CUDA Teaching Center Centro de excelência da NVIDIA desde julho 2012 Perfil Bacharel
Leia maisAlocação Dinâmica em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara
Leia maisProcessador. Processador
Departamento de Ciência da Computação - UFF Processador Processador Prof. Prof.Marcos MarcosGuerine Guerine mguerine@ic.uff.br mguerine@ic.uff.br 1 Processador Organização básica de um computador: 2 Processador
Leia maisLÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO
LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Primeiro programa em C #include int main() { int num1, num2, result; scanf("%d",&num1); scanf("%d",&num2); result = num1 + num2; printf("%d",
Leia maisUnidade Central de Processamento UCP (CPU)
Unidade Central de Processamento UCP (CPU)! Arquitetura Convencional (Von Neumann) UCP BARRAMENTO MEMÓRIA PRINCIPAL ENTRADA E SAÍDA ! Visão geral da CPU UC - UNIDADE DE CONTROLE REGISTRADORES A B C D ALU
Leia maisCUDA VS. OPENCL: UMA COMPARAÇÃO TEÓRICA E TECNOLÓGICA RESUMO
PAULA, L. C. M. CUDA vs. OpenCL: uma comparação teórica e tecnológica 31 CUDA VS. OPENCL: UMA COMPARAÇÃO TEÓRICA E TECNOLÓGICA Lauro Cássio Martins de Paula 1 RESUMO Apresenta-se neste trabalho uma comparação
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:
Leia maisAnálise Comparativa de Algoritmos NP-Completo Executados em CPU E GPU Utilizando CUDA
Computer on the Beach 2013 - Artigos Completos 79 Análise Comparativa de Algoritmos NP-Completo Executados em CPU E GPU Utilizando CUDA Elcio Arthur Cardoso, Rafael de Santiago Curso de Ciência da Computação
Leia maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 7ª Aula Pipeline Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Arquitetura CISC CISC Complex Instruction Set Computer Computadores complexos devido a: Instruções
Leia maisSistemas Distribuídos e Paralelos
Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC - 2016 Eng. Alexander Rodríguez Bonet Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha
Leia maisTópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação COMO UM PROGRAMA ESCRITO
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 maisGerência de Recursos. Gerência do Processador
Gerência de Recursos Gerência do Processador Introdução Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos poderiam permanecer na memória principal compartilhando o uso da CPU, a
Leia maisTécnicas de Otimização de Código para Placas de Processamento Gráfico
Técnicas de Otimização de Código para Placas de Processamento Gráfico Fernando Magno Quintão Pereira Abstract The low cost and the increasing programmability of graphics processing units, popularly know
Leia maisLinguagem de Programação II
Linguagem de Programação II Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB bidu@ci.ufpb.br Mo6vação Adaptar a estrutura lógica de um problema (Ex.: Servidores Web). Lidar com disposi6vos independentes
Leia maisMicro-Arquiteturas de Alto Desempenho. Introdução. Ementa
DCC-IM/NCE UFRJ Pós-Graduação em Informática Micro-Arquiteturas de Alto Desempenho Introdução Gabriel P. Silva Ementa Revisão de Organização de Computadores Hierarquia de Memória Memória Virtual Memória
Leia maisImpacto do Subsistema de Memória em Arquiteturas CPU e GPU
Impacto do Subsistema de Memória em Arquiteturas CPU e GPU Matheus S. Serpa, Eduardo H. M. Cruz, Francis B. Moreira, Matthias Diener, Philippe O. A. Navaux 1 Instituto de Informática Universidade Federal
Leia maisArquitetura SUN UltraSPARC III Cu
Arquitetura SUN UltraSPARC III Cu Tasso Gomes de Faria 1 1 Instituto de Informática Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 91.501-970 Porto Alegre RS Brazil tfaria@inf.pucrs.br
Leia maisDesempenho. Sistemas de Computação
Desempenho Definição Medidas de desempenho utilizadas Tempo de resposta ou tempo de execução: tempo decorrido entre o início da execução de um programa e o seu final Quantidade de trabalho realizada em
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 maishttp://www.ic.uff.br/~debora/fac! 1 Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal Organização Operações de leitura e escrita Capacidade 2 Componente de um sistema
Leia maisCarlos Alex Sander Juvêncio Gulo. Técnicas de paralelização em GPGPU aplicadas em algoritmo para remoção de ruído multiplicativo
Carlos Alex Sander Juvêncio Gulo Técnicas de paralelização em GPGPU aplicadas em algoritmo para remoção de ruído multiplicativo São José do Rio Preto 2012 Carlos Alex Sander Juvêncio Gulo Técnicas de paralelização
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 maisComputação Heterogênea Programação paralela, clusters e GPUs
Computação Heterogênea Programação paralela, clusters e GPUs Profa. Dra. Denise Stringhini (ICT- Unifesp) Primeiro Encontro do Khronos Chapters Brasil Belo Horizonte, 20/09/2013 Conteúdo Computação heterogênea:
Leia maisAula 03. Componentes Básicos de um Computador, Dispositivos de Entrada e Saída, Dispositivos de Armazenamento de Dados, Periféricos.
Aula 03 Componentes Básicos de um Computador, Dispositivos de Entrada e Saída, Dispositivos de Armazenamento de Dados, Periféricos. Máquina de Von Neuman Memória Entrada Unidade Central de Processamento
Leia maisProgramação Paralela e Distribuída
Curso de Informática DCC-IM / UFRJ Programação Paralela e Distribuída Um curso prático Mario J. Júnior Gabriel P. Silva Colaboração: Adriano O. Cruz, Julio S. Aude Ementa Paradigma de Troca de Mensagens
Leia maisORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL
ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL MEMÓRIA Componente de um sistema de computação cuja função é armazenar informações que são manipuladas pelo sistema para que possam ser recuperadas
Leia maisParalelização do Método de Jacobi em Memória Compartilhada 1
Paralelização do Método de Jacobi em Memória Compartilhada 1 Claudio Schepke cschepke@inf.ufrgs.br 1 PPGC - Instituto de Informática - UFRGS Introdução ao Processamento Paralelo e Distribuído Professor
Leia maisSistemas Operacionais Aula 3
Sistemas Operacionais Aula 3 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
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 28 de outubro de 2010 contato@v3d.com.br
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 maisOrganização de Sistemas de Computadores
Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =
Leia maisHardware Conceitos Básicos. Introdução*à*Informática 14
Hardware Conceitos Básicos Introdução*à*Informática 14 Hardware Conceitos Básicos Componentes principais de um computador Introdução*à*Informática 15 Hardware Conceitos Básicos CPU (Unidade Central de
Leia mais30/5/2011. Sistemas computacionais para processamento paralelo e distribuído
Arquitetura de Computadores Sistemas computacionais para processamento paralelo e distribuído Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Processamento
Leia maisConceito de Processo. Estados de Processos. Diagrama de Estados de Processos
Conceito de Processo Módulo 4: Processos Um Sistema Operacional executa uma variedade de programas: Sistemas de processamento em lotes (batch) processa jobs Sistemas de tempo partilhado (time shared) roda
Leia mais28/8/13. Processadores. Introdução
Processadores 1 Introdução 2 1 Data path 3 Data Path Composto pelo conjunto de registradores e o ULA Instruções register-memory Operações diretamente na memória Transferências entre memória e registrador
Leia maisInvestigando a Influência da Organização de Caches L2 no Desempenho de Processadores Multicore Superescalares
Investigando a Influência da Organização de Caches L2 no Desempenho de Processadores Multicore Superescalares Pedro H. Penna, Henrique C. Freitas 1 Grupo de Arquitetura de Computadores e Processamento
Leia maisESTUDO SOBRE O IMPACTO DOS PROCESSADORES HOSPEDEIROS SPARC V8 E NIOS II NO DESEMPENHO DA ARQUITETURA RECONFIGURÁVEL HÍBRIDA RoSA
ESTUDO SOBRE O IMPACTO DOS PROCESSADORES HOSPEDEIROS SPARC V8 E NIOS II NO DESEMPENHO DA ARQUITETURA RECONFIGURÁVEL HÍBRIDA RoSA Alba S. B. Lopes Departamento de Informática e Matemática Aplicada da UFRN
Leia maisULA (ALU) - UNIDADE DE ARITMÉTICA E LÓGICA
FATEC SP - Análise e Desenvolv. De Sistemas - Ambiente Operacional PÁG. 1 II) ELEMENTOS DE HARDWARE: DIAGRAMA DE BLOCOS DE UM COMPUTADOR 1) CPU - UNIDADE CENTRAL DE PROCESSAMENTO RESPONSÁVEL PELA EXECUÇÃO
Leia maisRT 1. Routers IP. Manuel P. Ricardo. Faculdade de Engenharia da Universidade do Porto
RT 1 Routers IP Manuel P. Ricardo Faculdade de Engenharia da Universidade do Porto RT 2 Bibliografia» Aula preparada com base seguinte bibliografia S. Keshav, An Engineering Approach to Computer Networking,
Leia mais