Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

Yunzz's 코딩정리

[Tensorflow/Keras] GPU 현명하게 활용하기 본문

Coding/Python

[Tensorflow/Keras] GPU 현명하게 활용하기

Yunzz 2024. 2. 29. 10:12

Tensorflow에서는 GPU에 메모리 지정 방식을 바꿀 수 있는 2개의 옵션을 제공한다.

 

1) allow_growth

import tensorflow as tf

config = tf.ConfigProto()
config.gpu.options.allow_growth = True
session = tf.Session(config=config)
...

 

해당 옵션을 True로 설정할 경우, GPU 메모리가 전부 할당되지 않고 아주 적은 비율만 할당되어 시작해서 프로세스의 메모리 수요에 따라 증가하게 된다.

 

GPU 메모리를 모두 사용하고 있는 상황을 피할 때 유용한 옵션이며, 다만 증식만 가능하기 때문에 연산이 끝나고 메모리가 필요 없는 상황에서 할당 된 메모리를 판납하지 않으므로 메모리 파편화를 일으킬 수 있으니 주의할 것.

 

 

2) per_process_gpu_memory_fraction

import tensorflow as tf

config = tf.ConfigProto()
config.gpu.options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config)
...

 

해당 옵션은 원하는 GPU에 어느 비율로 메모리를 할당할지 먼저 결정하는 것으로, 프로세스가 어느정도의 메모리를 사용할지 알고 있다면 작업 전에 미리 지정하여 메모리를 아낄 수 있다.

 

 

위 옵션 중 하나를 사용하면, 메모리가 전부 할당되지 않으므로 추가적은 프로세스를 GPU에 할당할 수 있다.

즉, GPU가 1장이라도 2개 이상의 프로세스를 돌릴 수 있다