#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ GPU 상태 확인 테스트 스크립트 사용법: python test_gpu_status.py """ import sys import os import logging # 모듈 경로 추가 sys.path.append('src') from modules.gpu_status_checker import GPUStatusChecker class TestLogger: """테스트용 간단한 로거""" def log(self, msg, level=logging.INFO, exc_info=False): level_names = { logging.DEBUG: "DEBUG", logging.INFO: "INFO", logging.WARNING: "WARNING", logging.ERROR: "ERROR" } print(f"[{level_names.get(level, 'INFO')}] {msg}") if exc_info: import traceback traceback.print_exc() def test_gpu_status(): """GPU 상태 테스트""" print("🎮 GPU 상태 확인 테스트 시작\n" + "="*50) logger = TestLogger() checker = GPUStatusChecker(logger=logger) # 1. 전체 상태 확인 print("\n1️⃣ 전체 GPU 구성요소 확인:") status = checker.check_all_gpu_components() # 2. 상태 보고서 출력 print("\n2️⃣ 상태 보고서:") report = checker.generate_status_report() print(report) # 3. cuDNN PATH 자동 설정 테스트 print("\n3️⃣ cuDNN PATH 자동 설정 테스트:") if status.get('cudnn', {}).get('installed', False): print("cuDNN이 설치되어 있습니다. PATH 자동 설정을 테스트합니다...") # 현재 PATH 확인 current_path = os.environ.get('PATH', '') print(f"현재 PATH 길이: {len(current_path)} 문자") # 자동 설정 시도 success = checker.auto_fix_cudnn_path() print(f"자동 설정 결과: {'성공' if success else '실패'}") # 설정 후 PATH 확인 new_path = os.environ.get('PATH', '') print(f"설정 후 PATH 길이: {len(new_path)} 문자") print(f"PATH 변경됨: {'예' if len(new_path) != len(current_path) else '아니오'}") # PATH 구성 재확인 path_status = checker._check_path_configuration() print(f"PATH 설정 상태: {path_status.get('message', 'Unknown')}") else: print("cuDNN이 설치되지 않아 PATH 설정을 테스트할 수 없습니다.") # 4. 권장사항 출력 recommendations = status.get('recommendations', []) if recommendations: print(f"\n4️⃣ 권장사항 ({len(recommendations)}개):") for i, rec in enumerate(recommendations, 1): print(f" {i}. [{rec.get('priority', 'LOW').upper()}] {rec.get('action', 'Unknown')}") print(f" {rec.get('description', '')}") else: print("\n4️⃣ 🎉 모든 구성요소가 올바르게 설치되어 있습니다!") print("\n" + "="*50 + "\n테스트 완료!") if __name__ == "__main__": test_gpu_status()