update cuda to 12.8 to build sm100 sm120 #28
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: Build Wheels | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| tags: [ 'v*.*.*' ] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| packages: write | |
| id-token: write | |
| timeout-minutes: 600 | |
| steps: | |
| - name: Free Disk Space (Ubuntu) | |
| uses: jlumbroso/free-disk-space@main | |
| with: | |
| tool-cache: true | |
| android: true | |
| dotnet: true | |
| haskell: true | |
| large-packages: true | |
| swap-storage: false | |
| docker-images: false | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: recursive | |
| - name: Add Swap | |
| run: | | |
| SWAP_FILE="/mnt/swapfile" | |
| swapon --show | |
| echo "Trying to disable and remove existing swap if needed..." | |
| if swapon --show=NAME | grep -q "$SWAP_FILE"; then | |
| echo "Disabling existing swap at $SWAP_FILE..." | |
| sudo swapoff "$SWAP_FILE" | |
| fi | |
| if [ -f "$SWAP_FILE" ]; then | |
| echo "Removing existing file at $SWAP_FILE..." | |
| sudo rm -f "$SWAP_FILE" | |
| fi | |
| echo "Creating new 32G swap file..." | |
| sudo dd if=/dev/zero of=$SWAP_FILE bs=1G count=32 | |
| sudo chmod 600 "$SWAP_FILE" | |
| sudo mkswap "$SWAP_FILE" | |
| sudo swapon "$SWAP_FILE" | |
| echo "Final swap status:" | |
| swapon --show | |
| free -h | |
| - name: Setup Docker buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Docker cache - restore | |
| uses: actions/cache@v4 | |
| with: | |
| path: /tmp/.buildx-cache | |
| key: buildx-${{ runner.os }}-${{ github.sha }} | |
| restore-keys: | | |
| buildx-${{ runner.os }}- | |
| # Build and export wheels directly (fastest method) | |
| - name: Build and export wheels | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| target: wheels # We'll add this target to Dockerfile | |
| outputs: type=local,dest=./out | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache,mode=max | |
| - name: Verify exported wheels | |
| run: | | |
| echo "Wheel files exported directly during build:" | |
| ls -la ./out/ | |
| echo "Wheel count: $(ls -1 ./out/*.whl | wc -l)" | |
| - name: Upload wheels as artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels | |
| path: ./out/*.whl | |
| - name: Upload .whl to GitHub Release | |
| if: startsWith(github.ref, 'refs/tags/') | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| TAG_NAME=${GITHUB_REF##*/} | |
| # Get wheel file information | |
| LIGHTKERNEL_WHEEL=$(ls ./out/lightllm_kernel-*.whl | head -n1 | xargs basename) | |
| FA3_MTP_WHEEL=$(ls ./out/flash_attn_3-*.whl | head -n1 | xargs basename) | |
| gh release create "$TAG_NAME" ./out/*.whl \ | |
| --title "LightKernel Release $TAG_NAME" \ | |
| --notes "🎯 **LightKernel Release $TAG_NAME** | |
| This automated release contains pre-compiled wheel packages: | |
| 📦 **Packages:** | |
| - **$LIGHTKERNEL_WHEEL** - Core CUDA kernel library | |
| - **$FA3_MTP_WHEEL** - Fa3 MTP 3.0 (Hopper) | |
| 🚀 **Quick Installation:** | |
| \`\`\`bash | |
| # Install both packages | |
| pip install https://github.com/${{ github.repository }}/releases/download/$TAG_NAME/$LIGHTKERNEL_WHEEL | |
| pip install https://github.com/${{ github.repository }}/releases/download/$TAG_NAME/$FA3_MTP_WHEEL | |
| \`\`\` | |
| 🔧 **Build Environment:** | |
| - CUDA: 12.6.1 with cuDNN | |
| - PyTorch: 2.8.0 | |
| - Python: 3.10 | |
| - Architecture: CUDA Compute Capabilities 9.0 | |
| Built on $(date -u)" \ | |
| || echo "Release already exists, skipping" |