• Nenhum resultado encontrado

Uma metodologia para a determinação da precisão numérica necessária á implementação do algoritmo RTM

N/A
N/A
Protected

Academic year: 2021

Share "Uma metodologia para a determinação da precisão numérica necessária á implementação do algoritmo RTM"

Copied!
242
0
0

Texto

(1)UMA METODOLOGIA PARA A DETERMINAÇÃO DA PRECISÃO NUMÉRICA NECESSÁRIA À IMPLEMENTAÇÃO DO ALGORITMO RTM. Abner Corrêa Barros Tese de Doutorado. Universidade Federal de Pernambuco posgraduacao@cin.ufpe.br www.cin.ufpe.br/~posgraduacao. RECIFE 2014.

(2)

(3) Universidade Federal de Pernambuco Centro de Informática Pós-graduação em Ciência da Computação. Abner Corrêa Barros. UMA METODOLOGIA PARA A DETERMINAÇÃO DA PRECISÃO NUMÉRICA NECESSÁRIA À IMPLEMENTAÇÃO DO ALGORITMO RTM. Trabalho apresentado ao Programa de Pós-graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco como requisito parcial para obtenção do grau de Doutor em Ciência da Computação.. Orientador: Dr. Manoel Eusebio de Lima Co-Orientador: Dr. Renato José de Sobral Cintra. RECIFE 2014.

(4) Catalogação na fonte Bibliotecária Jane Souto Maior, CRB4-571. Barros, Abner Corrêa Uma metodologia para a determinação da precisão numérica necessária á implementação do algoritmo RTM / Abner Corrêa Barros. - Recife: O Autor, 2014. 233 p., fig., tab., gráf. Orientador: Manoel Eusebio de Lima. Tese (doutorado) - Universidade Federal de Pernambuco. CIn, Ciência da Computação, 2014. Inclui referências e apêndice. 1. Arquitetura de computadores. 2. Computação de alto desempenho. 3. Computação científica. I. Lima, Manoel Eusebio de (orientador). II. Título. 004.22. CDD (23. ed.). MEI2014 – 136.

(5)

(6)

(7) Dedico este trabalho aos meus pais, à minha querida esposa, Rosangela, aos meus filhos Natalia, Gabriela, Yuri e Laysa, e ao meu netinho Ravi..

(8)

(9) Agradecimentos A Deus primeiramente, por ter me concedido a graça de ter concuído mais esta importante etapa da minha formação acadêmica e profissional. A Ele seja toda a honra e toda a glória. Aos meus pais, a quem devo tudo o que sou e tudo o que serei um dia. À minha querida esposa, Rosangela. Mais que uma companheira, minha maior incentivadora, meu esteio, minha fortaleza nos momentos mais difíceis. Ao meu querido filho Yuri, por sua inestimável ajuda na resolução das intermináveis séries de cálculos e avaliações dos experimentos e pelas longas e acaloradas discussões sobre os fenômenos físicos envolvidos na propagação da onda sísmica. Ao meu amigo Ricardo de Bragança, um verdadeiro Doutor em Geofísica. Alguém que eu aprendi a respeitar e admirar por sua competência e espírito prestativo. Foram suas as primeiras orientações que me mostraram o rumo a seguir. Ao meu orientador e amigo, Prof. Dr. Manoel Eusebio de Lima, por suas palavras de incentivo e apoio. Ao meu coorientador, Prof. Dr. Renato Cintra, que tantas vezes conseguiu ver no meu trabalho algo que nem eu mesmo era capaz de ver. Às minhas amigas Aline Timóteo e Flávia Merlin, companheiras de longas datas. Pelas críticas sempre tão construtivas e pelas palavras de incentivo ditas sempre em momentos tão oportunos. Ao Centro de Informática da UFPE, que me concedeu a oportunidade de desenvolver minhas pesquisas e meu potencial em um ambiente tão vibrante e, ao mesmo tempo, tão acolhedor. Ao Cenpes, à Petrobras e à Finep, pelo suporte financeiro através da bolsa de pesquisa e pelos recursos necessários à conclusão deste trabalho. ..

(10)

(11) No princípio criou Deus os céus e a terra, a terra porém era sem forma e vazia. —GENESIS 1:1.

(12)

(13) Resumo Nestes últimos anos, com o início da prospecção de petróleo em regioões com litologias complexas, tem se observado um crescente interesse no uso do algoritmo Reverse Time Migration(RTM) como solução para o imageamento sísmico. Devido ao seu elevado custo computacional, o algoritmo RTM exige o uso de sistemas computacionais de alto desempenho, os quais demandam investimentos elevados em infraestrutura, o que normalmente representa também um aumento substancial no consumo de energia. Neste cenário, o desenvolvimento de coprocessadores aritméticos de alto desempenho, implementados por meio dos Field Programmable Gate Arrays(FPGAs), passou a ser considerado uma alternativa viável no objetivo de aumentar o a capacidade de processamento de sistemas computacionais já existentes, com impactos positivos tanto nos investimentos em infra-estrutura quanto no consumo de energia. Entretanto, o desenvolvimento destes coprocessadores normalmente exige um estudo prévio minucioso das características do algoritmo a ser implementado e do conjunto de dados a ser processado, a fim de determinar a precisão numérica mnima que deve ser empregada em sua implementação. O objetivo deste trabalho foi desenvolver uma metodologia que permita identificar a precisão numérica mínima necessária à implementação do algoritmo RTM, baseado nos fenômenos físicos envolvidos na propagação da onda sísmica e nas litologias prováveis da região a ser imageada. Para chegar a este objetivo foi desenvolvido um método analítico, capaz de predizer a atenuação esperada para as ondas sísmicas durante os processos de modelagem e migração presentes no algoritmo RTM. Esse método foi baseado em uma nova abordagem no tratamento da atenuação por espalhamento geométrico para modelos com múltiplas camadas, denominada de Raio Efetivo. Como estudo de caso de validação dessa metodologia, foram feitas predições e analisados os resultados de imageamento de diversos modelos sintéticos propostos por um especialista em geologia, os quais eram formados apenas por camadas horizontais, planas e paralelas. Além desses modelos mais simples, foi também utilizado um modelo reconhecidamente complexo, conhecido como modelo de marmousi. Os resultados obtidos em todos os estudos se mostraram dentro de uma margem de segurança de 1 bit de precisão. Palavras-chave: Computação de alto desempenho. Field Programmable Gate Arrays. FPGA. Aritmética de ponto flutuante. Aritmética de ponto fixo. Algoritmo RTM. Processamento de dados sísmicos. Imageamento Sísmico. Raio efetivo..

(14)

(15) Abstract In recent years, with the beginning of oil exploration in regions with complex lithologies, has observed an increasing interest in the use of the Reverse Time Migration (RTM) algorithm as solution for seismic imaging. Due to its high computational cost, the algorithm emph RTM requires the use of high performance computing systems, which require high investments in infrastructure, which usually also represents a substantial increase in energy consumption. In this scenario, the development of the high performance arithmetic co-processor, implemented using Field Programmable Gate Arrays (FPGAs), has been considered a viable alternative, in order to increase the the capacity of processing existent computational systems, with positive impacts both in investments in infrastructure and energy consumption. However, the development of these coprocessors typically requires thorough previous study of the characteristics of the algorithm to be implemented and about of set of data to be processed in order to determine the minimum numerical precision that must be used in its implementation The aim of this study was to develop a methodology that allows identify the minimum numerical precision necessary to implement the RTM algorithm, based on the physical phenomena involved in propagation of the seismic waves and the likely lithologies in the region to be imaged. To reach this goal it was developed a analytical method, able to predict the expected attenuation for seismic waves during the processes of modeling and migration present in the algorithm emph RTM. This method was based on a new approach treatment of attenuation by geometrical spreading for models with multiple layers, called Effective Radius. As a case study validating this methodology, predictions were made and analyzed the results of various synthetic models proposed by an expert in geology. These models are carecterized by having only horizontal layers, flat and parallel, in compatible dimension with the expected in the real physical medium. Besides these simple models we also used a complex known model, known as the Marmousi model. The results obtained in all studies were within a safety margin of 1 bit precision. Keywords: High-performance computing. emph Field Programmable Gate Arrays. emph FPGA. Floating-point arithmetic. Fixed-point arithmetic. Reverse-Time Migration algorithm. RTM algorithm. Processing Seismic Data. Seismic imaging. Effective Radius..

