Visão Geral do Trabalho O que é Arquitetura Vetorial? Utilizações: Simulações, Cálculos Científicos, Biologia Molecular, Física de Partículas, Processamento de Imagens, etc. Origens: Cray-1 Estudo do Cray-1 Teoria do Processamento Vetorial Aplicações atuais: ESC e Cell
Histórico Primórdios: WestingHouse Electric Corporation – projeto Solomon Predecessores: STAR – 100 (CDC) e ASC (Texas Instruments) Cray – 1 (Cray Research): primeiro a obter sucesso Outras Companhias: Fujitsu, Hitashi, NEC Tendência atual: processamento distribuído
Propriedades Loops substituídos por instruções com vetores Menos fetches de instruções Programador + compilador deve garantir que cada resultado independa do resultado prévio Possibilita altas freqüências de clock Instruções vetoriais acessam a memória com padrão conhecido
Componentes Memória principal Controlador de memória Registrador vetorial Banco de memória de tamanho fixo para guardar um simples vetor Tipicamente 8-32 registradores vetoriais, cada um com 1 to 8 Kbits Tem ao menos 2 portas de leitura e uma de escrita Podem ser vistos como arranjos de elementos de 64b, 32b, 16b, ou 8b Processador escalar Totalmente pipelined, iniciam nova operação a cada clock Controlador vetorial Unidade aritmética pipeline
Formas de endereçamento Denso Sequencial (stride = 1) Não sequencial mas regular(stride > 1) Submatriz Esparso Vetor de bits (indica o elemento que participa de uma operação) Vetor de índices (guardam o endereço do elemento no vetor)
Outros aspectos Comprimento do vetor Processamento horizontal Resolvido por meio de Strip Mining Uso dos registradores MVL (maximum vector length) e do VL (vector length) Processamento horizontal Linha a linha de uma matriz Uma inicialização do pipeline por linha Processamento vertical Conceito de somas parciais Melhora no tempo total devido a uma única inicialização do pipeline
Instruções vetoriais Código da operação Endereço de base Incremento de endereço (stride 1, 2, ... ) Off-set de endereço Tamanho do vetor Instr. Operandos Operação Comentários VADD.VV V1,V2,V3 V1=V2+V3 vetor + vetor VADD.SV V1,R0,V2 V1=R0+V2 escalar + vetor VLD V1,R1 V1=M[R1..R1+63] load com espaçamento igual a 1 VLDS V1,R1,R2 V1=M[R1..R1+63*R2] load com espaçamento igual a R2 VLDX V1,R1,V2 V1=M[R1+V2(i),i=0..63] indexado
Encadeamento(chaining) Considere o seguinte código: MULTV V1, V2, V3 ADDV V4, V1, V5
O CRAY-1 Arquitetura Vetorial e escalar Máquina RISC, 80 MHz de freqüência, até 8 MB de memória 12 unidades funcionais operando em pipeline Utilizava um minicomputador como terminal
Pipeline do CRAY-1
Aplicações práticas ESC (Earth Simulator Computer) °Mais rápido de 02 a 04 °35,86 TeraFlops °Construído pela NEC °640 nós °Cada nó: 8 processadores vetoriais e 16GB mem. °700TB Hd e 1,6PB fita
PS3 – The Cell Cell está sendo criado por IBM, Sony e Toshiba Baseado em células Cada uma com 1 CPU e 8 processadores vetoriais (APU) Cada processador com 128K Células ligadas à mem. central de 64MB por um barramento de 1024bits.
PS3 – The Cell