CUDA. José Ricardo da Silva Jr.
|
|
|
- Letícia Taveira Guterres
- 10 Há anos
- Visualizações:
Transcrição
1 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
2 Perfil Bacharel em Análise de Sistemas na Estácio. Mestre em Ciência da Computação na UFF (Computação Gráfica). Doutorando em Ciência da Computação na UFF (Computação Gráfica). Professor na Faculdade CCAA. Colaborador na empresa Nullpointer. Pesquisador na área de Computação Gráfica e GPGPU.
3 Introdução
4 Por que GPUs? =
5 Top 500
6 Top 500
7 Massivamente paralelo, mas não para qualquer problema.
8 Óleo e gás Esta é uma tecnologia de transformação que vai acelerar dras1camente nossa capacidade de descobrir e pesquisar novas reservas de óleo e gás, como 90% do nosso poder computacional vem das GPUs. Paulo Souza Geophysical Technology Group
9 Tratamento de câncer
10 Avanços na saúde A academia de ciências chinesa usou o poder computacional da GPU para simular o comportamento do virus H1N1 pela primeira vez
11 GPUs na industria Oil and gas Higher Ed Research Defense Government Seismic Processing Reservoir Astrophysics Molecular Dynamics Weather / Climate Signal Processing Satellite Imaging Video Analy@cs Life Sciences Bio- chemistry Bio- informa@cs Material Science Genomics Finance Manufacturing Risk Analy@cs Monte Carlo Op@ons Pricing Insurance Structural Mechanics Computa@onal Fluid Dynamics Electromagne@cs Soluções de arquiteturas dedicadas e desenvolvimento de tecnologia
12 Futuro & Eficiência
13 Energia
14 Tesla CUDA Architecture Roadmap 16 Maxwell 14 GFLOPS por Watt Kepler 4 2 Tesla Fermi
15 Disposi1vos móveis & Super Computadores
16 Pico de gigaflops Pico de largura de banda Kepler Kepler Gflops/s GBytes/s Fermi M2070 Fermi+ M Fermi M2070 Fermi+ M2090 M core Sandy Bridge 3 GHz core Sandy Bridge 3 GHz 200 M1060 Nehalem 3 GHz Westmere 3 GHz 50 Nehalem 3 GHz Westmere 3 GHz Double Precision: NVIDIA GPU Double Precision: x86 CPU NVIDIA GPU (ECC off) x86 CPU
17 1536 cores Paralelismo dinâmico Hyper - Q
18 A evolução da GPU
19 - Passado - Presente - Futuro Era uma vez uma GPU...
20 Pré-história dispositivos de rasterização - Custo U$ ,00
21 GPUs com funções fixas - Não eram programadas - Apenas computação gráfica - Sem qualquer acesso ao processador - U1lização através de APIs
22 Programmable GPU - Programação para os estágios de vér1ce e pixel - Totalmente dedicada a Computação Gráfica
23 Programmable GPU
24 GPU programavél
25 GPGPU - O processamento era realizado na etapa de processamento de vér1ce ou pixel - Vér1ces e/ou pixels - OpenGL ou DirectX
26 Unified Architectures
27 GPU x CPU
28 CPU Paralelismo
29 Conceito de thread
30 Thread custo de gerenciamento - CPUs são capazes de trabalhar com um pequeno número de thread Há custo de gerenciamento das thread em CPU (centenas de instruções) - GPUs u1lizam um outro paradigma (não tem gerenciamento de thread)
31 CUDA Arquitetura Unificada & Compute Unified Device Architecture
32 Estrutura das bibliotecas
33 Conceitos do CUDA GPU Disposi1vo de computação com capacidade de executar threads em paralelo (device). CPU envia processamento para a GPU (host). Kernel instância do programa Thread instância de um kernel Memória de vídeo / device Memória principal / host
34 Trabalhando com threads e blocos - Threads, Blocos e Grids: - C ódigo em GPU vai ser executado por um Grid de blocos. - Cada bloco contém até 2048 threads - Threads de um mesmo bloco podem compar1lhar memória
35 Trabalhando com threads e blocos Hierarquia de memória - Local - Cache L1 e L2 - Compar1lhada - Constante - Textura - Global
36 Conceitos do CUDA - Mul1processador & bloco - Core &Thread
37 O que baixar? - Driver - SDK - Toolkit - Link: hup://developer.nvidia.com/cuda/cuda- downloads
38 Instalando o driver - Driver - Desligar o servidor X do linux - Instalar previamente as bibliotecas do kernel corrente. É o kernel do linux - Arquivo /etc/bashrc # CUDA stuff! PATH=$PATH:/usr/local/cuda/bin! LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64! export PATH! export LD_LIBRARY_PATH!
39 CUDA - SDK - Compilador NVCC: - Separação dos códigos (host e device). - Compilação apenas do código do device. - A identificação do código do device é feito por qualificadores de funções e de variáveis. - Código do host é compilado por uma ferramenta própria (GCC, VC). - Gera código objeto.
40 Biblioteca CUDA run1me - Biblioteca dinâmica - cuda_run1me_api.h para C - cuda_run1me.h para C++ - Não requer inicializações - Modelo de programação: - host & device - Conjunto de funções: - Gerência - GPU (device) - Memória - Erros
41 Funções em CUDA global void KernelFunc1on (...) dim3 DimGrid (100, 10); // Uma grid com blocos dim3 DimBlock (4, 8, 8); // Cada bloco com 256 threads KernelFun <<< DimGrid, DimBlock >>> (...);
42 Funções em CUDA
43 O kernel global void vecadd(float* A, float* B, float* C) { int i = threadidx; C[i] = A[i] + B[i]; } int main() {... vecadd<<<1, N>>>(A, B, C); } threadidx à define um ID de um dos threads << n, m>> à numero de blocos (n) e threads (m) solicitados para o kernel
44 Blocos, threads e Kernels... global void vecadd(float* A, float* B, float* C) { int id = threadidx + blockid* blockdim; C[id] = A[id] + B[id]; } int main() { vecadd<<<m, N>>>(A, B, C); }
45 Detalhes do Kernel... global void vecadd(float* A, float* B, float* C) { int i = threadidx.x; C[i] = A[i] + B[i]; } int main() {... vecadd<<<1, N>>>(A, B, C); } threadidx à define um ID de um dos threads << n, m>> à numero de blocos (n) e threads (m) solicitados para o kernel
46 Detalhes do Kernel... global void vecadd(float* A, float* B, float* C) { int id = threadidx.x + blockid.x* blockdim.x; C[id] = A[id] + B[id]; } int main() { vecadd<<<m, N>>>(A, B, C); }
47 Sincronização - Entre threads de um bloco - Entre todos os blocos
48 Granularidade da thread // Let s do more work in each thread global void vecadd(float* A, float* B, float* C) { int id = threadidx.x + blockidx.x * blockdim.x; } While (id < N) { C[id] = A[id] + B[id]; id += blockdim.x * griddim.x; }
49 Memória
50 Hierarquia memória Memória Localização Fica em cache Tipo de acesso Escopo Registrador chip - R/W Thread Local GPU - R/W Thread Compar1lhada chip - R/W Bloco Global GPU SIM R/W Todas as threads Constante GPU SIM R Todas as threads Texture GPU SIM R Todas as threads
51 Memória global e sua taxa de acesso... G Gb por segundos x 367 GFlops K20 320Gb por segundos x 4.56 TFlops Observação: 86.4 Gb = 21.6 G ponto flutuante por segundo...)
52 E a memória compar1lhada? - Escopo de bloco - Tempo de acesso igual ao do registrador - Tamanho limitado
53 Primeiros passos
54 Meu primeiro programa! - Hello world soma de vetores - Estrutura do programa: 1. Alocação de memória 2. Cópia dos dados CPU à GPU 3. Execução do kernel 4. Cópia dos dados GPU à CPU 5. Desalocação da memória
55 Meu primeiro programa! 1. Alocação de memória - Aloca memória na GPU - cudaerror_t cudamalloc (void devptr, size_t size) - devptr à Ponteiro para a memória da GPU - Size à Quan1dade em bytes a serem alocadas
56 Meu primeiro programa! 2. Cópia dos dados CPU à GPU Cópia síncrona entre host e device (CPU ß à GPU) cudaerror_t cudamemcpy (void dst, const void src, size_t count, enum cudamemcpykind kind) dst à Memória de des1no src à Memória de origem count à Quan1dade em bytes a serem transferidos kind à Sen1do da copia CPUà GPU ou GPUà CPU
57 Meu primeiro programa! 3. Execução do kernel
58 Meu primeiro programa! 3. Execução do kernel Kernel executado pela GPU
59 Meu primeiro programa! 3. Execução do kernel Quan1dade de threads em um bloco Quan1dade de blocos
60 Meu primeiro programa! 3. Execução do kernel Vetores: C = A + B
61 Meu primeiro programa! 3. Execução do kernel Kernel executado pela GPU Vetores: C = A + B
62 Meu primeiro programa! 3. Execução do kernel Kernel executado pela GPU Vetores: C = A + B
63 Meu primeiro programa! 3. Execução do kernel Função responsável por sincronizar todas as threads e todos os blocos. cudaerror_t cudadevicesynchronize (void) Retorna erro quando o kernel falha
64 Meu primeiro programa! 4. Cópia dos dados GPU à CPU
65 Meu primeiro programa! 4. Cópia dos dados GPU à CPU 5. Desalocação da memória cudaerror_t cudafree (void devptr) devptr à Ponteiro para a memória da GPU
66 Driver versus Run1me - Compilando arquivo.cpp - Compilando arquivo.cu - Montando makefile - Driver - Funções com o prefixo cuxxxx - Requer inicialização - Código pré- compilado no formato PTX - Recompilação apenas do kernel para uma nova arquitetura - Run1me - Funções com prefixo cudaxxxx - Não requer qualquer inicialização - Código compilado junto com o código em C - Recompilação do projeto para cada nova arquitera <<< CÓDIGO >>>
67 Meu primeiro projeto - Compilando arquivo.cpp - Compilando arquivo.cu - Montando makefile <<< CÓDIGO >>>
68 WARPS
69 WARPS Unidade indivisível de threads que são alocadas a um mul1processador e são alocadas para a mesma instrução. Geralmente igual a 32. Hal Warp: metade de um warp (16) sendo executadas no mul1processador. Dica Modelar o problema para que seja múl1plo de 1 warp
70 Coalescência Memória global é acessada via uma transação de 32-, 64-, or 128- byte por um half- warp Podem resultar em uma ou duas transações se os requisitos de acesso forem cumpridos.
71 Coalescência Relacionado a compute capability (CC) Devices com CC < 1.2 tem requerimento de acesso mais restrito Ex: (32- bit) data:
72 CC 1.0 e 1.1 Coalescência K- th thread precisa acessar k- th palavra no segmento, sem necessidade de par1cipação de todas as threads
73 Coalescência CC 1.2 e superior Permitem transações para segmentos de 32B, 64B, and 128B Transações menores u1lizadas para evitar o desperdício de largura de banda
74 Operação com memória
75 Memória A comunicação da CPU com a GPU é limitada pelo barramento PCI- EXPRESS Uma boa dica é minimizar o processo de comunicação
76 Memória Compar1lhada Centenas de vezes mais rápida que a memória global. 64 KB por bloco (48 ou 16 KB) Rápida (~4 clocks) Global (~600 clocks) Threads no mesmo bloco podem cooperar na memória compar1lhada. Não acontece via memória global Uma forma de sua u1lização é par1cionar o dado em vários subconjuntos. Cada subconjunto é processado por um bloco.
77 Memória Compar1lhada U1lização de memória compar1lhada: mykernel<<<griddim,blockdim,sharedsize>>>( ); Desta forma, estamos solicitando sharedsize bytes a serem alocados de memória compar1lhada. Para acessar, dentro do kernel u1lizamos: global kernel( ){ extern shared <type> myshared[];
78 Estratégias Básicas Processar informação é menos custoso que movimentá- la entre memórias. GPU possui mais transistores para ALU do que memória. Cresce cada vez mais. Dessa forma, deve- se: Maximizar o de memória de baixa latência e maior largura O1mizar padrões de acesso. Esconder a latência de memória com bastante computação. Algumas vezes, recomputar a informação do que acessá- la na memória.
79 Hierarquia memória Organização dos dados, blocos e threads de forma a garan1r um acesso coalecente. Acesso coalecente é entendido em termos de alinhamento de memória global Cada versão de GPU (capability) tem uma polí1ca própria
80 Ver código (Memória) Mul1plicação de matrizes Global Compar1lhada
81 Mul1plicação de Matriz! # "# y 0 y 1 $! & %& = m 00 m # 01 "# m 10 m 11 $! &# %& "# x 0 x 1 $ & %&
82 Mul1plicação de Matriz Thread0! # "# y 0 y 1 $! & %& = m 00 m # 01 "# m 10 m 11 $! &# %& "# x 0 x 1 $ & %&
83 Mul1plicação de Matriz Thread1! # "# y 0 y 1 $! & %& = m 00 m # 01 "# m 10 m 11 $! &# %& "# x 0 x 1 $ & %&
84 Introducing Kepler K10 & K20
85 Tesla K10 Tesla K20 Single Precision 1.8x Memory Bandwidth Seismic, Imaging, Signal, Molecular Dynamics Double Precision Hyper-Q, Dynamic Parallelism CFD, FEA, Finance, Physics Available Now Available Q4 2012
86 Kepler K10 Comparison Product Name M2090 K10 GPU Architecture Fermi Kepler GK # of GPUs Per GPU Board 4.58 TF Single Precision Flops 1.3 TF 2.29 TF Double Precision Flops 0.66 TF TF TF # CUDA Cores Memory size 6 GB 4GB 8 GB Memory BW (ECC off) PCI- Express GB/s 160GB/s 320 GB/s Gen 2: 8 GB/ s Gen 3: 16 GB/s
87 Kepler GK110 Block Diagram Architecture 7.1B Transistors 15 SMX units > 1 TFLOP FP MB L2 Cache 384- bit GDDR5 PCI Express Gen3
88 GK104: Fast & Efficient SM M2090 SMX K10 CONTROL LOGIC CONTROL LOGIC 2x Perf / Watt 32 cores 192 cores
89 Kepler GK110 SMX vs Fermi SM
90 SMX: Efficient Performance Power- Aware SMX Architecture Clocks & Feature Size SMX result - Performance up Power down
91 What is Dynamic Parallelism? The ability to launch new grids from the GPU Dynamically Simultaneously Independently CPU GPU CPU GPU Fermi: Only CPU can generate GPU work Kepler: GPU can generate work for itself
92 What Does It Mean? CPU GPU CPU GPU GPU as Co- Processor Autonomous, Dynamic Parallelism
93 Dynamic Work Genera1on Coarse grid Fine grid Dynamic grid Higher Performance Lower Accuracy Lower Performance Higher Accuracy Target performance where accuracy is required
94 Familiar Syntax and Programming Model int main() { float *data; setup(data); A <<<... >>> (data); B <<<... >>> (data); C <<<... >>> (data); CPU main } cudadevicesynchronize(); return 0; GPU global void B(float *data) { do_stuff(data); X <<<... >>> (data); Y <<<... >>> (data); Z <<<... >>> (data); cudadevicesynchronize(); A B X Y } do_more_stuff(data); C Z
95 Simpler Code: LU Example LU decomposition (Fermi) LU decomposition (Kepler) dgetrf(n, N) { for j=1 to N for i=1 to 64 idamax<<<>>> memcpy dswap<<<>>> memcpy dscal<<<>>> dger<<<>>> next i } memcpy dlaswap<<<>>> dtrsm<<<>>> dgemm<<<>>> next j idamax(); dswap(); dscal(); dger(); dlaswap(); dtrsm(); dgetrf(n, N) { dgetrf<<<>>> CPU is Free synchronize(); } dgetrf(n, N) { for j=1 to N for i=1 to 64 idamax<<<>>> dswap<<<>>> dscal<<<>>> dger<<<>>> next i dlaswap<<<>>> dtrsm<<<>>> dgemm<<<>>> next j } dgemm(); CPU Code GPU Code CPU Code GPU Code
96 Kepler Enables Full NVIDIA GPUDirect System Memory GDDR5 Memory GDDR5 Memory GDDR5 Memory GDDR5 Memory System Memory CPU GPU1 GPU2 GPU2 GPU1 CPU PCI-e PCI-e Network Card Network Network Card Server 1 Server 2
97 Introducing CUDA 5
98 The Soul of CUDA The Platform for High Performance Parallel Computing Accessible High Performance Enable Computing Ecosystem
99 CUDA By the Numbers: >375,000,000 >1,000,000 >120,000 >500 CUDA-Capable GPUs Toolkit Downloads Active Developers Universities Teaching CUDA
100 Beyond CUDA 5
101 Rapid Parallel C++ Development " Resembles C++ STL " Open source " High- level interface " Enhances developer " Enables performance portability between GPUs and CPUs " Flexible " CUDA, OpenMP, and TBB backends " Extensible and customizable " Integrates with soiware // generate 32M random numbers on host thrust::host_vector<int> h_vec(32 << 20); thrust::generate(h_vec.begin(), h_vec.end(), rand); // transfer data to device (GPU) thrust::device_vector<int> d_vec = h_vec; // sort data on device thrust::sort(d_vec.begin(), d_vec.end()); // transfer data back to host thrust::copy(d_vec.begin(), d_vec.end(), h_vec.begin()); hup://developer.nvidia.com/thrust or hup://thrust.googlecode.com
102 OpenACC Direc1ves CPU GPU Simple Compiler hints The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again. Compiler Parallelizes code Program myscience... serial code...!$acc kernels do k = 1,n1 do i = 1,n2... parallel code... enddo enddo!$acc end kernels... End Program myscience OpenACC Compiler Hint Works on many-core GPUs & multicore CPUs Your original Fortran or C code
103 Building A Massively Parallel Future The Future is Heterogeneous Many solu1ons build a heterogeneous future General- purpose Languages Direc1ves Domain Specific Languages
104 Graphics Computing
105 Cloud Graphics Computing
106 KEPLER THE WORLD S FIRST GPU for CLOUD COMPUTING Virtualized GPU Low Latency Remote Display Super energy-efficiency
107
Arquitetura 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
Introduçã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
Programaçã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
Computaçã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:
Processamento 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 [email protected] Março -2016 Processamento de Alto Desempenho
PARALELIZAÇÃ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
Programaçã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 [email protected]
Patrí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
Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal. Memória principal
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 http://www.ic.uff.br/~debora/fac! 1 2 Componente de um sistema
Conceitos de Entrada e Saída
Conceitos de Entrada e Saída O processo de fornecer informações ou obtê-las dos computadores é chamado entrada/saída (E/S). Grandes mainframes utilizam uma organização de E/S consistindo de uma ou mais
Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)
Multiprocessamento Multiprocessadores com memória distribuída (multicomputador) Conjunto de processadores, cada qual com sua memória local Processadores se comunicam por troca de mensagens, via rede de
SSC510 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
Programaçã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
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
Aná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
Auditoria 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é [email protected] Motivação Seu computador
Eng. 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 [email protected] Instituto de Matemática e Estatística - Universidade de São Paulo Introdução
COMPUTAÇÃO PARALELA. uma visão geral. Guilherme Galante. v.2.0
COMPUTAÇÃO PARALELA uma visão geral Guilherme Galante v.2.0 Guilherme Galante Bacharel em Informática Unioeste (2003) Mestre em Ciência da Computação UFRGS (2006) Professor Assistente do curso de Informática/Ciência
Placa de vídeo em CUDA
Placa de vídeo em CUDA Matheus Costa Leone de Souza Krystian Aparacido Resumo Quando você tem um cálculo que possa ser grande demais para você realizar a mão, a primeira solução que lhe vem a cabeça é
perifé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.
O que a Gestão da Informação pode fazer pela sua empresa na era da Informação Extrema
O que a Gestão da Informação pode fazer pela sua empresa na era da Informação Extrema Walter W. Koch Quadrantes de alinhamento da informação estratégica Quadrantes de alinhamento da informação estratégica
Capítulo 8 Arquitetura de Computadores Paralelos
Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da
Waldemar Celes. 25 de Agosto de 2014
Introdução a CUDA INF2062 Tópicos em Simulação e Visualização Waldemar Celes [email protected] Tecgraf, DI/PUC-Rio 25 de Agosto de 2014 W. Celes Introdução a CUDA 1 GPGPU Programação de propósito geral
MEMÓRIA. 0 e 1 únicos elementos do sistema de numeração de base 2
MEMÓRIA CONCEITO Bit- 0 1 Essência de um sistema chamado BIESTÁVEL Ex: Lâmpada 0 apagada 1 acesa 0 e 1 únicos elementos do sistema de numeração de base 2 A que se destina a memória: Armazenamento das instruções
Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 03 Conceitos de Hardware e Software parte 01. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 03 Conceitos de Hardware e Software parte 01 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed.
O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware
1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador
Windows Server 2012. Licenciamento e Preço Todas as Edições
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still
Introduçã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
Comparativo de desempenho do Pervasive PSQL v11
Comparativo de desempenho do Pervasive PSQL v11 Um artigo Pervasive PSQL Setembro de 2010 Conteúdo Resumo executivo... 3 O impacto das novas arquiteturas de hardware nos aplicativos... 3 O projeto do Pervasive
Aula 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
Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre
Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 01 Fundamentos de Computadores Sumário : Conceitos básicos: computador,
Computação Paralela (CUDA)
Universidade Federal do Amazonas Faculdade de Tecnologia Departamento de Eletrônica e Computação Computação Paralela (CUDA) Hussama Ibrahim [email protected] Notas de Aula Baseado nas Notas de
Té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
Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas ([email protected]) http://carloseduardoxp.wordpress.
Sistemas Operacionais Aula 3 Prof: Carlos Eduardo de Carvalho Dantas ([email protected]) http://carloseduardoxp.wordpress.com Nunca cone em um computador que você não pode jogar pela janela.
Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira
Wireshark Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Camada de Aplicação Introdução HTTP (Hypertext Transfer Protocol) 2 Introdução Camada de Aplicação Suporta os protocolos
Arquitetura e Organização de Computadores. Capítulo 0 - Introdução
Arquitetura e Organização de Computadores Capítulo 0 - Introdução POR QUE ESTUDAR ARQUITETURA DE COMPUTADORES? 2 https://www.cis.upenn.edu/~milom/cis501-fall12/ Entender para onde os computadores estão
UCP. Memória Periféricos de entrada e saída. Sistema Operacional
Arquitetura: Conjunto de elementos que perfazem um todo; estrutura, natureza, organização. Houaiss (internet) Bit- Binary Digit - Número que pode representar apenas dois valores: 0 e 1 (desligado e ligado).
Barramentos - BUS. Professor Especialista: Airton Ribeiro de Sousa
Professor Especialista: Airton Ribeiro de Sousa É o percurso principal dos dados entre dois ou mais componentes de um sistema de computação, neste caso são os caminhos arquitetados na PLACA MÃE até o ponto
Introdução a Informática. Prof.: Roberto Franciscatto
Introdução a Informática Prof.: Roberto Franciscatto 2.1 CONCEITO DE BIT O computador só pode identificar a informação através de sua elementar e restrita capacidade de distinguir entre dois estados: 0
Memória principal; Unidade de Controle U C P. Unidade Lógica e Aritmética
Tecnologia da Administração Computador: origem, funcionamento e componentes básicos Parte II Sumário Introdução Origem Funcionamento Componentes Básicos Referências Sistema Binário O computador identifica
Programação Paralela Híbrida em CPU e GPU: Uma Alternativa na Busca por Desempenho
124 - Encontro Anual de Tecnologia da Informação Programação Paralela Híbrida em CPU e GPU: Uma Alternativa na Busca por Desempenho André Luís Stefanello¹, Crístian Cleder Machado1, Dioni da Rosa¹, Maurício
ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software
ANHANGUERA EDUCACIONAL Capítulo 2 Conceitos de Hardware e Software Hardware Um sistema computacional é um conjunto de de circuitos eletronicos. Unidade funcionais: processador, memória principal, dispositivo
Sistemas Operacionais: Sistema de Arquivos
Sistemas Operacionais: Sistema de Arquivos Sistema de Arquivos Arquivos Espaço contíguo de armazenamento Armazenado em dispositivo secundário Estrutura Nenhuma: seqüência de bytes Registros, documentos,
SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)
SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010) OBJETIVO GERAL Este trabalho possui o objetivo de exercitar a lógica de programação dos alunos do Terceiro ano do Curso de BSI e também desenvolver
UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECÂNICA
UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECÂNICA Relatório Final Trabalho de Conclusão de Curso Partição de Domínios para Processamento em Cluster de GPUs Autor: Lucas Monteiro Volpe
Armazenar dados e programas que serão utilizados pelo processador (CPU Unidade Central de Processamento)
Armazenar dados e programas que serão utilizados pelo processador (CPU Unidade Central de Processamento) Tempo de acesso: maior que o tempo de acesso da cache, 50 a 70 ns; Capacidade: bem maior que a cache;
BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia
O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos
O que é Grid Computing
Grid Computing Agenda O que é Grid Computing Grid vs Cluster Benefícios Tipos de Grid Aplicações Ferramentas e padrões Exemplos no mundo Exemplos no Brasil Grid no mundo dos negócios Futuro O que é Grid
Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software
Resumo até aqui Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma máquina estendida abstrações SO como um
Aula 04 A. Barramentos. Prof. Ricardo Palma
Aula 04 A Barramentos Prof. Ricardo Palma Definição Em ciência da computação barramento é um conjunto de linhas de comunicação que permitem a interligação entre dispositivos, como o CPU, a memória e outros
Arquitetura e Organização de Computadores. Capítulo 0 - Introdução
Arquitetura e Organização de Computadores Capítulo 0 - Introdução POR QUE ESTUDAR ARQUITETURA DE COMPUTADORES? 2 https://www.cis.upenn.edu/~milom/cis501-fall12/ Entender para onde os computadores estão
Processamento 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
Maestro. Arthur Kazuo Tojo Costa 317497. Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação
Maestro Arthur Kazuo Tojo Costa 317497 Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação Introdução Sistema Operacional de Redes Detalhes do hardware Multiplexação
6 - Gerência de Dispositivos
1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de
Análises Geração RI (representação intermediária) Código Intermediário
Front-end Análises Geração RI (representação intermediária) Código Intermediário Back-End Geração de código de máquina Sistema Operacional? Conjunto de Instruções do processador? Ambiente de Execução O
O 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
Fabrí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)
Redes de computadores e a Internet. A camada de rede
Redes de computadores e a Internet Capitulo Capítulo 4 A camada de rede A camada de rede Objetivos do capítulo: Entender os princípios dos serviços da camada de rede: Roteamento (seleção de caminho) Escalabilidade
Programação Paralela em OpenCL
Programação Paralela em OpenCL César L. B. Silveira [email protected] 19 de novembro de 2010 Introdução Open CompuDng Language (OpenCL) Padrão aberto, livre de royal&es, para programação paralela em ambientes
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA
Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais
Introdução à Computação: Arquitetura von Neumann
Introdução à Computação: Arquitetura von Neumann Beatriz F. M. Souza ([email protected]) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO
Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.
DWEB. Design para Web. HTML5 - Marcação de formulário. Curso Superior de Tecnologia em Design Gráfico
DWEB Design para Web Curso Superior de Tecnologia em Design Gráfico HTML5 - Marcação de formulário E não vos conformeis com este século, mas transformai-vos pela renovação da vossa mente, para que experimenteis
Universidade 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
Introdução a POO. Introdução a Linguagem C++ e POO
Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes
Grid Computing: Processamento de Alto Desempenho em Rede
Grid Computing: Processamento de Alto Desempenho em Rede José Roberto B. Gimenez Coordenador de TI do GridUNESP [email protected] Estrutura da apresentação Motivação para uso de Grid Discussão sobre problemas
Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores
Multi-processamento Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores Arquitecturas MIMD de memória distribuída Massive Parallel Computers Sistemas distribuídos Ainda
Programação Paralela e Distribuída (DCC/UFRJ)
Programação Paralela e Distribuída (DCC/UFRJ) Aula 7: Programação com memória compartilhada usando OpenMP 1, 8, 10 e 15 de abril de 2015 OpenMP (Open MultiProcessing) Projetado para sistemas de memória
} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede
Prof. Samuel Souza } Monolíticas Aplicações em um computador centralizado } Em Rede Aplicações com comunicação em rede } Distribuídas Comunicação e cooperação em rede } Aplicações que são funcionalmente
Motherboard Significado
Motherboard Significado Motherboard, também m designada por mainboard ou Placa-mãe, é uma placa de circuito impresso, que serve como base para a instalação dos componentes do computador, tais como processador,
Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)
Capítulo 4 João Lourenço [email protected] Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa 2007-2008 MARIE (Machine Architecture Really Intuitive and Easy) Adaptado dos transparentes
Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB
Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha
Organização de Computadores 1
Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central
Arquitetura de Von Neumann e os Computadores Modernos
Arquitetura de Von Neumann e os Computadores Modernos Arquitetura de Computadores e Software Básico Aula 5 Flávia Maristela ([email protected]) Arquitetura de Von Neumann e as máquinas modernas Onde
Infra-Estrutura de Software. Introdução. (cont.)
Infra-Estrutura de Software Introdução (cont.) O que vimos Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como
Arquitetura de Computadores Arquitetura de entrada e saída
Arquitetura de Entrada e Saída Arquitetura de Computadores Arquitetura de entrada e saída Barramento Meio de transmissão de dados entre a CPU, a memória principal e os dispositivos de entrada e saída.
Introdução à Arquitetura de Computadores
1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de
Conceitos e Gerenciamento de Memória
Conceitos e Gerenciamento de Memória Introdução à Ciência da Computação Professor Rodrigo Mafort O que é memória? Dispositivos que permitem armazenar dados temporariamente ou definitivamente. A unidade
Introdução à Computação: Sistemas de Computação
Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza ([email protected]) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Arquitetura de Computadores. Professor: Vilson Heck Junior
Arquitetura de Computadores Professor: Vilson Heck Junior Agenda Conceitos Estrutura Funcionamento Arquitetura Tipos Atividades Barramentos Conceitos Como já discutimos, os principais componentes de um
IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira
IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários
SISTEMAS INFORMÁTICOS
SISTEMAS INFORMÁTICOS Nesta apresentação, aprenderá a distinguir Hardware de software, identificar os principais componentes físicos de um computador e as suas funções. Hardware e Software Estrutura de
Programação de Periféricos
Programação de Periféricos Componentes Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Apresentação Raspberry pi Sistema Operacional embarcado Atividade Raspberry pi Sistema computacional
Introdução à Arquitetura e Linguagem Assembly de Processadores IA-32
Introdução à Arquitetura e Linguagem Assembly de Processadores IA-32 Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 CHIP Ano MHz Transistors Mem 8086 1978 5
Estruturas do Sistema de Computação
Estruturas do Sistema de Computação Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Estruturas do Sistema de
A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande
A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada
VMWare Horizon e a NVIDIA GRID vgpu Possibilitando gráficos 3D na nuvem Marcio Aguiar, ENTERPRISE Latin America Manager
VMWare Horizon e a NVIDIA GRID vgpu Possibilitando gráficos 3D na nuvem Marcio Aguiar, ENTERPRISE Latin America Manager 13/10/15 NVIDIA Introdução AGENDA NVIDIA GRID Benefícios NVIDIA GRID Ecosistema Informações
Prof. Sandrina Correia
Tecnologias de I informação de C omunicação 9º ANO Prof. Sandrina Correia TIC Prof. Sandrina Correia 1 Objectivos Definir os conceitos de Hardware e Software Identificar os elementos que compõem um computador