(16)

(17) Lista de Figuras 1.1. Ilustração das camadas em subsuperfície até a camada pré-sal . . . . . . . . . .. 20. 1.2. Vibrosis e Airgun - Fontes controladas de energia utilizadas no imageamento sísmico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 22. 1.3. Ilustração do método sísmico de reflexão . . . . . . . . . . . . . . . . . . . . .. 22. 1.4. Comparativo entre as arquiteturas GPU e CPU . . . . . . . . . . . . . . . . . .. 24. 1.5. Visão macro da arquitetura interna dos FPGAs . . . . . . . . . . . . . . . . . .. 25. 1.6. Resultado do processamento sísmico utilizando o algoritmo PSTM em diversas precisões numéricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 27. Primeiros resultados publicados deste trabalho referentes ao efeito da precisão numérica no processamento sísmico utilizando o algoritmo RTM. . . . . . . . .. 29. 1.8. Etapas de processamento do ponto-flutuante . . . . . . . . . . . . . . . . . . .. 32. 1.9. Comparação entre as representações em ponto-fixo e ponto-flutuante . . . . . .. 34. 2.1. Medição do tempo de trânsito do pulso sísmico no algoritmo PSTM . . . . . .. 37. 2.2. Propagação do pulso sísmico . . . . . . . . . . . . . . . . . . . . . . . . . . .. 40. 2.3. Princípio de funcionamento do algoritmo RTM . . . . . . . . . . . . . . . . .. 41. 2.4. Comparativo do tempo de execução do algoritmo RTM . . . . . . . . . . . . .. 42. 2.5. Distribuição dos valores utilizados para determinar o intervalo de valores e a precisão do padrão de representação. . . . . . . . . . . . . . . . . . . . . . . .. 44. 2.6. Plataforma de processamento sísmico baseada em FPGAs . . . . . . . . . . . .. 45. 2.7. SNR e UQI total medido em diversas precisões . . . . . . . . . . . . . . . . .. 48. 2.8. SNR e UQI de transporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 48. 3.1. Representação do pulso sísmico modelado por meio da segunda derivada da função gausiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 51. 3.2. Amplitude do pulso sísmico introduzido em relação à velocidade do meio . . .. 52. 3.3. Ondas compressionais (P) e ondas transversais (S) . . . . . . . . . . . . . . . .. 53. 3.4. Ondas refletidas, compressionais RP e transversais RS , e refratadas, compressionais TP e transversais TS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 54. Ilustração da aplicação do Princípio de Huygens à propagação da onda em espaços isotrópicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 56. 3.6. Ilustração da forma de propagação da onda sísmica em meio isotrópico . . . . .. 57. 3.7. Exemplo de cálculo do raio efetivo rE . . . . . . . . . . . . . . . . . . . . . .. 60. 3.8. Configuração do experimento 1. . . . . . . . . . . . . . . . . . . . . . . . . .. 62. 3.9. Atenuação por divergência cilíndrica no primeiro experimento de validação do raio efetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 63. 1.7. 3.5.

(18) 3.10 Compensação da atenuação por divergência por meio da aplicação da Equação 3.28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 63. 3.11 Compensação da atenuação por divergência por meio da aplicação conjunta das Equações 3.28 e 3.26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 64. 3.12 Configuração do experimento 2. . . . . . . . . . . . . . . . . . . . . . . . . .. 64. 3.13 Atenuação causada pela divergência cilíndrica em meio isotrópico com duas camadas com velocidade de propagação de 1500 e 2500 m/s. . . . . . . . . . .. 65. 3.14 Compensação da atenuação causada pela divergência cilíndrica em modelo com duas camadas, sem a aplicação do raio efetivo. . . . . . . . . . . . . . . . . . .. 65. 3.15 Compensação da atenuação causada pela divergência cilíndrica em modelo com duas camadas com a aplicação do raio efetivo. . . . . . . . . . . . . . . . . . .. 66. 3.16 Configuração do experimento 3. . . . . . . . . . . . . . . . . . . . . . . . . .. 67. 3.17 Tentativa de compensação da atenuação causada pela divergência cilíndrica em meio com três camadas utilizando o raio real . . . . . . . . . . . . . . . . . . .. 67. 3.18 Compensação efetiva da atenuação causada pela divergência cilíndrica em meio com três camadas por meio da utilização do conceito do raio efetivo . . . . . .. 68. 3.19 Esquema gráfico com o percurso da onda sísmica . . . . . . . . . . . . . . . .. 70. 3.20 Esquema gráfico para a demonstração do cálculo da atenuação efetiva . . . . .. 71. 3.21 Esquema gráfico para a demonstração do cálculo da atenuação efetiva . . . . .. 71. 3.22 Algoritmo utilizado para a predição da menor amplitude das ondas sísmicas refletidas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 75. 3.23 Identificação dos elementos gerados com a execução do algoritmo proposto. . .. 76. 4.1. Estrutura geológica dos modelos 1, 2, 3 e 4. . . . . . . . . . . . . . . . . . . .. 80. 4.2. Estruturas geológicas do modelo 5 e do modelo de Marmousi. . . . . . . . . .. 81. 4.3. Resultados obtidos com o processamento com o Modelo 1 . . . . . . . . . . .. 82. 4.4. Resultados obtidos com o processamento com o Modelo 2 . . . . . . . . . . .. 83. 4.5. Resultados obtidos com o processamento com o Modelo 3 . . . . . . . . . . .. 84. 4.6. Resultados obtidos com o processamento com o Modelo 4 . . . . . . . . . . .. 85. 4.7. Resultados obtidos com o processamento com o Modelo 5 . . . . . . . . . . .. 86. 4.8. Resultados obtidos com o processamento com o Modelo de Marmousi . . . . .. 87. 4.9. Valores encontrados com a métrica UQI em comparação com o SNR para o modelo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 88. 4.10 Valores encontrados com a métrica UQI em comparação com o SNR para o modelo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 88. 4.11 Valores encontrados com a métrica UQI em comparação com o SNR para o modelo 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 89. 4.12 Valores encontrados com a métrica UQI em comparação com o SNR para o modelo 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 89.

