Roteiro
                       Transformada de Fourier
                                      Cray XD1
                          FFT H´brida e Paralela
                               ı
                        ˜
                Conclusoes e Trabalhos Futuros




            Uma FFT H´brida e Paralela para o
                     ı
              Supercomputador Cray XD1


Vitor Gomes1,2           Andrea Charao1
                                    ˜              Haroldo de Campos Velho2

                   1
                                    ´                          ¸˜
                       LSC - Laboratorio de Sistemas de Computacao
                       UFSM - Universidade Federal de Santa Maria
      2
                       ´                          ¸˜          ´
          LAC - Laboratorio Associado de Computacao e Matematica Aplicada
                  INPE - Instituto Nacional de Pesquisas Espaciais




                                                                              1 / 17
Roteiro
                        Transformada de Fourier
                                       Cray XD1
                           FFT H´brida e Paralela
                                ı
                         ˜
                 Conclusoes e Trabalhos Futuros


Roteiro



  1   Transformada de Fourier

  2   Cray XD1

  3   FFT H´brida e Paralela
           ı

  4          ˜
      Conclusoes e Trabalhos Futuros




                                                    2 / 17
Roteiro
                      Transformada de Fourier
                                                  Transformada de Fourier
                                     Cray XD1
                                                                ´
                                                  Transformada Rapida de Fourier - FFT
                         FFT H´brida e Paralela
                              ı
                       ˜
               Conclusoes e Trabalhos Futuros


Transformada de Fourier




    Transformada Linear
    Nucleo Computacional
     ´
        Processamento de Sinais
            ¸˜         ¸˜
        Solucao de equacoes parciais
        Processamento de Imagens
        ...
    Mudanca de dom´nio:
           ¸        ı
    Ex.: tempo ↔ frequencia
                      ˆ




                                                                                         3 / 17
Roteiro
                            Transformada de Fourier
                                                        Transformada de Fourier
                                           Cray XD1
                                                                      ´
                                                        Transformada Rapida de Fourier - FFT
                               FFT H´brida e Paralela
                                    ı
                             ˜
                     Conclusoes e Trabalhos Futuros


Transformada de Fourier
              ´
Transformada Rapida de Fourier - FFT




         Fast Fourier Transform - FFT

       Cooley e Tukey (1965)
       Complexidade O (N 2 ) → O (NlogN )
               ´
       Nucleo basico: Borboleta
        ´
             6 somas em ponto flutuante
                         ¸˜
             4 multiplicacoes em ponto flutuante
                                                                                             ¸˜
                                                                       Figura: Fluxo de execucao



                                                                                                   4 / 17
Roteiro
                            Transformada de Fourier
                                                        Transformada de Fourier
                                           Cray XD1
                                                                      ´
                                                        Transformada Rapida de Fourier - FFT
                               FFT H´brida e Paralela
                                    ı
                             ˜
                     Conclusoes e Trabalhos Futuros


Transformada de Fourier
              ´
Transformada Rapida de Fourier - FFT




         Fast Fourier Transform - FFT

       Cooley e Tukey (1965)
       Complexidade O (N 2 ) → O (NlogN )
               ´
       Nucleo basico: Borboleta
        ´
             6 somas em ponto flutuante
                         ¸˜
             4 multiplicacoes em ponto flutuante
                                                                                             ¸˜
                                                                       Figura: Fluxo de execucao



                                                                                                   5 / 17
Roteiro
                            Transformada de Fourier
                                                        Transformada de Fourier
                                           Cray XD1
                                                                      ´
                                                        Transformada Rapida de Fourier - FFT
                               FFT H´brida e Paralela
                                    ı
                             ˜
                     Conclusoes e Trabalhos Futuros


Transformada de Fourier
Abordagem Paralela




       Uso intensivo de processamento
       Algoritmo binary-exchange

          ˆ
    Dependencia de dados entre passos


                             ¸˜
            Custo de comunicac ao

                                                                                             ¸˜
                                                                       Figura: Fluxo de execucao



                                                                                                   6 / 17
