Esempi di algoritmi per scopi generali che hanno beneficiato dell'esecuzione su una GPU? [chiuso]

9

Sto cercando esempi di algoritmi per scopi generici (ovvero non correlati alla grafica) che hanno dimostrato di eseguire un ordine di grandezza più veloce su una GPU che su una CPU. Userò questi esempi per pensare in modo creativo ad altri algoritmi che potrei implementare su una GPU.

    
posta David 27.12.2011 - 18:50
fonte

6 risposte

10

Alcune cose vengono subito in mente:

È stato scritto un client Bitcoin specializzato per utilizzare la GPU per eseguire gli hash crittografici. Il client GPU generalmente esegue più di 10 volte meglio del client CPU SMP su un tipico sistema a 4 core. Il bitcoin dipende dal calcolo di un gran numero di hash crittografici non collegati, che possono essere calcolati in parallelo.

Il progetto Folding @ Home offre un client GPU per le loro simulazioni di dinamica molecolare. Questi calcoli vengono eseguiti sui singoli legami tra gli atomi in vari ambienti e condizioni. La matematica è relativamente semplice, ma deve essere calcolata miliardi di volte per ogni legame per simulare semplici nanosecondi di attività.

Il famoso esempio di "giocattolo" utilizzato dai sostenitori del GPU computing è il problema di n-body .

Ciò che queste cose hanno in comune è che sono parallelo imbarazzante . Cioè, il problema può essere scomposto in un piccolo numero di calcoli discreti che vengono eseguiti molte volte su un grande set di dati. Questo è il tipo di calcolo a cui è adatta la GPU.

I calcoli complessi che dipendono dai risultati dei calcoli precedenti non sono adatti alla GPU.

    
risposta data 27.12.2011 - 19:09
fonte
8

La transcodifica video e audio è un ottimo esempio. È la conversione da un formato di file a un altro. Un esempio è da MPEG-2 a H.264.

Nota la transcodifica video non è correlata alla grafica 3D. Non puoi codificare un video utilizzando un vertice e un pixel shader.

    
risposta data 27.12.2011 - 19:06
fonte
3

Il mining Bitcoin che utilizza una GPU è diventato molto popolare.

...peer-to-peer, electronic cash system. Bitcoin creation and transfer is based on an open source cryptographic protocol and is not managed by any central authority. Each bitcoin is subdivided down to eight decimal places, forming 100 million smaller units called satoshis. Bitcoins can be transferred through a computer or smartphone without an intermediate financial institution.

The processing of bitcoin transactions is secured by servers called Bitcoin miners. These servers communicate over an internet-based network and confirm transactions by adding them to a ledger which is updated and archived periodically. In addition to archiving transactions each new ledger update creates some newly-minted bitcoins...

Un'altra applicazione è nei mercati finanziari per il trading in tempo reale utilizzando modelli come Black-Scholes .

...A key requirement for utilizing options is calculating their fair value. Finding ways of efficiently solving this pricing problem has been an active field of research for more than thirty years, and it continues to be a focus of modern financial engineering. As more computation has been applied to finance-related problems, finding efficient ways to implement these algorithms on modern architectures has become more important.

This chapter describes how options can be priced efficiently using the GPU. We perform our evaluations using two different pricing models: the Black-Scholes model and lattice models. Both of these approaches map well to the GPU, and both are substantially faster on the GPU than on modern CPUs. Although both also have straightforward mappings to the GPU, implementing lattice models requires additional work because of interdependencies in the calculations...

    
risposta data 27.12.2011 - 19:01
fonte
2

Conway's Game of Life è un buon esempio accademico.

...The universe of the Game of Life is an infinite two-dimensional orthogonal grid of square cells, each of which is in one of two possible states, alive or dead. Every cell interacts with its eight neighbours, which are the cells that are horizontally, vertically, or diagonally adjacent. At each step in time, the following transitions occur:

  1. Any live cell with fewer than two live neighbours dies, as if caused by under-population.
  2. Any live cell with two or three live neighbours lives on to the next generation.
  3. Any live cell with more than three live neighbours dies, as if by overcrowding.
  4. Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.

The initial pattern constitutes the seed of the system. The first generation is created by applying the above rules simultaneously to every cell in the seed—births and deaths occur simultaneously, and the discrete moment at which this happens is sometimes called a tick (in other words, each generation is a pure function of the preceding one). The rules continue to be applied repeatedly to create further generations...

    
risposta data 27.12.2011 - 23:29
fonte
1

Problemi che richiedono un sacco di calcoli che possono essere eseguiti contemporaneamente. Dove lavoravo volevamo giocare con le GPU per aggiungere / sottrarre / moltiplicare 2 matrici per elaborare il correttore genetico. La prima volta che ho sentito parlare di GPU è che venivano utilizzati da una software house finacial per fare alcuni dei loro modelli (monte carlo e così via). Sarebbe utile per la rottura del codice.

Probabilmente la GPU non sarà di grande aiuto con i tuoi problemi di programmazione più regolari, in cui un paio di core della CPU sono sufficienti perché la maggior parte dei programmi regolari ha solo bisogno di eseguire alcuni processi simultanei. (potrebbe essere diverso con memoria / disco che è molto più veloce di quello che abbiamo attualmente)

    
risposta data 27.12.2011 - 21:36
fonte
-3

Forse sono molto matematico / scientifico / ingegneristico, ma uno che viene in mente è l'algoritmo FFT.

Ho visto questo benchmark FFT gettato in giro prima, e sebbene abbia qualche anno credo che sia stato ben fatto per quello che è: link

    
risposta data 15.05.2013 - 23:37
fonte

Leggi altre domande sui tag