返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

ollama v0.12.9 发布:修复 CPU Only 系统性能回退并优化 GPU 与 ROCm 支持

[复制链接]
链载Ai 显示全部楼层 发表于 前天 22:33 |阅读模式 打印 上一主题 下一主题

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;color: rgb(63, 63, 63);">在这里插入图片描述

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">2025年11月2日,Ollama 发布了ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(15, 76, 129);">v0.12.9最新版本,本次更新主要针对 CPU-only 系统的性能回退问题进行了修复,同时在 GPU 设备检测、ROCm 错误处理以及 CUDA 内存分配优化方面进行了多项改进。以下是版本的详细变化说明。


ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0px 0.2em;color: rgb(255, 255, 255);background: rgb(15, 76, 129);">一、主要更新内容

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 8px;color: rgb(63, 63, 63);">1. 修复 CPU-only 系统性能回退问题

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">本次版本重点修复了在仅使用 CPU 的环境下出现的性能回退(regression)问题,确保在缺乏 GPU 的系统上依旧能够高效运行模型。


ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 8px;color: rgb(63, 63, 63);">2. GPU 设备检测路径优化

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">在 GPU 设备枚举的过程中,旧版本使用ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">LibOllamaPath作为库路径,本次更新统一改为ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">ml.LibOllamaPath,保证路径引用一致性,提升跨平台与多设备环境下的稳定性。
改动包括:

  • discover/runner.go中多处将LibOllamaPath替换为ml.LibOllamaPath
  • • 在 ROCm 目录查找、设备列表更新等逻辑中进行相同修改
  • ml/device.goLibraryPaths函数初始化时确保LibOllamaPath包含于 GPU 库路径列表中

这些改动有助于在 GPU 初始化阶段正确加载相关库文件,尤其是在混合 GPU 环境中(CUDA 与 ROCm 并存)。


3. ROCm 错误捕获与日志改进

新增对ROCm error的日志监控,llm/status.goerrorPrefixes列表中增加了"ROCm error"条目,使错误信息能够被及时捕获与输出,便于定位问题。


4. CUDA 内存操作优化

在 CUDA 后端实现中增加了对内存设置与拷贝操作的优化逻辑:

  • • 新增cudaMemsetAsyncReserve方法:在图预留(reserving_graph)阶段,避免执行不必要的cudaMemsetAsync操作,从而减少 GPU 内存分配压力
  • • 对cudaMeMCPyAsynccudaMemcpy2DAsynccudaMemsetAsync进行了宏替换,使其在预留阶段直接返回成功,而不执行实际操作
  • • 这一改动在ggml/src/ggml-cuda/common.cuhml/backend/ggml/ggml/src/ggml-cuda/common.cuh中均有实现,使 CUDA 后端在图优化阶段更高效

效果:

  • • 避免无意义的 GPU 内存清零操作
  • • 在模型装载与推理时减少延迟

5. 测试用例调整

integration/api_test.go中移除了冗余的TestAPIEmbeddings测试方法,此前该测试会调用嵌入 API(Embeddings),包括模型拉取与输出验证,此处删除主要是简化测试集,避免重复测试相同功能。


6. 文件结构调整与命名空间修改

discover/path.go文件更名为ml/path.go,并将包名从discover改为ml,归类到机器学习核心逻辑下,使模块结构更加清晰。


二、总结

ollama v0.12.9 在保持功能稳定的同时,解决了 CPU-only 系统的性能问题,并且显著优化了 GPU 设备检测、ROCm 错误日志及 CUDA 内存分配机制。这些改进对在多种硬件环境中部署 Ollama 的用户尤为重要:

  • CPU-only 用户可获得更好的推理性能
  • GPU 用户能够享受更稳定的设备检测与库加载机制
  • CUDA/ROCm 用户可减少初始化延迟、提升整体运行效率

·

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