Процессор ArrayFire, не хватит ли памяти из-за позднего GC? - PullRequest
1 голос
/ 09 июля 2019

Я не совсем уверен, как ArrayFire управляет памятью в оперативной памяти при использовании режима CPU. Судя по наблюдениям диспетчера задач, память устройства в оперативной памяти не освобождается сразу, похоже, что есть этап GC.

Это правда?

Что произойдет, если я захочу выделить много ОЗУ, когда GC не освободит память устройства (ОЗУ)? У меня не хватит оперативной памяти? Или это как-то вызывает GC?

У меня проблемы с памятью при распределении памяти хоста (не памяти устройства), и я все еще пытаюсь выяснить, в чем дело. Между тем, действительно ли GC существует в режиме ЦП и будет ли это вызывать нехватку памяти, если GC запускается слишком поздно? И как мне это исправить?

Спасибо

1 Ответ

4 голосов
/ 10 июля 2019

ArrayFire будет кэшировать выделения и повторно использовать их для последующих операций. Основываясь на некоторой эвристике или в случае неудачного выделения, ArrayFire вызовет сборщик мусора. Вы можете вручную запустить сборщик мусора, вызвав deviceGC , который освободит разблокированную (неиспользованную) память.

...