首页 > 解决方案 > ArrayFire CPU,它会因为迟到的GC而耗尽内存吗?

问题描述

我不完全确定 ArrayFire 在使用 CPU 模式时如何管理 RAM 上的内存。根据任务管理器的观察,RAM上的设备内存似乎没有立即释放,看起来像是有一个GC阶段。

这是真的?

如果我想在 GC 没有释放设备内存 (RAM) 的情况下分配大量 RAM,会发生什么?我会用完 RAM 吗?还是会以某种方式触发 GC?

我在分配主机内存(不是设备内存)时遇到了内存问题,我仍然试图找出问题所在。同时,GC是否真的存在于CPU模式,如果GC触发得太晚会导致内存不足吗?我应该如何解决这个问题?

谢谢

标签: out-of-memoryarrayfire

解决方案


ArrayFire 将缓存分配并在以后的操作中重用它们。基于一些启发式或分配失败,ArrayFire 将调用垃圾收集器。您可以通过调用deviceGC来手动运行垃圾收集器,这将释放未锁定(未使用)的内存。


推荐阅读