IMAGE hack for tinygrad#16335 (from tinygrad#16343) #16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Autogen | |
| env: | |
| # increment this when downloads substantially change to avoid the internet | |
| CACHE_VERSION: '13' | |
| CAPTURE_PROCESS_REPLAY: 1 | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| PYTHONPATH: ${{ github.workspace }} | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| paths: | |
| - 'tinygrad/runtime/autogen/**/*' | |
| - 'tinygrad/runtime/support/autogen.py' | |
| - '.github/workflows/autogen.yml' | |
| workflow_dispatch: | |
| paths: | |
| - 'tinygrad/runtime/autogen/**/*' | |
| - 'tinygrad/runtime/support/autogen.py' | |
| - '.github/workflows/autogen.yml' | |
| jobs: | |
| autogen: | |
| name: In-tree Autogen | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v6 | |
| - name: Setup Environment | |
| uses: ./.github/actions/setup-tinygrad | |
| with: | |
| key: 'autogen' | |
| amd: 'true' | |
| llvm: 'true' | |
| pydeps: 'pyyaml mako' | |
| - name: Install autogen support packages | |
| run: sudo apt-get install -y --no-install-recommends libclang-20-dev llvm-20-dev hip-dev libusb-1.0-0-dev libdrm-dev liburing-dev | |
| - name: Regenerate autogen files | |
| run: | | |
| find tinygrad/runtime/autogen -type f -name "*.py" -not -path "*/amd/*" -not -name "__init__.py" -not -name "comgr.py" -not -name "metal.py" -not -name "iokit.py" -not -name "corefoundation.py" -not -name "libclang.py" -delete | |
| python3 -c "from tinygrad.runtime.autogen import opencl" | |
| python3 -c "from tinygrad.runtime.autogen import cuda, nvrtc, nvjitlink, nv_570, nv_580, nv" | |
| python3 -c "from tinygrad.runtime.autogen import comgr_3, hsa, hip, amd_gpu, sqtt, rocprof, amdgpu_kd, amdgpu_drm" | |
| python3 -c "from tinygrad.runtime.autogen.am import *" | |
| python3 -c "from tinygrad.runtime.autogen.nv_regs import *" | |
| python3 -c "from tinygrad.runtime.autogen import libc, kfd, io_uring, pci, vfio" | |
| python3 -c "from tinygrad.runtime.autogen import llvm" | |
| python3 -c "from tinygrad.runtime.autogen import webgpu" | |
| python3 -c "from tinygrad.runtime.autogen import kgsl, qcom_dsp" | |
| python3 -c "from tinygrad.runtime.autogen import libusb" | |
| python3 -c "from tinygrad.runtime.autogen import mesa" | |
| python3 -c "from tinygrad.runtime.autogen import avcodec" | |
| python3 -c "from tinygrad.runtime.autogen import llvm_qcom" | |
| python3 -c "from tinygrad.runtime.autogen import mlx5" | |
| python3 -c "from tinygrad.runtime.autogen import ggml_common" | |
| REGEN=1 python3 -c "from tinygrad.runtime.autogen import libclang" | |
| - name: Check for differences | |
| run: | | |
| if ! git diff --quiet; then | |
| git diff | |
| git diff > autogen-ubuntu.patch | |
| echo "Autogen mismatch detected. Patch available at: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts" | |
| exit 1 | |
| fi | |
| - name: Upload patch artifact | |
| if: failure() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: autogen-ubuntu-patch | |
| path: autogen-ubuntu.patch | |
| autogen-mac: | |
| name: In-tree Autogen (macos) | |
| runs-on: macos-14 | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v6 | |
| - name: Setup Environment | |
| uses: ./.github/actions/setup-tinygrad | |
| with: | |
| key: 'autogen-mac' | |
| llvm: 'true' | |
| - name: Regenerate autogen files | |
| run: | | |
| rm tinygrad/runtime/autogen/metal.py tinygrad/runtime/autogen/iokit.py tinygrad/runtime/autogen/corefoundation.py | |
| python3 -c "from tinygrad.runtime.autogen import metal, iokit, corefoundation" | |
| - name: Check for differences | |
| run: | | |
| if ! git diff --quiet; then | |
| git diff | |
| git diff > autogen-macos.patch | |
| echo "Autogen mismatch detected. Patch available at: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts" | |
| exit 1 | |
| fi | |
| - name: Upload patch artifact | |
| if: failure() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: autogen-macos-patch | |
| path: autogen-macos.patch | |
| autogen-comgr-2: | |
| name: In-tree Autogen (comgr 2) | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v6 | |
| - name: Setup Environment | |
| uses: ./.github/actions/setup-tinygrad | |
| with: | |
| key: 'autogen-comgr' | |
| - name: Install autogen support packages | |
| run: | | |
| wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null | |
| sudo tee /etc/apt/sources.list.d/rocm.list <<EOF | |
| deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.2 $(lsb_release -cs) main | |
| EOF | |
| echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600 | |
| sudo apt -qq update || true | |
| sudo apt-get install -y --no-install-recommends libclang-20-dev comgr | |
| - name: Regenerate autogen files | |
| run: | | |
| rm tinygrad/runtime/autogen/comgr.py | |
| python3 -c "from tinygrad.runtime.autogen import comgr" | |
| - name: Check for differences | |
| run: | | |
| if ! git diff --quiet; then | |
| git diff | |
| git diff > autogen-comgr2.patch | |
| echo "Autogen mismatch detected. Patch available at: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifacts" | |
| exit 1 | |
| fi | |
| - name: Upload patch artifact | |
| if: failure() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: autogen-comgr2-patch | |
| path: autogen-comgr2.patch |