SlideShare uma empresa Scribd logo
Aplicando o poder de uma GPU no
SQL Server
Msc. Mauro Pichiliani (@pichiliani)
pichiliani@uol.com.br
AVISO




2 | 26/11/2011 |
Sobre mim
 Mestre e doutorando em computação pelo ITA

 Escritor da SQL Magazine, Fórum Access, Java
  Magazine, SQLServerCentral.com e outras

 Colaborador do iMasters há 10 anos

 Co-autor do @databasecast

 Foco em diversos bancos de dados

 3 | 26/11/2011 |
Roteiro

     Uso de processamento
     GPU? Que bicho é esse?
     Processamento paralelo e aplicações
     O mercado
     Como utilizar uma GPU no SQL Server
     #comofaz
     Conclusão


4 | 26/11/2011 |
Uso de processamento no servidor

           Prioridades de um servidor de aplicação




5 | 26/11/2011 |
Uso de processamento no banco

  Prioridades de um servidor de banco de dados




6 | 26/11/2011 |
Por que a diferença?
  No servidor de aplicação:
         Processamento do código fonte
         Processamento de requisições (Threads, Http)
         Gerenciamento de máquinas virtuais

  No servidor de banco de dados:
           Acesso sequencial a tabelas com muitos dados
           Uso de índice causando IO randômico
           Plano de execução e operadores imprevisíveis
           Grande movimentação de dados para relatórios


7 | 26/11/2011 |
Então…




                   Por que utilizar GPU no SQL Server?

8 | 26/11/2011 |
GPU? Que bicho é esse? - Jogos
 GPU = Graphics Processing Unit
 Circuito próprio para manipulação paralela de operações gráficas e
  instruções x86 (GPGPU)
 Não trabalha sozinha: requer um processador
 O preço é acessível
 Avanços vem da área de entretenimento (games, filmes e séries)




 9 | 26/11/2011 |
GPU? Que bicho é esse? - Placas
   Atualmente a GPU é representada por uma
    placa dedicada (desktop ou notebook)




  Geoforce GTX 580
                                  Radeon HD 6990
  3072 MB GDDR5
                                  4 GB GDDR5
  2.46* TFLOPS Single Precision
                                  5.1 TFLOPS Single Precision
  327 GB/s – 1024 Cuda cores
                                  320 GB/s – 3072 Strem Processors


10 | 26/11/2011 |
GPU? Que bicho é esse? - Servidor
   Há soluções para servidor e SDK (CUDA)




