问题是什么?
首先,我必须承认,官方不支持在780m GPU上运行。然而,对于某些场景,它比纯CPU表现更好,而在其他场景中,可能更适合在GPU上运行以提高能效。
这也可能对支持更大GPU的版本有关联,正如补丁说明所提到的:
The solution is MI300A approach, i.e., let VRAM allocations go to GTT.
Then device and host can flexibly and effectively share memory resource.
然而,我不得不承认,最后一部分只是我的猜测。
无论如何,6.10
内核发布候选版已经改进了GPU内存分配,现在允许计算工作负载利用GTT
以及VRAM
,而不仅仅是VRAM
。更多详细信息请参见here。我相信this是相关的提交。
实际上,这意味着在具有64 GB内存的笔记本电脑上,我可以尝试使用更大的模型。在0.1.45
之前,我在日志中看到了以下内容:
level=INFO source=types.go:71 msg="inference compute" id=0 library=rocm compute=gfx1103 driver=0.0 name=1002:15bf total="27.3 GiB" available="27.3 GiB"
虽然这可能仍然不到实际可用的内存数量:
kernel: [drm] amdgpu: 8192M of VRAM memory ready
kernel: [drm] amdgpu: 27940M of GTT memory ready.
但它仍然允许处理大于8 GB且在780m GPU上仍具有合理性能的模型。
在未来能够继续使用额外内存将是很好的。理想情况下,能够访问VRAM
+ GTT
(例如36 GB),那就更好了。
我怀疑this commit引入了一些更改,用于计算可用内存。从0.1.45
开始,我在日志中看到了以下内容:
level=INFO source=types.go:98 msg="inference compute" id=0 library=rocm compute=gfx1103 driver=0.0 name=1002:15bf total="8.0 GiB" available="6.4 GiB"
新的可用内存计算方法更好地确定了实际可用的空闲内存,但理想情况下,如果能够将其与VRAM
+ GTT
一起运行计算就更好了。
操作系统
架构(6.10.0-rc6-1-mainline) + docker容器
GPU
AMD
CPU
AMD
Ollama版本
0.1.48-rocm
1条答案
按热度按时间uemypmqf1#
在最新的Arch上,也可以使用Radeon 680m重现此问题。