* 하드웨어에 제약을 거는 방식
os.environ['CUDA_VISIBLE_DEVICES'] = '' : (GPU 를 아예 못 보게 하려면)
os.environ['CUDA_VISIBLE_DEVICES'] = '0' : (GPU 0만 보게 하려면)
os.environ['CUDA_VISIBLE_DEVICES'] = '1' : (GPU 1만 보게 하려면)
os.environ['CUDA_VISIBLE_DEVICES'] = '0, 1' : (GPU 0과 1을 보게 하려면)
*tensorflow.gpu_options (GPU 메모리 지정 방식 2가지 옵션)
[tf.ConfigProto().gpu_options.allow_growth = True]
-> GPU 메모리 전부를 할당하지 않고, 처음에는 아주 적은 비율만 할당하고, 프로세스 메모리 수요에 따라 추가 할당
-> 메모리 증식만 가능(메모리 필요없어진 경우, 할당된 메모리를 반납하지 않는다.)
[tf.ConfigProto().gpu_options.per_process_gpu_memory_fraction = 0.3]
-> 프로세스가 어느 정도의 GPU 메모리가 필요할지 미리 알 수 있다면, 작업 전에 미리 그 만큼만 할당하여, 메모리를 아낄 수 있다.
*연산이나 텐서가 어떤 디바이스에 할당되었는지 알고 싶을 때
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
반응형
'스타트업 > AI' 카테고리의 다른 글
[AI] 상대 경로, 절대 경로 (0) | 2020.01.31 |
---|---|
[AI] RPN(Region Proposal Network) (1) | 2020.01.31 |
[Pytorch] DataLoader 의 num_workers (0) | 2020.01.30 |
[AI] Spatio-Temporal (0) | 2020.01.12 |
[AI] 주요Cloud AI 개발환경 (0) | 2020.01.07 |