2016-04-21 6 views
2

Angenommen, ich habe einen Laptop mit nvcc und CUDA Toolkit installiert, und ein Netzwerk von 16 PCs mit Nvidia GPUs und MPI. Die PCs kennen CUDA nicht, sie haben nur normale Nvidia Treiber und unterstützende Software.Ist es möglich, CUDA-Programm oder -Bibliothek ohne installierten CUDA-Treiber auszuführen?

Ich möchte eine MPI-Anwendung für dieses Netzwerk entwickeln. Die PCs werden Aufgaben über MPI erwerben und ihre GPUs verwenden, um diese Aufgaben zu erledigen. Ich plane, den CUDA Teil auf meinem Laptop zu entwickeln, es in einer statischen Bibliothek zu kompilieren und später diese statische Bibliothek an einem PC zu verbinden, der mpicxx Compiler verwendet.

Ich kann jedoch keinen Hinweis finden, dass eine solche Bereitstellung möglich ist. Im Gegenteil, die meisten Beispiele von so getrennter Sammlung genannt require CUDA installed for the final step (Verknüpfung CUDA-fähige statische Bibliothek mit MPI-aware Hauptprogramm):

$ g++ main.cpp -L. -lgpu -o main -L/usr/local/cuda/lib64 -lcudart 

So ist es möglich, ein Programm oder eine Bibliothek zu kompilieren, die CUDA verwendet und hat keine Abhängigkeiten wie installierte Treiber und CUDA-Bibliotheken?

+0

kurze Antwort ist: Sie müssen Laufzeit-DLLs zusammen mit Ihrer ausführbaren Datei –

+0

bereitstellen seltsamerweise ein Cluster von Cuda-Computing-Ressourcen hat nicht Cuda-Laufzeit bereits bereitgestellt. – user3528438

+0

@RegisPortalez danke für Ihre Antwort. Zumindest muss ich keine neuen Videotreiber auf den Zielrechnern installieren. dlls mit fehlenden Abhängigkeiten reichen aus. Habe ich es richtig gesagt? – Vovanrock2002

Antwort

2

alles sollte funktionieren, wenn Sie Cuda Runtime dynamische Bibliotheken zusammen mit Ihrer ausführbaren Datei bereitstellen.

Stellen Sie gleichzeitig sicher, dass auf dem Zielcomputer ein Treiber installiert ist, der neu genug ist.

+0

Ich möchte nur hinzufügen, dass Sie sicherstellen müssen, dass der Zielcomputer über eine ausreichende Rechenleistung verfügt, wenn Ihre NVCC-Optionen eine minimale erforderliche Rechenleistung angeben. – Taro

Verwandte Themen