当前位置: 首页 > news >正文

Linux 系统新玩法:用 NVIDIA GPU 显存作交换空间,提升可寻址内存

突发:GitHub平台功能与项目介绍

GitHub平台提供了丰富的功能和多样的解决方案,涵盖AI代码创作、开发者工作流、应用程序安全等多个方面。

平台功能

在AI代码创作方面,有GitHub Copilot可借助AI编写更优质代码,GitHub Copilot应用能从问题到合并实现直接代理,MCP注册表新增集成外部工具。开发者工作流包括Actions可自动化任何工作流,Codespaces提供即时开发环境,Issues用于规划和跟踪工作,代码审查可管理代码更改。应用程序安全方面,GitHub高级安全可发现并修复漏洞,代码安全能在构建过程中保障代码安全,密钥保护可防患于未然,阻止信息泄露。探索板块可了解为何选择GitHub,查看文档、博客、更新日志和市场等。

解决方案

按公司规模划分,有企业版、中小型团队版、初创企业版和非营利组织版。按用例划分,包括应用现代化、DevSecOps、DevOps、CI/CD等,还可查看所有用例。按行业划分,涉及医疗保健、金融服务、制造业、政府机构等,也能查看所有行业。

资源

按主题探索有AI、软件开发、DevOps、安全等主题,还可查看所有主题。按类型探索包括客户案例、活动与网络研讨会、电子书与报告、商业洞察、GitHub技能等。支持与服务方面,有文档、客户支持、社区论坛、信任中心和合作伙伴等。

开源项目

社区方面有GitHub Sponsors可资助开源开发者。项目包括安全实验室、维护者社区、加速器、GitHub Stars和存档项目。仓库有主题、热门趋势和集合等。

企业版

企业解决方案有由AI驱动的开发者平台。可用附加组件包括GitHub高级安全的企业级安全功能、Copilot for Business的企业级AI功能和高级支持的企业级24/7支持。

nbd - vram项目介绍

nbd - vram项目可在Linux系统中,将NVIDIA GPU的显存(VRAM)用作交换空间,专为内存焊接且无法升级的笔记本电脑设计。

测试环境与效果

该项目已在RTX 3070笔记本电脑(GA104M,16GB物理内存,8GB显存),驱动版本580.159.03,内核版本6.17,Pop!_OS系统中测试,分配7GB用于交换空间,最终包括zram和SSD交换空间在内约46GB,可寻址内存增加了两倍。溢出顺序为先填满RAM,然后显存吸收溢出数据(速度快,通过PCIe),接着zram压缩剩余数据(使用CPU),只有在其他空间都耗尽时才使用SSD。

工作原理

一个小型守护进程通过CUDA驱动API分配显存,然后使用NBD(网络块设备)协议通过Unix套接字将其作为块设备提供服务。内核内置的 `nbd` 驱动连接到该设备,并将其暴露为 `/dev/nbdX`,之后它就是一个普通的交换设备。数据路径为:内核交换子系统 - /dev/nbdX - nbd内核驱动 - Unix套接字 - nbd - vram守护进程 - cuMemcpyHtoD/DtoH - GPU显存。此方法无需编写或维护内核模块,也无需使用NVIDIA内核符号,即使内核和驱动更新,也无需重新构建任何内容。

为何不使用NVIDIA P2P API

“显而易见”的方法是使用 `nvidia_p2p_get_pages_persistent`,它可以将显存页面固定在BAR1中,以便CPU可以通过 `ioremap_wc` 直接访问。但所有尝试此方法的现有项目都遇到了同样的问题:NVIDIA驱动在消费级GeForce GPU上返回 `EINVAL`。无论是持久还是非持久变体,以及两种标志值,情况都是如此。此功能仅在Quadro/数据中心SKU的RM级别可用,与驱动版本无关。另一种方法是不通过P2P API直接使用 `ioremap_wc` 映射BAR1物理地址,但这也不起作用。GPU的内部页表仅映射了约16 MiB的BAR1(仅显示帧缓冲区)。从其他部分读取数据返回零。`mkswap` 似乎成功了,但 `swapon` 失败,因为交换头实际上并不存在。NBD方法避免了所有这些问题。`cuMemcpyHtoD` 和 `cuMemcpyDtoH` 可以在任何支持CUDA的GPU上使用,无需任何特殊权限。

要求

该项目要求支持CUDA的NVIDIA GPU(任何消费级RTX/GTX显卡),包含 `libcuda.so.1` 的NVIDIA驱动(无需CUDA工具包),Linux内核3.0及以上版本(nbd模块,大多数发行版已内置),`nbd - client` 包,`gcc`、`make`。

安装

安装步骤为:git clone https://github.com/c0dejedi/nbd - vram;cd nbd - vram;sudo ./install.sh;sudo systemctl start vram - swap - nbd。验证命令为:swapon --show。安装时会启用该服务,因此每次启动时都会自动启动。

配置