Roteiro
                            Transformada de Fourier
                                                        Transformada de Fourier
                                           Cray XD1
                                                                      ´
                                                        Transformada Rapida de Fourier - FFT
                               FFT H´brida e Paralela
                                    ı
                             ˜
                     Conclusoes e Trabalhos Futuros


Transformada de Fourier
Abordagem Paralela




       Uso intensivo de processamento
       Algoritmo binary-exchange

          ˆ
    Dependencia de dados entre passos


                             ¸˜
            Custo de comunicac ao

                                                                                             ¸˜
                                                                       Figura: Fluxo de execucao



                                                                                                   7 / 17
Roteiro
                       Transformada de Fourier
                                      Cray XD1
                          FFT H´brida e Paralela
                               ı
                        ˜
                Conclusoes e Trabalhos Futuros


Cray XD1



                             ´
    Sistema H´brido Reconfiguravel
             ı
    Rede de alto desempenho
          ˜
    Inclusao de FPGAs
    6x Blades

Blade
2 AMD Opteron 64bits 2.4GHz
1 FPGA Xilinx Virtex II Pro                        Figura: Cray XD1




                                                                      8 / 17
Roteiro
                            Transformada de Fourier
                                           Cray XD1
                               FFT H´brida e Paralela
                                    ı
                             ˜
                     Conclusoes e Trabalhos Futuros


Cray XD1
Arquitetura Blade Cray XD1




                           Figura: Arquitetura Blade Cray XD1

                                                                9 / 17
Roteiro
                                                        Objetivo
                            Transformada de Fourier
                                                                   ¸˜
                                                        Implementacao
                                           Cray XD1
                                                        Particionamento
                               FFT H´brida e Paralela
                                    ı
                                                        Desempenho
                             ˜
                     Conclusoes e Trabalhos Futuros


FFT H´brida e Paralela
     ı
Objetivo




    Objetivo
           Aproveitar o poder computacional de CPU e FPGA
                                        ¸˜
           Estabelecer um perfil de execucao da FFT nesta arquitetura




                                                                          10 / 17
Roteiro
                                                       Objetivo
                           Transformada de Fourier
                                                                  ¸˜
                                                       Implementacao
                                          Cray XD1
                                                       Particionamento
                              FFT H´brida e Paralela
                                   ı
                                                       Desempenho
                            ˜
                    Conclusoes e Trabalhos Futuros


FFT H´brida e Paralela
     ı
Metodologia




      1             ¸˜
          Implementacao em Software
      2             ¸˜
          Implementacao em VHDL
      3                         ¸˜                    ¸˜
          Avaliar tempo de execucao de cada implementac ao
      4   Particionamento de carga entre CPU e FPGA
      5        ¸˜          ¸˜
          Execucao e avaliacao da FFT H´brida e Paralela
                                       ı




                                                                         11 / 17
Roteiro
                                                         Objetivo
                             Transformada de Fourier
                                                                    ¸˜
                                                         Implementacao
                                            Cray XD1
                                                         Particionamento
                                FFT H´brida e Paralela
                                     ı
                                                         Desempenho
                              ˜
                      Conclusoes e Trabalhos Futuros


FFT H´brida e Paralela
     ı
Software



    f o r passo from 1 to N by 2
         f o r j from 0 to passo by 1
              c a l c u l a f a t o r de g i r o
              f o r i from j to N by passo ∗2
                    c a l c u l a b o r b o l e t a ( data [ i ] , data [ i + passo ] )
              end f o r
         end f o r
    end f o r

           Implementado em Linguagem C
                                 ˜
           Compilado com GCC versao 3.3.3


                                                                                          12 / 17
Roteiro
                                                     Objetivo
                         Transformada de Fourier
                                                                ¸˜
                                                     Implementacao
                                        Cray XD1
                                                     Particionamento
                            FFT H´brida e Paralela
                                 ı
                                                     Desempenho
                          ˜
                  Conclusoes e Trabalhos Futuros


FFT H´brida e Paralela
     ı