(19) 4.13 Valores encontrados com a métrica UQI em comparação com o SNR para o modelo de Marmousi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 90. 4.14 Estrutura do PE-Float Altera . . . . . . . . . . . . . . . . . . . . . . . . . . .. 92. 4.15 Estrutura interna utilizada na implementação do PE-Float . . . . . . . . . . . .. 94. 4.16 Estrutura interna do módulo Multiplica_2Bij. . . . . . . . . . . . . . . . . . .. 95. 4.17 Estrutura interna do módulo Absi_Absj. . . . . . . . . . . . . . . . . . . . . .. 96. 4.18 Estrutura interna do módulo Menos_Aij.. . . . . . . . . . . . . . . . . . . . .. 96. 4.19 Estrutura interna do módulo Vel_Vel_Fat. . . . . . . . . . . . . . . . . . . . .. 97. 4.20 Estrutura interna do módulo Núcleo Soma. . . . . . . . . . . . . . . . . . . . .. 97. 4.21 Estrutura interna do módulo M16Soma. . . . . . . . . . . . . . . . . . . . . .. 98. 4.22 Estrutura interna do módulo M1Soma.. . . . . . . . . . . . . . . . . . . . . .. 98. 4.23 Estrutura interna do módulo M60. . . . . . . . . . . . . . . . . . . . . . . . .. 99. 4.24 Estrutura interna do módulo Conversor. . . . . . . . . . . . . . . . . . . . . .. 99. 4.25 Estrutura interna do módulo Comparador. . . . . . . . . . . . . . . . . . . . . 100 4.26 Estrutura interna do módulo Multiplica_V2FAT_NS. . . . . . . . . . . . . . . 100 4.27 Estrutura interna do módulo Soma_MAij_V2FAT_NS. . . . . . . . . . . . . . 101 4.28 Estrutura interna dos módulos Multiplica_ABS_1 e Multiplica_ABS_2. . . . . 101 4.29 Estrutura interna do módulo Soma_2Bij_NS. . . . . . . . . . . . . . . . . . . 102 4.30 Estrutura interna do módulo que normaliza e arredonda os resultados. . . . . . 102 4.31 Estrutura interna do núcleo de processamento 2D em ponto-fixo . . . . . . . . 103 A.1 Estrutura geológica do modelo 1. . . . . . . . . . . . . . . . . . . . . . . . . . 118 A.2 Imageamento de referência para o modelo 1 gerado no padrão de ponto-flutuante.119 A.3 Imageamento do modelo 1 obtido com 22 bits de precisão. . . . . . . . . . . . 120 A.4 Imageamento do modelo 1 obtido com 20 bits de precisão. . . . . . . . . . . . 121 A.5 Imageamento do modelo 1 obtido com 18 bits de precisão. . . . . . . . . . . . 122 A.6 Imageamento do modelo 1 obtido com 16 bits de precisão. . . . . . . . . . . . 123 A.7 Imageamento do modelo 1 obtido com 14 bits de precisão. . . . . . . . . . . . 124 A.8 Imageamento do modelo 1 obtido com 13 bits de precisão. . . . . . . . . . . . 125 B.1 Estrutura geológica do modelo 2. . . . . . . . . . . . . . . . . . . . . . . . . . 128 B.2 Imageamento de referência para o modelo 2 gerado no padrão de ponto-flutuante.129 B.3 Imageamento do modelo 2 obtido com 24 bits de precisão. . . . . . . . . . . . 130 B.4 Imageamento do modelo 2 obtido com 22 bits de precisão. . . . . . . . . . . . 131 B.5 Imageamento do modelo 2 obtido com 20 bits de precisão. . . . . . . . . . . . 132 B.6 Imageamento do modelo 2 obtido com 18 bits de precisão. . . . . . . . . . . . 133 B.7 Imageamento do modelo 2 obtido com 16 bits de precisão. . . . . . . . . . . . 134 B.8 Imageamento do modelo 2 obtido com 15 bits de precisão. . . . . . . . . . . . 135 B.9 Imageamento do modelo 2 obtido com 14 bits de precisão. . . . . . . . . . . . 136.

(20) C.1 Estrutura geológica do modelo 3. . . . . . . . . . . . . . . . . . . . . . . . . . 138 C.2 Imageamento de referência para o modelo 3 gerado no padrão de ponto-flutuante.139 C.3 Imageamento do modelo 3 obtido com 21 bits de precisão. . . . . . . . . . . . 140 C.4 Imageamento do modelo 3 obtido com 19 bits de precisão. . . . . . . . . . . . 141 C.5 Imageamento do modelo 3 obtido com 17 bits de precisão. . . . . . . . . . . . 142 C.6 Imageamento do modelo 3 obtido com 16 bits de precisão. . . . . . . . . . . . 143 C.7 Imageamento do modelo 3 obtido com 16 bits de precisão. . . . . . . . . . . . 144 C.8 Imageamento do modelo 3 obtido com 14 bits de precisão. . . . . . . . . . . . 145 C.9 Imageamento do modelo 3 obtido com 13 bits de precisão. . . . . . . . . . . . 146 C.10 Imageamento do modelo 3 obtido com 12 bits de precisão. . . . . . . . . . . . 147 C.11 Imageamento do modelo 3 obtido com 11 bits de precisão. . . . . . . . . . . . 148 D.1 Estrutura geológica do modelo 4. . . . . . . . . . . . . . . . . . . . . . . . . . 150 D.2 Imageamento de referência para o modelo 4 gerado no padrão de ponto-flutuante. 151 D.3 Imageamento do modelo 3 obtido com 23 bits de precisão. . . . . . . . . . . . 152 D.4 Imageamento do modelo 4 obtido com 21 bits de precisão. . . . . . . . . . . . 153 D.5 Imageamento do modelo 4 obtido com 19 bits de precisão. . . . . . . . . . . . 154 D.6 Imageamento do modelo 4 obtido com 18 bits de precisão. . . . . . . . . . . . 155 D.7 Imageamento do modelo 4 obtido com 16 bits de precisão. . . . . . . . . . . . 156 D.8 Imageamento do modelo 4 obtido com 14 bits de precisão. . . . . . . . . . . . 157 D.9 Imageamento do modelo 4 obtido com 13 bits de precisão. . . . . . . . . . . . 158 D.10 Imageamento do modelo 4 obtido com 12 bits de precisão. . . . . . . . . . . . 159 E.1 Estrutura geológica do modelo 5. . . . . . . . . . . . . . . . . . . . . . . . . . 162 E.2 Imageamento de referência para o modelo 5 gerado no padrão de ponto-flutuante.163 E.3 Imageamento do modelo 5 obtido com 23 bits de precisão. . . . . . . . . . . . 164 E.4 Imageamento do modelo 5 obtido com 21 bits de precisão. . . . . . . . . . . . 165 E.5 Imageamento do modelo 5 obtido com 19 bits de precisão. . . . . . . . . . . . 166 E.6 Imageamento do modelo 5 obtido com 18 bits de precisão. . . . . . . . . . . . 167 E.7 Imageamento do modelo 5 obtido com 16 bits de precisão. . . . . . . . . . . . 168 E.8 Imageamento do modelo 5 obtido com 14 bits de precisão. . . . . . . . . . . . 169 E.9 Imageamento do modelo 5 obtido com 13 bits de precisão. . . . . . . . . . . . 170 E.10 Imageamento do modelo 5 obtido com 12 bits de precisão. . . . . . . . . . . . 171 F.1. Estrutura geológica do modelo de Marmousi. . . . . . . . . . . . . . . . . . . 174. F.2. Imageamento de referência para o modelo de Marmousi gerado no padrão de ponto-flutuante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175. F.3. Imageamento do modelo de Marmousi com 24 bits de precisão. . . . . . . . . . 176. F.4. Imageamento do modelo de Marmousi com 22 bits de precisão. . . . . . . . . . 177. F.5. Imageamento do modelo de Marmousi com 20 bits de precisão. . . . . . . . . . 178.

(21) F.6. Imageamento do modelo de Marmousi com 18 bits de precisão. . . . . . . . . . 179. F.7. Imageamento do modelo de Marmousi com 16 bits de precisão. . . . . . . . . . 180. I.1. Organização dos campos que formam a representação do padrão de ponto-flutuante204. I.2. Distribuição dos valores representáveis em ponto-flutuante . . . . . . . . . . . 209. I.3. Diferença na representação entre um significando com 3 e um com 5 bits. . . . 210. I.4. Comparação entre valores representáveis com significandos com 5 e 3 bits. . . 211. I.5. Arredondamento em direção ao Zero. . . . . . . . . . . . . . . . . . . . . . . 211. I.6. Direção do arredondamento em direção ao +∞. . . . . . . . . . . . . . . . . . 212. I.7. Direção do arredondamento em direção ao -∞. . . . . . . . . . . . . . . . . . . 212. I.8. Direção do arredondamento para o mais próximo ou par. . . . . . . . . . . . . 213. I.9. Exemplos de Arredondamento em direção ao +∞ e ao -∞. . . . . . . . . . . . . 213. I.10 Exemplo de Arredondamento para o mais próximo e em direção ao zero. . . . . 213 I.11 Esquema para obtenção do LSB bit, do Guard bit e do Sticky bit. . . . . . . . . 214 I.12 Nova organização dos bits para simplificar a análise do processo de arredondamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 I.13 Geração do novo significando por meio dos bits extraídos do significando original e do Round bit obtido durante o processo de arredondamento. . . . . . . . . . 215 I.14 Localização do valor relativo do número a ser arredondado por meio do Guard Bit e do Sticky Bit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 I.15 Exemplos de operações efetuadas em ponto-flutuante de base binária com valores normalizados que geram valores desnormalizados. . . . . . . . . . . . . . . . 219 I.16 Realinhamento do significando.. . . . . . . . . . . . . . . . . . . . . . . . . . 223. I.17 Representação esquemática da conversão de Op2 para o formato de pontoflutuante proposto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 I.18 Representação esquemática da conversão de Op3 para o formato de pontoflutuante proposto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 I.19 Representação esquemática da conversão de Op4 para o formato de pontoflutuante proposto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 I.20 Diagrama esquemático da operação de soma entre Op1 e Op2. . . . . . . . . . 225 I.21 Representação do resultado da operação entre Op1 e Op2 no formato de pontoflutuante proposto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 I.22 Representação esquemática da operação de adição entre Op3 e Op4. . . . . . . 226 I.23 Operação de normalização sobre resultado da adição de Op3 e Op4. . . . . . . 227 I.24 Distribuição dos bits durante o processo de arredondamento. . . . . . . . . . . 227 I.25 Resultado do processo de arredondamento.. . . . . . . . . . . . . . . . . . . . 227. I.26 Fluxo de execução das operações de soma e subtração. . . . . . . . . . . . . . 228 I.27 Distribuição dos bits como resultado de uma operação de multiplicação entre dois inteiros de tamanho n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229.

