diff --git a/.github/actions/build-cuda/action.yml b/.github/actions/build-cuda/action.yml index 059ddc19..cb61aa88 100644 --- a/.github/actions/build-cuda/action.yml +++ b/.github/actions/build-cuda/action.yml @@ -15,7 +15,7 @@ runs: env: DEBUG: 1 CMAKE_ARGS: -DMLX_BUILD_CUDA=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_CUDA_COMPILER=${{ inputs.nvcc-location }} - run: pip install -e ".[dev]" -v + run: pip install --no-build-isolation -e ".[dev]" -v - name: Build CPP only shell: bash diff --git a/.github/actions/build-linux/action.yml b/.github/actions/build-linux/action.yml index aacef66e..6273ab8d 100644 --- a/.github/actions/build-linux/action.yml +++ b/.github/actions/build-linux/action.yml @@ -9,8 +9,8 @@ runs: env: CMAKE_ARGS: "-DCMAKE_COMPILE_WARNING_AS_ERROR=ON" DEBUG: 1 - run: pip install -e ".[dev]" -v - + run: pip install --no-build-isolation -e ".[dev]" -v + - name: Generate package stubs shell: sh run: | diff --git a/.github/actions/setup-linux/action.yml b/.github/actions/setup-linux/action.yml index 303679cf..0661b283 100644 --- a/.github/actions/setup-linux/action.yml +++ b/.github/actions/setup-linux/action.yml @@ -18,42 +18,39 @@ inputs: runs: using: "composite" steps: - - name: Free disk space - shell: sh - if: inputs.runner-type == 'linux' - run: sudo rm -rf "$AGENT_TOOLSDIRECTORY" + - name: Use ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ccache-${{ inputs.runner-type }}-${{ runner.arch }}-py${{ inputs.python-version }} + max-size: 1GB - 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 + sudo apt-get install -y libblas-dev liblapack-dev liblapacke-dev zip - uses: actions/setup-python@v6 with: python-version: ${{ inputs.python-version }} cache: 'pip' - - name: setup python venv + - name: Setup Python venv shell: bash run: | python -m venv .venv source .venv/bin/activate + pip install cmake nanobind==2.4.0 echo PATH=$PATH >> $GITHUB_ENV - pip install --upgrade pip cmake + # Make cmake search .venv for nanobind + echo PYTHONPATH=`python -c 'import sys; print(sys.path[-1])'` >> $GITHUB_ENV - name: Install MPI 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 diff --git a/CMakeLists.txt b/CMakeLists.txt index d8889d1e..3487c22c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,6 +74,7 @@ endif() if(MLX_USE_CCACHE) find_program(CCACHE_PROGRAM ccache) if(CCACHE_PROGRAM) + message(STATUS "Found CCache: ${CCACHE_PROGRAM}") set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") set(CMAKE_CUDA_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")