Моя модель имеет размер около 2,4 ГБ. На этапе вывода я хочу загрузить модель методом многопроцессорной обработки в каждом графическом процессоре. Это означает, что я пытаюсь сделать два процесса в одном графическом процессоре, и каждый загружает модель.
После того, как я выполню настройку каждого сеанса, каждый сеанс получает около 5 ГБ памяти, но я все еще встречаю «с устройства: CUDA_ERROR_OUT_OF_MEMORY» «Мне интересно» Обращаюсь за помощью
Информация о GPU:
[search @ qrwt01 / home / s / apps / qtfserverd / bin] $ nvidia-smi+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.26 Driver Version: 375.26 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K80 Off | 0000:08:00.0 Off | 0 |
| N/A 48C P0 61W / 149W | 11366MiB / 11439MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla K80 Off | 0000:09:00.0 Off | 0 |
| N/A 32C P0 72W / 149W | 11359MiB / 11439MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 33056 C ...ome/s/apps/qtfserverd/etc/qtfserverd.conf 5823MiB |
| 0 33057 C ...ome/s/apps/qtfserverd/etc/qtfserverd.conf 5515MiB |
| 1 33058 C ...ome/s/apps/qtfserverd/etc/qtfserverd.conf 5823MiB |
| 1 33059 C ...ome/s/apps/qtfserverd/etc/qtfserverd.conf 5516MiB |
+-----------------------------------------------------------------------------+
Конфигурация сеанса:
void* create_session(void* graph, std::string& checkpoint_path,
int intra_op_threads, int inter_op_threads, std::string& device_list) {
Session* session = NULL;
SessionOptions sess_opts;
//int NUM_THREADS = 8;
if (intra_op_threads > 0) {
sess_opts.config.set_intra_op_parallelism_threads(intra_op_threads);
}
if (inter_op_threads > 0) {
sess_opts.config.set_inter_op_parallelism_threads(inter_op_threads);
}
sess_opts.config.set_allow_soft_placement(true);
sess_opts.config.mutable_gpu_options()->set_visible_device_list(device_list);
sess_opts.config.mutable_gpu_options()->set_allocator_type("BFC");
sess_opts.config.mutable_gpu_options()->set_per_process_gpu_memory_fraction(0.5);
sess_opts.config.mutable_gpu_options()->set_allow_growth(true);
Status status = NewSession(sess_opts, &session);
if (!status.ok()) {
fprintf(stderr, "Create Session Failed %s\n", status.ToString().c_str());
return NULL;
}
Информация об ошибке
загрузить /home/search/tensorflow/deploy_combine.model.meta график в / gpu: 1 успех
2017-09-14 21: 42: 31.188212: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 965] Найдено устройство 0 со свойствами:
имя: Tesla K80 Major: 3 Minor: 7 MemoryClockRate (ГГц): 0,8235
pciBusID: 0000: 09: 00.0
общая память: 11,17 ГБ бесплатная память: 11,05 ГБ
2017-09-14 21: 42: 31.188260: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 1055] Создание устройства TensorFlow (/ устройство: GPU: 0) -> (устройство: 1, имя: Tesla K80, pci идентификатор шины: 0000: 09: 00.0, вычислительная мощность: 3,7)
qss_switch: 1, lstm_switch: 1
qss_switch: 1, lstm_switch: 1
2017-09-14 21: 42: 33.826598: E tenorflow / stream_executor / cuda / cuda_driver.cc: 936] не удалось выделить 1,58 ГБ (1701773312 байт) из устройства: CUDA_ERROR_OUT_OF_MEMORY
2017-09-14 21: 42: 33.838694: E tenorflow / stream_executor / cuda / cuda_driver.cc: 936] не удалось выделить 1,43 ГБ (1531596032 байта) из устройства: CUDA_ERROR_OUT_OF_MEMORY
2017-09-14 21: 42: 33.893832: E tenorflow / stream_executor / cuda / cuda_driver.cc: 936] не удалось выделить 439,82 МБ (461180672 байта) из устройства: CUDA_ERROR_OUT_OF_MEMORY
2017-09-14 21: 42: 33.903917: E tenorflow / stream_executor / cuda / cuda_driver.cc: 936] не удалось выделить 439,82 МБ (461180672 байта) из устройства: CUDA_ERROR_OUT_OF_MEMORY
2017-09-14 21: 42: 33.913843: E tenorflow / stream_executor / cuda / cuda_driver.cc: 936] не удалось выделить 439,82 МБ (461180672 байта) из устройства: CUDA_ERROR_OUT_OF_MEMORY
2017-09-14 21: 42: 33.924008: E tenorflow / stream_executor / cuda / cuda_driver.cc: 936] не удалось выделить 439,82 МБ (461180672 байта) из устройства: CUDA_ERROR_OUT_OF_MEMORY
2017-09-14 21: 42: 33.935385: E tenorflow / stream_executor / cuda / cuda_driver.cc: 936] не удалось выделить 439,82 МБ (461180672 байта) из устройства: CUDA_ERROR_OUT_OF_MEMORY
2017-09-14 21: 42: 33.946556: E tenorflow / stream_executor / cuda / cuda_driver.cc: 936] не удалось выделить 439,82 МБ (461180672 байта) из устройства: CUDA_ERROR_OUT_OF_MEMORY
2017-09-14 21: 42: 33.956340: E tenorflow / stream_executor / cuda / cuda_driver.
Попробуйте уменьшить параметры вашей операции или выполнить вычисления в пакетном режиме, потому что ошибка указывает на то, что все ресурсы графического процессора были исчерпаны.
Других решений пока нет …