(22) I.28 Fluxo de execução da operação de multiplicação. . . . . . . . . . . . . . . . . I.29 Representação esquemática da conversão de Op1 para o formato de pontoflutuante proposto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.30 Representação esquemática da conversão de Op2 para o formato de pontoflutuante proposto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.31 Representação esquemática da conversão do resultado para o formato de pontoflutuante proposto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 229 230 230 231.

(23) Lista de Tabelas 2.1. Desempenho da implementação do algoritmo RTM . . . . . . . . . . . . . . .. 42. 4.1. Menor amplitude e precisões numéricas preditas para os modelos geológicos avaliados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparação entre as precisões numéricas preditas e as encontradas . . . . . .. 81 90. 4.2 I.1 I.2 I.3 I.4 I.5 I.6 I.7 I.8. Formatos de ponto-flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . Valores especiais e suas representações segundo o padrão IEEE 754 . . . . . . Definição do Round-Bit no arredondamento para mais próximo ou par . . . . . Resultados esperados para operações de multiplicação dos elementos da linha inicial pelos elementos da coluna inicial. . . . . . . . . . . . . . . . . . . . . Resultados esperados para operações de divisão dos elementos da linha inicial pelos elementos da coluna inicial. . . . . . . . . . . . . . . . . . . . . . . . . Resultados esperados para operações de adição dos elementos da linha inicial pelos elementos da coluna inicial. . . . . . . . . . . . . . . . . . . . . . . . . Resultados esperados para operações de subtração dos elementos da linha inicial pelos elementos da coluna inicial. . . . . . . . . . . . . . . . . . . . . . . . . Formato de ponto-flutuante com 9 bits, formulado apenas para fins didáticos. .. 207 209 218 221 222 222 222 224.

(24)

(25) Lista de Acrônimos ASIC. Application Specific Integrated Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35. CENPES. Centro de Pesquisa e Desenvolvimento da Petrobras . . . . . . . . . . . . . . . . . . . . . . . . 91. CI. Circuito Integrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35. CORDIC. Coordinate Rotation Digital Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36. CPU. Central Processing Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23. DSP. Digital Signal Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32. FPGA. Field Programmable Gate Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23. FPU. Floating Point Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32. GPGPU. General-Purpose Graphics Processing Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23. HDL. Hardware Description Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26. MDF. Método das Diferenças Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47. NaN. Not a Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31. PE. Processing Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91. PSPI. Phase Shift Plus Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22. PSTM. Pre-stack Kirchhoff Time Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22. RTM. Reverse Time Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22. SNR. Signal to Noise Ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45. UQI. Universal Quality Indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45. ULA. Unidade Lógica e Aritmética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.

(26)

(27) Sumário 1. Introdução. 20. 2. Trabalhos Relacionados. 35. 2.1. Processamento de dados sísmicos utilizando FPGAs . . . . . . . . . . . . . . .. 35. 2.2. Efeitos da precisão numérica no processamento de dados sísmicos . . . . . . .. 43. 2.3. Precisão da modelagem da propagação da onda sísmica por meio dos operadores de diferenças finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 47. 3. Determinação da precisão numérica mínima necessária à execução do algoritmo RTM 49 3.1. Fatores que influenciam na amplitude da onda sísmica . . . . . . . . . . . . . .. 50. 3.2. Efeito da fonte sísmica utilizada . . . . . . . . . . . . . . . . . . . . . . . . .. 51. 3.3. Efeito das dimensões e das características das camadas em subsuperfície . . . .. 52. 3.3.1. Efeitos refrativos e reflexivos . . . . . . . . . . . . . . . . . . . . . . .. 53. 3.3.2. A divergência da frente de onda . . . . . . . . . . . . . . . . . . . . .. 56. Metodologia para a predição da amplitude das ondas sísmicas refletidas . . . .. 59. 3.4.1. Cálculo do Raio Efetivo para modelagem bidimensional . . . . . . . .. 59. 3.4.2. Experimentos de validação do cálculo do raio efetivo . . . . . . . . . .. 61. 3.4.2.1. Primeiro Experimento . . . . . . . . . . . . . . . . . . . . .. 62. 3.4.2.2. Segundo Experimento . . . . . . . . . . . . . . . . . . . . .. 64. 3.4.2.3. Terceiro Experimento . . . . . . . . . . . . . . . . . . . . .. 66. Experimentos de validação da predição da atenuação devido à configuração litológica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 68. Desenvolvimento e validação da metodologia . . . . . . . . . . . . . . . . . .. 69. 3.4. 3.4.3 3.5 4. Estudo de Caso. 79. 4.1. Experimentos de validação da metodologia . . . . . . . . . . . . . . . . . . .. 79. 4.1.1. Métrica de avaliação da qualidade das imagens geradas . . . . . . . . .. 88. 4.1.2. Discussão dos resultados . . . . . . . . . . . . . . . . . . . . . . . . .. 90. 4.2. Desenvolvimento do núcleo de processamento aritmético . . . . . . . . . . . .. 91. 4.3. Projeto dos núcleos de processamento baseados em aritmética de ponto-flutuante 92 4.3.1. Módulo Multiplica 2Bij . . . . . . . . . . . . . . . . . . . . . . . . .. 94. 4.3.2. Módulo Absi_Absj . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 95. 4.3.3. Módulo Menos_Aij . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 96. 4.3.4. Módulo Vel_Vel_Fat . . . . . . . . . . . . . . . . . . . . . . . . . . .. 96. 4.3.5. Módulo Núcleo_Soma . . . . . . . . . . . . . . . . . . . . . . . . . .. 97.

(28) 4.3.6. Módulo Multiplica_V2FAT_NS . . . . . . . . . . . . . . . . . . . . . 100. 4.3.7. Módulo Soma_MAij_V2FAT_NS . . . . . . . . . . . . . . . . . . . . 101. 4.3.8. Módulos Multiplica_ABS_1 e Multiplica_ABS_2. . . . . . . . . . . . 101. 4.3.9. Módulo Soma_2Bij_NS . . . . . . . . . . . . . . . . . . . . . . . . . 101. 4.3.10 Módulo Normaliza e Arredonda . . . . . . . . . . . . . . . . . . . . . 102 4.4 5. Projetos dos núcleos de processamento baseados em aritmética de ponto-fixo . 103. Conclusões e trabalhos futuros 5.1. 105. Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106. Referências. 109. Apêndice. 115. A Imagens do Modelo 1. 117. B Imagens do Modelo 2. 127. C Imagens do Modelo 3. 137. D Imagens do Modelo 4. 149. E Imagens do Modelo 5. 161. F Imagens do modelo de Marmousi. 173. G Implementação do PE-ASM. 181. H Implementação do algoritmo de predição. 189. I. 201. Revisão sobre padrões de representação numérica I.1. Notação de inteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202. I.2. Notação de ponto-fixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202. I.3. Notação de ponto-flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203. I.4. O padrão IEEE 754 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 I.4.1. Formato de representação dos dados . . . . . . . . . . . . . . . . . . . 205. I.4.2. Representação de valores especiais . . . . . . . . . . . . . . . . . . . . 207. I.4.3. Arredondamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 I.4.3.1. Modos de Arredondamento . . . . . . . . . . . . . . . . . . 211. I.4.3.2. Algoritmo do modo de arredondamento em direção ao zero . 216. I.4.3.3. Algoritmo do modo de arredondamento em direção ao + e ao - Infinito . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216.

