• Members 28 posts
    2026年9月30日 16:57

    最近在用C500+RDMA+GPUDirect,驱动版本:
    +---------------------------------------------------------------------------------+
    | MX-SMI 2.3.4 Kernel Mode Driver Version: 3.9.25 |
    | MACA Version: 3.8.0.23 BIOS Version: 1.35.4.0 |
    遇到以下问题,咨询一下沐曦官方的老师:
    1. L2 的位置:网卡经 PCIe P2P 写入 C500 显存(比如 ibv_reg_dmabuf_mr 注册的 buffer)时,这笔写入是否经过 GPU 的 L2?L2 是在内存一侧(所有访问方共享),还是在 SM 一侧?
    2. 用默认分配时会不会读到旧数据:如果用 mcExtMallocWithFlags(…, 0x0)(默认、可缓存)分配接收缓冲区,SM 之前读过同一地址,之后网卡又写入新数据,SM 再读时有没有可能拿到 L2 里的旧行?如果有,推荐的做法是什么,比如某个失效接口或者 acquire 语义的 fence?
    3. Finegrained 的缓存语义:mcDeviceMallocFinegrained(0x1)分配的内存,SM 读取时会不会被缓存在 L2?我们测到,同一个 GEMM 如果 A 放在 0x1 内存里,重复读取的成本高约 57%。
    4. 写入长期留在 L2:C500 上 SM 写入后留在 L2 的脏行,会不会一直驻留,直到被写入挤出?只读访问能不能把它们挤出?我们观察到的现象是:写入约 1–5 MB 后,之后几毫秒内访存密集的 kernel 都会慢 5–20%;各种存储缓存提示(.cs / .wt / .cg / evict_first)以及后续 32 MB 的只读访问都消除不了。
    mcDeviceCacheEarlyWriteBack 的作用:这个设备配置具体改变什么?进程退出后会不会保留?

  • arrow_forward

    Thread has been moved from 产品&运维.