Hardware




            ¸˜
      Descricao em VHDL                                      ∼ 3h geracao bitstream
                                                                      ¸˜
                       ´
      +2000 linhas de codigo                                 Ocupa 97% do FPGA
                                                                                      13 / 17
Roteiro
                                                      Objetivo
                          Transformada de Fourier
                                                                 ¸˜
                                                      Implementacao
                                         Cray XD1
                                                      Particionamento
                             FFT H´brida e Paralela
                                  ı
                                                      Desempenho
                           ˜
                   Conclusoes e Trabalhos Futuros


FFT H´brida e Paralela
     ı
Particionamento




        Tabela: Particionamento entre CPU e FPGA
                         ´
                  Tempo Medio (ms)
      Amostras      FPGA                   CPU              ¸˜
                                                      Proporcao
         1.024      0, 94              0, 19             3:1
         4.096      3, 45              0, 79             3:1            FPGA 160MHz
        16.384     14, 68              4, 33             3:1            CPU 2.4GHz
        65.536     63, 76             20, 59             3:1
       131.072    132, 73             47, 59             3:1
       262.144    276, 76            191, 25             1:1
       524.288            −          461, 59             1:1
     1.048.576            −          979, 56             3:1

                                                                                     14 / 17
Roteiro
                                                  Objetivo
                      Transformada de Fourier
                                                             ¸˜
                                                  Implementacao
                                     Cray XD1
                                                  Particionamento
                         FFT H´brida e Paralela
                              ı
                                                  Desempenho
                       ˜
               Conclusoes e Trabalhos Futuros


FFT H´brida e Paralela
     ı
Desempenho



               Tabela: Tempos da FFT H´brida e Paralela
                                      ı

                                          ´
                                   Tempo Medio (ms)
             Amostras               H´brida
                                     ı                  CPU         Speedup
                 1.024               0, 66           0, 19            0, 29
                 4.096               1, 72           0, 79            0, 46
                16.384               5, 66           4, 33            0, 77
                65.536              23, 29          20, 59            0, 88
               131.072              49, 77          47, 59            0, 96
               262.144             150, 63         191, 25            1, 27
               524.288             310, 48         461, 59            1, 49
             1.048.576             813, 57         979, 56            1, 20

                                                                              15 / 17
Roteiro
                       Transformada de Fourier
                                      Cray XD1
                          FFT H´brida e Paralela
                               ı
                        ˜
                Conclusoes e Trabalhos Futuros


       ˜
Conclusoes e Trabalhos Futuros




      ´
      E poss´vel utilizar o poder de processamento de CPU combinado
            ı
                                 ¸˜
      com FPGA para computacao de FFT
                                                 ¸˜
      Foi obtido aumento de desempenho para execucoes com
      262.144, 524.288 e 1.048.576 pontos
      Em trabalhos futuros utilizar borboletas com radix-4
                                  ¸˜
      Criar um pipeline na computacao interna da Borboleta




                                                                      16 / 17
Roteiro
               Transformada de Fourier
                              Cray XD1
                  FFT H´brida e Paralela
                       ı
                ˜
        Conclusoes e Trabalhos Futuros




     Uma FFT H´brida e Paralela para o
              ı
       Supercomputador Cray XD1

                          ˜
Vitor Gomes Andrea Charao Haroldo de Campos Velho
    {vconrado, andrea}@inf.ufsm, haroldo@lac.inpe.br


   http://slideshare.net/vconrado/wscad2009




                                                       17 / 17