(29) 27 I.4.3.4 I.4.4 I.4.5. Algoritmo do modo de arredondamento em direção ao mais próximo ou par . . . . . . . . . . . . . . . . . . . . . . . . Normalização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.4.4.1 Algoritmo de Normalização . . . . . . . . . . . . . . . . . . Operações aritméticas . . . . . . . . . . . . . . . . . . . . . . . . . . I.4.5.1 Operações de Soma e Subtração . . . . . . . . . . . . . . . I.4.5.2 Operação de Multiplicação . . . . . . . . . . . . . . . . . .. 216 218 220 221 223 228.

(30)

(31) 20. 1 Introdução Com o início da prospecção de petróleo em regiões com estruturas geológicas mais complexas, tais como na camada pré-sal1 , cresceu a importância de se imagear2 as camadas em subsuperfície com a maior precisão possível (SANTOS, 2012). A prospecção de petróleo em tais condições envolve riscos econômicos e ambientais altíssimos (NIEMEYER, 2011; SOARES, 2012). Uma perfuração infrutífera ou um desastre ambiental causado pela prospecção em local inadequado pode representar prejuízo de milhões de dólares. A Figura 1.1 ilustra de maneira simplificada as profundidades e a estrutura das camadas em subsuperfície até a camada pré-sal.. Figura 1.1: Ilustração das camadas em subsuperfície até a camada pré-sal(G1, 2009).. Por esse motivo as empresas têm investido cada vez mais em novas tecnologias que permitam obter o melhor conhecimento possível das litologias em subsuperfície antes de iniciar o processo de exploração do petróleo (PETROBRAS, 2013). Essa medida tanto minimiza os riscos de desastres quanto otimiza o processo de perfuração dos poços (SANTOS, 2012). 1A. camada pré-sal são estruturas geológicas localizadas abaixo da camada de sal existente na crosta terrestre, a mais de 5000 metros abaixo do nível do mar (G1, 2009). 2 Imagear neste contexto significa gerar imagens através do uso de instrumentos..

(32) 21 Grande parte desse conhecimento é adquirido por meio do imageamento sísmico3 . É o imageamento sísmico que se permite identificar a localização e o volume das reservas dos hidrocarbonetos existentes em subsuperfície (SANTOS, 2012). Atualmente uma das metodologias mais empregadas na geração do imageamento sísmico é o método sísmico de reflexão (SANTOS, 2012). O método sísmico de reflexão utiliza princípios de sismologia para identificar e estimar as propriedades das camadas em subsuperfície. Todo o processo é baseado na análise das reflexões geradas pela passagem de ondas sísmicas artificiais através das interfaces das diversas camadas geológicas existentes. As ondas sísmicas utilizadas são geradas por meio de fontes controladas de energia tais como os explosivos e os Vibrosis4 para o imageamento a partir da superfície terra e os Airguns5 para o imageamento a partir da superfície da água (ROBERT E. SHERIFF, 1995). O objetivo em ambos os casos é a geração de uma onda acústica de baixa frequência e alta intensidade, capaz de excitar as camadas em subsuperfície. A Figura 1.2 traz uma ilustração do uso dos Vibrosis e dos Airguns. A Figura 1.3 apresenta de maneira simplificada como ocorre a geração das ondas sísmicas artificiais e como as ondas refletidas são capturadas através dos hidrofones e geofones6 . Ao chegarem à superfície, as ondas sísmicas refletidas nas interfaces das diversas camadas geológicas apresentam amplitudes proporcionais ao contraste das impedâncias acústicas existentes nessas interfaces (ROBERT E. SHERIFF, 1995).. 3 Procedimento. utilizado para imagear a subsuperfície a partir da análise dos efeitos da inserção de pulsos sísmicos artificiais. 4 Vibrosis são caminhões especiais equipados com dispositivos capazes de introduzir vibrações de baixa frequência nas camadas em subsuperfície, servindo assim como fonte de energia sísmica controlada (DURHAM, 2007). 5 Airgun ou canhões de ar comprimido para aplicação em sísmica são dispositivos rebocados por navios para atirar fortes rajadas de ar comprimido através da água a quilômetros de profundidade no mar. Estas ondas ao se chocarem com o fundo do mar refletem de volta informações sobre depósitos de petróleo e gás existentes na subsuperfície marinha (OCEANA, 2012). 6 Hidrofones e geofones são de transdutores eletroacústicos utilizados para converter a pressão acústica gerada pelas ondas sísmicas em impulsos elétricos. Os geofones são utilizados para o registro das ondas que chegam à superfície da terra e os hidrofones para o registro das ondas que chegam à superfície do mar..

(33) 22. CAPÍTULO 1. INTRODUÇÃO. Dessa forma, ao estudar as amplitudes e outras características dessas ondas, é possível estimar as características litológicas das camadas em subsuperfície (SANTOS, 2012).. Figura 1.2: Na Figura à direita um Vibrosis (DURHAM, 2007) e a esquerda um Airgun (GROBE, 2007) - Fontes controladas de energia utilizadas no imageamento sísmico. Figura 1.3: Ilustração do método sísmico de reflexão (DOMINGOS, 2003). O conjunto de procedimentos utilizados na conversão das ondas refletidas em imagens, dando origem ao imageamento sísmico, é conhecido como Migração Sísmica (BULCãO, 2004). Apesar de existirem diversos algoritmos que podem ser empregados nesse processo, atualmente os mais utilizados são (SANTOS, 2012): . o algoritmo de Pre-stack Kirchhoff Time Migration (PSTM);. . o algoritmo de Phase Shift Plus Interpolation (PSPI);. . o algoritmo de Reverse Time Migration (RTM)..

(34) 23 Desses três, o que tem apresentando melhores resultados em áreas com litologias mais complexas, tais como no pré-sal, é o algoritmo RTM (SANTOS, 2012). Apesar de ter sido proposto e implementado há mais de três décadas (SANTOS, 2012; BAYSAL; KOSLOFF; SHERWOOD, 1983; MCMECHAN, 1983; WHITMORE, 1983), devido ao seu elevado custo computacional, o algoritmo RTM ficou por anos sem utilização mais intensa por parte da indústria de petróleo. Nesse período, a indústria dispunha de outros métodos e algoritmos, tal como o algoritmo PSTM, os quais permitiam o imageamento das camadas em subsuperfície com uma qualidade aceitável e a um custo computacional bem mais acessível (LIU et al., 2010). Foi apenas mais recentemente, em razão do início da prospecção em áreas com estruturas geológicas mais complexas, que o algoritmo RTM passou a ser mais amplamente utilizado (LIU et al., 2010). De modo geral, os algoritmos de imageamento sísmico sempre foram tidos como algoritmos de alto custo computacional. Mesmo o algoritmo PSTM, que tem um custo de execução por volta de 15 vezes menor que o algoritmo RTM (SANTOS, 2012), exige o uso de sistemas computacionais de alta performance para que possa ser executado com um desempenho aceitável (PANETTA et al., 2007). Por esse motivo, nestes últimos anos diversos trabalhos científicos têm proposto a implementação desses algoritmos em arquiteturas de processamento não convencionais, tais como nos General-Purpose Graphics Processing Unit (GPGPU) (LIU et al., 2010; GROSSER et al., 2011; KRUEGER et al., 2011; CLAPP; FU; LINDTJORN, 2010; ABREO et al., 2012) e nos Field Programmable Gate Array (FPGA) (NEMETH et al., 2008,?; FLYNN et al., 2008; FU et al., 2008, 2009; CLAPP; FU; LINDTJORN, 2010; PELL; CLAPP, 2007; JAMRO et al., 2008; KRUEGER et al., 2011; GROSSER et al., 2011; DIMOND; RACANIèRE; PELL, 2011; MEDEIROS et al., 2013; LINDTJORN et al., 2011; HE; LU; SUN, 2004; MENEZES et al., 2012; ABREO et al., 2012; BRAGANçA et al., 2013; PELL, 2010). Em ambos os casos, o objetivo é explorar o paralelismo intrínseco existente nessa classe de algoritmos, buscando com isso obter ganhos tanto de desempenho quanto de consumo de energia (WU; LIU, 2008) . Os GPGPUs são unidades de processamento de propósito geral construídas a partir de unidades de processamento gráfico conhecidas Graphic Processing Unit (GPU). Um GPU difere de um processador de propósito geral por ter uma estrutura interna especialmente desenvolvida para explorar o paralelismo intrínseco existente nos algoritmos de processamento gráfico. Por esse motivo, diferentemente de um processador de propósito geral, mais conhecidos como Central Processing Unit (CPU), o qual tem uma única unidade de controle e uma única estrutura de memória cache conectada a um pequeno número de unidades lógicas e aritméticas Unidade Lógica e Aritmética (ULA)7 , os processadores gráficos têm dezenas de pequenas 7A. unidade lógica e aritmética é a estrutura onde são efetuadas todas as operações lógicas e aritméticas sobre as variáveis dos programas em execução. Atualmente os processadores de propósito geral dispõem de duas a quatro dessas unidades..

