Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/runs-on.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
images:
ubuntu24-amd64:
platform: "linux"
arch: "amd64"
ami: "ami-04a92520784b93e73"
disk: large
preinstall: |
#!/bin/bash
apt update && apt install -y curl build-essential
ubuntu22-amd64:
platform: "linux"
arch: "amd64"
ami: "ami-04a4acda26ca36de0"
disk: large
preinstall: |
#!/bin/bash
apt update && apt install -y curl build-essential
ubuntu22-arm64:
platform: "linux"
arch: "arm64"
ami: "ami-080565b2a8d78af19"
disk: large
preinstall: |
#!/bin/bash
apt update && apt install -y curl build-essential
59 changes: 59 additions & 0 deletions .github/workflows/_build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Build flash-attention artifacts

on:
workflow_call:

jobs:
flash-attention-artifacts:
runs-on: ${{ matrix.build.runs_on }}
strategy:
fail-fast: false
matrix:
build:
- platform: linux-amd64
cuda_platform: linux-x86_64
runs_on:
["runs-on", "cpu=128", "family=m+c", "image=ubuntu22-full-x64"]
- platform: linux-arm64
cuda_platform: linux-sbsa
runs_on:
["runs-on", "cpu=96", "family=m+c", "image=ubuntu22-full-arm64"]

steps:
- uses: runs-on/action@v1

- name: Check out repository
uses: actions/checkout@v4
with:
submodules: recursive

- uses: bazel-contrib/setup-bazel@0.15.0
with:
bazelisk-version: 1.26.0
bazelisk-cache: false
bazelrc: |
common --verbose_failures
common --color=yes
common --show_timestamps

- name: Build shared library
run: |
bazel build \
-c opt \
//:flashattn_so \
--@rules_cuda//cuda:exec_platform=${{ matrix.build.cuda_platform }} \
--@rules_cuda//cuda:target_platform=${{ matrix.build.cuda_platform }}

- name: Package ${{ matrix.build.platform }} artifact
run: |
artifact_dir="flash-attention_${{ matrix.build.platform }}"
mkdir -p "${artifact_dir}/lib" "${artifact_dir}/include"
cp bazel-bin/libflashattn.so "${artifact_dir}/lib/libflashattn.so"
cp capi/capi.h "${artifact_dir}/include/capi.h"
tar -czf "${artifact_dir}.tar.gz" -C "${artifact_dir}" .

- name: Upload ${{ matrix.build.platform }} artifact
uses: actions/upload-artifact@v4
with:
name: flash-attention_${{ matrix.build.platform }}.tar.gz
path: flash-attention_${{ matrix.build.platform }}.tar.gz
12 changes: 12 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: CI

on:
pull_request:

concurrency:
group: ${{ github.workflow_sha }}-${{ github.event.pull_request.number }}
cancel-in-progress: true

jobs:
flash-attention-artifacts:
uses: ./.github/workflows/_build.yaml
218 changes: 0 additions & 218 deletions .github/workflows/publish.yml

This file was deleted.

34 changes: 34 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Release

on:
push:
tags:
- "*"
- "!nightly-*"

concurrency:
group: ${{ github.workflow_sha }}-${{ github.ref_name }}
cancel-in-progress: true

permissions:
contents: write

jobs:
flash-attention-artifacts:
uses: ./.github/workflows/_build.yaml

release:
name: Release flash-attention artifacts
needs: ["flash-attention-artifacts"]
runs-on: ubuntu-latest
steps:
- run: rm -rf flash-attention_*.tar.gz

- name: Download all artifacts
uses: actions/download-artifact@v4

- name: Publish release assets
uses: softprops/action-gh-release@v2
with:
files: |
*.tar.gz/*.tar.gz
Loading