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

【PyTorch】请问,Reproducibility中的‘:4096:8‘是什么呀?

ChatGPT-o3-web

":4096:8" 是给 cuBLAS (NVIDIA 的 GPU 线性代数库)指定“工作区(workspace)配额”的一段简写。它出现在环境变量
CUBLAS_WORKSPACE_CONFIG 里,格式是 :[SIZE]:[COUNT]: (docs.pytorch.org)

字段含义这例子里
SIZE每块工作区的大小(以 KiB 为单位;1 KiB ≈ 1024 字节)4096 → 4096 KiB = 4 MiB
COUNT同一条 CUDA 流最多可以同时用到的工作区块数8
:(前导冒号)只是语法要求,让 cuBLAS 正确解析——

所以 ":4096:8" 告诉 cuBLAS:

“给每个 CUDA 流准备 8 块、每块 4 MiB 的内部缓冲区,总共大约占 32 MiB GPU 显存。”


为什么 PyTorch 文档会让你设置它?

  • 可重复(确定性)运算
    当你在 PyTorch 里执行

    torch.use_deterministic_algorithms(True)
    

    而你的 GPU 驱动 ≥ CUDA 10.2 时,一些 cuBLAS 算子在多条流并行时仍然可能用到随机大小的工作区,进而导致“同一代码两次运行结果略有不同”。把 CUBLAS_WORKSPACE_CONFIG 设为 :4096:8:16:8 可强制 cuBLAS 走一套“可重播(replayable)”的固定路径,从而保证完全一致的输出。(docs.nvidia.com)

  • 性能 vs. 显存占用

    • :16:8 只分配极小(16 KiB)的缓冲区——显存省、但可能慢;
    • :4096:8 给了 cuBLAS 充足的 4 MiB 工作区——显存多用一点(PyTorch 文档粗略说“大约 +24 MiB”),一般跑得更快。(docs.nvidia.com)

一句话记住
CUBLAS_WORKSPACE_CONFIG=:4096:8 = “8 × 4 MiB 工作区,换取多流也能保证结果可复现且速度不错”。

相关文章:

  • 【学习笔记】锁+死锁+gdb调试死锁
  • FPGA基础 -- Verilog 的值变转储文件(VCD:Value Change Dump)
  • 准备开始适配高德Flutter的鸿蒙版了
  • Android Java语言转Kotlin语言学习指导实用攻略
  • uni-app项目实战笔记17--获取系统信息getSystemInfo状态栏和胶囊按钮
  • 博士,超28岁,出局!
  • 使用 Python 抓取亚马逊产品数据: 分步指南
  • 下载链接记录
  • 数据分析和可视化:Py爬虫-XPath解析章节要点总结
  • ESP32-HTML-08
  • 在 macOS 上部署 Akash Network 的完整 Shell 脚本解决方案
  • STM32[笔记]--开发环境的安装
  • python之使用cv2.matchTemplate识别缺口滑块验证码---实现最佳图像匹配
  • 让大模型“更懂人话”:对齐训练(RLHF DPO)全流程实战解析
  • 无人机不再“盲飞”!用Python搞定实时目标识别与跟踪
  • Python Minio库连接和操作Minio数据库
  • 局域网文件共享及检索系统
  • postgresql 函数调试
  • 第1章,[标签 Win32] :第一个 WIn32 程序,MessageBox 函数
  • 树莓派倾斜传感器实验指导书
  • 免费空间asp网站源码/百度竞价是seo还是sem
  • 出境旅游哪个网站做的好/网络推广的话术怎么说
  • 网站怎么在百度搜到/注册网站免费注册
  • 郑州品牌网站建设/做营销策划的公司
  • 制作企业网站页面的实训报告/国际财经新闻
  • 潍坊做网站建设/今日国际重大新闻