(35) 24. CAPÍTULO 1. INTRODUÇÃO. unidades de controle, cada uma com a própria memória cache, conectadas a dezenas e até centenas de unidades lógicas e aritméticas. São esses verdadeiros clusters8 de processamento, projetados especialmente para efetuar as operações lógicas e aritméticas necessárias ao processamento gráfico, que estão acessíveis através dos GPGPUs. A Figura 1.4 ilustra de maneira simplificada essas duas arquiteturas.. Figura 1.4: Comparativo entre as arquiteturas GPU e CPU. Os FPGAs, por sua vez, são circuitos integrados projetados para terem suas funcionalidades definidas em campo, após o seu processo de fabricação, de acordo com a necessidade da sua aplicação. Por esse motivo os FPGAs são muitas vezes referidos como unidades hardware reconfigurável, uma vez que podem ser configurados para se tornarem virtualmente qualquer tipo de circuito ou sistema digital (FAROOQ; MARRAKCHI; MEHREZ, 2012). Diferentemente dos demais circuitos integrados digitais, os quais já saem de fábrica com uma funcionalidade preestabelecida, a arquitetura interna dos FPGAs foi concebida de forma a permitir que eles possam ser configurados em campo para assumirem as características e as funcionalidades que deles se esperam. A configuração desses componentes é feita de maneira extremamente simples e eficaz, através da carga de um arquivo de configuração em uma área de memória de programação do componente. Dessa forma, um mesmo componente pode ser reconfigurado inúmeras vezes, podendo assim exercer mais de uma funcionalidade em um sistema computacional, de acordo com a necessidade da aplicação. Essa reconfiguração pode ser feita a qualquer momento, mesmo remotamente, inclusive depois que uma placa eletrônica já estiver instalada em campo. A Figura 1.5 traz uma visão macro da arquitetura interna de um FPGA, em que se destacam os seguintes elementos: . 8O. Blocos de Entrada e Saída - estruturas que permitem configurar as características de cada terminal de entrada e saída, determinando deste o sentido de sua operação, se será entrada, saída ou ambas, sua funcionalidade e até a sua tensão de operação.. termo cluster, neste contexto, é utilizado no sentido de um agrupamento coordenado de unidades de processamento semelhantes ou equivalentes que podem ser utilizadas para um fim específico..

(36) 25 . . . . Blocos Lógicos - estruturas configuráveis que podem implementar qualquer função lógica atômica e outras funções lógicas de menor complexidade, tanto de lógica combinacional quanto de lógica sequencial. Blocos de Memória RAM - elementos de memória estática que podem ser acessados em palavras de qualquer tamanho, podendo, dessa forma, ser utilizados tanto para formar estruturas de armazenamento mais simples, tais como registradores de um único bit, quanto estruturas de armazenamento mais complexas, tais como memórias cache associativas. Rede de Interconexão - estrutura responsável pelo transporte dos sinais elétricos que os blocos lógicos trocam entre si, assim como os blocos de memória. Também são utilizados para a conexão dos blocos lógicos e memória com os blocos de entrada e saída. Rede de Comutação - estruturas que permitem desviar os sinais elétricos de uma rede de interconexão para outra, interligando assim, virtualmente, todas as estruturas internas do FPGA.. Figura 1.5: Visão macro da arquitetura interna dos FPGAs. Desse modo, diferentemente dos demais circuitos integrados existentes no mercado, um FPGA não é escolhido para um projeto por uma funcionalidade que possa oferecer, mas sim pelos recursos internos de que dispõe. Por isso, a fim de melhor destacar as características e os recursos existentes em seus componentes, os fabricantes dos FPGAs oferecem ao mercado diversas famílias de FPGAs, dedicadas às mais diversas áreas de aplicação..

(37) 26. CAPÍTULO 1. INTRODUÇÃO. As famílias dos FPGAs diferem entre si pelo tipo e pela quantidade de recursos de que dispõem. Por exemplo, algumas famílias de FPGAs dispõem de um número maior de elementos lógicos; outras de mais elementos de memória; outras de canais de comunicação ultrarrápidos; outras ainda de maior número de módulos aritméticos especializados. Diferentemente da metodologia de desenvolvimento normalmente empregada em sistemas baseados em CPUs e GPGPUs, a qual consiste basicamente na implementação de algoritmos por meio do uso de linguagens de programação, ou seja, desenvolvimento de software, nos sistemas baseados em FPGAs, os algoritmos devem ser descritos e implementados de tal forma que possam ser transformados em um componente de hardware. Nos projetos para FPGAs, em vez de uma linguagem de programação, normalmente se utiliza uma linguagem de descrição de hardware ou diretamente de um diagrama esquemático baseado em portas lógicas. Em seguida, na etapa de compilação do algoritmo, em vez de o compilador gerar um arquivo executável, este transforma a descrição do algoritmo em um arquivo de configuração para o FPGA adotado. É importante destacar que a eficiência dos sistemas assim implementados estará diretamente ligada à forma do mapeamento do algoritmo nos recursos disponíveis no FPGA utilizado. Por exemplo, a implementação de módulos aritméticos será muito mais eficiente em FPGAs que já dispõem de operadores aritméticos como um recurso interno do que naqueles em que esses operadores tenham de ser implementados mediante o uso de portas lógicas. Por outro lado, quanto maior a quantidade de recursos disponíveis em um determinado FPGA, maior será o seu custo. Ou seja, a escolha do FPGA para um determinado projeto será função do algoritmo a ser implementado, do desempenho que se espera dele e do montante de recursos financeiros disponíveis para a implementação do projeto. Mais especificamente com relação ao uso dos FPGAs em processamento de dados sísmicos, diversos trabalhos publicados nestes últimos anos têm buscado destacar as vantagens, tanto do ponto de vista de desempenho quanto do consumo de energia, da adoção de um padrão de representação numérico diferente do padrão de ponto-flutuante conforme definido no padrão IEEE754 (FU et al., 2008, 2009; GROSSER et al., 2011; GOVINDU et al., 2004; ABREO et al., 2012; BARROS et al., 2011; BRAGANçA et al., 2013; MEDEIROS et al., 2013). A preferência pela adoção de um padrão numérico não convencional em projetos com FPGAs deve-se ao fato de a grande maioria dos FPGAs, atualmente comercializados, não dispor nativamente de unidades aritméticas de ponto-flutuante, o que exige que essas unidades sejam implementadas diretamente em um por meio de uma Hardware Description Language (HDL) ou a partir de bibliotecas fornecidas pelos fabricantes dos FPGA, ou ainda por empresas especializadas. No entanto, pela complexidade das operações de ponto-flutuante, a utilização desses módulos pode ter um impacto muito negativo no desempenho do sistema. Por outro lado, alguns trabalhos indicam também que, tratando-se da modelagem sísmica, uma mudança no padrão de representação numérica pode ter um impacto na qualidade das imagens geradas (BARROS et al., 2011; FU et al., 2009, 2008). Muitas vezes, uma diferença de.

