Arquitetura Paralela Multi-Thread para Processamento de Imagens

Propaganda
22 SIMPÓSIO BRASILEIRO DE
AUTOMAÇÃO INTELIGENTE
CEFET·PR, 13 a 15 de Setembro de 1995
Curitiba
Paraná
Arquitetura Paralela Multi-thread para Processamento de Imagens:
ArqMDSP (*)
Saito, José Hiroki,
Mucheroni,Marcos Luiz e
Romão, Aldo José Spanghero
GAPIS-Grupo de Arquitetura e de Processamento de Imagens e Sinais
Departamento de Computação
Universidade Federal de São Carlos
Endereço: Rodovia Washington Luiz, Km 235
13565-905 - São Carlos - SP
Emai1: [email protected]
RESUMO:
Neste trabalho descreve-se o projeto de uma arquitetura para processamento de imagens, mu/ti-thread baseada
no processador digital de sinais (DSP) TMS320C40. Um dos aspectos importantes desse processador é a alta
conectividade, através dos 6 portos de comunicação, de 8 bits, com fila de entrada e saída, e do coprocessador
de DMA interno ao chip, capacitado para autoiniciação, sem interferência da CPU. Explorando essas
características apresenta-se um modelo de processamento paralelo mu/ti-thread , exemplificando a sua
aplicação no processamento de imagens, através do operador Laplaciano com a divisão em sub-imagens,
alocadas em processadores paralelos. É apresentado um estudo de desempenho da arquitetura, levando-se em
conta o exemplo de aplicação e os mecanismos de transferência de mensagens.
I.INTRODUÇÃO
o presente trabalho é baseado no processador digital de sinais (DSP) de alto desempenho e alta
conectividade, denominado TMS320C40 da Texas Instruments, que tem seis portos de comunicação de oito
bits, permitindo a sua interconexão estática a seis outros processadores. Neste projeto apresenta-se uma
possibilidade de implementação de arquiteturas paralelas usando esses componentes, em formato padrão
industrial TIM-40, de cartões de circuito impresso, contendo o processador e a memória principal externa à
CPU. É apresentado um modelo de processamento dirigido a mensagens, apropriado para programação mu/fithread, que faz com que seja otimizado o desempenho global do sistema, através do esquema de múltiplos
contextos.
Como exemplo de aplicação é mostrado o processamento de imagem, através de operador Laplaciano.
A imagem é dividida em sub-imagens para que o processamento paralelo e a análise de desempenho sejam
possíveis.
2.PRINCIPAIS CARACTERÍSTICAS DO PROCESSADOR
o TMS320C40, processador digital de sinais da Texas Instruments, usado neste projeto, é um
processador super-escalar, apresenta alto desempenho de 275 MOPS (milhões de operações por segundo) e 320
Mbytes/s de throughput, tamanho de palavra de 32 bits, espaço de endereçamento efetivo de 16 Gbytes, em dois
dutos de memória ·independentes, denominados de duto global e duto local. As operações de soma/subtração
inteiras e lógicas são de 32 bits e as de ponto flutuante, 40 bits~ as multiplicações são para números inteiros de
24 bits, e para números ponto flutuante, de 32 bits. As operações aritméticas são executadas num único ciclo.
Os 6 portos de comunicação bidirecionais de alta velocidade, 20 Mbytes/s por porto, de 8 bits, se
associam a canais de DMA, contendo uma fila de entrada e uma de saída. Um coprocessador atua no processa(*) ArqMDSP: Arquitetura Multiprocessadora Usando DSPs - Projeto parcialmente financiado pelo CNPq,
ProTeM-CC-fase 2.
~
2'~
18
21 SIMPÓSIO BRASILEIRO DE
AUTOMAÇAO INTELIGENTE
~
mento de operações relativas aos canais de DMA aliviando o proce~sador. A transferência de dados pelo DMA
é feita de forma concorrente em relação ao processador, sendo que o coprocessador tem a capacidade de
autoiniciação, após o fim da execução de transferência de um bloco de dados, sem a interferência da CPU
[Texas, 91].
O coprocessador de DMA tem barramento de endereçamento e de dados dedicados que permite acesso
à memória independentemente da CPU. O controle de transferência de blocos de dados pelo DMA é baseado
num conjunto de registradores de operação, que ficam mapeados na memória. Para cada um dos seis canais de
DMA são definidos os seguintes registradores de operação, de 32 bits, em endereços subsequentes: 1)
Registrador de Controle do Canal~ 2) Endereço do Originário~ 3) Endereço do Índice do Originário~ 4)
Contador de Transferência de Saída~ 5) Apontador de Enlace 1~ 6) Endereço do Destinatário~ 7) Endereço do
Índice do Destinatário~ 8) Contador de Transferência para Entrada~ e 9) Apontador de Enlace 2.
O primeiro registrador apresenta diversos parâmetros de programação para o funcionamento do canal.
Os três registradores seguintes são delimitadores para os dados do canal para a operação de saída, onde os
dados são lidos da memória e enviados para a fila de saída. O registrador seguinte, Apontador de Enlace . 1,
refere-se ao endereço de memória onde se localiza a descrição da próxima operação do coprocessador. A
autoiniciação refere-se ao carregamento dessa descrição para a área de registradores de operação. Os quatro
registradores restantes definem o funcionamento do canal para a operação de entrada, em que os dados são
lidos da fila de entrada para a memória.
O coprocessador de DMA, após uma operação de transferência de bloco, carrega os novos valores de
descrição para os seus registradores de operação. Os apontadores de enlace especificam o endereço de descrição
para a carga dos novos valores de registradores de operação do DMA, que tem endereço fixo na organização de .
memória do TMS320C40.
Por exemplo, sob autoiniciação, os passos para o carregamento dos registradores do canal de DMAO, o
primeiro dos seis canais, seguem o seguinte algoritmo:
Algoritmo 1:
1) Ler o apontador de enlace pra a próxima operação de DMA. O apontador é o endereço de memória
contendo a descrição do primeiro registrador de operação do canal de DMA;
2) Ler esse conteúdo apontado e escrevê-lo no endereço 01000AOh (endereço do primeiro registrador de
controle do canal de DMA O);
3) Incrementar o apontador de enlace;
4)Buscar a próxima palavra e escrevê-la no próximo endereço (01000A1h); e
5) Repetir o procedimento até o carregamento do bloco inteiro de registradores do canal de DMA.
3. ARQUITETURA PARALELA - ArqMDSP
A arquitetura proposta é escalável e tem uma estrutura genérica, uma vez que a sua implementação
depende das necessidades de aplicação. Ao mesmo tempo, o uso do padrão TIM-40 de módulos
processador/memória, facilita a essa implementação.
Nas extremidades são acoplados os dispositivos periféricos e na parte central, a estrutura de elementos
processadores constituídos de módulos TIM-40. A topologia de interconexão depende do número de
processadores, podendo variar desde uma totalmente conexa, até malhas multi-dimensionais. Os dispositivos
periféricos referidos podem ser unidades de armazenamento de dados como discos magnéticos, estações de
trabalhoSUN ou IBM AT, captadores e digitalizadores de imagens, visualizadores de imagens e acesso a redes
locais Ethemet. O único dispositivo periférico necessariamente presente em todos os protótipos é uma estação
de trabalho para servir de interface homem/máquina do sistema. Para aplicações de processamento de imagens,
os dispositivos de captação, digitalização e visualização de imagens são frequentes.
4. ArqMDSP: COMUNICAÇÃO ENTRE OS PROCESSADORES
Existem basicamente duas formas de transmissão de mensagens através de multi-computadores: a)
store-and-forward em que a mensagem em forma de pacote, transmitido pelo originálio, passa de processador
a processador, que recebe o pacote inteiro, e depois retransmite para o próximo processador, até que o pacote
seja transmitido ao destinatário~ e b) wormhole em que a mensagem é dividida em pequenos segmentos
denominadosjlits e são transmitidos segmento a segmento, de processador a processador, sincronamente, numa
feição pipeline, através de um hardware específico de comunicação [Dally, 90], [Dally, 92]. A Figura 1 ilustra
a estrutura de uma mensagem e os dois esquemas de roteamento.
2! SIMPÓSIO BRASILEIRO DE
AUTOMAÇAO INTELIGENTE
19
MENSAGEM
1[::____ _
"'J I
(8) ESTRUTURA
DA MENSAGEM
TEMPO
PACOTE
""<0
III
IIII
FLlT
,
II
(b) ROTEAMENTO
STORE-ANDFORWARD
N01
II
NOD+1
N02
,
TEMPO
I
(c) ROTEAMENTO
WORMHOLE
II
II
I1
NO 1
II
II
N02
II
NOD+1
,
TEMPO
Figura 1. a) a estrutura básica de uma mensagem, pacote eflit; b) esquema de roteamento store-and-forward; e
c) esquema de roteamento wormhole.
Explorando os conceitos de pipeline, a transmissão do tipo wormhole apresenta uma latência de
comunicação independente da distância entre os processadores envolvidos, no caso em que o comprimento do
flit é bem menor que o comprimento do pacote [Hwang, 93].
Seja L o comprimento do pacote em bits~ Wa taxa de transmissão do canal em bits/s~ D a distância (
número de nós participantes menos 1) e F o comprimento doflit (em bits). A latência de comunicação Tsfpara
o esquema store-and-forWard é expressa por:
Tsf= (L / W) . (D + 1)
(Equação 1)
enquanto que a latência Twh para o esquema wormhole é expressa por:
Twh = (L / W) + (F / W) . D
(Equação 2)
A latência Tsf é diretamente proporcional a D e a latência Twh = L / W se L "> > F. Assim, a distância é
desprezível na latência de roteamento no esquema wormhole.
A definição de flits em blocos de tamanho fixo, faz com que a transferência por autoiniciação
sincronizada pela CPU permita uma eficiência acima do roteamento por store-and-forward. Isso porque através
do sincronismo de transferência de blocos flits pode-se implementar um esquema pipeline de transmissão
desses blocos ao longo da estrutura de processadores paralelos. Diversos blocos de flits podem ser transferidos
de um processador para outro simultaneamente fazendo com que para o caso em que o tamanho do pacote seja
muito grande em relação aos blocos, o tempo de transferência seja independente da distância entre os
processadores.
5. MODELO DE PROCESSAMENTO MULTI-THREAD PARA O ArqMDSP
Um thread é uma sequência de instruções que são executadas num processador e que pertencem a um
mesmo contexto. O modelo de arquiteturas multi-thread permite a mudança de contexto num mesmo
processador, fazendo com que trechos de contextos diferentes sejam alternados durante o processamento.
Existem as seguintes possibilidades de critérios de alternância [Hwang, 93]: a) alternância no cache miss; b)
alternância em cada load; c) alternância a cada instrução~ e d) alternância a cada bloco de instruções.
Um processador multi-thread pode ser implementado usando o modelo de processamento dirigido por
mensagens. O processador abstrato desse modelo tem uma fila de ativação, ativador e executor de thread. Um
thread é invocado pelo ativador, que recebe como entrada os elementos: 1) P - identificação do processador
destino~ 2) 1 - apontador de instrução ~ e 3) D - ponteiro de dados. Os elementos 1 e D identificam o ponto de
início para o thread. A fila de ativação mantém os elementos identificadores de ativação esperando pelo
2'~
2! SIMPÓSIO BRASILEIRO DE
AUTOMAÇAO INTELIGENTE
20
~
disparo. O executor executa as instruções de um certo thread, determina a criação de um novo ativador e
termina o thread corrente [Sakai, 94], [Dally,92].
Para a implementação de um sistema mu/ti-thread usando o TMS320C40, a fila de ativação é
controlada pelo coprocessador de DMA. O ativador e o executor devem ser implementados pela CPU. Essa
implementação deve gerar um overhead uma vez que os mecanismos de alternância dos contextos é assistida
por software, porém, o paralelismo de operações da CPU e do coprocessador de DM~ faz com que esse
overhead seja mínimo. A Figura 2 mostra o modelo de processador dirigido por mensagens. Nesse modelo é
também mostrada a função de fork para a criação de uma nova ativação, que é enviada à fila de ativação,
invocando um novo thread .
1
FILA DE
ATlVACAO
EXECUCAO
DE
THREAD
DE OUTRO
NO
ATlVADOR
DETHREAD
j
FORK
')
P/OUTRO
NO
TERMINO
DOTHREAD
Figura 2. Modelo de processador dirigido por mensagens.
6. DETERMINAÇÃO DO DESEMPENHO NUM EXEMPLO DE APLICAÇÃO
O exemplo de aplicação escolhido, serve para medir o desempenho ideal da arquitetura paralela. Um
operador, constituído de 9 elementos dispostos em matriz 3 x 3, para obtenção de um ponto da imagem final
processada é feita através da multiplicação elemento a elemento dessa matriz Laplaciano pelos pixels
correspondentes da imagem original de 1024 x 1024 pixels, 8 bits por pixel. Os resultados das multipHcações
são acumulados para resultar no valor final do pixel processado, correspondente ao ponto central da matriz
[Galbiati, 90], [Romão,94]. Como o TMS320C40 tem a capacidade de realizar as operações de multiplicação e
acumulação num ciclo, a obtenção de um valor final processado é obtido em 9 ciclos, um para cada
multiplicação/acumulação. Desprezando os overheads devido ao tempo de execução de instruções de controle~
considerando-se que o tempo de comunicação sejam desprezíveis devido à operação paralela entre a CPU e o
coprocessador~ que o tempo de ciclo de uma instrução do TMS320C40 é de 20 ns~ e finalmente o tempo de ciclo
de transferência de um byte de 50 ns~ foram obtidos os seguintes resultados de desempenho, para: a) Tabela 1,
para roteamento store-and-forward e b) Tabela 2, para roteamento wormhole.
Tabela 1. Resultado de cálculos usando o roteamento Store-and-forward.
Num
Tempo
Tempo
Quantidade
Tempo
Proc
Total
Transf.
de Dados
Proc.
(n)
(ms)
(ms)
(ms)
188,74
1
188,74
1.048.576
73,39
4
26,21
47,18
262.144
24,89
16
13,10
65.536
11,79
9,40
6,55
64
2,94
16.384
4,00
3,27
256
0,73
4.096
-
SpeedUp
Log
n
1
2,5
7,5
20,0
47,1
1
2
4
8
16
21 SIMPÓSIO BRASILEIRO DE
AUTOMAÇAO INTELIGENTE
'<-, • • • •.
0. .
,"
f
~
..
21
Tabela 2 Resultado de cálculos usando o roteamento Wormho/e
Tempo
Tempo
Num
Quantidade
Transf.
Proc.
deDados .
Proc
(ms)
(ms)
(n)
188,74
1.048.576
1
13,10
47,18
4
262.144
3,27
11,79
16
65.536
0,81
2,94
64
16.384
0,20
0,73
256
4.096
Tempo
Total
(ms)
188,74
50,28
15,06
3,75
0,93
SpeedUp
Log
n
1
3,7
12,5
50,3
202,9
1
2
4
8
16
A Figura 3 mostra os gráficos de S'peed-up versus número de processadores, para os dois esquemas de
roteamento. Nota-se que no roteamento store-and-forward foi considerado o tempo de transferência de log(n).
Observa-se que no esquema de roteamento, da Tabela 1 o speed-up é perto do logaritmo do número de
processadores, enquanto que no esquema da Tabela 2, esse valor é próximo do número de processadores.
256
,
SPEED-UP
,
"///,/'~'/,/
1.92
128
/////'
64
STEP-AND-FORWARD
/'
/'
416
__ ______ ___ -------------~~~(N)
64
256
NUM. DE PROCESSADORES
Figura 3. Gráfico de Speed-Up, para os dados representados nas Tabelas 1 e 2.
7. ArqMDSP: IMPLEMENTAÇÃO
A implementação de uma arquitetura paralela usando TMS320C40 é facilitada pelo uso de módulos
TIM-40 que incorpora num cartão de circuito impresso processador/memória e outros dispositivos . . Esses
módulos medem 4.2" x 2.5" (106,7 mm x 63,5 mm). Esses módulos são usados em cartões portadores
(mainboards) com as funções básicas de alimentação e reset, bem como fiações de interconexões e testes.
Os módulos TIM-40 possibilitam implementações de arquiteturas paralelas. Existem, também, projetos .
específicos de cartões TIM-40, como os de captura e visualização de imagens, onde é essencial o acoplamento
forte entre a memória de vídeo e o processador.
O desenvolvimento de arquiteturas paralelas ArqMDSP está sendo implementado numa estação de trabalho
SUN, no Departamento de Computação da Universidade Federal de São Carlos, DC/UFSCar. Outros três protótipos
baseados em IBM AT estão sendo desenvolvidos pelo CNPDIAlEMBRAPA, DC/UNESPlBauru e
LAC/UFPRlCOPEL [Saito,94].
A Figura 4 ilustra o exemplo de aplicação mostrando um processamento usando quatro processadores.
8. CONCLUSÕES
O presente trabalho procura descrever os principais aspectos do desenvolvimento de protótipos das
arquiteturas paralelas ArqMDSP.
22
2! SIMPÓSIO BRASILEIRO DE
AUTOMAÇAO INTELIGENTE
~
2·~. 1
Devido ao alto desempenho da CPU e do sistema de interconexão pelo coprocessador DMA. foram
analisados os aspectos de roteamento e de modelos de processamento dirigido a mensagens. A análise desses
aspectos através de uma aplicação de processamento de imagens mostra que numa situação ideal, a arquitetura
apresenta um desempenho alto, com speed-up próximo ao número de processadores. Porém, para se obter esse
resultado, e para que a aplicação seja de uso geral, devem ser implementados os sincronismos de roteamento e o
modelo de processamento dirigido por mensagens para permitir o processamento de multi-threads de
programas e de atendimento ao roteamento.
Figura 4. Diagrama ilustrativo da aplicação usando o operador Laplaciano, e 4 processadores.
9. AGRADECIMENTOS
o autores agradecem o apoio do CNPq, através do projeto Protem-CC, fase 2, denominado: ArqMDSPArquitetura Multiprocessadora Usando DSPs.
10. REFERÊNCIAS
[Dally, 90] - Dally, W.J. - "Performance Analysis ofk-ary n-cube interconnection Networks". IEEE Trans. on
Computers, 39(6): 775-785, 1990.
[Dally, 92] - Dally, W.J. et Ali - "The Message-Driven Processor: A Multicomputer Processing Node with
Efficient Mechanisms", IEEE Micro, 12(2): 23-39, abril 1992.
[Hwang,93] - Hwang, K. - Advanced Computer Architecture: Parallelism, Scalability, ProgrammabÚity. USA,
MacGraw-Hill, 1993.
[Galbiati.90] - Galbiati Jr.,L.J. - ''Machine Vision and Digital Image Processing Fundamentais". New Jersey,
Prentice-Hall, 1990.
[Romão,94] - Romão, A.J.S. & Mucheroni, M.L. - "Construção de Gerador de Códigos de Processadores com
interface Gráfica do Usuário para Vídeos". Anais do XIII Congresso de Iniciação Científica e Tecnológica em
Engenharia - CICTE. São Carlos-SP, dezembro de 1994.
[Saito, 94] - Saito,J.H.~ Ferasoli Filho,H. & Pegoraro, R. - "A Image Parallel Processing Architecture Using
Digital Signal Processors", Proceedings of Sixth IASTED/lStvIM International Conference on Parallel and
Distributed Computing and Systems, Washington DC, pp. 451-454, outubro de 1994.
[Sakai,94] - Sakai,S. - "RWC Jviassively ParaUel Computer Pr~iect - RWC Architecture".Proceeding of Fifth
Annua! NEC Research Symposium, 1994.
[Texas, 91] - Texas - TMS320C4X User's Guide. Texas lnstruments, 1991.
Download