【亲测免费】 NVIDIA's GDRCopy 开源项目下载与安装教程
1. 项目介绍
GDRCopy 是一个基于 NVIDIA GPUDirect RDMA 技术设计的快速GPU内存复制库,专为追求低延迟需求而生。通过利用GPUDirect RDMA的功能,该库能够创建用户空间上的GPU内存映射,让这些映射后的内存仿佛普通主机内存一样被操作(虽然存在一些注意事项)。GDRCopy的特点是极低的开销,因为它是CPU驱动的,通常情况下,cudaMemcpy可能产生约6-7微秒的开销。此外,它支持高速H到D(Host到Device)数据传输,速率可达6-8GB/s(依赖于Ivy Bridge Xeon处理器,并受NUMA效应影响),但D到H(Device到Host)相对较慢,由于GPU BAR无法预读,导致不能生成突发读取事务。
2. 项目下载位置
项目托管在GitHub上,你可以直接访问以下链接进行下载:
[GitHub - NVIDIA/gdrcopy](https://github.com/NVIDIA/gdrcopy.git)
要克隆此项目到本地,可以使用Git命令行工具执行:
git clone https://github.com/NVIDIA/gdrcopy.git
3. 项目安装环境配置
环境要求:
- 硬件: 需要NVIDIA数据中心GPU或RTX GPU(基于Kepler或更新架构)。
- 操作系统: 支持Linux x86_64, ppc64le, arm64架构,推荐RHEL8、RHEL9、Ubuntu20.04、Ubuntu22.04、SLE-15等。
- 软件: 必须有CUDA >= 6.0,GPU驱动 >= 418.40(ppc64le)或 >= 331.14(其他平台),DKMS用于动态内核模块,以及必要的编译工具链。
示例图片配置:
由于Markdown文本格式限制,无法直接插入图片,但实际操作中,你应该配置好如下的开发环境:
- 安装
dkms,build-essential,cuda等包的屏幕截图; - 确认CUDA版本和GPU驱动正确安装的终端输出示例;
手动步骤包括:
- 安装必要软件包 (
sudo apt-get install cuda dkms build-essential ...) 或在RHEL/SLES使用相应的包管理器安装。 - 确保CUDA和驱动已安装 (
nvidia-smi命令输出验证)。
4. 项目安装方式
从源代码安装
-
获取源码: 已在步骤2中完成。
-
环境设置: 根据系统类型,配置CUDA路径并准备编译环境。
-
编译与安装: 执行以下命令以编译和安装GDRCopy(替换
<install-to-this-location>和<cuda-install-top-dir>为实际路径):make prefix=<install-to-this-location> CUDA=<cuda-install-top-dir> all install -
加载模块: 使用提供的脚本加载内核模块:
sudo ./insmod.sh
通过RPM或DEB包安装
对于Red Hat系和Debian系系统,可参照项目文档构建并安装对应的RPM或DEB包。
5. 项目处理脚本
GDRCopy提供了多个测试脚本和应用程序来评估性能和正确性,例如:
- gdrcopy_sanity: 运行单元测试和基本功能验证。
- gdrcopy_copybw: 计算特定缓冲区大小的读写带宽。
- gdrcopy_copylat: 测量不同大小缓冲区的读写复制延迟。
- 更多应用可以在安装后通过运行对应的脚本进行测试。
为了运行这些脚本,你需要确保GDRCopy已经正确安装,并且系统中环境配置无误。例如,执行单元测试的命令是:
./gdrcopy_sanity
以上步骤指导你完成NVIDIA GDRCopy的下载、环境配置及安装过程。记得根据自己的操作系统和具体环境调整相应指令。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C0134
let_datasetLET数据集 基于全尺寸人形机器人 Kuavo 4 Pro 采集,涵盖多场景、多类型操作的真实世界多任务数据。面向机器人操作、移动与交互任务,支持真实环境下的可扩展机器人学习00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python059
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
AgentCPM-ReportAgentCPM-Report是由THUNLP、中国人民大学RUCBM和ModelBest联合开发的开源大语言模型智能体。它基于MiniCPM4.1 80亿参数基座模型构建,接收用户指令作为输入,可自主生成长篇报告。Python00