(38) 27. Figura 1.6: Resultado do processamento sísmico utilizando o algoritmo PSTM em diversas precisões numéricas (FU et al., 2009). um ou dois bits na precisão numérica adotada é o suficiente para tornar os resultados obtidos impróprios para o uso a que se destinam. Na Figura 1.6, temos os resultados de experimentos relatados em (FU et al., 2009) e que demonstram o quanto o núcleo de processamento aritmético do algoritmo PSTM é sensível à precisão numérica utilizada em sua implementação. Como pode-se observar pelo gráfico apresentado nessa figura, a qualidade das imagens geradas com a aplicação do algoritmo PSTM está diretamente ligada à precisão numérica utilizada na implementação da operação de raiz quadrada (SQRT) existente em seu núcleo de processamento aritmético. Verifica-se por esse gráfico que a qualidade das imagens decai bruscamente quando esta operação é implementada com menos que 10 bits de precisão. Por outro lado, verifica-se também que não ocorrem melhoras significativas quando é utilizado mais que 10 bits de precisão. Dessa forma, os autores de (FU et al., 2009) concluem que o ideal é que esta operação seja efetuada com exatos 10 bits de precisão. Em (BARROS et al., 2011), são apresentados os primeiros resultados obtidos ainda no início do trabalho que resultou nesta tese, no qual foram avaliados os efeitos da precisão numérica empregada na implementação do algoritmo RTM. A Figura 1.7 apresenta os resultados.

(39) 28. CAPÍTULO 1. INTRODUÇÃO. ali obtidos. Como se pode observar pelo gráfico apresentado nessa figura, à semelhança do algoritmo PSTM, o algoritmo RTM também apresenta uma grande sensibilidade a variações do padrão de representação numérica adotado em sua implementação. À semelhança do experimento conduzido em (FU et al., 2009), nesse trabalho também foi conduzido um experimento para averiguar a qualidade do imageamento sísmico gerado pelo algoritmo RTM para um modelo geológico de referência, o modelo de Marmousi9 , (MARTIN; WILEY; MARFURT, 2006) em diversas precisões numéricas. A Figura 1.7 apresenta os resultados obtidos nesse experimento. O gráfico apresentado nessa figura registra o grau de semelhança medido entre as imagens geradas pela aplicação do algoritmo RTM em diversas precisões e uma imagem de referência gerada com o processamento sendo efetuado devido à não precisão numérica adotada. O grau de semelhança foi avaliado a partir do Universal Quality Index (UQI) (WANG; BOVIK, 2002). O UQI é uma métrica que procura avaliar o grau de semelhança entre duas imagens do ponto de vista de um observador humano. Por esse motivo, o grau de semelhança leva em conta não apenas os artefatos presentes nas imagens, mas também o seu brilho e contraste. Como pode-se observar pelo gráfico apresentado, diferentemente do que ocorreu com os resultados relatados em (FU et al., 2009), no algoritmo RTM, o grau de semelhança entre as imagens varia mais suavemente, de forma quase linearmente proporcional à precisão numérica adotada. Conforme se pode observar por esses dois exemplos, a mudança do padrão de representação numérico na implementação de um algoritmo para o imageamento sísmico é algo que exige muito cuidado e atenção. Deve ser levado em conta que questões como a estabilidade dos resultados, a convergência do algoritmo e o grau de incerteza dos resultados obtidos estão diretamente ligados ao padrão numérico adotado. Apesar da sua importância, esse é um tema pouco abordado tanto nos cursos de graduação quanto nas pesquisas científicas em nível de pós-graduação. Isso porque a representação dos números reais em praticamente todos os sistemas computacionais está baseada em um mesmo padrão numérico, o padrão IEEE 754 (P754, 1985). Esse padrão estabelece como devem ser representados e operados os números reais em sistemas computacionais. Em razão da forma como os números são representados nesse padrão, ele ficou conhecido como padrão de números em ponto-flutuante. A adoção do padrão IEEE 754 representou um grande avanço para a computação científica em geral (SEVERANCE, 1998). Foi só a partir do seu estabelecimento que os desenvolvedores e cientistas mais ligados à computação científica puderam deixar de lado as questões mais ligadas à representação dos dados e passar a concentrar seus esforços apenas no desenvolvimento e na implementação dos algoritmos. Atualmente, a sua utilização está de tal forma difundida entre os profissionais da área que a grande maioria desconhece completamente tanto os detalhes de sua implementação quanto as suas limitações. Eles simplesmente o utilizam como 9O. modelo de Marmousi é um modelo geológico sintético muito utilizado como modelo de referência para testes de validação para o imageamento sísmico..

(40) 29. Figura 1.7: Primeiros resultados publicados deste trabalho (BARROS et al., 2011) referentes ao efeito da precisão numérica no processamento sísmico utilizando o algoritmo RTM..

(41) 30. CAPÍTULO 1. INTRODUÇÃO. a representação dos números reais em sistemas computacionais (GOLDBERG, 1991). De fato, pela forma como os dados são representados, esse padrão permite trabalhar com a falsa ideia de que é possível representar o contínuo, o infinito não enumerável, o qual é a própria essência dos números reais, nos sistemas computacionais. O que na verdade é impossível (GOLDBERG, 1991). No padrão de ponto-flutuante, os valores são representados por convenção, através de uma estrutura muito semelhante à adotada na representação de números em notação científica, a qual é formada por três campos distintos, denominados: . Sinal: representa o sinal algébrico do valor representado.. . Expoente: está associado à magnitude do valor representado.. . Signi f icando: representa o conjunto de dígitos significativos do número representado.. Esses três campos são armazenados na forma de uma única palavra binária, a qual é reconhecida como um valor numérico no padrão de ponto-flutuante. O valor numérico representado por essa palavra binária é dado pela seguinte equação: V = (−1)δ ∗ S ∗ 2e ,.  1.1 . em que, V é o valor numérico representado, δ representa o valor do campo sinal, S o conteúdo do campo significando e e o valor representado no campo expoente. Ainda à semelhança da notação científica, no padrão de ponto-flutuante, o campo significando também é representado de maneira normalizada, ou seja, com apenas um dígito na sua parte inteira, sendo este diferente de zero. O padrão IEEE 754 prevê ainda que valores muito pequenos, que não possam ser representados de maneira normalizada, sejam representados fora desse padrão, o que é conhecido como forma desnormalizada ou apenas números denormais. Nesse caso, a fim de indicar essa discrepância com o padrão de representação, atribui-se um valor diferenciado para o campo expoente. Outro detalhe importante da representação no padrão de ponto-flutuante é o processo de mapeamento de cada um dos infinitos valores reais existentes em um dos valores por ele representáveis. Esse processo de mapeamento é denominado de arredondamento. É o processo de arredondamento que permite que todo e qualquer valor real, mesmo os números irracionais, possam ser representados. Existem quatro modos de arredondamento previstos no padrão IEEE 754, denominados de arredondamento para o mais próximo ou par, o arredondamento para mais infinito, o arredondamento para menos infinito e o arredondamento para zero. É a interação do padrão de representação normalizado aliado à flutuação do ponto decimal, devido à interação do campo significando com o expoente e, por fim, o processo de.

