mirror of
https://github.com/ml-explore/mlx.git
synced 2025-11-03 01:48:12 +08:00
84 lines
2.8 KiB
YAML
84 lines
2.8 KiB
YAML
name: 'Setup Linux Environment'
|
|
description: 'Install dependencies for Linux builds'
|
|
|
|
inputs:
|
|
runner-type:
|
|
description: 'Whether to set this up as a linux or CUDA runner'
|
|
required: false
|
|
default: 'linux'
|
|
type: choice
|
|
options:
|
|
- linux
|
|
- cuda
|
|
python-version:
|
|
description: 'Version of python to set up'
|
|
required: false
|
|
default: '3.10'
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Free disk space
|
|
shell: sh
|
|
if: inputs.runner-type == 'linux'
|
|
run: sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
|
|
|
- name: Install common dependencies
|
|
env:
|
|
TZ: Etc/UTC
|
|
shell: bash
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libblas-dev liblapack-dev liblapacke-dev tzdata zip
|
|
sudo apt autoremove -y
|
|
|
|
- uses: actions/setup-python@v6
|
|
with:
|
|
python-version: ${{ inputs.python-version }}
|
|
cache: 'pip'
|
|
|
|
- name: setup python venv
|
|
shell: bash
|
|
run: |
|
|
python -m venv .venv
|
|
source .venv/bin/activate
|
|
echo PATH=$PATH >> $GITHUB_ENV
|
|
pip install --upgrade pip cmake
|
|
|
|
- name: Install MPI
|
|
if: inputs.runner-type == 'linux'
|
|
shell: bash
|
|
run: sudo apt-get install -y openmpi-bin openmpi-common libopenmpi-dev
|
|
|
|
- name: Network CUDA installation from packages
|
|
id: install-cuda
|
|
if: inputs.runner-type == 'cuda'
|
|
env:
|
|
TZ: Etc/UTC
|
|
shell: bash ## Specific to Ubuntu 22.04 & Architecture x86_64
|
|
run: |
|
|
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
|
|
sudo dpkg -i cuda-keyring_1.1-1_all.deb
|
|
sudo apt-get update
|
|
sudo apt-get install -y libcudnn9-dev-cuda-12 libnccl2 libnccl-dev cuda-toolkit-12-9
|
|
# Note: This installs CUDA 12.9, which is the latest supported by cuDNN 9.x and works with the NVidia 570 drivers
|
|
# cuda-toolkit by itself installs version 13 (+) and requires updated drives (580+), which require a reboot to function properly.
|
|
# Compatibility matrix: https://docs.nvidia.com/deeplearning/cudnn/backend/latest/reference/support-matrix.html
|
|
# This also drops `nvcc` into `/usr/local/cuda-12.9/bin/nvcc` - but it's *not* on the default PATH
|
|
|
|
- name: Package and Driver Report
|
|
if: inputs.runner-type == 'cuda'
|
|
shell: bash
|
|
run: |
|
|
sudo apt-get install -y ubuntu-drivers-common dkms
|
|
echo "NVIDIA Driver Packages Available:"
|
|
sudo ubuntu-drivers list --gpgpu
|
|
echo "NVIDIA Driver Version:"
|
|
cat /proc/driver/nvidia/version || echo "nvidia driver not found"
|
|
echo "Installed NVIDIA and CUDA packages:"
|
|
dpkg -l | egrep "cuda|nvidia" -i
|
|
echo "DKMS Status:"
|
|
dkms status || echo "dkms not found"
|
|
echo "NVIDIA-SMI Status:"
|
|
nvidia-smi || echo "nvidia-smi not found"
|