2012-07-20 14 views
13

Numpy può essere "collegato/compilato" con diverse implementazioni BLAS (MKL, ACML, ATLAS, GotoBlas, ecc.). Non è sempre semplice da configurare, ma è possibile.Numpy, BLAS e CUBLAS

È anche possibile "collegare/compilare" numpy con l'implementazione CUBLAS di NVIDIA?
Non sono riuscito a trovare alcuna risorsa nel web e prima di passare troppo tempo a provarlo volevo assicurarmi che fosse possibile.

risposta

15

In una parola: no, non puoi farlo.

C'è uno scikit piuttosto buono che fornisce l'accesso a CUBLAS da scipy chiamato scikits.cuda che viene costruito sopra PyCUDA. PyCUDA fornisce una classe simile a numpy.ndarray che consente senza problemi la manipolazione di array di numpy nella memoria della GPU con CUDA. Quindi puoi usare CUBLAS e CUDA con numpy, ma non puoi semplicemente collegarti a CUBLAS e aspettarti che funzioni.

Esiste anche una libreria commerciale che fornisce funzionalità di tipo numpy e cublas e che ha un'interfaccia o collegamenti Python, ma lascerò ad uno dei loro scatti per riempirvi di quello.

+1

Grazie per le informazioni. Conosco le varie librerie Python che consentono l'accesso a CUDA. Tuttavia, se potessi semplicemente configurare Numpy per usare Cublas, non dovrei cambiare nulla nel codice esistente (al momento usa '' numpy.dot() '' e altre funzioni di Linealg con MKL o GotoBlas2) e potrei fare confronti delle prestazioni. Solo per curiosità: sai per caso quali sono le ragioni tecniche per cui non è possibile collegare numpy a CUBLAS? –

+1

È perché l'API non è la stessa, e c'è un intero livello di gestione della memoria che un'applicazione standard blas non sa nulla. – talonmies

+1

Questo potrebbe cambiare la situazione: http://devblogs.nvidia.com/parallelforall/drop-in-acceleration-gnu-octave/ anche se questo vale per l'ottava dovrebbe funzionare anche per Numpy –

4

ecco un'altra possibilità:

http://www.cs.toronto.edu/~tijmen/gnumpy.html

questo è fondamentalmente un ambiente gnumpy + cudamat che può essere utilizzato per sfruttare una GPU. anche lo stesso codice può essere eseguito senza gpu usando npmat. fare riferimento al link sopra per scaricare tutti questi file.

Problemi correlati