ArrayFire CPU,是否会由于GC延迟而耗尽内存?

时间:2019-07-09 18:29:53

标签: out-of-memory arrayfire

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

这是真的吗?

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

分配主机内存(而不是设备内存)时遇到内存问题,但我仍然试图找出问题所在。同时,GC是否确实存在于CPU模式下,并且如果触发时间太晚,是否会导致内存不足?我该如何解决?

谢谢

1 个答案:

答案 0 :(得分:4)

ArrayFire将缓存分配并将其重新用于以后的操作。根据某些启发式方法或分配失败的情况,ArrayFire将调用垃圾收集器。您可以通过调用deviceGC来手动运行垃圾收集器,这将释放未锁定(未使用)的内存。