如何使用NVIDIA K80?

时间:2016-01-25 09:57:33

标签: cuda

本机有4个NVIDIA K80设置,nvidia-smi的输出是4个卡的信息。他们的GPU ID为0,1,2,3。每个K80都有两种类型的GPU内存:FBBAR1,两者都有12 Gb。但是CUDA程序总是使用FB内存,剩下BAR1内存是免费的。当CUDA程序在每张卡中分配超过12 Gb GPU内存时,将发生Out of memory错误,但仍未使用BAR1内存。

如何在此设置中正确使用BAR1内存?

已更新 nvidia-smi的部分输出是

      Compute Mode:
         < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
    > Peer access from Tesla K80 (GPU0) -> Tesla K80 (GPU1) : Yes
    > Peer access from Tesla K80 (GPU0) -> Tesla K80 (GPU2) : No
    > Peer access from Tesla K80 (GPU0) -> Tesla K80 (GPU3) : No
    > Peer access from Tesla K80 (GPU1) -> Tesla K80 (GPU0) : Yes
    > Peer access from Tesla K80 (GPU1) -> Tesla K80 (GPU2) : No
    > Peer access from Tesla K80 (GPU1) -> Tesla K80 (GPU3) : No
    > Peer access from Tesla K80 (GPU2) -> Tesla K80 (GPU0) : No
    > Peer access from Tesla K80 (GPU2) -> Tesla K80 (GPU1) : No
    > Peer access from Tesla K80 (GPU2) -> Tesla K80 (GPU3) : Yes
    > Peer access from Tesla K80 (GPU3) -> Tesla K80 (GPU0) : No
    > Peer access from Tesla K80 (GPU3) -> Tesla K80 (GPU1) : No
    > Peer access from Tesla K80 (GPU3) -> Tesla K80 (GPU2) : Yes

1 个答案:

答案 0 :(得分:4)

来自nvidia-smi的手册页:

BAR1 Memory Usage
       BAR1 is used to map the FB (device memory) so that it can  be  directly
       accessed  by  the CPU or by 3rd party devices (peer-to-peer on the PCIe
       bus).

BAR1是一个虚拟地址空间,用于映射设备内存,以便从主机和/或其他启用DMA的设备进行DMA访问。 这意味着BAR1不是物理内存,您的K80(如规格中所述)每个GK210B GPU只有12 GB VRAM。当这个内存耗尽时,你真的不在记忆中。