* 하드웨어에 제약을 거는 방식

 

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

+ Recent posts