Выделение памяти графического процессора для массивов

У меня есть сеанс tenorflow, запущенный параллельно с этим кодовым кодом. Я выделил 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 = ** операций с массивами **'. Я хочу использовать выделенное пространство 2 ГБ для хранения моего массивного массива, cp_arr. Заранее спасибо.

1 ответ

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

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

Другие вопросы по тегам