Выделение памяти графического процессора для массивов - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть сеанс тензорного потока, работающий параллельно с этим кодом.Я выделил 8 ГБ из 16 ГБ моей общей памяти GPU для сеанса тензорного потока.Теперь я хочу выделить 2 ГБ из оставшихся 7 ГБ для выполнения этого кодового кода.Фактический код более сложен, чем пример кода, который я предоставил.В моем реальном коде cp_arr является результатом ряда операций с массивами.Но я хочу, чтобы cp_array был выделен в указанном 2 Гб пространстве моей памяти GPU.Помните, что освобождение ресурсов GPU путем закрытия сеанса тензорного потока не вариант.

Это код, который я использую.

memory = cp.cuda.Memory(2048000000)
ptr = cp.cuda.MemoryPointer(memory,0)
cp_arr = cp.ndarray(shape=(30,1080,1920,3),memptr=ptr)
cp_arr = ** Array operations **

В этом случае дополнительная память объемом 1,7 ГБ былавыделяется при выполнении 'cp_arr = ** Array операции **'.Я хочу использовать выделенное пространство в 2 ГБ для хранения моего массивного массива cp_arr.Заранее спасибо.

1 Ответ

0 голосов
/ 26 ноября 2018

Распределение памяти в CuPy аналогично NumPy.

Как и в NumPy, некоторые функции поддерживают аргумент out, который можно использовать для хранения результатов вычислений в указанном массиве.например, https://docs -cupy.chainer.org / en / stable / reference / Генерируемый / cupy.dot.html

...