0
我有一个多线程程序,它应该在6个GPU设备上运行。 我想在每个设备上打开6个流,以便在我的程序的整个生命周期内(共36个)重复使用。我使用cudaStreamCreate()cublasCreate()cublasSetStream()来创建每个流和句柄。 我也使用GPU内存监视器来查看每个句柄的内存使用情况。但是,当我查看每个设备上的GPU内存使用情况时,它只会在第一个流创建时增长,并且在我创建的其余流中不会改变。一个GPU设备中的多个流
据我所知,我想使用的流量没有任何限制。 但我不明白为什么句柄和流的内存使用量不显示在GPU内存使用情况。
在每个设备上创建第一个流可能会初始化该设备的CUDA上下文。这将涉及显着/明显的内存使用量。每个设备上的附加流创建不涉及此上下文初始化,因此相比之下,额外的内存使用量很小(或为零)。 –