# Windows GPU 검증 — GPU 가 달린 러너에서만 # # GPU 는 한 VM 만 독점한다(컨슈머 NVIDIA 는 vGPU 미지원). 그래서 GPU 없는 # 상시 CI VM(runs-on: windows)에서는 CUDA·VRAM·4~5티어를 확인할 수 없다. # 그 항목만 떼어내 별도 라벨로 돌린다. # # 러너 라벨: windows-gpu:host # - GPU 가 달린 Windows 머신에 등록한다 (두 번째 GPU를 꽂은 VM, 또는 실물 PC) # - 상시로 띄울 필요 없다. 필요할 때만 daemon 을 켜면 된다 # # 그래서 트리거도 **수동 실행만** 이다. 러너가 없으면 큐에 쌓이기만 하고 # 아무 일도 일어나지 않는다. 자동으로 돌리고 싶으면 push 트리거를 켜면 된다. name: Windows GPU on: workflow_dispatch: jobs: gpu: runs-on: windows-gpu timeout-minutes: 90 steps: # 라벨이 안 맞으면 Gitea 가 기본 ubuntu 컨테이너로 떨어뜨린다. # GPU 를 확인하겠다고 부른 작업이 엉뚱한 데서 도는 일은 막아야 한다. - name: Windows 인지 확인 shell: pwsh run: | Write-Host "RUNNER_OS=$env:RUNNER_OS" if ($env:RUNNER_OS -ne "Windows") { Write-Host "::error::Windows 러너가 아닙니다 ($env:RUNNER_OS)." Write-Host "::error::러너를 'windows-gpu:host' 라벨로 등록했는지 확인하세요." exit 1 } - name: NVIDIA GPU 가 실제로 보이는지 shell: pwsh run: | nvidia-smi --query-gpu=name,memory.total --format=csv,noheader if ($LASTEXITCODE -ne 0) { Write-Host "::error::nvidia-smi 실패 — 이 러너에는 GPU 가 없습니다." exit 1 } - name: 소스 받기 uses: actions/checkout@v4 # 포터블 CI 와 달리 여기서는 torch CUDA 빌드가 필요하다. # 4~5티어(Seed-X / Qwen3)가 torch 위에서 돌기 때문이다. - name: 의존성 설치 (torch CUDA 포함) shell: pwsh run: | python -m venv .venv-gpu .\.venv-gpu\Scripts\python -m pip install --upgrade pip --quiet .\.venv-gpu\Scripts\python -m pip install torch --index-url https://download.pytorch.org/whl/cu128 .\.venv-gpu\Scripts\python -m pip install -r requirements.txt .\.venv-gpu\Scripts\python -c "import torch; assert torch.cuda.is_available(), 'CUDA 안 잡힘 — CPU 빌드가 깔렸는지 확인'; print('CUDA OK:', torch.cuda.get_device_name(0))" - name: GPU 전용 점검 shell: pwsh env: PYTHONPATH: src run: .\.venv-gpu\Scripts\python packaging\windows_smoke.py --gpu - name: 결과물 업로드 uses: actions/upload-artifact@v4 if: always() with: name: LiveSub-gpu-report path: artifacts/*.txt retention-days: 14