Files

50 lines
1.5 KiB
YAML

---
# Linux GPU detection and validation tasks
- name: Check for NVIDIA GPU
ansible.builtin.command: nvidia-smi
register: nvidia_smi_output
changed_when: false
failed_when: false
- name: Display NVIDIA GPU information
ansible.builtin.debug:
msg: "NVIDIA GPU detected: {{ nvidia_smi_output.stdout_lines | join(', ') }}"
when: nvidia_smi_output.rc == 0
- name: Validate NVIDIA VRAM
ansible.builtin.set_fact:
gpu_valid: true
gpu_vram_gb: "{{ (nvidia_smi_output.stdout | regex_findall('(\\d+)MiB')) | first | default(0) | int / 1024 | int }}"
when: nvidia_smi_output.rc == 0
- name: Check VRAM requirement (8GB minimum)
ansible.builtin.debug:
msg: "GPU VRAM: {{ gpu_vram_gb | default(0) }}GB - Requirement met: {{ gpu_vram_gb | default(0) >= 8 }}"
when: gpu_valid is defined
- name: Warn about insufficient VRAM
ansible.builtin.debug:
msg: "WARNING: NVIDIA GPU has less than 8GB VRAM. Some labs may not function correctly."
when: gpu_vram_gb is defined and gpu_vram_gb < 8
- name: Check for AMD GPU (ROCm)
ansible.builtin.command: rocminfo
register: rocm_output
changed_when: false
failed_when: false
when: nvidia_smi_output.rc != 0
- name: Display AMD GPU information
ansible.builtin.debug:
msg: "AMD GPU detected"
when: rocm_output.rc == 0
- name: Set GPU type fact
ansible.builtin.set_fact:
gpu_type: "{{ 'nvidia' if nvidia_smi_output.rc == 0 else ('amd' if rocm_output.rc == 0 else 'none') }}"
- name: Display GPU summary
ansible.builtin.debug:
msg: "GPU Type: {{ gpu_type | default('none') }}"