(42) 31 arredondamento, que permitem criar a falsa ideia de que é possível representar todo o conjunto dos números reais através dos sistemas computacionais. O Apêndice I traz um resumo das principais características e do princípio de funcionamento do padrão de ponto-flutuante conforme estabelecido pela norma IEEE 754. Toda essa flexibilidade tem, entretanto, um alto custo de implementação em hardware. Uma vez que no padrão de ponto-flutuante os dados passam a ser representados por convenção e não mais por meio da notação posicional, é necessário que exista um suporte em hardware especialmente desenvolvido para operar nesse padrão. Qualquer operação, por mais simples que seja, envolvendo dados no padrão de ponto-flutuante, exige a execução de diversas etapas de pré e pós-processamento. A Figura 1.8 traz de maneira simplificada todas essas etapas. O Apêndice I traz a operação dessas etapas de maneira mais detalhada. Primeiramente é necessário que se faça o desempacotamento do dado, ou seja, é necessário que o valor armazenado seja recuperado. Em seguida é necessário que se verifique se o valor armazenado é de fato um número ou se é uma codificação de exceção: Infinito, Not a Number (NaN) ou um número denormal. Recuperado o valor armazenado, pode-se então efetuar a operação propriamente dita. Cada operação tem o seu próprio fluxo de execução. O Apêndice I traz alguns detalhes de implementação das operações de soma e multiplicação. Feita a operação, o resultado obtido precisa ser arredondado e normalizado. O processo de arredondamento mapeia o valor obtido no valor representável mais próximo no formato de ponto-flutuante adotado. O processo de normalização ajusta o significando para o modo normalizado, compensando essa operação pela atribuição do valor do campo expoente. Por fim, o resultado obtido depois do arredondamento e da normalização é verificado para identificar a ocorrência de exceções, tais como Infinito ou denormal. Caso tenha ocorrido alguma exceção, os valores atribuído aos campos expoente e fração do significando são ajustados para sinalizar a exceção identificada..

(43) 32. CAPÍTULO 1. INTRODUÇÃO. Figura 1.8: Etapas de processamento do ponto-flutuante.. Por esse motivo, a fim de permitir a implementação do tipo de dado de ponto-flutuante nas diversas linguagens de programação existentes, atualmente todos os processadores, incluindo os processadores de uso mais específico como os GPGPUs, os Digital Signal Processing (DSP) - e até mesmo os de menor porte como muitos microcontroladores, têm internamente uma unidade de processamento aritmético de ponto-flutuante, também conhecida como Floating Point Unit (FPU), que é responsável pelas operações em ponto-flutuante. Vale salientar que o padrão IEEE 754 não é a única forma de representar os números reais em sistemas computacionais. Existem ainda inúmeros outros padrões de representação numéricos, tais como o padrão de números residuais, o padrão logaritmo e o padrão de pontofixo. Cada um com vantagens e desvantagens que os tornam especialmente indicados para determinados tipos de aplicações (FU, 2009). Mais especificamente, tratando-se do processamento de dados sísmicos através dos FPGAs, depois de uma pesquisa exaustiva nos trabalhos científicos publicados nos últimos dez anos, realizada durante a fase investigativa deste trabalho, pôde-se constatar uma nítida preferência por parte dos diversos autores pela adoção do padrão de ponto-fixo em detrimento de todos os demais padrões. Isso se explica pelo fato de ser esse o padrão de representação numérico com o menor custo de implementação em hardware. Todos os FPGAs têm internamente certo número de operadores aritméticos, o que permite o mapeamento dos algoritmos com módulos aritméticos diretamente em hardware. Todos os demais padrões, incluindo o padrão de ponto-flutuante, exigem que módulos de hardware específicos sejam implementados, o que tem que ser feito lançando mão dos outros.

(44) 33 recursos de lógica disponíveis nos FPGAs, o que muitas vezes limita o número de módulos que podem ser implementados, além de reduzir a sua frequência de operação. Com isso, o desempenho do sistema em sua totalidade pode ser comprometido. Uma vez que o desempenho alcançado pelos sistemas baseados em FPGA está diretamente ligado ao grau de paralelismo e à frequência de trabalho dos módulos de hardware implementados, e considerando ainda que esses dois parâmetros dependem diretamente da quantidade de recursos do FPGA que esses módulos consomem para serem implementados, a opção por um padrão de representação numérico mais simples, como o padrão de ponto-fixo, pode significar um ganho de desempenho considerável (GUO et al., 2004). Entretanto, se não for feita com muita cautela, a mudança do padrão de representação de ponto-flutuante para o padrão de ponto-fixo pode trazer sérias implicações para a qualidade dos resultados obtidos. Diferentemente do padrão de ponto-flutuante, no qual o limite do erro de representação percentual independe do valor representado 10 , no padrão de ponto-fixo, esse erro não tem um limite definido, estando, assim, diretamente ligado ao valor a ser representado11 . A Figura 1.9 traz uma comparação entre as representações nos padrões de ponto-flutuante e de ponto-fixo, destacando o efeito da mudança automática de escala presente no padrão de ponto-flutuante no nível de erro de representação. Em algoritmos de processamento de sinais, tal como ocorre no processamento de dados sísmicos, essa variação no nível de erro de representação, com r. 10 O erro percentual de representação no padrão de ponto-flutuante é sempre menor que 2−n , onde n é a quantidade de bits da fração do significando. 11 O erro de representação percentual para um padrão de ponto-fixo com n bits de precisão, ou seja, com n bits −n reservados à representação da parte fracionária, será igual a 2 x , em que x é o valor representado..

(45) 34. CAPÍTULO 1. INTRODUÇÃO. Figura 1.9: Comparação entre as representações em ponto-flutuante (A) e em ponto-fixo (B). Observa-se em (A) o efeito da mudança automática do expoente devido ao processo de normalização e à consequente mudança automática de escala. Em (B), verifica-se a perda de precisão à medida que a magnitude do valor representado diminui..

(46) 35. 2 Trabalhos Relacionados Neste capítulo é apresentada uma revisão dos principais trabalhos científicos relacionados com o tema da definição da precisão numérica necessária ao processamento de dados sísmicos em FPGAs. Esses trabalhos são agrupados em três áreas distintas: Processamento de dados sísmicos utilizando FPGAs, onde são apresentadas implementações de plataformas de processamento de dados sísmicos baseados em FPGA; efeitos da precisão numérica no processamento de dados sísmicos, onde são discutidos trabalhos que tratam diretamente desta temática; e precisão da modelagem de propagação da onda sísmica por meio dos operadores de diferenças finitas, onde são apresentados trabalhos que avaliam quão fiéis ao modelo físico real são as implementações de algoritmos de processamento sísmico por meio de operadores de diferenças finitas.. 2.1. Processamento de dados sísmicos utilizando FPGAs. O uso de coprocessadores de aplicação específica baseados nos FPGAs não é algo novo em computação de alto desempenho. Diversos trabalhos científicos destacam a sua utilização em áreas tão distintas na computação científica quanto bioinformática (YAMAGUCHI et al., 2013; DANDASS et al., 2008; CHEN et al., 2013), física (FROHLICH et al., 2002; LIU et al., 2008), análise financeira (SCHRYVER et al., 2011), microscopia eletrônica (GRULL et al., 2011) e processamento de dados sísmicos (MENCER; MORF; FLYNN, 1998; GOVINDU et al., 2004; HE; LU; SUN, 2004; HERBORDT et al., 2007; BARROS et al., 2008). Tendo sido projetados inicialmente com o objetivo de servir como laboratório de prototipação para circuitos lógicos digitais, com o avanço da tecnologia, os FPGAs passaram a ser considerados uma alternativa viável para projetos em áreas de aplicação até então dominadas pelos Circuito Integrado (CI) tipo ASIC1 , tais como o desenvolvimento de coprocessadores de aplicação específica. 1. Um Application Specific Integrated Circuit (ASIC) é um circuito integrado construído para executar uma tarefa específica tal como controlar uma interface de comunicação ou garantir a segurança de acesso a dados de um sistema..

Referências

Documentos relacionados

5 “A Teoria Pura do Direito é uma teoria do Direito positivo – do Direito positivo em geral, não de uma ordem jurídica especial” (KELSEN, Teoria pura do direito, p..

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

Podem treinar tropas (fornecidas pelo cliente) ou levá-las para combate. Geralmente, organizam-se de forma ad-hoc, que respondem a solicitações de Estados; 2)

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Os principais resultados obtidos pelo modelo numérico foram que a implementação da metodologia baseada no risco (Cenário C) resultou numa descida média por disjuntor, de 38% no

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários

de lôbo-guará (Chrysocyon brachyurus), a partir do cérebro e da glândula submaxilar em face das ino- culações em camundongos, cobaios e coelho e, também, pela presença