DEEP.I - Lab

오프라인 공간의 지능화를 꿈꾸는 딥아이 연구실입니다.

Python/Tensorflow

[Python] tensorflow에서 GPU, CPU 사용가능 칩셋 여부 확인하기

Jongwon Kim 2020. 11. 8. 14:24
반응형

컴퓨터 비전 기반 딥러닝 알고리즘의 핵심이 되는 CNN(Convolutional Neural Networks)의 연산은 기본적으로 CPU나 GPU 모두에서 가능하지만, 연산 프로세서의 메커니즘 차이로 인해 효율성에서는 큰 차이를 보이게됩니다. 여기서 우세를 보이는 GPU의 성능으로 인해 현대 딥러닝 시스템의 대부분은 GPU 연산을 기본을 전제로 구동되고 있습니다.

 

 

그림 1. 작지만 다수의 코어를 통해 병렬처리에 뛰어난 GPU

 

서론이 길었습니다. 이번 포스팅에서는 3D 그래픽 게임과 같이 딥러닝 시스템을 적용할때 발생하는 연산 프로세서 선택 및 성능 설정을 위해 선행되어야하는 GPU, CPU 사용가능 여부을 확인하는 코드를 살펴보도록 하겠습니다.

 

 

1. MAIN CODE

 

# 필요 라이브러리 설치
pip3 install cpuinfo

 

# -*- coding: utf-8 -*-
"""
Created on Sun Nov  8 13:31:52 2020
@author: Deep.I Inc.
"""

import cpuinfo
from tensorflow.python.client import device_lib

# 디바이스 체크
def deviceInfo():
    
    # 프로세서 리스트
    device = device_lib.list_local_devices()
    
    for i in device:
        # GPU 프로세서 확인
        if 'GPU' == i.device_type:
            # 모델명 확인
            k = i.physical_device_desc.split(',')[1].split(':')[1][1:]
            print("NVIDIA 칩셋 그래픽 카드 확인\n모델명: {}".format(k))

    try : k
    
    # CPU 프로세서 확인
    except : 
        k = cpuinfo.get_cpu_info()['brand_raw']
        print("NVIDIA 칩셋 그래픽 카드 없음\n대체 프로세서 모델명: {}".format(k))

deviceInfo()

 

tensorflow 내장 함수를 통해 GPU 칩셋을 확인하고, GPU 칩셋이 없을경우, cpuinfo에서 메인 프로세서 정보를 불러오는 구조입니다. 저는 진행중인 프로젝트에서 구동 환경에 따른 딥러닝 설정을 하기위해 이를 응용하여 사용하였습니다.

 

 

그림 2. 딥러닝 시스템 설정으로 응용

 

 

 

# 머신러닝 프로젝트 제작, 상담 및 컨설팅  / 머신러닝 접목 졸업작품 컨설팅

# 데이터 가공, 수집, 라벨링 작업 / C, 파이썬 프로그램 제작

# email : deepi.contact.us@gmail.com

# site : www.deep-i.net

반응형