Aplicações em CUDA. Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center
|
|
- Isabel Lisboa de Lacerda
- 6 Há anos
- Visualizações:
Transcrição
1 Aplicações em CUDA Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center
2 Roteiro l Introdução l Eventos l Aspectos históricos l Operações atômicas l Introdução sobre CUDA l Fluxo l l l Trabalhando com threads e blocos Biblioteca CUDA runtime Hierarquia de memória l l Filtro sobel CPU x GPU Arquitetura Fermi l Heap l Memória constante l Memória de textura l Memória compartilhada
3 Introdução
4 Introdução - Aspectos históricos GPGPU a evolução: As 4 fases históricas das GPUs: Dispositivos de Rasterização Fixed Function GPU Programmable GPU Arquitetura Unificada
5 Introdução - Aspectos históricos GPGPU: Problema de ter que mapear tudo para APIs Usar funções OpenGL ou DirectX para efetuar todo tipo de operações
6 Introdução sobre CUDA Arquitetura Unificada & Compute Unified Device Architecture
7 Introdução sobre CUDA GPU: Mais transistores para matemática Menos transistores para controle de fluxo do programa
8 Introdução sobre CUDA Threads Custo de gerenciamento CPU: O custo de para troca de contexto de thread em CPU é cara Em CPU, como fazemos pouca troca de threads, podemos achar natural gastar 1000 instruções para fazer a troca de uma thread para outra. Em CUDA há outro paradigma... Não é necessário gerenciar as threads, a priori
9 Introdução sobre CUDA l Estrutura das bibliotecas:
10 Introdução sobre CUDA l Conceitos do CUDA: A GPU Dispositivo de computação com capacidade de executar threads em paralelo. A CPU Host que trabalha em conjunto com a GPU Kernel instância do programa Thread instância de um kernel Memória de vídeo / device Memória principal / host
11 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é 1024 threads Threads de um mesmo bloco podem compartilhar memória
12 Trabalhando com threads e blocos Hierarquia de memória Local Cache L1 e L2 Compartilhada Constante Textura Global
13 Biblioteca CUDA runtime Biblioteca dinâmica cuda_runtime_api.h para C cuda_runtime.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
14 Biblioteca CUDA runtime Funções: Gerências: Devices Streams Memória Eventos Captura de erro
15 Mão na massa!!!!
16 Instalação Instalação e o que baixar: Site: Itens para baixar: Driver CUDA toolkit
17 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
18 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 Quantidade em bytes a serem alocadas
19 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 destino src Memória de origem count Quantidade em bytes a serem transferidos kind Sentido da copia CPUà GPU ou GPUà CPU
20 Meu primeiro programa! 3. Execução do kernel
21 Meu primeiro programa! 3. Execução do kernel Kernel executado pela GPU
22 Meu primeiro programa! 3. Execução do kernel Quantidade de threads em um bloco Quantidade de blocos
23 Meu primeiro programa! 3. Execução do kernel Vetores: C = A + B
24 Meu primeiro programa! 3. Execução do kernel Kernel executado pela GPU Vetores: C = A + B
25 Meu primeiro programa! 3. Execução do kernel Kernel executado pela GPU Vetores: C = A + B
26 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
27 Meu primeiro programa! 4. Cópia dos dados GPU à CPU
28 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
29 Operação com memória
30 Memória A comunicação da CPU com a GPU é limitada pelo barramento PCI-EXPRESS Uma boa dica é minimizar o processo de comunicação
31 Hierarquia memória Organização dos dados, blocos e threads de forma a garantir um acesso coalecente. Acesso coalecente é entendido em termos de alinhamento de memória global Cada versão de GPU (capability) tem uma política própria
32 Hierarquia memória Memória Localização Fica em cache Tipo de acesso Escopo Registrador chip - R/W Thread Local GPU - R/W Thread Compartilhada 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
33 Operação atômica
34 Operação atômica A função atômica executa três comandos: leitura à modificação à escrita As operações podem ser feitas na memória global ou compartilhada. Trabalham com palavras de 32/64-bit Garante que apenas um thread por vez vai acessar a memória
35 Operação atômica Memória global Threads Bloco 1 Bloco 2 0
36 Operação atômica Memória global Threads Bloco 1 Bloco 2 1
37 Operação atômica Memória global Threads Bloco 1 Bloco 2 2
38 Operação atômica Memória global Threads Bloco 1 Bloco 2 2
39 Ver código (operação atômica)
40 Operações com stream
41 Operações com stream Permite cópia assíncrona dos dados Sobre põe as tarefas de cópia e processamento na GPU Alocação da memória de CPU no-swap Kernel Cópia assíncrona Sincronismo Kernel Cópia assíncrona Linha do tempo
42 Operações com stream Para GPUs que permitem kernels concorrentes é necessário verificar a existência de dependência Cópia concorrente de dados. Performance medida através de eventos.
43 Ver código (operação Stream)
44 Orientação a objeto em CUDA
45 Orientação a objeto em CUDA Classes Não suporta: Método ou atributo static Métodos não suporta qualificador global Suporta: Herança Polimorfismo
46 Orientação a objeto em CUDA
47 Ver código (classes)
48 Ver código (Memória)
49 Ver código (Memória) Matriz transposta
50 Ver código (Memória) Matriz transposta Textura: apenas inverte linha por coluna Memória de textura Memória global
51 Ver código (Memória) Matriz transposta (1 bloco com 4 threads) Compartilhada: Memória global Memória global Memória compartilhada
52 Ver código (Memória) Matriz transposta Compartilhada: Memória global Thread[0,0] Memória global Memória compartilhada
53 Ver código (Memória) Matriz transposta Compartilhada: Memória global Thread[0,0] Memória global Memória compartilhada
54 Ver código (Memória) Matriz transposta Compartilhada: Memória global Thread[1,1] Memória global Memória compartilhada
55 Ver código (Memória) Matriz transposta Compartilhada: Memória global Thread[1,1] Memória global Memória compartilhada
56 Ver código (Memória) Matriz transposta Compartilhada: Memória global Memória global Memória compartilhada
57 Ver código (Memória) Matriz transposta Compartilhada: Memória global Thread[0,0] Memória global Memória compartilhada
58 Ver código (Memória) Matriz transposta Compartilhada: Memória global Thread[1,1] Memória global Memória compartilhada
59 Ver código (Memória) Matriz transposta Compartilhada: Memória global Memória global Memória compartilhada
60 Método das diferenças finitas para simulação de ondas na GPU
61 Método das diferenças finitas para simulação de ondas na GPU O problema: 2 u 2 t = 2 u 2 x + 2 u 2 y Domínio: Ω = [ 0, L x ] [0, Ly ] u( Ω,0) = 0 Condição inicial: u( Ω,1) = 0 Condição de contorno (Dirichlet): u(0,0) = 0 u( L u( L x x, L u(0, L,0) = 0 y y ) = 0 ) = 0
62 Método das diferenças finitas para simulação de ondas na GPU GPU & CUDA - Compute Unified Device Architecture) uiliza o paradigma de programação de fluxo. Memória comparilhada
63 Método das diferenças finitas para simulação de ondas na GPU Mapeamento do problema na GPU: Domínio processado pelo bloco (0,0) Domínio processado pelo bloco (0,1) Região compartilhada entre blocos
64 Método das diferenças finitas para simulação de ondas na GPU Performance - Programa Dominio X Dominio Y Dominío em T Total Tempo (s) Gigasample blocos X blocos Y UFF shared UFF textura UFF shared UFF textura UFF shared E UFF textura E UFF shared UFF textura UFF shared UFF textura UFF shared E UFF textura E UFF shared UFF textura UFF shared UFF textura UFF shared E UFF textura E
65 Método das diferenças finitas para simulação de ondas na GPU Performance -
66 Método das diferenças finitas para simulação de ondas na GPU Performance -
67 Filtro Sobel
68 Filtro Sobel É um algoritmo usado para definir bordas em imagens
69 Filtro Sobel Algoritmo
70 Filtro Sobel É um algoritmo usado para definir bordas em imagens
71 Filtro Sobel É um algoritmo usado para definir bordas em imagens
72 Filtro Sobel É um algoritmo usado para definir bordas em imagens
73 Filtro Sobel A borda é definida pelo gradiente da imagem O algoritmo intensifica o gradiente da borda O Cálculo é feito com base na convolução da imagem com dois filtros
74 Filtro Sobel Após a aplicação dos filtros, a magnetude é dada por:
75 Ver código (Sobel)
76 Arquitetura FERMI Pilha, Recursão e Heap
77 Pilha & Recursão cudaerror_t cudadevicegetlimit(size_t* size, cudalimit limit) size Tamanho da memória heap (8M default) limit Tipo enum que define a memória (heap, stack e buffer para printf) cudaerror_t cudadevicesetlimit (enum cudalimit limit, size_t value) Apenas para GPUs com capability 2.x Parâmetro limit = cudalimitstacksize
78 Ver código (Pilha)
79 Arquitetura FERMI Heap & Alocação dinâmica de memória
80 Heap & Alocação dinâmica de memória Arquitetura FERMI possui memória HEAP CPU aloca a memória HEAP Permite alocação dinâmica na memória global e compartilhada A área de heap é definida pela CPU.
81 Heap & Alocação dinâmica de memória cudaerror_t cudadevicegetlimit(size_t* size, cudalimit limit) size Tamanho da memória heap (8M default) limit Tipo enum que define a memória (heap, stack e buffer para printf) cudaerror_t cudadevicesetlimit (enum cudalimit limit, size_t value) Apenas para GPUs com capability 2.x Parâmetro limit = cudalimitmallocheapsize
82 Ver código (Heap)
83 Perguntas????
MC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos
MC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos Aula 1: Introdução à programação paralela e ao ambiente de programação CUDA Profs.: Daniel Alfaro e Silvana Rossetto
Leia maisComputação Paralela (CUDA)
Universidade Federal do Amazonas Faculdade de Tecnologia Departamento de Eletrônica e Computação Computação Paralela (CUDA) Hussama Ibrahim hussamaibrahim@ufam.edu.br Notas de Aula Baseado nas Notas de
Leia 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 maisTécnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot
Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot Bruno Pereira dos Santos Dany Sanchez Dominguez Esbel Tomás Evalero Orellana Universidade Estadual de Santa Cruz Roteiro Breve introdução
Leia mais3 Computação de Propósito Geral em Unidades de Processamento Gráfico
3 Computação de Propósito Geral em Unidades de Processamento Gráfico As Unidades de Processamento Gráfico (GPUs) foram originalmente desenvolvidas para o processamento de gráficos e eram difíceis de programar.
Leia maisFabrício Gomes Vilasbôas
Fabrício Gomes Vilasbôas Apresentação Placas Arquitetura Toolkit e Ferramentas de Debug Pensando em CUDA Programação CUDA Python Programação PyCUDA 1) Grids( padrão Globus) 2) Clusters ( padrão MPI) 3)
Leia maisProcessamento de áudio em tempo real utilizando dispositivos não convencionais:
Processamento de áudio em tempo real utilizando dispositivos não convencionais: Processamento paralelo com Pure Data e GPU. André Jucovsky Bianchi ajb@ime.usp.br Departamento de Ciência da Computação Instituto
Leia maisEng. Thársis T. P. Souza
Introdução à Computação de Alto Desempenho Utilizando GPU Seminário de Programação em GPGPU Eng. Thársis T. P. Souza t.souza@usp.br Instituto de Matemática e Estatística - Universidade de São Paulo Introdução
Leia mais5 Unidades de Processamento Gráfico GPUs
5 Unidades de Processamento Gráfico GPUs As GPUs são processadores maciçamente paralelos, com múltiplos elementos de processamento, tipicamente utilizadas como aceleradores de computação. Elas fornecem
Leia maisGerência de memória II
Gerência de memória II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 48 Sumário 1 Memória Virtual Segmentação Paginação 2 Alocação de páginas
Leia maisMemory-level and Thread-level Parallelism Aware GPU Architecture Performance Analytical Model
Memory-level and Thread-level Parallelism Aware GPU Architecture Performance Analytical Model Sunpyo Hong Hyesoon Kim ECE School of Computer Science Georgia Institute of Technology April 6, 2011 Visão
Leia maisCUDA: Compute Unified Device Architecture. Marco Antonio Simões Teixeira
CUDA: Compute Unified Device Architecture Marco Antonio Simões Teixeira Sumário Introdução; CUDA: História; CUDA: programando; CUDA e deep learning; Links úteis; Considerações finais. 2 INTRODUÇÃO 3 O
Leia maisIntrodução aos Sistemas Operacionais. Subsistema de Entrada e Saída
Introdução aos Sistemas Operacionais Subsistema de Entrada e Saída Eleri Cardozo FEEC/Unicamp Entrada e Saída O subsistema de entrada e saída é responsável pela interface entre o sistema operacional e
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 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 maisAdriano J. Holanda FAFRAM. 4 e 11 de maio de 2012
Memória Adriano J. Holanda FAFRAM 4 e 11 de maio de 2012 Trilha Introdução Hierarquia da memória Memórias RAM Memória ROM Introdução Arquitetura de Von Neumann Memória Aritmética Controle E/S Unidade central
Leia maisTópicos em Física Computacional: Introdução a Linguagem CUDA
Tópicos em Física Computacional: Introdução a Linguagem CUDA Aula 06: Introdução a Linguagem CUDA Otimização do Código Carine P. Beatrici IF UFRGS 1 Da Aula Passada... Programa que soma matrizes linearizadas;
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 9 Threads Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Threads Uma thread
Leia maisIntrodução OpenMP. Nielsen Castelo Damasceno
Introdução OpenMP Nielsen Castelo Damasceno Computação de auto desempenho Processamento Paralelo Memória Distribuída e Compartilhada Modelo de programação OpenMP Métricas de Desempenho Computação de auto
Leia 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 maisGerência de memória III
Gerência de memória III Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 45 Sumário 1 Memória Virtual Segmentação Paginação 2 Alocação de páginas
Leia maisSistemas Operacionais. Entrada/Saída
Sistemas Operacionais Entrada/Saída Atualizado em 28/02/2014 Como ocorre a comunicação de E/S Aplicação Operações de E/S Chamadas de Sistema S.O. Subsistema de E/S Núcleo (Kernel) Drivers HARDWARE Controladoras
Leia maisParalelismo em Computadores com Tecnologia Multicore
IFRN - Pau dos Ferros Pau dos Ferros/RN, 25 de fevereiro de 2016 O minicurso Descrição: Para se utilizar os vários núcleos de processamento disponíveis nos computadores atuais de forma eficiente, faz necessário
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 maisArquitetura de Computadores
Arquitetura de Computadores 2018.1 Computador O computador é uma máquina que realiza processamento de dados automaticamente. Ela é formada por um hardware e um software. O Engenho Analítico é o primeiro
Leia maisIntrodução aos Sistemas Operacionais
1 Introdução aos Sistemas Operacionais 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.3 O zoológico de sistemas operacionais 1.4 Conceitos sobre sistemas operacionais 1.5 Chamadas
Leia maisTEMA DE CAPA. Introdução à Programação em CUDA
TEMA DE CAPA Introdução à Programação em CUDA Introdução à Programação em CUDA Nos últimos anos, as placas gráficas (GPU Graphical Processing Unit) ganharam relevância no âmbito da computação paralela.
Leia maisBarramento. Prof. Leonardo Barreto Campos 1
Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;
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 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 maisParalelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data)
Paralelismo de dados (execução de simultaneidade) Em métodos tradicionais de programação (processamento sequencial), uma grande quantidade de dados é processada em um único núcleo de uma CPU, enquanto
Leia maisProcessamento Paralelo Utilizando GPU
Processamento Paralelo Utilizando GPU Universidade Estadual de Santa Cruz Bruno Pereira dos Santos Dany Sanchez Dominguez Esbel Evalero Orellana Cronograma Breve introdução sobre processamento paralelo
Leia 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 maisGerenciamento de memória
Gerenciamento de memória Adriano J. Holanda 19/11/2015 Revisão: processos Visão geral Composto por código do programa em execução, arquivos abertos, sinais pendentes, dados internos do núcleo do SO, estado
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 maisSparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?
Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile? Paula Prata João Muranho Instituto de Telecomunicações Departamento de Informática Universidade da Beira Interior Instituto
Leia 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 maisSistemas Operacionais. Processos e Threads
Sistemas Operacionais Processos e Threads Sumário 1. Introdução 2. Estrutura do Processo 1. Contexto de Hardware 2. Contexto de Software 3. Espaço de Endereçamento 3. Estados 1. Mudanças de Estado 2. Criação
Leia maisIntrodução. Pedro Cruz. EEL770 Sistemas Operacionais
Introdução Pedro Cruz EEL770 Sistemas Operacionais Roteiro Informações úteis Motivação Definições Revisão de arquitetura 2 Contato Site da disciplina www.gta.ufrj.br/~cruz/courses/eel770 Email cruz@gta.ufrj.br
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 maisCapítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais
DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno
Leia maisfor(int x=0; x < width; x++) { for(int y=0; y < height; y++) { finalimage[x][y]=renderpixel(x,y, &scenedata); } }
Paralelização em OpenMP Identifique os loops pesados ; Distribua-os: Versão sequencial double res[10000]; calculo_pesado(&res[i]); Versão paralela double res[10000]; for calculo_pesado(&res[i]); OMP for
Leia maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMANDO
Leia maisOrganização de Computadores I
Organização de Computadores I Aula 2 Material: Diego Passos http://www.ic.uff.br/~debora/orgcomp/pdf/parte2.pdf Organização de Computadores I Aula 2 1/29 Tópicos de Computação. de um Sistema de Computação..
Leia maisGerência de Dispositivos. Adão de Melo Neto
Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Gerência de Dispositivos Dispositivos de E/S Device Drivers Controladores Subsistema de E/S 2 Gerência de Dispositivos A gerência de
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução
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 maisExercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída
Nome: Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída 1. A gerência de dispositivos de entrada e saída é uma das principais e mais complexas funções de um sistema
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 maisDAS5102 Fundamentos da Estrutura da Informação
Ponteiros e Funções Funções ou sub-rotinas são parcelas de código que podem ser invocadas a partir do programa principal ou até mesmo por outras sub-rotinas. Elas têm como objetivo a execução de uma tarefa
Leia maisSoluções em GPU para o Problema do Alinhamento Spliced
Soluções em GPU para o Problema do Alinhamento Spliced Anisio Vitorino Nolasco Dissertação de Mestrado apresentada à Faculdade de Computação da Universidade Federal de Mato Grosso do Sul Orientadora: Profa.
Leia 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 maisBARRAMENTOS DO SISTEMA FELIPE G. TORRES
BARRAMENTOS DO SISTEMA FELIPE G. TORRES BARRAMENTOS DO SISTEMA Um computador consiste em CPU, memória e componentes de E/S, com um ou mais módulos de cada tipo. Esses componentes são interconectados de
Leia maisCapítulo 8: Memória Principal. Operating System Concepts 8 th Edition
Capítulo 8: Memória Principal Silberschatz, Galvin and Gagne 2009 Objetivos Fornecer uma descrição detalhada das várias formas de organizar a memória do computador Discutir várias técnicas de gerenciamento
Leia maisGerenciamento de Memória
Gerenciamento de Memória Conceitos básicos Swapping Alocação contígua Paginação Segmentação Segmentação com paginação Atribuição de endereços (ligação) de código e dados na memória A atribuição de endereços
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Conteúdo Introdução ao S.O Gerenciamento de processos. Gerenciamento de memória. Dispositivos de Entrada/Saída. Sistemas de arquivos. Gerenciamento de processos Processos Um processo
Leia maisProjeto Lógico de Computadores. Profa. MSc. Carolina Melo Santana
Projeto Lógico de Computadores Profa. MSc. Carolina Melo Santana karolstana@yahoo.com.br Nível de Máquina de Sistema Operacional Dinâmica: Batata quente Perguntas a serem respondidas pelos alunos que estiverem
Leia maisWilliam Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador
William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 12 Estrutura e função do processador slide 1 Estrutura da CPU CPU precisa: Buscar instruções. Interpretar instruções. Obter
Leia maisConceitos básicos e serviços dos Sistemas Operacionais
Conceitos básicos e serviços dos Sistemas Operacionais Prof. Marcos Ribeiro Quinet de Andrade Instituto de Ciência e Tecnologia - ICT Universidade Federal Fluminense - UFF Tipos de serviços do S.O. Um
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 6 Gerenciamento de Memória Prof. Galvez Considerações Gerais Multiprogramação implica em manter-se vários processos em memória Memória necessita ser alocada de
Leia maisSistemas de Entrada e Saída
Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 31 Sumário 1 Interrupções 2 Camadas de Software de E/S 2 / 31 Interrupções
Leia maisThársis T. P. Souza
Computação em Finanças em Hardware Gráfico SEMAC 2012 - UNESP Thársis T. P. Souza t.souza@usp.br Instituto de Matemática e Estatística - Universidade de São Paulo GPU Computing CUDA Aplicações em Finanças
Leia maisSistemas de Computação. Gerenciamento de memória
Gerenciamento de memória Localização de processos Um programa fica armazenado em disco como um arquivo executável binário e tem que ser colocado na memória para começar a ser executado Os processos podem
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 11 - Threads e Concorrência
Aula 11 - Threads e Concorrência Conteúdo Programático desta aula Apresentar os Conceitos de Threads, Concorrência e Sincronização. Verificar a aplicabilidade destes conceitos no mercado, bem como sua
Leia maisGerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física
Aulas anteriores Gerência de Memória Introdução e Particionamento Marcelo Johann Ciclo de Compilação, ligação e carga INF - Sistemas Operacionais I N - Marcelo Johann - 9/ Aula : Slide INF - Sistemas Operacionais
Leia maisArquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Unidade Central de Processamento (CPU) Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Baseado nos slides do capítulo
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 maisWilliam Stallings Arquitetura e Organização de Computadores 8 a Edição
William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 8 Suporte do sistema operacional slide 1 Objetivos e funções Conveniência: Tornar o computador mais fácil de usar. Eficiência:
Leia maisAmbientes e Ferramentas de Programação para GPU. Denise Stringhini (Mackenzie) Rogério Gonçalves (UFTPR/IME- USP) Alfredo Goldman (IME- USP)
Ambientes e Ferramentas de Programação para GPU Denise Stringhini (Mackenzie) Rogério Gonçalves (UFTPR/IME- USP) Alfredo Goldman (IME- USP) Conteúdo Conceitos de paralelismo Arquitetura de GPU CUDA OpenCL
Leia maisProcessos ca 3 pítulo
Processos capítulo 3 Introdução: Threads Para executar um programa, o sistema operacional cria um determinado números de processos virtuais. O sistema operacional mantém uma tabela de processos que contém
Leia maisArquitetura de Computadores. Ciclo de Busca e Execução
Arquitetura de Computadores Ciclo de Busca e Execução Ciclo de Busca e Execução Início Buscar a próxima instrução Interpretar a instrução Executar a instrução Término Funções realizadas pela UCP Funções
Leia maisProcessos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend
Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos
Leia maisUnix Processos. Geraldo Braz Junior
Unix Processos Geraldo Braz Junior 1 Processos no Unix Unix é multiprogramado; Para cada processo é atribuído um Pid; Diversos daemons são executados: Cron Processamento de emails Gerenciamento da fila
Leia maisMódulo 3 - Estrutura e configuração de Sistemas Operativos monoposto
Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto 20-05-2009 - Aula nº 121,122 Funções de um Sistema Operativo Gestão do processador ao nível da sua planificação Gestão da Memória Gestão
Leia maisProfessor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa
4. Memórias de Dados e de Programa Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP 4.1 Memórias Semicondutoras Algumas definições Célula: Dispositivo de armazenamento de 1 bit. Palavra:
Leia maisArquitetura de Computadores Sistemas Operacionais II
Definição de Processo Arquitetura de Computadores Sistemas Operacionais II Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa
Leia maisComputação científica utilizando placas gráficas
Brasília, dezembro de 2008 Universidade de Brasília - Faculdade do Gama Sumário Introdução Sumário Introdução Arquitetura da GPU Sumário Introdução Arquitetura da GPU Modelo de programação Sumário Introdução
Leia maisDisciplina: Arquitetura de Computadores
Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na
Leia maisINSTITUTO FEDERAL CATARINENSE Campus Ibirama
INSTITUTO FEDERAL CATARINENSE Campus Ibirama Arquitetura de Hardware Professor Eduardo Stahnke Arquiteturas Grande diversidade das arquiteturas de computadores Componentes básicos do computador Os Principais
Leia maisCapacitação Vix Linux. Jacson RC Silva
Capacitação Vix Linux Jacson RC Silva Conteúdo Sistemas Operacionais GNU/Linux Inicialização do GNU/Linux (GRUB e kernel) Modo Gráfico X Modo Texto Shell Script Scripts de Inicialização
Leia maisMONTAGEM E MANUTENÇÃO DE COMPUTADORES
Álvaro Elias Flôres alvaro.flores@sc.senai.br MONTAGEM E MANUTENÇÃO DE COMPUTADORES Introdução A atividade de um computador pode ser definida por um modelo simples: Introdução Na etapa de processamento
Leia maisJônatas Lopes de Paiva Instituto de Matemática e Estatística Universidade de São Paulo. 06 de maio de 2011
Jônatas Lopes de Paiva jlp@ime.usp.br Instituto de Matemática e Estatística Universidade de São Paulo 06 de maio de 2011 Introdução String-matching O que é? Em que é utilizado Tipos GPU GPGPU String-matching
Leia 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 maisModulo 12: alocação dinâmica de memória
PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 12: alocação dinâmica de memória Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro porque e como utilizar a alocação dinâmica funções: malloc (
Leia maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 5ª e 6ª Aulas Revisão de Hierarquia de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Memória Todo componente capaz de armazenar bits de informação
Leia maisProcesso. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software
Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições
Leia maisAULA Nº 08 SISTEMAS OPERACIONAIS. Threads
AULA Nº 08 SISTEMAS OPERACIONAIS Threads Contextualizando Na aula passada Sincronização de Processos Aula de hoje Threads O Modelo de Processo 1) Utilizado para agrupar recursos 2) Um espaço de endereço
Leia maisFUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres
FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5 Cristina Boeres Introdução! Diferença de velocidade entre Processador e MP O processador executa uma operação rapidamente e fica em
Leia maisSistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos
Sistema Distribuído Conjunto de máquinas (CPU + memória) interligadas em rede. Sistema Distribuído Sistema operacional distribuído trata este conjunto como um único sistema computacional. Estação 1 Estação
Leia maisProgramação Concorrente. Prof. Hugo Vieira Neto
Programação Concorrente Prof. Hugo Vieira Neto Concorrência Um programa concorrente descreve diversas atividades que ocorrem simultaneamente, de modo diferente de programas comuns, que descrevem apenas
Leia maisGerência de Memória Memória Virtual e Paginação
Memória Virtual e Paginação Carlos Gustavo A. da Rocha Memória virtual O tamanho das memórias aumenta rápido :) Mas o tamanho dos softwares aumenta mais rápido :( Devido a isto os SOs devem ser capazes
Leia maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 6ª Aula Entrada e Saída Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Estrutura da máquina de von Neumann Dispositivos Periféricos Interface com o mundo exterior
Leia maisSistemas de Entrada e Saída
Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 33 Sumário 1 Dispositivos de E/S 2 Interrupções 3 Software de E/S 2
Leia maisA Utilização da Tecnologia CUDA para Processamento Paralelo de Algoritmos Genéticos
A Utilização da Tecnologia CUDA para Processamento Paralelo de Algoritmos Genéticos Allan Ariel Leite Menezes Santos 1 1 Universidade do Estado da Bahia (UNEB) allan.ariel1987@gmail.com Abstract. The problem
Leia maisDisciplina: Sistemas Operacionais
Curso: Análise e Desenvolvimento de Sistemas Disciplina: Sistemas Operacionais Parte 2: Sistemas Multiprocessos, Características dos Multiprocessadores,Sistemas de Clusters, Operações básica do Sistema
Leia maisProcesso. Prof. Paulo Cesar F. de Oliveira, BSc, PhD
Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1 Seção 1.1 Introdução 2 Receita do Bolo Programa (Algoritmo) Ingredientes: dados de entrada Quem prepara (confeiteiro): CPU atividade de: Ler a receita Buscar
Leia maisImplementação de um escalonador de processos em GPU
Implementação de um escalonador de processos em GPU Guilherme Martins guilhermemartins@usp.br 6 de abril de 2017 Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos
Leia maisSistemas Operacionais. Rodrigo Rubira Branco rodrigo@kernelhacking.com rodrigo@fgp.com.br. www.fgp.com.br
Sistemas Operacionais Rodrigo Rubira Branco rodrigo@kernelhacking.com rodrigo@fgp.com.br Tipos de Sistemas Operacionais De Sistemas Embarcados (PalmOS,WinCE,WinXPEmbbeded,Linux) Hardware simples, especifico
Leia maisESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade
ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro do Prof. Dr. Carlos Alberto Maziero, disponível no link: http://dainf.ct.utfpr.edu.br/~maziero
Leia maisci212 E/S (i): interface com CPU e SO Entrada e Saída
Entrada e Saída Tipos e Características de Dispositivos Dispositivos, Interfaces com CPU e com Sist Operacional Modelo de dispositivo Espaços de endereçamento e hierarquia de barramentos Modos de acesso
Leia mais