Un flux CUDA (torch.cuda.Stream) reprezintă o secvență liniară de operații executate în ordine pe GPU. Fluxuri diferite pot rula comenzi în mod concurent, permițând suprapunerea transferurilor de memorie cu calculele tensoriale.
CUDA Graphs merg un pas mai departe: capturează o secvență întreagă de kerneluri într-un graf static unic, permițând rularea repetată a zeci de operații printr-o singură instrucțiune hardware de lansare:
import torch
# Flux dedicat de captură
stream = torch.cuda.Stream()
torch.cuda.set_stream(stream)
# Încălzire prealabilă (Warmup)
static_input = torch.randn(32, 128, device="cuda")
model = MyModel().cuda()
for _ in range(3):
static_output = model(static_input)
# Înregistrare graf CUDA
g = torch.cuda.CUDAGraph()
with torch.cuda.graph(g):
static_output = model(static_input)
# Replay ultra-rapid în bucla de inferență
g.replay()
CUDA Graphs reduc latența de lansare de la zeci de microsecunde per kernel la doar câțiva nanosecunde, fiind indispensabile în serverele de producție.
Întrebări & Exemple practice:
Execuție Concurentă cu CUDA Streams și CUDA GraphsAi o întrebare despre Execuție Concurentă cu CUDA Streams și CUDA Graphs sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.