Was würde passieren, wenn vier konkurrierende CUDA-Anwendungen um Ressourcen in einer einzigen GPU konkurrieren, damit sie die Arbeit auf die Grafikkarte auslagern können ?. Die Cuda Programming Guide 3.1 erwähnt, dass es bestimmte Methoden sind, die asynchron sind:Parallelität, 4 CUDA-Anwendungen konkurrieren um GPU-Ressourcen
- Kernel startet
- Gerätegerätespeicher kopiert
- Host-Gerätespeicher Kopien eines Speicherblocks von 64 KB oder weniger
- Speicherkopien von Funktionen durchgeführt, die mit Async versehen sind, sind
- Speicher set-Funktion ruft
Es wird auch erwähnt, dass Geräte mit Compute-Fähigkeit 2.0 in der Lage sind, mehrere Kernel gleichzeitig auszuführen, solange die Kernel zum selben Kontext gehören.
Gilt diese Art von Nebenläufigkeit nur für Streams innerhalb einer einzigen Cuda-Anwendungen, aber nicht möglich, wenn es verschiedene Anwendungen gibt, die GPU-Ressourcen anfordern?
Bedeutet dies, dass die gleichzeitige Unterstützung nur innerhalb von 1 Anwendung (Kontext ???) verfügbar ist und dass die 4 Anwendungen nur gleichzeitig ausgeführt werden, wie die Methoden durch Kontextwechsel in der CPU überlagert werden, aber die 4 Anwendungen müssen warten, bis die GPU von den anderen Anwendungen freigegeben wird? (d. h. Kernelstart von app4 wartet, bis ein Kernelstart von app1 beendet wird.)
Wenn dies der Fall ist, wie können diese 4 Anwendungen auf GPU-Ressourcen zugreifen, ohne lange Wartezeiten zu erleiden?
Hallo Tom. Ich arbeite an einigen Cuda-Projekten und suche nach Partnern. Hast du Lust auf Zusammenarbeit? Momentan arbeite ich an der Integration von ublas und cublas – Anycorn