WSCAD2009

  • 1.
    Roteiro Transformada de Fourier Cray XD1 FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros Uma FFT H´brida e Paralela para o ı Supercomputador Cray XD1 Vitor Gomes1,2 Andrea Charao1 ˜ Haroldo de Campos Velho2 1 ´ ¸˜ LSC - Laboratorio de Sistemas de Computacao UFSM - Universidade Federal de Santa Maria 2 ´ ¸˜ ´ LAC - Laboratorio Associado de Computacao e Matematica Aplicada INPE - Instituto Nacional de Pesquisas Espaciais 1 / 17
  • 2.
    Roteiro Transformada de Fourier Cray XD1 FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros Roteiro 1 Transformada de Fourier 2 Cray XD1 3 FFT H´brida e Paralela ı 4 ˜ Conclusoes e Trabalhos Futuros 2 / 17
  • 3.
    Roteiro Transformada de Fourier Transformada de Fourier Cray XD1 ´ Transformada Rapida de Fourier - FFT FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros Transformada de Fourier Transformada Linear Nucleo Computacional ´ Processamento de Sinais ¸˜ ¸˜ Solucao de equacoes parciais Processamento de Imagens ... Mudanca de dom´nio: ¸ ı Ex.: tempo ↔ frequencia ˆ 3 / 17
  • 4.
    Roteiro Transformada de Fourier Transformada de Fourier Cray XD1 ´ Transformada Rapida de Fourier - FFT FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros Transformada de Fourier ´ Transformada Rapida de Fourier - FFT Fast Fourier Transform - FFT Cooley e Tukey (1965) Complexidade O (N 2 ) → O (NlogN ) ´ Nucleo basico: Borboleta ´ 6 somas em ponto flutuante ¸˜ 4 multiplicacoes em ponto flutuante ¸˜ Figura: Fluxo de execucao 4 / 17
  • 5.
    Roteiro Transformada de Fourier Transformada de Fourier Cray XD1 ´ Transformada Rapida de Fourier - FFT FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros Transformada de Fourier ´ Transformada Rapida de Fourier - FFT Fast Fourier Transform - FFT Cooley e Tukey (1965) Complexidade O (N 2 ) → O (NlogN ) ´ Nucleo basico: Borboleta ´ 6 somas em ponto flutuante ¸˜ 4 multiplicacoes em ponto flutuante ¸˜ Figura: Fluxo de execucao 5 / 17
  • 6.
    Roteiro Transformada de Fourier Transformada de Fourier Cray XD1 ´ Transformada Rapida de Fourier - FFT FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros Transformada de Fourier Abordagem Paralela Uso intensivo de processamento Algoritmo binary-exchange ˆ Dependencia de dados entre passos ¸˜ Custo de comunicac ao ¸˜ Figura: Fluxo de execucao 6 / 17
  • 7.
    Roteiro Transformada de Fourier Transformada de Fourier Cray XD1 ´ Transformada Rapida de Fourier - FFT FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros Transformada de Fourier Abordagem Paralela Uso intensivo de processamento Algoritmo binary-exchange ˆ Dependencia de dados entre passos ¸˜ Custo de comunicac ao ¸˜ Figura: Fluxo de execucao 7 / 17
  • 8.
    Roteiro Transformada de Fourier Cray XD1 FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros Cray XD1 ´ Sistema H´brido Reconfiguravel ı Rede de alto desempenho ˜ Inclusao de FPGAs 6x Blades Blade 2 AMD Opteron 64bits 2.4GHz 1 FPGA Xilinx Virtex II Pro Figura: Cray XD1 8 / 17
  • 9.
    Roteiro Transformada de Fourier Cray XD1 FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros Cray XD1 Arquitetura Blade Cray XD1 Figura: Arquitetura Blade Cray XD1 9 / 17
  • 10.
    Roteiro Objetivo Transformada de Fourier ¸˜ Implementacao Cray XD1 Particionamento FFT H´brida e Paralela ı Desempenho ˜ Conclusoes e Trabalhos Futuros FFT H´brida e Paralela ı Objetivo Objetivo Aproveitar o poder computacional de CPU e FPGA ¸˜ Estabelecer um perfil de execucao da FFT nesta arquitetura 10 / 17
  • 11.
    Roteiro Objetivo Transformada de Fourier ¸˜ Implementacao Cray XD1 Particionamento FFT H´brida e Paralela ı Desempenho ˜ Conclusoes e Trabalhos Futuros FFT H´brida e Paralela ı Metodologia 1 ¸˜ Implementacao em Software 2 ¸˜ Implementacao em VHDL 3 ¸˜ ¸˜ Avaliar tempo de execucao de cada implementac ao 4 Particionamento de carga entre CPU e FPGA 5 ¸˜ ¸˜ Execucao e avaliacao da FFT H´brida e Paralela ı 11 / 17
  • 12.
    Roteiro Objetivo Transformada de Fourier ¸˜ Implementacao Cray XD1 Particionamento FFT H´brida e Paralela ı Desempenho ˜ Conclusoes e Trabalhos Futuros FFT H´brida e Paralela ı Software f o r passo from 1 to N by 2 f o r j from 0 to passo by 1 c a l c u l a f a t o r de g i r o f o r i from j to N by passo ∗2 c a l c u l a b o r b o l e t a ( data [ i ] , data [ i + passo ] ) end f o r end f o r end f o r Implementado em Linguagem C ˜ Compilado com GCC versao 3.3.3 12 / 17
  • 13.
    Roteiro Objetivo Transformada de Fourier ¸˜ Implementacao Cray XD1 Particionamento FFT H´brida e Paralela ı Desempenho ˜ Conclusoes e Trabalhos Futuros FFT H´brida e Paralela ı Hardware ¸˜ Descricao em VHDL ∼ 3h geracao bitstream ¸˜ ´ +2000 linhas de codigo Ocupa 97% do FPGA 13 / 17
  • 14.
    Roteiro Objetivo Transformada de Fourier ¸˜ Implementacao Cray XD1 Particionamento FFT H´brida e Paralela ı Desempenho ˜ Conclusoes e Trabalhos Futuros FFT H´brida e Paralela ı Particionamento Tabela: Particionamento entre CPU e FPGA ´ Tempo Medio (ms) Amostras FPGA CPU ¸˜ Proporcao 1.024 0, 94 0, 19 3:1 4.096 3, 45 0, 79 3:1 FPGA 160MHz 16.384 14, 68 4, 33 3:1 CPU 2.4GHz 65.536 63, 76 20, 59 3:1 131.072 132, 73 47, 59 3:1 262.144 276, 76 191, 25 1:1 524.288 − 461, 59 1:1 1.048.576 − 979, 56 3:1 14 / 17
  • 15.
    Roteiro Objetivo Transformada de Fourier ¸˜ Implementacao Cray XD1 Particionamento FFT H´brida e Paralela ı Desempenho ˜ Conclusoes e Trabalhos Futuros FFT H´brida e Paralela ı Desempenho Tabela: Tempos da FFT H´brida e Paralela ı ´ Tempo Medio (ms) Amostras H´brida ı CPU Speedup 1.024 0, 66 0, 19 0, 29 4.096 1, 72 0, 79 0, 46 16.384 5, 66 4, 33 0, 77 65.536 23, 29 20, 59 0, 88 131.072 49, 77 47, 59 0, 96 262.144 150, 63 191, 25 1, 27 524.288 310, 48 461, 59 1, 49 1.048.576 813, 57 979, 56 1, 20 15 / 17
  • 16.
    Roteiro Transformada de Fourier Cray XD1 FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros ˜ Conclusoes e Trabalhos Futuros ´ E poss´vel utilizar o poder de processamento de CPU combinado ı ¸˜ com FPGA para computacao de FFT ¸˜ Foi obtido aumento de desempenho para execucoes com 262.144, 524.288 e 1.048.576 pontos Em trabalhos futuros utilizar borboletas com radix-4 ¸˜ Criar um pipeline na computacao interna da Borboleta 16 / 17
  • 17.
    Roteiro Transformada de Fourier Cray XD1 FFT H´brida e Paralela ı ˜ Conclusoes e Trabalhos Futuros Uma FFT H´brida e Paralela para o ı Supercomputador Cray XD1 ˜ Vitor Gomes Andrea Charao Haroldo de Campos Velho {vconrado, andrea}@inf.ufsm, haroldo@lac.inpe.br http://slideshare.net/vconrado/wscad2009 17 / 17