¸˜
                                 Introducao
                                 Bibliotecas
                                Metodologia
                                 Resultados
                                 Conclusao˜




      ¸˜
Avaliacao de uma Biblioteca de Ponto Flutuante
  para FPGA no 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 / 11
¸˜
                           Introducao
                           Bibliotecas
                                         Contexto
                          Metodologia
                                         Ponto Flutuante e FPGAs
                           Resultados
                           Conclusao˜


Contexto



            ¸˜
     Computacao H´brida
                 ı
                           ´
     Dispositivos Reconfiguraveis - FPGAs
     Exemplo:



                            Sistema H´brido
                                     ı
                              CPU + FPGA




                                                                   2 / 11
¸˜
                                  Introducao
                                  Bibliotecas
                                                    Contexto
                                 Metodologia
                                                    Ponto Flutuante e FPGAs
                                  Resultados
                                  Conclusao˜


Ponto Flutuante e FPGAs


        Ponto Flutuante                                                       FPGA
          ˜
      Padrao IEEE 754                                           Sem suporte nativo a Ponto Flutuante
                                  ¸˜
      Utilizado em diversas aplicacoes




                  Bibliotecas de Ponto Flutuante em VHDL
                         ˜                              ˜
                        Nao usam todas as regras do padrao IEEE 754


                                                ↓

              Avaliar bibliotecas de Ponto Flutuante em VHDL

                                                                                                       3 / 11
¸˜
                            Introducao
                            Bibliotecas
                           Metodologia    Bibliotecas
                            Resultados
                            Conclusao˜


Bibliotecas


                                             ¸˜
      Diversas bibliotecas implementam operac oes de Ponto Flutuante
      em VHDL: FPLibrary, Vfloat e Xilinx FP Core


      Biblioteca escolhida: Vfloat
          Licenca GNU General Public License
                ¸
                  ¸˜     ´        ´
          Operacoes algebricas basicas
                     ˜
          Conversoes: Ponto Flutuante/Ponto Fixo e Ponto Fixo/Ponto
          Flutuante
                                    ¸˜                          ¸˜
          Flexibilidade para a definicao do tamanho da representacao:
          Simples, Duplo ou outros;



                                                                       4 / 11
¸˜
                              Introducao
                              Bibliotecas   Metodologia
                             Metodologia                     ¸˜
                                            Ambiente de Execucao
                              Resultados          ¸˜
                                            Avaliacao
                              Conclusao˜


Metodologia



          ¸˜
     Operacao Escolhida: Produto escalar
                 ¸˜    ´          ´      ´                          ¸˜
           Operacao basica na analise numerica, nucleo da multiplicacao de
                                                 ´
           matrizes e encontrada em benchmarks




               ¸˜
     Implementacao:
       1        ˆ
           Referencia: Linguagem C (gcc -ffloat-store)
       2   H´brida: Linguagem C (Comunicacao) + VHDL (Produto Escalar)
            ı                            ¸˜




                                                                             5 / 11
¸˜
                           Introducao
                           Bibliotecas   Metodologia
                          Metodologia                     ¸˜
                                         Ambiente de Execucao
                           Resultados          ¸˜
                                         Avaliacao
                           Conclusao˜


                 ¸˜
Ambiente de execucao



    Sistema H´brido lancado em Outubro
             ı         ¸
    de 2004
         ¸˜
    Inovacoes
                          ˜
        Rede de interconexao de alto
        desempenho (RapidArray)
              ˜
        Inclusao de FPGAs
                               ¸˜
    Duas abordagens de comunicacao
    entre CPUs e FPGAs:
        Push                                                    Figura: Cray XD1
        Pull




                                                                                   6 / 11
¸˜
                             Introducao
                             Bibliotecas   Metodologia
                            Metodologia                     ¸˜
                                           Ambiente de Execucao
                             Resultados          ¸˜
                                           Avaliacao
                             Conclusao˜


      ¸˜
Avaliacao



                                          ¸˜
    Para avaliar uma maior faixa de aplicacoes                     Tabela: Testes
    foram definidos 3 experimentos                                 Teste    Elementos

                     ´
    Coordenadas aleatorias normalizadas entre:                       1              1
             32                                                      2             10
        0–2
                                                                     3            100
        0 – 500                                                      4          1.000
        0–1                                                          5         10.000
           ¸˜      ´
    Avaliacao atraves do Erro Relativo entre os                      6        100.000
                                                                     7      1.000.000
                                     ¸˜
    resultados das duas implementac oes                              8     10.000.000
                                                                     9    100.000.000




                                                                                        7 / 11
