- TensorFlow Machine Learning Projects
- Ankit Jain Armando Fandango Amita Kapoor
- 231字
- 2021-06-10 19:15:30
GPU memory handling
At the start of the TensorFlow session, by default, a session grabs all of the GPU memory, even if the operations and variables are placed only on one GPU in a multi-GPU system. If another session starts execution at the same time, it will receive an out-of-memory error. This can be solved in multiple ways:
- For multi-GPU systems, set the environment variable CUDA_VISIBLE_DEVICES=<list of device idx>:
os.environ['CUDA_VISIBLE_DEVICES']='0'
The code that's executed after this setting will be able to grab all of the memory of the visible GPU.
- For letting the session grab a part of the memory of the GPU, use the config option per_process_gpu_memory_fraction to allocate a percentage of the memory:
config.gpu_options.per_process_gpu_memory_fraction = 0.5
This will allocate 50% of the memory in all of the GPU devices.
- By combining both of the preceding strategies, you can make only a certain percentage, alongside just some of the GPU, visible to the process.
- Limit the TensorFlow process to grab only the minimum required memory at the start of the process. As the process executes further, set a config option to allow for the growth of this memory:
config.gpu_options.allow_growth = True
This option only allows for the allocated memory to grow, so the memory is never released back.
To find out more about learning techniques for distributing computation across multiple compute devices, refer to our book, Mastering TensorFlow.
推薦閱讀
- 大數據導論:思維、技術與應用
- Julia 1.0 Programming
- Data Wrangling with Python
- 21天學通Java
- 運動控制器與交流伺服系統的調試和應用
- Implementing AWS:Design,Build,and Manage your Infrastructure
- 大數據驅動的機械裝備智能運維理論及應用
- 基于Xilinx ISE的FPAG/CPLD設計與應用
- 大數據技術基礎:基于Hadoop與Spark
- HBase Essentials
- MPC5554/5553微處理器揭秘
- 計算機應用基礎學習指導與練習(Windows XP+Office 2003)
- JSP網絡開發入門與實踐
- AVR單片機C語言程序設計實例精粹
- 單片機硬件接口電路及實例解析