我正在尝试在TensorFlow中构建一个大型CNN,并打算在多GPU系统上运行它.我采用了"塔式"系统并为两个GPU分割批次,同时保留CPU上的变量和其他计算.我的系统有32GB的内存,但是当我运行我的代码时,我得到错误:
E tensorflow/stream_executor/cuda/cuda_driver.cc:924] failed to alloc 17179869184 bytes on host: CUDA_ERROR_OUT_OF_MEMORY
W ./tensorflow/core/common_runtime/gpu/pool_allocator.h:195] could not allocate pinned host memory of size: 17179869184
Killed
Run Code Online (Sandbox Code Playgroud)
如果我将CUDA设备隐藏到TensorFlow,我已经看到代码工作(虽然非常慢),因此它不使用cudaMallocHost()......
感谢您的时间.
Ali*_*asi 11
有一些选择:
1-减少批量
2-使用内存增长:
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config, ...)
Run Code Online (Sandbox Code Playgroud)
3-不要分配你的整个GPU内存(只有90%):
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.9
session = tf.Session(config=config, ...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9689 次 |
| 最近记录: |