50 lines
1.5 KiB
YAML
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') }}"
|