2013-01-24 18 views
14

Sono alla ricerca di opzioni che abilitino la virtualizzazione della GPU NVIDIA dinamica basata su cloud simile al modo in cui AWS assegna GPU per Cluster GPU Instances.Virtualizzazione della GPU cloud privato simile alle istanze della GPU di Amazon Web Services Cluster

Il mio progetto sta lavorando per alzare un cloud interno. Un requisito è la capacità di allocare GPU a macchine virtuali/istanze per l'elaborazione CUDA lato server.

USC sembra funzionare su OpenStack enhancements per supportare questo ma non è ancora pronto. Questo sarebbe esattamente quello che sto cercando se fosse completamente funzionante in OpenStack.

NVIDIA VGX sembra supportare solo l'allocazione di GPU a USMs, che è strettamente la virtualizzazione della GPU desktop remoto. Se ho torto, e VGX abilita l'elaborazione CUDA lato server da istanze/macchine virtuali, per favore fatemelo sapere.

+2

È possibile assegnare GPU a macchine virtuali utilizzando l'[hypervisor Xen HVM] (http://wiki.xen.org/wiki/XenVGAPassthrough). È una configurazione non banale, tuttavia, e con ogni probabilità ci sono molti spigoli per il suo funzionamento. L'assegnazione deve essere eseguita prima dell'avvio della VM. Ed è in effetti una mappatura 1: 1 delle GPU alle VM, non è possibile condividere una singola GPU tra più VM contemporaneamente in questo modo (usando PCI Passthrough). –

+1

@Robert Crovella - Grazie. Mi piacerebbe davvero trovare qualcosa che si integrasse più facilmente con uno strumento di gestione del cloud, ma avere un'opzione possibile è almeno un inizio. Dovrò indagare se l'intera API CUDA è disponibile. –

+0

@Robert Crovella è azzeccato, ma se hai intenzione di provarlo con Xen ci sono alcuni prerequisiti: la CPU deve avere Intel VT/d o AMD IOMMU (probabilmente non è un problema al giorno d'oggi), una GPU "abilitata" per Supporto pass-through VT-d/IOMMU (NVIDIA sembra chiamare questo Multi-OS) - questo significa praticamente la serie M Tesla e Quadros, Xen 4.1 (e oltre, forse?) – Blairo

risposta

4

"virtualizzazione della GPU NVIDIA dinamica basata su cloud simile al modo in cui AWS assegna GPU per istanze di GPU cluster".

AWS non assegna in modo dinamico le GPU in modo dinamico: ogni GPU Cluster Compute ha 2 GPU fisse. Tutti gli altri server (incluso il normale Cluster Compute) non hanno GPU. Cioè non hanno un'API in cui si può dire "GPU o non", è fissato al tipo di box, che utilizza l'hardware fisso.

La modalità pass-thru su Xen è stata creata appositamente per il tuo caso d'uso: passare l'hardware dall'host all'ospite. Di default non è 'dinamico', ma puoi scrivere del codice che sceglie uno degli ospiti per ottenere ogni carta sull'host.

+0

Un'istanza GPU cluster è comunque una macchina virtuale in esecuzione sull'hypervisor Xen, giusto? Quindi, quando un'istanza si interrompe, puoi riassegnare GPU che stava utilizzando a una nuova istanza, giusto? Non è possibile eseguire il compito quando una VM è attiva, ma va bene - si sta ancora allocando dinamicamente le risorse della GPU alle istanze VM. Ho ragione? –

+0

Sì, è in esecuzione su Xen. Ma no, non li assegni: AWS sì. Quando chiedi un cg1.4xlarge, ottieni una scatola su un rack diverso perché non hanno GPU e altre scatole. Molto probabilmente, mappano le GPU in modo statico alle istanze, poiché devono essere presenti 2 GPU per ogni istanza. – BraveNewCurrency

0

C'è una soluzione chiamata GPUBox che virtualizza i dispositivi all'interno di CUDA. Può essere utilizzato su Amazon o sulla tua infrastruttura.

citazione dal sito (http://renegatt.com/solutions.php):

Il software GPUBox semplifica la gestione GPU separando i sistemi applicativi e operativi dai dispositivi GPU sottostanti. È una soluzione che consente la condivisione dinamica di dispositivi GPU dallo stesso pool da molti utenti. (...) GPUBox consente il provisioning su richiesta di dispositivi GPU su una macchina fisica o virtuale con un sistema operativo Windows Linux o . Il pool di dispositivi GPU è condiviso tra gli utenti di , il che comporta una riduzione del consumo energetico totale e l'hardware di gestione inattiva di .