11 | 26/11/2011 |
Processamento paralelo - HPC
   O uso de GPU requer conhecimento de processamento paralelo (área HPC)
   Maior parte do hardware TOP500 (http://www.top500.org/) usa GPU
   Para lembrar:
         1 megaflop = 1 milhão de flops = 10^6 operações p.f. por segundo;
         1 gigaflop = 1 bilhão de flops     = 10^9 operações p.f. por segundo;
         1 teraflop = 1 trilhão de flops   = 10^12 operações p.f. por segundo;
         1 petaflop = 1 quatrilhão de flops = 10^15 operações p.f. por segundo.

   Um processador topo de linha para servidores fica em torno de 50~70 GFLOPS
   Nota: em geral no máximo 10% disso é utilizado
   Paralelismo é tradicionamento aplicado em:
         Jogos
         Simulações
         Construção de modelos
         Renderização
         Segurança (força bruta)




12 | 26/11/2011 |
Processamento paralelo - Processador
   Não é raro mudanças no processador para melhorar
    desempenho específico:
          Inclusão de instruções MMX para suporte a multimídia
          Integração da plataforma de 64 bits
          Instruções específicas para melhoria da virtualização

   Há também a possibilidade de criação de um chip
    customizado com FPGA (field-programmable gate
    arrays)

   Que tal um SQL Chip?

13 | 26/11/2011 |
O mercado
 Pesquisas da área acadêmica abordam desde 2004 o uso de
  GPU com banco de dados

 Oracle apostando no Exadata

 IBM usando muito CUDA e preenchendo patentes

 Comunidade de software livre experimentando GPU
  (PostgreSQL e mongoDB)

 Amazon fornecendo instâncias do EC2 com GPU

 Microsoft ainda não fez nenhum anúncio


14 | 26/11/2011 |
Como utilizar uma GPU no SQL Server
 Trabalhar com GPU exige conhecimento da arquitetura




 Modelo de transferência de dados entre memória da
  GPU e o processador

 Detalhes do SDK (CUDA usa C/C++)

 Conceitos: funções de textura, kernel, OpenCL, SIMD


15 | 26/11/2011 |
Hello World com CUDA (em C)
// Hello World using CUDA                 // Host function
                                          int
#include <cuda.h>                         main(int argc, char** argv)                   // invoke the kernel
                                          {
#include <stdio.h>                          int i;                                     helloWorld<<< dimGrid, dimBlock
                                                                                      >>>(d_str);
// Prototypes                              // desired output
__global__ void helloWorld(char*);         char str[] = "Hello World!";
                                                                                       // retrieve the results from the device
                                           // mangle contents of output                cudaMemcpy(str, d_str, size,
                                           // the null character is left intact for   cudaMemcpyDeviceToHost);
// Device kernel                          simplicity
__global__ void                            for(i = 0; i < 12; i++)
                                             str[i] -= i;                                 // free up the allocated memory
helloWorld(char* str)                                                                       // on the device
{                                          // allocate memory on the device               cudaFree(d_str);
  // determine where in the thread grid    char *d_str;
                                           size_t size = sizeof(str);
 // we are                                 cudaMalloc((void**)&d_str, size);              // everyone's favorite part
                                                                                          printf("%sn", str);
 int idx = blockIdx.x * blockDim.x +       // copy the string to the device
                                           cudaMemcpy(d_str, str, size,
threadIdx.x;                              cudaMemcpyHostToDevice);                        return 0;
                                                                                      }
    // unmangle output                     // set the grid and block sizes
    str[idx] += idx;                       dim3 dimGrid(2); //one block p/ word
}                                          dim3 dimBlock(6); //one thread p/ char.




    16 | 26/11/2011 |
Voltando um pouco…
   Antes de programar para GPU veja se o problema é adequado

   Exemplos comuns:
         Multiplicação de matrix
         Tarefas de mineração de dados/previsões
         Compactação
         Pocessamento numérico intenso
         Uso de muitos loops aninhados
         Algoritmo para geoposicionamento (manipulação de rotas)

   Porque colocar este processamento no banco de dados?
         É onde os dados estão (geralmente são MUITOS dados)
         Fácil manipulação pelo uso da linguagem SQL
         Todos os recursos do .NET

   Dica geral: faça testes e veja se GPU é melhor para o seu caso/problema



17 | 26/11/2011 |
CUDA no SQL Server – CUDA.NET
 SQL Server permite a chamada de assemblies em .NET
 Duas abordagens para programar CUDA em C#:
1) CUDA.NET (http://www.hoopoe-cloud.com/Solutions/cuda.net)
using GASS.CUDA;

// ...
CUDA cuda = new CUDA(true);

// select first available device (GPU)
cuda.CreateContext(0);

// load binary kernel module (eg. relative to from bin/Debug/)
CUmodule module = cuda.LoadModule("../../mykernel.cubin");

// select function from the module
CUfunction function = cuda.GetModuleFunction(module, "fooFunction");

// execute the function fooFunction() on a GPU
cuda.Launch(function);



 18 | 26/11/2011 |
CUDA no SQL Server – CUDAFY.NET
2) CUDAfy .NET SDK(http://www.hybriddsp.com/)




19 | 26/11/2011 |
Sou pobre, #comofaz?
 Não tenho uma CPU e quero aprender, #comofaz?
 Tenha votande e determinação!
 Aprenda outros conceitos de programação paralela (MPI, OpenMP,
  SIMD, etc)
 Estude problemas e aprenda o ‘jeito’ de programar paralelo
 Alternativa: use um emulador
      http://gpubrasil.com/2009/10/02/instalacao-do-emulador-cuda/
   Outra alternativa: ambiente da CESUP
   Unix+Cluster com GPU Tesla+CUDA
   Monte projeto, converse com professor
   Há possibilidade de conseguir conta de acesso dependendo do
    projeto


20 | 26/11/2011 |
Conclusões
 Uso de GPU aliada a CPU fornece muito poder de
  processamento
 GPU com banco de dados ainda é incipiente
 Porém há varias possibilidades e oportunidades
 Alguns fornecedores já sairam na frente…
 Uso de GPU não sai ‘de graça’:
    É preciso conhecer programação paralela (e saber
     resolver problemas)
    Requer problema específico
    Programação difícil (i.e: você vai sofrer um pouco no
     começo)
 Há possibilidade de utilizar CUDA+.NET no SQL Server

21 | 26/11/2011 |
#prontofalei


                    Perguntas?



22 | 26/11/2011 |

Mais conteúdo relacionado

Mais procurados (20)

PPTX
Grouper
Meggy Rard
 
PDF
Mussle cuture
chamali123
 
PPTX
Culture of infusoria
Romen Wangkheirakpam
 
PPTX
Incubator in aquaculture
Md Obaidul Haque
 
PPTX
Principle of GIS and Application in Fisheries Management .pptx
SubhadipBar
 
PPTX
Fish diseases
Dr. Karri Ramarao
 
PPTX
Techniques of animal tracking
QandeelAlam
 
PPTX
EFFECTS OF DAMS IN FISHERIES
Sailesh Mahapatra
 
PPTX
Water quality parameters
Madhusmita Kalita
 
PPT
Crustaceans preservation
Vishnuraj R S
 
PDF
Water quality requirements & its management in aquaculture by asraful alam
MD. Asraful Alam (Arif)
 
PPTX
Sweetfish AyuTaxonomy Biology and farming.pptx
B. BHASKAR
 
PPTX
pearl oyster (1).pptx
HemavathiK10
 
DOCX
Fish market survey
Md. Iftehimul
 
PPTX
Fish Vaccination
Md. Abul Kashem Russell
 
PPTX
Fresh water edible fishes
Mr. Balwant Singh
 
PPTX
Fish Hatchery Management for Maintaining the Genetic Quality
SHUBHAM PATIDAR FISHERIES ADDAA
 
PPTX
Asian sea bass culture
B. BHASKAR
 
PPTX
Hatchery technology of Pangasius
Rodney Peñafiel
 
Grouper
Meggy Rard
 
Mussle cuture
chamali123
 
Culture of infusoria
Romen Wangkheirakpam
 
Incubator in aquaculture
Md Obaidul Haque
 
Principle of GIS and Application in Fisheries Management .pptx
SubhadipBar
 
Fish diseases
Dr. Karri Ramarao
 
Techniques of animal tracking
QandeelAlam
 
EFFECTS OF DAMS IN FISHERIES
Sailesh Mahapatra
 
Water quality parameters
Madhusmita Kalita
 
Crustaceans preservation
Vishnuraj R S
 
Water quality requirements & its management in aquaculture by asraful alam
MD. Asraful Alam (Arif)
 
Sweetfish AyuTaxonomy Biology and farming.pptx
B. BHASKAR
 
pearl oyster (1).pptx
HemavathiK10
 
Fish market survey
Md. Iftehimul
 
Fish Vaccination
Md. Abul Kashem Russell
 
Fresh water edible fishes
Mr. Balwant Singh
 
Fish Hatchery Management for Maintaining the Genetic Quality
SHUBHAM PATIDAR FISHERIES ADDAA
 
Asian sea bass culture
B. BHASKAR
 
Hatchery technology of Pangasius
Rodney Peñafiel
 

Semelhante a Aplicando o poder de uma GPU no SQL Server (20)

PDF
Computação em Finanças em Hardware Gráfico
Thársis T. P. Souza
 
PDF
Mini-curso CUDA
Deivid Martins
 
PPT
Inpe
cacauvicosa
 
PPTX
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Filipo Mór
 
PPTX
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Filipo Mór
 
PDF
GPU, CUDA, OpenCL and OpenACC for Parallel Applications
Marcos Gonzalez
 
PDF
Técnicas avançadas de utilização de GPU e CUDA
Jose Ricardo da Silva Junior
 
PDF
070498 t2
Lindomar José Rocha
 
PPS
TCC Apresentacao Final
Arthur Gregório
 
ODP
Introdução à Computação de Alto Desempenho - Parte I
Vinícius Hax
 
PDF
CUDA/Open CL
Krissia Zawadzki
 
PPTX
Apresentacao da linguagem de programa opencp com comparação
ssuser0a8a581
 
PPTX
Aula 004 noções de hardware
Flávio Freitas
 
PDF
Análise de interfaces para a programação paralela e distribuída
Helton Ritter
 
PDF
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
André Curvello
 
PDF
TDC2016 - Processamento de Imagem em GPU com OpenGL
André Curvello
 
PDF
TDC2016SP - Trilha Linux Embarcado
tdc-globalcode
 
PDF
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
Intel Software Brasil
 
PDF
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
Luciano Palma
 
DOC
Arquitetura componentes
Tangles Martins
 
Computação em Finanças em Hardware Gráfico
Thársis T. P. Souza
 
Mini-curso CUDA
Deivid Martins
 
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Filipo Mór
 
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Filipo Mór
 
GPU, CUDA, OpenCL and OpenACC for Parallel Applications
Marcos Gonzalez
 
Técnicas avançadas de utilização de GPU e CUDA
Jose Ricardo da Silva Junior
 
TCC Apresentacao Final
Arthur Gregório
 
Introdução à Computação de Alto Desempenho - Parte I
Vinícius Hax
 
CUDA/Open CL
Krissia Zawadzki
 
Apresentacao da linguagem de programa opencp com comparação
ssuser0a8a581
 
Aula 004 noções de hardware
Flávio Freitas
 
Análise de interfaces para a programação paralela e distribuída
Helton Ritter
 
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
André Curvello
 
TDC2016 - Processamento de Imagem em GPU com OpenGL
André Curvello
 
TDC2016SP - Trilha Linux Embarcado
tdc-globalcode
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
Intel Software Brasil
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
Luciano Palma
 
Arquitetura componentes
Tangles Martins
 
Anúncio

Mais de pichiliani (20)

PPTX
Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
pichiliani
 
PPTX
Interfaces hands free para o mundo atual e pós-Corona vírus
pichiliani
 
PPTX
The Effect of Audiences On the User Experience of Conversational Interfaces i...
pichiliani
 
PPTX
Machine Learning & Machine Teaching
pichiliani
 
PPTX
TJBot: Incorporando um chatbot em um robô
pichiliani
 
PPTX
Carreira de cientista
pichiliani
 
PPTX
Novidades desenvolvimento
pichiliani
 
PDF
O papel do DBA no mundo de ciência de dados e machine learning
pichiliani
 
PPT
Introdução ao Deep Learning com o TensorFlow
pichiliani
 
PPTX
Alinguagem SQL no mundo NOSQL
pichiliani
 
PPT
Python x R: mas e o Weka?
pichiliani
 
PPT
Rastreamento 3D de objetos para realidade virtual
pichiliani
 
PPT
SSD no banco de dados é bom mesmo?
pichiliani
 
PDF
MediaKit 2016 do DatabaseCast
pichiliani
 
PPTX
Projeto AMedCA - Concurso Casa conectada 2015
pichiliani
 
PPT
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
pichiliani
 
PPT
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
pichiliani
 
PPT
Como lidar com dados temporais e intervalos com a linguagem SQL
pichiliani
 
PPTX
Novidades desenvolvimento
pichiliani
 
PPTX
Projeto HTMA - Trand Tremor Measurement Application
pichiliani
 
Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
pichiliani
 
Interfaces hands free para o mundo atual e pós-Corona vírus
pichiliani
 
The Effect of Audiences On the User Experience of Conversational Interfaces i...
pichiliani
 
Machine Learning & Machine Teaching
pichiliani
 
TJBot: Incorporando um chatbot em um robô
pichiliani
 
Carreira de cientista
pichiliani
 
Novidades desenvolvimento
pichiliani
 
O papel do DBA no mundo de ciência de dados e machine learning
pichiliani
 
Introdução ao Deep Learning com o TensorFlow
pichiliani
 
Alinguagem SQL no mundo NOSQL
pichiliani
 
Python x R: mas e o Weka?
pichiliani
 
Rastreamento 3D de objetos para realidade virtual
pichiliani
 
SSD no banco de dados é bom mesmo?
pichiliani
 
MediaKit 2016 do DatabaseCast
pichiliani
 
Projeto AMedCA - Concurso Casa conectada 2015
pichiliani
 
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
pichiliani
 
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
pichiliani
 
Como lidar com dados temporais e intervalos com a linguagem SQL
pichiliani
 
Novidades desenvolvimento
pichiliani
 
Projeto HTMA - Trand Tremor Measurement Application
pichiliani
 
Anúncio

Aplicando o poder de uma GPU no SQL Server

  • 1. Aplicando o poder de uma GPU no SQL Server Msc. Mauro Pichiliani (@pichiliani) [email protected]
  • 3. Sobre mim  Mestre e doutorando em computação pelo ITA  Escritor da SQL Magazine, Fórum Access, Java Magazine, SQLServerCentral.com e outras  Colaborador do iMasters há 10 anos  Co-autor do @databasecast  Foco em diversos bancos de dados 3 | 26/11/2011 |
  • 4. Roteiro  Uso de processamento  GPU? Que bicho é esse?  Processamento paralelo e aplicações  O mercado  Como utilizar uma GPU no SQL Server  #comofaz  Conclusão 4 | 26/11/2011 |
  • 5. Uso de processamento no servidor Prioridades de um servidor de aplicação 5 | 26/11/2011 |
  • 6. Uso de processamento no banco Prioridades de um servidor de banco de dados 6 | 26/11/2011 |
  • 7. Por que a diferença?  No servidor de aplicação:  Processamento do código fonte  Processamento de requisições (Threads, Http)  Gerenciamento de máquinas virtuais  No servidor de banco de dados:  Acesso sequencial a tabelas com muitos dados  Uso de índice causando IO randômico  Plano de execução e operadores imprevisíveis  Grande movimentação de dados para relatórios 7 | 26/11/2011 |
  • 8. Então… Por que utilizar GPU no SQL Server? 8 | 26/11/2011 |
  • 9. GPU? Que bicho é esse? - Jogos  GPU = Graphics Processing Unit  Circuito próprio para manipulação paralela de operações gráficas e instruções x86 (GPGPU)  Não trabalha sozinha: requer um processador  O preço é acessível  Avanços vem da área de entretenimento (games, filmes e séries) 9 | 26/11/2011 |
  • 10. GPU? Que bicho é esse? - Placas  Atualmente a GPU é representada por uma placa dedicada (desktop ou notebook) Geoforce GTX 580 Radeon HD 6990 3072 MB GDDR5 4 GB GDDR5 2.46* TFLOPS Single Precision 5.1 TFLOPS Single Precision 327 GB/s – 1024 Cuda cores 320 GB/s – 3072 Strem Processors 10 | 26/11/2011 |
  • 11. GPU? Que bicho é esse? - Servidor  Há soluções para servidor e SDK (CUDA) 11 | 26/11/2011 |
  • 12. Processamento paralelo - HPC  O uso de GPU requer conhecimento de processamento paralelo (área HPC)  Maior parte do hardware TOP500 (http://www.top500.org/) usa GPU  Para lembrar:  1 megaflop = 1 milhão de flops = 10^6 operações p.f. por segundo;  1 gigaflop = 1 bilhão de flops = 10^9 operações p.f. por segundo;  1 teraflop = 1 trilhão de flops = 10^12 operações p.f. por segundo;  1 petaflop = 1 quatrilhão de flops = 10^15 operações p.f. por segundo.  Um processador topo de linha para servidores fica em torno de 50~70 GFLOPS  Nota: em geral no máximo 10% disso é utilizado  Paralelismo é tradicionamento aplicado em:  Jogos  Simulações  Construção de modelos  Renderização  Segurança (força bruta) 12 | 26/11/2011 |
  • 13. Processamento paralelo - Processador  Não é raro mudanças no processador para melhorar desempenho específico:  Inclusão de instruções MMX para suporte a multimídia  Integração da plataforma de 64 bits  Instruções específicas para melhoria da virtualização  Há também a possibilidade de criação de um chip customizado com FPGA (field-programmable gate arrays)  Que tal um SQL Chip? 13 | 26/11/2011 |
  • 14. O mercado  Pesquisas da área acadêmica abordam desde 2004 o uso de GPU com banco de dados  Oracle apostando no Exadata  IBM usando muito CUDA e preenchendo patentes  Comunidade de software livre experimentando GPU (PostgreSQL e mongoDB)  Amazon fornecendo instâncias do EC2 com GPU  Microsoft ainda não fez nenhum anúncio 14 | 26/11/2011 |
  • 15. Como utilizar uma GPU no SQL Server  Trabalhar com GPU exige conhecimento da arquitetura  Modelo de transferência de dados entre memória da GPU e o processador  Detalhes do SDK (CUDA usa C/C++)  Conceitos: funções de textura, kernel, OpenCL, SIMD 15 | 26/11/2011 |
  • 16. Hello World com CUDA (em C) // Hello World using CUDA // Host function int #include <cuda.h> main(int argc, char** argv) // invoke the kernel { #include <stdio.h> int i; helloWorld<<< dimGrid, dimBlock >>>(d_str); // Prototypes // desired output __global__ void helloWorld(char*); char str[] = "Hello World!"; // retrieve the results from the device // mangle contents of output cudaMemcpy(str, d_str, size, // the null character is left intact for cudaMemcpyDeviceToHost); // Device kernel simplicity __global__ void for(i = 0; i < 12; i++) str[i] -= i; // free up the allocated memory helloWorld(char* str) // on the device { // allocate memory on the device cudaFree(d_str); // determine where in the thread grid char *d_str; size_t size = sizeof(str); // we are cudaMalloc((void**)&d_str, size); // everyone's favorite part printf("%sn", str); int idx = blockIdx.x * blockDim.x + // copy the string to the device cudaMemcpy(d_str, str, size, threadIdx.x; cudaMemcpyHostToDevice); return 0; } // unmangle output // set the grid and block sizes str[idx] += idx; dim3 dimGrid(2); //one block p/ word } dim3 dimBlock(6); //one thread p/ char. 16 | 26/11/2011 |
  • 17. Voltando um pouco…  Antes de programar para GPU veja se o problema é adequado  Exemplos comuns:  Multiplicação de matrix  Tarefas de mineração de dados/previsões  Compactação  Pocessamento numérico intenso  Uso de muitos loops aninhados  Algoritmo para geoposicionamento (manipulação de rotas)  Porque colocar este processamento no banco de dados?  É onde os dados estão (geralmente são MUITOS dados)  Fácil manipulação pelo uso da linguagem SQL  Todos os recursos do .NET  Dica geral: faça testes e veja se GPU é melhor para o seu caso/problema 17 | 26/11/2011 |
  • 18. CUDA no SQL Server – CUDA.NET  SQL Server permite a chamada de assemblies em .NET  Duas abordagens para programar CUDA em C#: 1) CUDA.NET (http://www.hoopoe-cloud.com/Solutions/cuda.net) using GASS.CUDA; // ... CUDA cuda = new CUDA(true); // select first available device (GPU) cuda.CreateContext(0); // load binary kernel module (eg. relative to from bin/Debug/) CUmodule module = cuda.LoadModule("../../mykernel.cubin"); // select function from the module CUfunction function = cuda.GetModuleFunction(module, "fooFunction"); // execute the function fooFunction() on a GPU cuda.Launch(function); 18 | 26/11/2011 |
  • 19. CUDA no SQL Server – CUDAFY.NET 2) CUDAfy .NET SDK(http://www.hybriddsp.com/) 19 | 26/11/2011 |
  • 20. Sou pobre, #comofaz?  Não tenho uma CPU e quero aprender, #comofaz?  Tenha votande e determinação!  Aprenda outros conceitos de programação paralela (MPI, OpenMP, SIMD, etc)  Estude problemas e aprenda o ‘jeito’ de programar paralelo  Alternativa: use um emulador http://gpubrasil.com/2009/10/02/instalacao-do-emulador-cuda/  Outra alternativa: ambiente da CESUP  Unix+Cluster com GPU Tesla+CUDA  Monte projeto, converse com professor  Há possibilidade de conseguir conta de acesso dependendo do projeto 20 | 26/11/2011 |
  • 21. Conclusões  Uso de GPU aliada a CPU fornece muito poder de processamento  GPU com banco de dados ainda é incipiente  Porém há varias possibilidades e oportunidades  Alguns fornecedores já sairam na frente…  Uso de GPU não sai ‘de graça’:  É preciso conhecer programação paralela (e saber resolver problemas)  Requer problema específico  Programação difícil (i.e: você vai sofrer um pouco no começo)  Há possibilidade de utilizar CUDA+.NET no SQL Server 21 | 26/11/2011 |
  • 22. #prontofalei Perguntas? 22 | 26/11/2011 |