作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两台机器。每台机器上有多张特斯拉卡。每台机器上还有一张 InfiniBand 卡。我想通过 InfiniBand 在不同机器上的 GPU 卡之间进行通信。只需点对点单播就可以了。我当然想使用 GPUDirect RDMA,这样我就可以省去额外的复制操作。
我知道有一个 driver现在可以从 Mellanox 购买其 InfiniBand 卡。但它没有提供详细的开发指南。我也知道 OpenMPI 支持我要求的功能。但是 OpenMPI 对于这个简单的任务来说太重了,它不支持单个进程中的多个 GPU。
我想知道直接使用驱动程序进行通信是否可以获得任何帮助。代码示例,教程,任何东西都会很好。另外,如果有人可以帮助我在 OpenMPI 中找到处理此问题的代码,我将不胜感激。
最佳答案
要使 GPUDirect RDMA 正常工作,您需要安装以下内容:
void * gpu_buffer;
struct ibv_mr *mr;
const int size = 64*1024;
cudaMalloc(&gpu_buffer,size); // TODO: Check errors
mr = ibv_reg_mr(pd,gpu_buffer,size,IBV_ACCESS_LOCAL_WRITE|IBV_ACCESS_REMOTE_WRITE|IBV_ACCESS_REMOTE_READ);
关于cuda - 如何在 Infiniband 中使用 GPUDirect RDMA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31046386/
我是一名优秀的程序员,十分优秀!