Я разработал два приложения на основе tf на языке c ++, эти приложения служат библиотеками.В исполняемой программе вызывающей стороны library1 называется затем library2.При инициализации library1 доля памяти gpu устанавливается равной 0,5, выполняется некоторый вывод и сеанс закрывается.затем вызывается library2, доля памяти gpu установлена на 0.8, но настройка не может работать, распределение памяти gpu не изменилось.Обе библиотеки имеют одинаковый код инициализации, но различаются значения дроби
int XXXLib::init(double per_process_gpu_memory_fraction)
{
SessionOptions options;
ConfigProto* config = &options.config;
GPUOptions* gpu_options = config->mutable_gpu_options();
// for library1, fraction = 0.5; for library2, fraction = 0.8
gpu_options->set_per_process_gpu_memory_fraction(per_process_gpu_memory_fraction);
Status status = NewSession(options, &_session);
}
Кажется, что при вызове set_per_process_gpu_memory_fraction () память GPU в этом процессе фиксируется, даже новая еще одна Newsession (), исходное значение дроби
- Должны ли разные приложения (библиотеки) использовать разные сеансы?
- доля памяти gpu связана с сеансом или процессом?
- Как изменить дробьв другой сессии, но тот же процесс?
Некоторая информация env:
- Написал ли я собственный код?НЕТ
- ОС Платформа и распространение?Win10 Pro
- TensorFlow установлен с?Исходный код
- Версия TensorFlow?1.9
- CUDA / cuDNN версия?CUDA9.0, cudnn 7.05
- Модель GPU и память?GTX1080 с 8 ГБ памяти