¸˜
                            Introducao
                            Bibliotecas
                           Metodologia                  ´
                                          Resultados Numericos
                            Resultados
                            Conclusao˜


              ´
Resultados Numericos


                           Tabela: Erro relativo
                                              Erro relativo δ
     Teste    Elementos        0 – 232           0 – 500                0–1
        1              1                  0                      0              0
        2             10                  0                      0              0
        3            100   2, 03 ∗ 10−16                         0   1, 87 ∗ 10−16
        4          1.000   2, 08 ∗ 10−16                         0   1, 68 ∗ 10−16
        5         10.000   3, 11 ∗ 10−06       3, 29 ∗ 10−06         1, 38 ∗ 10−16
        6        100.000   4, 87 ∗ 10−06       1, 64 ∗ 10−06         7, 95 ∗ 10−06
        7      1.000.000   5, 81 ∗ 10−06       1, 53 ∗ 10−05         6, 44 ∗ 10−06
        8     10.000.000   6, 84 ∗ 10−06       1, 64 ∗ 10−05         6, 14 ∗ 10−06
        9    100.000.000   6, 88 ∗ 10−06       1, 64 ∗ 10−05         6, 08 ∗ 10−06

                                                                                     8 / 11
¸˜
                        Introducao
                        Bibliotecas
                       Metodologia                    ´
                                        Resultados Numericos
                        Resultados
                        Conclusao˜


              ´
Resultados Numericos


                                          ¸˜
                   Tabela: Tempos de execucao

                                               Tempo (µs)
         Teste    Elementos           Sistema H´brido
                                               ı                 CPU
            1              1                     2                <1
            2             10                    12                <1
            3            100                   122                <1
            4          1.000                  1290                  1
            5         10.000                 13100                 16
            6        100.000                130000                473
            7      1.000.000               1310000               4980
            8     10.000.000              13100000              49500
            9    100.000.000             131000000             589000

                                                                        9 / 11
¸˜
                           Introducao
                           Bibliotecas
                          Metodologia           ˜
                                         Conclusao
                           Resultados
                           Conclusao˜


       ˜
Conclusao


                                                                ¸˜
     Existem diferencas entre os valores obtidos pela implementac ao
                    ¸
     em C e em VHDL (Vfloat)
        ´
     O calculo do produto escalar em FPGA chega a ser centenas de
     vezes mais lento que em CPU
                          ¸˜                                ¸˜
     Necessidade de avaliacao do impacto dos erros na aplicacao.
           ¸˜
     Avaliacao outras bibliotecas em Ponto Flutuante (Ex. Xilinx FP
     core)
                                ¸˜
     Outra abordagem de comunicacao pode aumentar a velocidade
              ¸˜
     da aplicacao



                                                                       10 / 11
¸˜
                                 Introducao
                                 Bibliotecas
                                Metodologia
                                 Resultados
                                 Conclusao˜




      ¸˜
Avaliacao de uma Biblioteca de Ponto Flutuante
  para FPGA no 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




                                                                            11 / 11