编辑 `/etc/systemd/system/vram - swap - nbd.service`,可设置使用的显存大小和交换优先级。守护进程会先尝试请求的大小,如果GPU内存不足,则会以512 MiB为步长逐步减少。更改配置后,需运行 `sudo systemctl daemon - reload && sudo systemctl restart vram - swap - nbd`。

电源管理

安装程序在首次安装时会询问是否启用电源感知管理。如果启用,当拔掉电源(或电池电量低于阈值)时,服务会自动停止,电源恢复时会重新启动。手动执行 `systemctl stop` 始终有效,不会被覆盖。安装后若要更改设置,可编辑 `/etc/nbd - vram.conf`。更改将在下一次轮询(60秒内)生效,或者在下次插拔电源事件时立即生效。

冒烟测试

无需安装的冒烟测试命令为:sudo bash test - nbd.sh。此命令会分配显存,连接NBD设备,进行1 MiB的写入和回读检查,激活交换空间,然后打印拆除说明。如果测试实例正在运行,`install.sh` 会自动处理拆除操作。冒烟测试通过后,若要对整个分区进行压力测试,命令为:sudo bash test - fill.sh。此命令会用零填充整个显存分区,验证样本回读,然后在退出时自动恢复交换空间。

性能

通过 `test - fill.sh` 在RTX 3070笔记本电脑上进行测量(7 GiB顺序写入,4M块),顺序吞吐量约为1.3 GB/s,延迟低于NVMe,因为数据路径是通过PCIe连接到GPU,而非存储设备。对于已经使用zram的笔记本电脑,可将显存交换空间的优先级设置得更高,以便在数据溢出时先使用显存,再使用SSD。

卸载

卸载命令为:sudo bash uninstall.sh。

许可证与关于

该项目许可证为MIT - Sean Lobjoit (c0dejedi)。其功能是在Linux系统中,将NVIDIA GPU的显存用作交换空间,专为内存焊接且无法升级的笔记本电脑设计。

http://www.jsqmd.com/news/941202/

相关文章:

  • 保姆级教程:在Ubuntu 22.04上从源码编译FLEXPART-WRF(含依赖库避坑指南)
  • 聚丙烯阻燃剂技术解析与济南合规厂家选型参考 - 奔跑123
  • 别再死记硬背了!用Python+OpenCV手把手带你标定相机内参K矩阵(附完整代码)
  • 苏州客厅地毯品牌哪家专业
  • 开放维修数据标准 ORDS:助力小型电气和电子产品维修数据整合
  • Horseshoe先验在稀疏信号预测中的理论最优性与自适应应用
  • 2026年最新黄石市黄金回收铂金回收白银回收彩金回收解析:口碑排行前五门店筛选及避坑要点和联系方式推荐 - 亦辰小黄鸭
  • 放弃传统图传?用OpenIPC+WFB-NG+RTL8812AU打造百元级开源高清FPV方案实战
  • UE5 UMG性能优化实战:如何高效绘制实时更新的多曲线图表?
  • BetterJoy深度解析:让Switch手柄在Windows上获得完美XInput支持的技术方案
  • Gmail语言模型功能“太热情”,用户不堪其扰告别16年“老伙伴”
  • 新手福音:在快马平台通过ai生成代码学习python基础
  • 从‘一致对’到代码实现:手把手拆解Kendall‘s Tau,理解非参数统计的灵魂
  • 国内头部猎头公司实测对比:哪家更适配中高端求职 - 得赢
  • Speller100:零样本多语言拼写纠错系统的原理与工程实践
  • 2026年最新惠州市黄金回收铂金回收白银回收彩金回收解析:口碑排行前五门店筛选及避坑要点和联系方式推荐 - 亦辰小黄鸭
  • 智慧树自动刷课插件:5分钟实现视频学习自动化完整指南
  • Java 应用 CPU 过高排查全流程
  • AI 简历到底能不能过企业 ATS 系统?实测对比
  • 2026石家庄名包回收店铺多店横评,教你轻松选出高性价比渠道 - 奢侈品回收测评
  • 【真实经验分享】Oracle Data Guard 化身分裂之谜:一个 VALID_FOR 参数引发的级联灾难
  • 404 Media 起诉 ICE,索要 200 万美元间谍软件合同文件,获大量涂黑内容
  • 《First Article》:工业 CT 扫描剖析产品,揭示设计、质量与材料问题
  • T113-S3上给Tina5.0系统加装USB WiFi(RTL8188FU)的保姆级避坑指南
  • C# WinForms工程直连S7-1200:Sharp7实现浮点数与布尔量双向读写(含完整通信封装)
  • 怀化市全品类贵金属黄金回收白银回收门店推荐 2026年最新黄金回收门店口碑排行榜+联系方式 - 前途无量YY
  • 三分钟实战:让GitHub说中文的完整解决方案
  • WeChatPad:突破微信设备限制的技术方案
  • 线上辅导班系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • 不止是格式:Pattern Recognition投稿中那些没人告诉你的‘潜规则’与编辑视角