Я хочу знать, сколько видеопамяти графического процессора будет занимать каждая строка программы. Когда я ввожу изображение 224x224x3 в VGG16, общее количество параметров составляет 138 364 968. Каждый параметр может хранить dtype float32, тогда общее использование видеопамяти при запуске кода model.to("cuda") должно составлять 138364986*4(байт)/1024**2=527,820534 МБ.< /p>
Когда я использую этот код:
Код: Выделить всё
def get_gpu_memory_usage():
result = subprocess.check_output(['nvidia-smi', '--query-gpu=memory.used', '--format=csv,noheader,nounits'])
return int(result.decode().strip())
Перехватите каждую строку следующим образом:
Код: Выделить всё
model.to(device)
line1_memory = get_gpu_memory_usage() - initial_gpu_memory
line_memory_usage.append(line1_memory)
Эта строка model.to(device) потребляет 1125 МБ видеопамяти. Я думаю, что он должен потреблять 527,820534 МБ. Я что-то пропустил?
Подробнее здесь:
https://stackoverflow.com/questions/781 ... vram-usage