11
Arquitetura de Computadores
UFPI
28
Arquitetura de Computadores
UECE
9
Arquitetura de Computadores
UFPB
12
Arquitetura de Computadores
UNIPE
25
Arquitetura de Computadores
MACKENZIE
150
Arquitetura de Computadores
UFG
1
Arquitetura de Computadores
FACAPE
22
Arquitetura de Computadores
UNIPE
7
Arquitetura de Computadores
UNIP
1
Arquitetura de Computadores
UERJ
Texto de pré-visualização
UNIVERSIDADE FEDERAL DE LAVRAS Departamento de Ciência da Computação BachareladoMestrado em Ciência da Computação Disciplina Arquitetura de Computadores II GCC123PCC507 Trabalho Prático 2 1o Semestre de 2021 Professor Luiz Henrique A Correia Data de entrega 26082024 Valor 15 pontos 1 Introdução Este trabalho prático tem como objetivo estudar o paralelismo no nível de dados por meio de programação vetorial Os atuais processadores possuem extensões dos seus conjuntos de instruções SIMD capazes de lidar com grandes cadeias de dados chuncks em alta velocidade A partir de 2008 os processadores x86 das fabricantes Intel e AMD incluíram nos seus conjuntos de instruções o AVX Advanced Vector Extensions O AVX inicialmente trabalhava com vetores de até 128 bits para operar funções intrínsecas de inicialização aritméticas permuta e embaralhamento Em 2011 foi lançado o AVX2 no qual o tamanho do vetores foi expandido para 256 bits permitindo a execução de operações de multiplicação acumulada fundidas FMA Em 2013 o tamanho do vetor foi novamente incrementado para suportar instruções SIMD de 512 bits usando uma nova codificação de prefixo EVEX Os processadores mais recentes da Intel que suportam vetores de 512 bits são Knights Landing Knights Mill SkylakeSP SkylakeX Cannon Lake e Ice Lake e os da AMD são Excavator e Zen Os sistema operacionais que suportam as instruções SIMD do AVX são Apple OS X Suporte para AVX adicionado a partir da versão 1068 Snow Leopard O DragonFly BSD adicionou suporte a partir de 2013 FreeBSD a partir da versão 91 Linux suporte desde a versão do kernel 2630 Windows suporte a partir do Windows 7 SP1 Windows Server 2008 R2 SP1 Windows 8 e no atual Windows 10 O AVX foi desenvolvido para cálculos de ponto flutuante intensivo em aplicações multimídia cientí ficas e financeiras O objetivo do AVX é aumentar o paralelismo e o rendimento em cálculos SIMD de ponto flutuante reduzindo a carga do registrador devido às instruções não destrutivas e melhorando o desempenho do software Linux RAID AVX2 A descrição das operações e exemplos de programas das instruções SIMD para o AVX podem ser encontrados no livro texto 1 na Aula 21 dos slides do Capítulo 5 2 e no tutorial de programação do AVX 3 2 Descrição do Trabalho Este trabalho propõe a implementação dos exemplos de exercícios de programação usando o AVX e AVX 2 do Tutorial do AVX 3 Para tal os grupos de alunos devem ler e implementar cada um dos exemplos considerando as formas de compilação conforme descritas no tutorial É necessário verificar se o computador a ser utilizado possui as flags de compilação para o AVX e AVX2 Para tal nas distribuições Linux basta ir no shell e digitar o comando cat proccpuinfo e nos flags verificar se contém avx e avx2 Já para os sistemas Windows é necessário instalar um aplicativo externo ao sistema operacional Um exemplo de aplicativo é o CoreInfo httpsdocsmicrosoftcomenussysinternalsdownloadscoreinfo que basta ser executado no shell para listar todas as informações do processador 1 Data de entrega este trabalho deve ser postado no Campus Virtual da disciplina GCC123 até o dia 26082024 e não haverá adiamento References 1 Hennessy John L and Patterson David A Computer Architecture Fifith Edition A Quantitative Approach Morgan Kaufmann Publishers Inc 2012 2 Correia Luiz H A Notas de aula da disciplina Arquitetura de Computadores 2 Capítulo 5 Univer sidade Federal de Lavras Acessado em agosto de 2024 3 SCARPINO Matt Crunching Numbers with AVX and AVX2 Code Project official page httpswwwcodeprojectcomArticles874396CrunchingNumberswithAVXandAVX Acessado em agosto de 2024 4 Intel Corporation Intrinsic Guide httpssoftwareintelcomsiteslandingpageIntrinsicsGuide Acessado em agosto de 2024 2
11
Arquitetura de Computadores
UFPI
28
Arquitetura de Computadores
UECE
9
Arquitetura de Computadores
UFPB
12
Arquitetura de Computadores
UNIPE
25
Arquitetura de Computadores
MACKENZIE
150
Arquitetura de Computadores
UFG
1
Arquitetura de Computadores
FACAPE
22
Arquitetura de Computadores
UNIPE
7
Arquitetura de Computadores
UNIP
1
Arquitetura de Computadores
UERJ
Texto de pré-visualização
UNIVERSIDADE FEDERAL DE LAVRAS Departamento de Ciência da Computação BachareladoMestrado em Ciência da Computação Disciplina Arquitetura de Computadores II GCC123PCC507 Trabalho Prático 2 1o Semestre de 2021 Professor Luiz Henrique A Correia Data de entrega 26082024 Valor 15 pontos 1 Introdução Este trabalho prático tem como objetivo estudar o paralelismo no nível de dados por meio de programação vetorial Os atuais processadores possuem extensões dos seus conjuntos de instruções SIMD capazes de lidar com grandes cadeias de dados chuncks em alta velocidade A partir de 2008 os processadores x86 das fabricantes Intel e AMD incluíram nos seus conjuntos de instruções o AVX Advanced Vector Extensions O AVX inicialmente trabalhava com vetores de até 128 bits para operar funções intrínsecas de inicialização aritméticas permuta e embaralhamento Em 2011 foi lançado o AVX2 no qual o tamanho do vetores foi expandido para 256 bits permitindo a execução de operações de multiplicação acumulada fundidas FMA Em 2013 o tamanho do vetor foi novamente incrementado para suportar instruções SIMD de 512 bits usando uma nova codificação de prefixo EVEX Os processadores mais recentes da Intel que suportam vetores de 512 bits são Knights Landing Knights Mill SkylakeSP SkylakeX Cannon Lake e Ice Lake e os da AMD são Excavator e Zen Os sistema operacionais que suportam as instruções SIMD do AVX são Apple OS X Suporte para AVX adicionado a partir da versão 1068 Snow Leopard O DragonFly BSD adicionou suporte a partir de 2013 FreeBSD a partir da versão 91 Linux suporte desde a versão do kernel 2630 Windows suporte a partir do Windows 7 SP1 Windows Server 2008 R2 SP1 Windows 8 e no atual Windows 10 O AVX foi desenvolvido para cálculos de ponto flutuante intensivo em aplicações multimídia cientí ficas e financeiras O objetivo do AVX é aumentar o paralelismo e o rendimento em cálculos SIMD de ponto flutuante reduzindo a carga do registrador devido às instruções não destrutivas e melhorando o desempenho do software Linux RAID AVX2 A descrição das operações e exemplos de programas das instruções SIMD para o AVX podem ser encontrados no livro texto 1 na Aula 21 dos slides do Capítulo 5 2 e no tutorial de programação do AVX 3 2 Descrição do Trabalho Este trabalho propõe a implementação dos exemplos de exercícios de programação usando o AVX e AVX 2 do Tutorial do AVX 3 Para tal os grupos de alunos devem ler e implementar cada um dos exemplos considerando as formas de compilação conforme descritas no tutorial É necessário verificar se o computador a ser utilizado possui as flags de compilação para o AVX e AVX2 Para tal nas distribuições Linux basta ir no shell e digitar o comando cat proccpuinfo e nos flags verificar se contém avx e avx2 Já para os sistemas Windows é necessário instalar um aplicativo externo ao sistema operacional Um exemplo de aplicativo é o CoreInfo httpsdocsmicrosoftcomenussysinternalsdownloadscoreinfo que basta ser executado no shell para listar todas as informações do processador 1 Data de entrega este trabalho deve ser postado no Campus Virtual da disciplina GCC123 até o dia 26082024 e não haverá adiamento References 1 Hennessy John L and Patterson David A Computer Architecture Fifith Edition A Quantitative Approach Morgan Kaufmann Publishers Inc 2012 2 Correia Luiz H A Notas de aula da disciplina Arquitetura de Computadores 2 Capítulo 5 Univer sidade Federal de Lavras Acessado em agosto de 2024 3 SCARPINO Matt Crunching Numbers with AVX and AVX2 Code Project official page httpswwwcodeprojectcomArticles874396CrunchingNumberswithAVXandAVX Acessado em agosto de 2024 4 Intel Corporation Intrinsic Guide httpssoftwareintelcomsiteslandingpageIntrinsicsGuide Acessado em agosto de 2024 2