144 lines
3.8 KiB
Python
144 lines
3.8 KiB
Python
"""
|
|
-------------------------------------------------------------------------
|
|
File: gpu_config.py
|
|
Description:
|
|
외부 GPU 연결 예제
|
|
사용법 : python -m app.AI_modules.gpu_utils.example
|
|
Author: 소지안 프로
|
|
Created: 2026-02-02
|
|
Last Modified: 2026-02-02
|
|
-------------------------------------------------------------------------
|
|
"""
|
|
|
|
def example_local_gpu():
|
|
"""로컬 GPU 사용 예제"""
|
|
from .gpu_config import check_gpu_status, setup_tensorflow_gpu
|
|
|
|
print("\n" + "=" * 50)
|
|
print("Example 1: Local GPU Setup")
|
|
print("=" * 50)
|
|
|
|
# GPU 상태 확인
|
|
check_gpu_status()
|
|
|
|
# TensorFlow GPU 설정
|
|
gpus = setup_tensorflow_gpu(memory_limit=4096) # 4GB 제한
|
|
|
|
if gpus:
|
|
print("\n[Ready] GPU is ready for training")
|
|
else:
|
|
print("\n[Warning] No GPU available, will use CPU")
|
|
|
|
|
|
def example_remote_gpu():
|
|
"""원격 GPU 서버 연결 예제"""
|
|
from .remote_gpu import RemoteGPUClient
|
|
|
|
print("\n" + "=" * 50)
|
|
print("Example 2: Remote GPU Connection")
|
|
print("=" * 50)
|
|
|
|
# 원격 서버 설정 (실제 값으로 변경 필요)
|
|
client = RemoteGPUClient(
|
|
host='YOUR_GPU_SERVER_IP', # 예: '192.168.1.100'
|
|
username='YOUR_USERNAME', # 예: 'ubuntu'
|
|
port=22,
|
|
key_path='~/.ssh/id_rsa' # SSH 키 경로
|
|
)
|
|
|
|
# 연결 테스트
|
|
if client.connect():
|
|
# GPU 상태 확인
|
|
client.check_gpu()
|
|
|
|
# 원격 명령어 실행
|
|
client.run_command('python --version')
|
|
else:
|
|
print("[Failed] Could not connect to remote server")
|
|
|
|
|
|
def example_remote_training():
|
|
"""원격 GPU 학습 예제"""
|
|
from .remote_gpu import SSHGPURunner
|
|
|
|
print("\n" + "=" * 50)
|
|
print("Example 3: Remote Training")
|
|
print("=" * 50)
|
|
|
|
# 설정 (실제 값으로 변경 필요)
|
|
runner = SSHGPURunner(
|
|
host='YOUR_GPU_SERVER_IP',
|
|
username='YOUR_USERNAME',
|
|
remote_project_dir='/home/user/projects/goheung',
|
|
key_path='~/.ssh/id_rsa'
|
|
)
|
|
|
|
if runner.connect():
|
|
# 1. 프로젝트 동기화
|
|
# runner.sync_project('./app')
|
|
|
|
# 2. 학습 실행
|
|
# runner.run('python -m app.AI_modules.DeepLabV3.train --epochs 50')
|
|
|
|
# 3. 백그라운드 학습 (연결 끊어도 계속 실행)
|
|
# runner.run_background('python -m app.AI_modules.DeepLabV3.train --epochs 50')
|
|
|
|
# 4. 로그 확인
|
|
# runner.check_training_log()
|
|
|
|
# 5. 결과 다운로드
|
|
# runner.download_model('DeepLabV3-Plus.h5', './models/')
|
|
|
|
print("[Ready] Remote training setup complete")
|
|
else:
|
|
print("[Failed] Could not connect to remote server")
|
|
|
|
|
|
def example_colab_config():
|
|
"""Google Colab GPU 설정 예제 (Colab에서 실행)"""
|
|
config_code = '''
|
|
# Google Colab에서 실행할 코드
|
|
|
|
# 1. GPU 런타임 확인
|
|
!nvidia-smi
|
|
|
|
# 2. Google Drive 마운트
|
|
from google.colab import drive
|
|
drive.mount('/content/drive')
|
|
|
|
# 3. 프로젝트 클론 또는 업로드
|
|
# !git clone https://github.com/your/repo.git
|
|
# 또는 드라이브에서 복사
|
|
# !cp -r /content/drive/MyDrive/goheung /content/
|
|
|
|
# 4. 의존성 설치
|
|
# !pip install tensorflow keras numpy matplotlib
|
|
|
|
# 5. 학습 실행
|
|
# %cd /content/goheung
|
|
# !python -m app.AI_modules.DeepLabV3.train --image_path /content/data/Images/
|
|
|
|
# 6. 결과 저장
|
|
# !cp DeepLabV3-Plus.h5 /content/drive/MyDrive/models/
|
|
'''
|
|
print("\n" + "=" * 50)
|
|
print("Example 4: Google Colab Configuration")
|
|
print("=" * 50)
|
|
print(config_code)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
print("GPU Connection Examples")
|
|
print("=" * 50)
|
|
|
|
# 로컬 GPU 확인
|
|
try:
|
|
example_local_gpu()
|
|
except Exception as e:
|
|
print(f"[Error] {e}")
|
|
|
|
# 다른 예제는 설정 후 주석 해제하여 사용
|
|
# example_remote_gpu()
|
|
# example_remote_training()
|
|
# example_colab_config()
|