Apresentacao WSCAD 2008

  • 1.
    ¸˜ Introducao Bibliotecas Metodologia Resultados Conclusao˜ ¸˜ Avaliacao de uma Biblioteca de Ponto Flutuante para FPGA no 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 / 11
  • 2.
    ¸˜ Introducao Bibliotecas Contexto Metodologia Ponto Flutuante e FPGAs Resultados Conclusao˜ Contexto ¸˜ Computacao H´brida ı ´ Dispositivos Reconfiguraveis - FPGAs Exemplo: Sistema H´brido ı CPU + FPGA 2 / 11
  • 3.
    ¸˜ Introducao Bibliotecas Contexto Metodologia Ponto Flutuante e FPGAs Resultados Conclusao˜ Ponto Flutuante e FPGAs Ponto Flutuante FPGA ˜ Padrao IEEE 754 Sem suporte nativo a Ponto Flutuante ¸˜ Utilizado em diversas aplicacoes Bibliotecas de Ponto Flutuante em VHDL ˜ ˜ Nao usam todas as regras do padrao IEEE 754 ↓ Avaliar bibliotecas de Ponto Flutuante em VHDL 3 / 11
  • 4.
    ¸˜ Introducao Bibliotecas Metodologia Bibliotecas Resultados Conclusao˜ Bibliotecas ¸˜ Diversas bibliotecas implementam operac oes de Ponto Flutuante em VHDL: FPLibrary, Vfloat e Xilinx FP Core Biblioteca escolhida: Vfloat Licenca GNU General Public License ¸ ¸˜ ´ ´ Operacoes algebricas basicas ˜ Conversoes: Ponto Flutuante/Ponto Fixo e Ponto Fixo/Ponto Flutuante ¸˜ ¸˜ Flexibilidade para a definicao do tamanho da representacao: Simples, Duplo ou outros; 4 / 11
  • 5.
    ¸˜ Introducao Bibliotecas Metodologia Metodologia ¸˜ Ambiente de Execucao Resultados ¸˜ Avaliacao Conclusao˜ Metodologia ¸˜ Operacao Escolhida: Produto escalar ¸˜ ´ ´ ´ ¸˜ Operacao basica na analise numerica, nucleo da multiplicacao de ´ matrizes e encontrada em benchmarks ¸˜ Implementacao: 1 ˆ Referencia: Linguagem C (gcc -ffloat-store) 2 H´brida: Linguagem C (Comunicacao) + VHDL (Produto Escalar) ı ¸˜ 5 / 11
  • 6.
    ¸˜ Introducao Bibliotecas Metodologia Metodologia ¸˜ Ambiente de Execucao Resultados ¸˜ Avaliacao Conclusao˜ ¸˜ Ambiente de execucao Sistema H´brido lancado em Outubro ı ¸ de 2004 ¸˜ Inovacoes ˜ Rede de interconexao de alto desempenho (RapidArray) ˜ Inclusao de FPGAs ¸˜ Duas abordagens de comunicacao entre CPUs e FPGAs: Push Figura: Cray XD1 Pull 6 / 11
  • 7.
    ¸˜ Introducao Bibliotecas Metodologia Metodologia ¸˜ Ambiente de Execucao Resultados ¸˜ Avaliacao Conclusao˜ ¸˜ Avaliacao ¸˜ Para avaliar uma maior faixa de aplicacoes Tabela: Testes foram definidos 3 experimentos Teste Elementos ´ Coordenadas aleatorias normalizadas entre: 1 1 32 2 10 0–2 3 100 0 – 500 4 1.000 0–1 5 10.000 ¸˜ ´ Avaliacao atraves do Erro Relativo entre os 6 100.000 7 1.000.000 ¸˜ resultados das duas implementac oes 8 10.000.000 9 100.000.000 7 / 11
  • 8.
    ¸˜ Introducao Bibliotecas Metodologia ´ Resultados Numericos Resultados Conclusao˜ ´ Resultados Numericos Tabela: Erro relativo Erro relativo δ Teste Elementos 0 – 232 0 – 500 0–1 1 1 0 0 0 2 10 0 0 0 3 100 2, 03 ∗ 10−16 0 1, 87 ∗ 10−16 4 1.000 2, 08 ∗ 10−16 0 1, 68 ∗ 10−16 5 10.000 3, 11 ∗ 10−06 3, 29 ∗ 10−06 1, 38 ∗ 10−16 6 100.000 4, 87 ∗ 10−06 1, 64 ∗ 10−06 7, 95 ∗ 10−06 7 1.000.000 5, 81 ∗ 10−06 1, 53 ∗ 10−05 6, 44 ∗ 10−06 8 10.000.000 6, 84 ∗ 10−06 1, 64 ∗ 10−05 6, 14 ∗ 10−06 9 100.000.000 6, 88 ∗ 10−06 1, 64 ∗ 10−05 6, 08 ∗ 10−06 8 / 11
  • 9.
    ¸˜ Introducao Bibliotecas Metodologia ´ Resultados Numericos Resultados Conclusao˜ ´ Resultados Numericos ¸˜ Tabela: Tempos de execucao Tempo (µs) Teste Elementos Sistema H´brido ı CPU 1 1 2 <1 2 10 12 <1 3 100 122 <1 4 1.000 1290 1 5 10.000 13100 16 6 100.000 130000 473 7 1.000.000 1310000 4980 8 10.000.000 13100000 49500 9 100.000.000 131000000 589000 9 / 11
  • 10.
    ¸˜ Introducao Bibliotecas Metodologia ˜ Conclusao Resultados Conclusao˜ ˜ Conclusao ¸˜ Existem diferencas entre os valores obtidos pela implementac ao ¸ em C e em VHDL (Vfloat) ´ O calculo do produto escalar em FPGA chega a ser centenas de vezes mais lento que em CPU ¸˜ ¸˜ Necessidade de avaliacao do impacto dos erros na aplicacao. ¸˜ Avaliacao outras bibliotecas em Ponto Flutuante (Ex. Xilinx FP core) ¸˜ Outra abordagem de comunicacao pode aumentar a velocidade ¸˜ da aplicacao 10 / 11
  • 11.
    ¸˜ Introducao Bibliotecas Metodologia Resultados Conclusao˜ ¸˜ Avaliacao de uma Biblioteca de Ponto Flutuante para FPGA no 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 11 / 11